7 хв читанняІнтеграції

Скорочувач URL у Gemini

Gemini створює справжні короткі посилання, але не в застосунку. Чому Gems не викликають ваш API і як підключити CLI та API.

Marius Voß
DevRel · edge infra

Gemini може створити робоче коротке посилання. Лише не там, де більшість пробує спершу.

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

У цьому дописі розглянуто три поверхні та те, що кожна справді вміє: CLI поверх MCP, виклик функцій в API Gemini і чат із попередньо заповненим запитом. Паралельний огляд для ChatGPT приходить до іншого висновку, і причини варто зрозуміти до вибору поверхні.

Чому застосунок Gemini не може створити коротке посилання

Gems - це функція власних асистентів у Gemini, і зовні вони схожі на аналог custom GPT. Але в головному вони не такі. У Gems немає аналога Actions. Немає поля зі схемою OpenAPI. Немає налаштування автентифікації. Немає способу спрямувати їх на власний ендпоінт.

Gems можуть користуватися розширеннями самого Google: Google Workspace, Maps, YouTube. Їх створив Google, а не налаштували ви. Тож розрив у можливостях - не розрив у зрілості, який закривається одним параметром. Ніщо з написаного в інструкціях Gem не дає йому мережевого доступу до вашого API.

Тому застосунок робить те, що робить будь-який асистент без інструментів, коли просять коротке посилання. Він видає правдоподібні символи. Це варто знати, перш ніж витрачати день на спроби обійти обмеження промптами.

Три поверхні Gemini для скорочувача посилань: застосунок і Gems не мають шляху до стороннього API, CLI досягає його через MCP, а API через виклик функцій Сторінка інтеграції Elido з Gemini із заздалегідь заповненим глибоким посиланням на промпт і статусом підтримки MCP

Прочитати URL не означає скоротити його

Якщо пошукати цю тему, потрапите на багато гілок про інструмент URL context в Gemini. Це протилежний напрямок. URL context дає моделі змогу отримати й прочитати сторінку, яку ви їй вказали. Скорочувачу ж потрібно, щоб модель щось записала: створила запис на сервері, який пізніше відповідатиме на редирект. Читання і запис - різні можливості, і лише друга потребує інструмента, що працює з вашим акаунтом.

Шлях перший: Gemini CLI поверх MCP

Gemini CLI підтримує Model Context Protocol, тобто той самий @elido/mcp-server, що обслуговує Claude Desktop і Cursor, працює тут без жодного коду для Gemini. Пакета ще немає в npm (публічний реліз незабаром), тому поки що його запускають із локальної збірки packages/mcp-server. Налаштуйте його один раз, і create_link, list_links, query_analytics, generate_qr та list_workspaces з'являться як інструменти, що їх можна викликати.

Додавання сервера

Швидкий шлях - вбудована команда:

gemini mcp add -s user -e ELIDO_API_KEY=$ELIDO_API_KEY elido node /path/to/packages/mcp-server/dist/index.js

Або відредагуйте файл налаштувань напряму. Рівень користувача лежить у ~/.gemini/settings.json, рівень проєкту в .gemini/settings.json, а блок іде під mcpServers:

{
  "mcpServers": {
    "elido": {
      "command": "node",
      "args": ["/path/to/packages/mcp-server/dist/index.js"],
      "env": {
        "ELIDO_API_KEY": "$ELIDO_API_KEY",
        "ELIDO_WORKSPACE_ID": "$ELIDO_WORKSPACE_ID"
      },
      "timeout": 30000
    }
  }
}

Перевірте підключення й обмежте можливості

Виконайте /mcp усередині Gemini CLI. Він перелічує кожен налаштований сервер зі статусом CONNECTED, CONNECTING або DISCONNECTED і його інструменти. Якщо elido показує п'ять інструментів, підключення працює. Потім спробуйте простий запит: «create a short link for https://example.com/spring with the slug spring-sale». Справжній виклик інструмента повертає посилання, яке можна відкрити, і запис у вашій панелі. Вигаданий slug без виклику інструмента означає, що сервер не підключено.

Два параметри тримають усе в рамках. trust за замовчуванням false, тож CLI просить підтвердження перед кожним викликом інструмента; залиште так, поки вивчаєте, що модель робить із create_link. А includeTools працює як список дозволених: якщо потрібні лише створення й аналітика, назвіть їх, і решта ніколи не потрапить до моделі:

"includeTools": ["create_link", "query_analytics"]

Нюанс розкриття env, на якому спотикаються

Gemini CLI розкриває $VAR і ${VAR} усередині блоку env, тому ключ вище - посилання, а не вставлений секрет. Користуйтеся цим. Закомітити .gemini/settings.json рівня проєкту з живим ключем - легка помилка, яку довго не помічаєш.

Одна гостра кромка з документації Google про MCP-сервери: невизначена змінна перетворюється на порожній рядок, а не викликає помилку. Тож одруківка в імені змінної не падає гучно під час запуску. Вона падає пізніше, під час першого виклику інструмента, як помилка автентифікації. Я втратив двадцять хвилин через відсутній export, і всі вони пішли на перечитування не того файлу, бо помилка автентифікації вказує на облікові дані, а не на ім'я змінної, яка мала їх передати. Якщо сервер підключається, але кожен виклик повертає відмову в авторизації, спершу перевірте змінну.

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

Шлях другий: виклик функцій в API Gemini

Якщо ви будуєте систему, а не працюєте інтерактивно, виклик функцій - еквівалентний механізм на рівні API. Ви оголошуєте функцію, модель повертає структурований виклик, коли вважає його доцільним, ваш код виконує запит, а ви передаєте результат назад.

Форма та сама, що в будь-якій інтеграції інструментів. Опишіть create_link, виконайте HTTP-запит самі, поверніть відповідь. Порівняно з MCP ви здобуваєте контроль. Ви самі вирішуєте, які параметри модель може задавати, і можете відхилити все, що виходить за ваше правило іменування, ще до того, як запит покине ваш процес. Втрачаєте переносимість. Цю обв'язку підтримуєте ви, і вона нікуди за вами не йде.

Для більшості команд цей шлях має сенс лише тоді, коли скорочення - один крок у більшому автоматизованому потоці. Якщо вам просто потрібні посилання під час роботи, CLI - менше коду й менше того, що треба підтримувати.

Шлях третій: чат із попередньо заповненим запитом

Варіант без налаштувань - посилання, що відкриває Gemini з уже написаним запитом:

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

Саме цей механізм стоїть за кнопками на сторінці інтеграцій з LLM, підтверджений на живій поверхні у квітні 2026 року. Поведінка параметрів запиту в будь-якому AI-продукті змінюється, тож перевірте знову, якщо кнопка перестала робити те, що раніше.

Тверезо оцініть, що це дає, зважаючи на перший розділ. В асистента немає інструментів, тож він складає чернетку, а виконуєте ви. Це все одно корисно. Запуск із вісьмома варіантами UTM за єдиною схемою іменування вручну нудний, а модель легко складає його правильно. Але він не закінчується посиланням.

Потік виклику інструмента в Gemini CLI: settings.json оголошує MCP-сервер Elido, CLI запускає його через stdio, сервер викликає API Elido з ключем, який ніколи не потрапляє до моделі, а готове коротке посилання повертається в розмову

Який шлях підходить

ПоверхняМоже викликати ваш APIНалаштуванняНайкраще для
Застосунок Gemini і GemsНіНедоступнеЧернетки slug і наборів UTM
Gemini CLIТак, через MCPОдин блок конфігураціїЩоденна інтерактивна робота
API GeminiТак, виклик функційКод, який ви підтримуєтеПосилання всередині автоматизованого потоку

Прочитайте цю таблицю поряд із таблицею про ChatGPT, і асиметрія стане очевидною. Поверхня ChatGPT, якою можна ділитися, здатна тримати підключену дію, тож маркетинговій команді можна дати робочий custom GPT. Підключена поверхня Gemini - термінал. Якщо ваші користувачі - маркетологи, ця різниця вирішує вибір платформи ще до будь-якого порівняння функцій.

Як виглядає хороший запит

Коли інструмент підключено, якість посилання залежить від запиту. Дайте моделі адресу призначення, slug, якщо він для вас важливий, і контекст кампанії, а UTM-теги нехай заповнить за вашим правилом. «Create links for the spring launch: one each for newsletter, LinkedIn and the in-store poster, slugs prefixed spring-, with utm_source set per channel» дає три виклики інструмента й три посилання, які можна вставити в таблицю. Розпливчасті запити дають розпливчасті slug, тож назвіть правило іменування.

Перевіряйте результат, як роботу колеги. Відкрийте одне посилання, переконайтеся, що воно веде на потрібну сторінку, і перегляньте його в панелі. Успішний виклик інструмента каже, що запис існує, а не що адреса призначення саме та, яку ви мали на увазі. Типові проблеми з іменуванням розібрано в правилах іменування UTM.

Ключ з обмеженими правами

MCP-сервер тримає облікові дані, а модель їх ніколи не бачить, і це правильна схема. Але вам усе одно вирішувати, що ці облікові дані можуть робити.

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

Рівень проєкту вимагає ще однієї думки. .gemini/settings.json, закомічений у спільний репозиторій, зручний, але й успадковується кожним учасником. Тримайте секрет у середовищі, а файл налаштувань - вільним від усього, що ви не вставили б у pull request.

Чесні обмеження

Три речі, щодо яких варто налаштувати очікування.

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

Масова робота належить деінде. Прохання про сорок посилань в одній розмові дає помилки обмеження частоти й модель, що губить, який slug до якої адреси призначення належить. Понад кілька штук користуйтеся API або імпортом CSV.

І прогалина застосунку, наскільки відомо з оголошень, не тимчасова. Плануйте з урахуванням цього, а не чекайте. Якщо нетехнічній команді вже сьогодні потрібно створювати посилання з чату, чесна відповідь - інший асистент або панель, а не Gem.

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

Пов'язане в блозі

Поширені запитання

Чи може Gemini скоротити URL?

Лише там, де він може викликати інструмент. Gemini CLI підтримує MCP-сервери, тож із налаштованим MCP-сервером Elido він створює справжнє посилання. Споживчий застосунок Gemini не може: у ньому немає механізму виклику стороннього API, тому запит там дає вигаданий slug, який нікуди не веде.

Чи підтримують Gemini Gems користувацькі дії, як custom GPTs?

Ні. У Gems немає аналога GPT Actions, тому спрямувати їх на власний API, вебхук чи сервіс не вийде. Gems можуть користуватися розширеннями самого Google, як-от Google Workspace, Maps і YouTube, але їх створив Google, а не налаштували ви. Це головна структурна відмінність між розробкою на Gemini і розробкою на ChatGPT.

Як додати MCP-сервер до Gemini CLI?

Або виконайте gemini mcp add з іменем сервера та командою, або додайте блок mcpServers прямо в settings.json. Рівень користувача лежить у ~/.gemini/settings.json, рівень проєкту в .gemini/settings.json, а прапорець scope визначає, який файл буде записано.

Чи можна не тримати API-ключ у settings.json?

Так. Gemini CLI розкриває змінні середовища всередині блоку env, тож замість самого секрету можна написати $ELIDO_API_KEY. Зверніть увагу: невизначена змінна перетворюється на порожній рядок, а не на помилку, тому одруківка виглядає як збій автентифікації під час першого виклику інструмента.

А якщо я користуюся лише вебзастосунком Gemini?

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

Чи готова інтеграція з Gemini до продакшну?

MCP-сервер, на якому вона тримається, має версію 0.1.x, а поверхню Gemini позначено як Beta в нашому реєстрі інтеграцій, тож вважайте її придатною, але ранньою. Вхідні дані інструментів не зламаються в межах 0.1.x, а набір інструментів зростатиме, а не скорочуватиметься.

Спробуйте Elido

Вставте URL - отримайте коротке посилання

Без реєстрації. Посилання живе 30 днів. Зареєструйтесь, щоб зберегти назавжди.

Без реєстрації. Зареєструйтеся безкоштовно і отримайте 50 посилань на місяць.

Спробуйте Elido

URL-скорочувач із хостингом у ЄС: власні домени, глибока аналітика, відкритий API. Безкоштовний тариф - без кредитної картки.

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

Читати далі