6 мин чтенияИнтеграции

URL-шортенер Gemini: где на самом деле работают вызовы инструментов

Gemini умеет создавать настоящие короткие ссылки, но не в приложении. Почему Gems не могут вызывать ваш API и как связать CLI и API, чтобы ссылка открывалась.

Marius Voß
DevRel · edge infra
URL-шортенер Gemini работает через CLI по MCP и через вызов функций API, тогда как потребительское приложение Gemini не может вызывать внешний API

Gemini может создать работающую короткую ссылку. Просто не там, где большинство пользователей пытается сделать это сначала.

Разница с другими ассистентами заметнее, и всё упирается в одно архитектурное решение Google: потребительское приложение Gemini не имеет механизма для вызова API, которым владеете вы. Попросите его сократить URL и получите слаг правильного вида, за которым ничего нет. Gemini CLI - другой продукт с другим ответом, и именно там живёт вызов инструмента. Поэтому решение, похожее на выбор между двумя интерфейсами Google, на деле определяет, сможет ли ваша команда вообще этим пользоваться.

В этой статье рассматриваются три поверхности и то, что каждая из них действительно умеет: CLI по MCP, вызов функций в Gemini API и чат с готовым запросом. Параллельный материал о ChatGPT приводит к другому выводу - причины стоит понять до выбора поверхности.

Почему приложение Gemini не может создать короткую ссылку

Gems - это функция Gemini для создания пользовательских ассистентов, и на первый взгляд они похожи на аналог пользовательского GPT. Но в важном для нас отношении это не так. В Gems нет аналога Actions. Нет поля для схемы OpenAPI. Нет настройки аутентификации. Нет способа указать собственный endpoint.

Gems могут использовать собственные расширения Google: Workspace, Maps, YouTube. Их создала Google, а не вы их настроили. Поэтому разрыв в возможностях связан не с недостаточной зрелостью, которую можно исправить настройкой. Ничто, что вы напишете в инструкциях Gem, не даст ему доступ к сети и вашему API.

Поэтому приложение ведет себя как любой ассистент без инструментов, когда его просят создать короткую ссылку. Оно выдает правдоподобный набор символов. Это стоит знать, прежде чем вы потратите целый день на попытки подобрать правильный запрос.

Сравнение трех поверхностей Gemini для URL-шортенера: у приложения и Gems нет пути к стороннему API, CLI обращается к нему по MCP, а API обращается к нему через вызов функций

Маршрут один: Gemini CLI по MCP

Gemini CLI поддерживает протокол контекста модели, поэтому тот же @elido/mcp-server, который обслуживает Claude Desktop и Cursor, работает здесь без кода, специфичного для Gemini. Настройте его один раз, и create_link, list_links, query_analytics, generate_qr и list_workspaces появятся как вызываемые инструменты.

Добавление сервера

Быстрее всего воспользоваться встроенной командой:

gemini mcp add -s user -e ELIDO_API_KEY=$ELIDO_API_KEY elido npx -y @elido/mcp-server

Или отредактируйте файл настроек напрямую. Пользовательская область находится в ~/.gemini/settings.json, область проекта - в .gemini/settings.json, а блок размещается внутри mcpServers:

{
  "mcpServers": {
    "elido": {
      "command": "npx",
      "args": ["-y", "@elido/mcp-server"],
      "env": {
        "ELIDO_API_KEY": "$ELIDO_API_KEY",
        "ELIDO_WORKSPACE_ID": "$ELIDO_WORKSPACE_ID"
      },
      "timeout": 30000
    }
  }
}

Деталь раскрытия env, которая легко приводит к ошибке

Gemini CLI раскрывает $VAR и ${VAR} внутри блока env, поэтому ключ выше является ссылкой, а не вставленным секретом. Используйте именно такой подход. Зафиксировать в репозитории файл .gemini/settings.json с действующим ключом легко, а заметить эту ошибку удается нескоро.

В документации Google по серверу MCP есть одна важная особенность: неопределенная переменная превращается в пустую строку, а не вызывает исключение. Поэтому опечатка в имени переменной не приводит к явной ошибке при запуске. Ошибка появляется позже, при первом вызове инструмента, как ошибка аутентификации. Однажды я потратил двадцать минут на отсутствующую экспортированную переменную и всё это время перечитывал не тот файл: ошибка аутентификации указывает на учетные данные, а не на имя переменной, которая должна была их передать. Если сервер подключается, но каждый вызов возвращает ошибку авторизации, сначала проверьте переменную.

Настройте ключ, и следующий бриф кампании, который вы напишете в терминале, сможет сам создать ссылки: создайте рабочее пространство и выпустите ключ с областью действия для этой интеграции.

Маршрут два: вызов функций в Gemini API

Если вы создаете что-то, а не работаете интерактивно, вызов функций - эквивалентный механизм на уровне API. Вы объявляете функцию, модель возвращает структурированный вызов, когда считает его необходимым, ваш код выполняет запрос, а затем вы передаете результат обратно.

Схема такая же, как у любой интеграции инструментов. Опишите create_link, самостоятельно выполните HTTP-запрос и верните ответ. Преимущество перед MCP - контроль. Вы точно решаете, какие параметры может задавать модель, и можете отклонить всё, что не соответствует вашим правилам именования, ещё до того, как запрос покинет ваш процесс. Недостаток - переносимость. Это подключение придётся поддерживать вам, и оно никуда за вами не последует.

Для большинства команд этот маршрут имеет смысл только тогда, когда сокращение является одним шагом в более крупном автоматизированном процессе. Если вам просто нужны ссылки во время работы, CLI требует меньше кода и меньше постоянного обслуживания.

Маршрут три: чат с готовым запросом

Вариант без настройки - ссылка, которая открывает Gemini уже с написанным запросом:

https://gemini.google.com/app?q=<url-encoded%20prompt>

Именно этот механизм используется кнопками на странице интеграций LLM, что было подтверждено на работающей поверхности в апреле 2026 года. Поведение параметров запроса в любом продукте на основе ИИ меняется, поэтому проверьте его заново, если кнопка перестала работать как раньше.

Трезво оцените, что это дает, учитывая первый раздел. У ассистента нет инструментов, поэтому он готовит черновик, а вы выполняете действие. Это всё равно полезно. Запуск, для которого нужны восемь вариантов UTM-меток по единой схеме именования, утомительно собирать вручную, а модели легко с этим справиться. Просто в результате не появляется ссылка.

Поток вызова инструмента Gemini CLI: settings.json объявляет сервер Elido MCP, CLI запускает его по stdio, сервер вызывает API Elido с ключом, который не попадает к модели, а готовая короткая ссылка возвращается в разговор

Какой маршрут выбрать

ПоверхностьМожет вызывать ваш APIНастройкаЛучше всего подходит для
Приложение Gemini и GemsНетНедоступнаПодготовки слагов и наборов UTM-меток
Gemini CLIДа, по MCPОдин блок настроекЕжедневной интерактивной работы
Gemini APIДа, через вызов функцийКод, который вы поддерживаетеСсылок внутри автоматизированного процесса

Сопоставьте эту таблицу с таблицей для ChatGPT, и асимметрия станет очевидной. В ChatGPT именно доступная для общего использования поверхность может содержать подключенное действие, поэтому маркетинговой команде можно передать работающий пользовательский GPT. Подключенная поверхность Gemini - терминал. Если ваши пользователи - маркетологи, это различие определяет выбор платформы ещё до сравнения функций.

Ограничение области действия ключа

Сервер MCP хранит учетные данные, а модель их никогда не видит, и это правильная схема. Но вам всё равно нужно решить, что именно могут делать эти учетные данные.

Выпускайте отдельный ключ для каждой интеграции, а не используйте один ключ в нескольких инструментах. Ключу для интерактивного создания ссылок нужны права на создание ссылок и чтение аналитики; удалять ссылки или обращаться к пользовательским доменам ему не нужно. Когда в журнале аудита появляется что-то неожиданное, отдельный ключ для интеграции позволяет понять, какая поверхность это создала, а его отзыв ничего больше не нарушает.

Об области проекта стоит подумать отдельно. Зафиксированный в общем репозитории .gemini/settings.json удобен, но этот файл унаследует каждый участник. Храните секрет в окружении, а файл настроек оставляйте без всего, что вы не стали бы вставлять в запрос на слияние.

Честные ограничения

Здесь стоит заранее обозначить три вещи.

Набор инструментов намеренно небольшой. @elido/mcp-server находится на версии 0.1.x и включает пять инструментов, а администрирование рабочего пространства в него сознательно не входит. Приглашение людей, настройка доменов и смена тарифов остаются в панели управления, где их выполняет вошедший в систему человек.

Массовую работу лучше выполнять в другом месте. Запрос на сорок ссылок в одном разговоре приводит к ошибкам ограничения частоты и к тому, что модель перестает понимать, какой слаг относится к какому адресу назначения. Если ссылок больше нескольких, используйте API или импорт CSV.

Что же касается отсутствия возможностей у приложения, насколько было объявлено, это не временная проблема. Планируйте работу с учетом этого, а не ждите изменений. Если нетехнической команде уже сегодня нужно создавать ссылки из интерфейса чата, честный ответ - другой ассистент или панель управления, а не Gem.

Прочитайте опорную статью → Подключите Elido к Claude и Cursor по MCP

По теме в блоге

Частые вопросы

Может ли Gemini сократить URL?

Только там, где он может вызвать инструмент. Gemini CLI поддерживает серверы MCP, поэтому после настройки сервера Elido MCP он создаёт настоящую ссылку. Потребительское приложение Gemini не может: в нём нет механизма вызова стороннего API, поэтому просьба сократить URL приводит к выдуманному слагу, который никуда не ведет.

Поддерживают ли Gemini Gems пользовательские действия, как пользовательские GPT?

Нет. В Gems нет аналога GPT Actions, поэтому направить их на собственный API, webhook или сервис нельзя. Gems могут использовать собственные расширения Google, например Workspace, Maps и YouTube, но Google создала их заранее, а не вы настраиваете эти подключения. Это главное структурное различие между разработкой на Gemini и разработкой на ChatGPT.

Как добавить сервер MCP в Gemini CLI?

Либо выполните gemini mcp add с именем сервера и командой, либо напрямую добавьте блок mcpServers в settings.json. Пользовательская область находится в ~/.gemini/settings.json, область проекта - в .gemini/settings.json, а флаг области определяет, в какой файл будет выполнена запись.

Можно ли не хранить API-ключ в settings.json?

Да. Gemini CLI раскрывает переменные окружения внутри блока env, поэтому вместо вставки секрета можно написать $ELIDO_API_KEY. Учтите: неопределенная переменная превращается в пустую строку, а не вызывает ошибку, поэтому опечатка выглядит как ошибка аутентификации при первом вызове инструмента.

Что делать, если я использую только веб-приложение Gemini?

Тогда используйте чат с готовым запросом для подготовки черновика, а ссылку создайте сами. Ассистент может предложить слаг по вашим правилам и составить набор UTM-меток для запуска в нескольких каналах, но ссылку нужно создать там, где действительно есть возможность её записать. Считайте приложение средой для подготовки черновика, а не средой выполнения.

Готова ли интеграция с Gemini для продакшена?

Сервер MCP, на котором она основана, находится на версии 0.1.x, а поверхность Gemini помечена как Beta в нашем реестре интеграций, поэтому считайте её пригодной к использованию, но ещё ранней. Ввод инструментов не будет ломаться в пределах диапазона 0.1.x, а набор инструментов будет расширяться, а не сокращаться.

Попробуйте Elido

Вставьте URL - получите короткую ссылку

Без регистрации. Ссылка живёт 30 дней. Зарегистрируйтесь, чтобы оставить её навсегда.

Бесплатно, без регистрации · 2 в день

Попробуйте Elido

URL-сокращатель с хостингом в ЕС: собственные домены, глубокая аналитика, открытый API. Бесплатный тариф - без банковской карты.

Теги
gemini url shortener
gemini cli mcp
shorten links in gemini
gemini function calling
gemini gems
ai integration

Читать дальше