6 хв читанняМожливості

Сервер Elido MCP для Claude Desktop, Cursor і Claude Code

Запустіть сервер Elido MCP з монорепозиторію, підключіть до Claude Desktop, Cursor і Claude Code та дізнайтеся.

Marius Voß
DevRel · edge infra

Сервер Elido MCP - це невеликий процес Node, що дає Claude Desktop, Cursor чи Claude Code змогу створювати короткі посилання, перелічувати їх і читати часові ряди кліків просто з чату. Він живе в монорепозиторії в packages/mcp-server, говорить MCP через stdio і звертається до того самого REST API, що й усе інше.

Одне виправлення наперед, бо попередня версія цього посібника помилялася: пакета немає на npm, і він ще не публічний. Станом на 2026-11-11 npm view @elido/mcp-server повертає 404; публічний реліз незабаром. До того ви запускаєте його з локальної збірки. Усе нижче перевірено за кодом у packages/mcp-server і services/api-core.

Що таке MCP

Model Context Protocol - це відкритий стандарт, що дає AI-клієнту викликати інструменти, які живуть поза моделлю. Клієнт запускає сервер або підключається до нього, просить список інструментів і надсилає виклики інструментів як повідомлення JSON-RPC. Сервер виконує роботу й повертає текст, який читає модель. Модель ніколи не тримає ваш ключ API; його тримає сервер.

Специфікація визначає два транспорти: stdio для локальних процесів і Streamable HTTP для віддалених (специфікація MCP, остання редакція 2026-07-28, дата звернення 2026-10-25). Сервер Elido реалізує лише stdio.

Схема архітектури: Claude Desktop і Cursor підключаються через транспорт JSON-RPC stdio до локального сервера Elido MCP, який робить автентифіковані запити Bearer до REST API Elido, а ключ API лишається всередині сервера, тож модель його ніколи не бачить Сторінка інтеграцій Elido зі списком Claude, ChatGPT, Cursor, Claude Code, Gemini та інших конекторів з інструкціями з налаштування

Що робить сервер

Його написано вручну, без офіційного @modelcontextprotocol/sdk, щоб лишатися без залежностей. У src/index.ts він відповідає на чотири речі: initialize (повідомляє версію протоколу 2024-11-05), tools/list, tools/call і сповіщення notifications/initialized. Усе інше отримує помилку «method not found». Обробників resources, prompts чи ping немає.

Кожен виклик інструмента стає автентифікованим REST-запитом до ELIDO_API_BASE (типово https://api.elido.app) із Authorization: Bearer <key> і заголовком User-Agent: elido-mcp-server/0.1.0. Невдалі виклики повертаються як помилка, що містить HTTP-статус і перші 400 символів відповіді.

ІнструментЗапит, який він надсилаєСтан
create_linkPOST /v1/workspaces/{id}/linksПрацює; бере перший домен, якщо жодного не вказано
list_linksGET /v1/workspaces/{id}/links?limit&offsetПрацює; limit від 1 до 100
query_analyticsGET /v1/workspaces/{id}/analytics/timeseriesПрацює; повертає {"items":[{"ts","count"}]}
generate_qrPOST /v1/workspaces/{id}/qrВідповідного маршруту в api-core не знайдено
list_workspacesGET /v1/workspacesПрацює; перелічує робочі простори, до яких належить викликач

Про generate_qr: api-core віддає публічний POST /v1/qr/generate і дизайн для окремого посилання за GET /v1/workspaces/{id}/links/{link_id}/qr, але нічого за шляхом, який викликає інструмент. Доки це не узгодять, я б не будував на ньому робочий процес. Це в беклозі.

Збірка і отримання ключа API

Монорепозиторій приватний, тож кроки нижче застосовні, коли у вас є вихідний код пакета (публічний реліз незабаром). Зберіть пакет:

pnpm install
pnpm --filter @elido/mcp-server build

Це створює packages/mcp-server/dist/index.js. Потрібен Node 20 або новіший (engines у його package.json).

Для ключа відкрийте Dashboard, потім API keys (/dashboard/api-keys), назвіть ключ на честь агента й оберіть роль. Форма пропонує viewer, editor та admin, типово editor. Ключі Elido несуть роль робочого простору, а не scope для окремих інструментів. Ключ viewer - варіант лише для читання: він може перелічувати й читати аналітику, а API відмовляє create_link. Задайте термін дії, якщо ключ для пробного періоду. Скопіюйте ключ, коли його покажуть, і тримайте поза системою контролю версій.

Налаштування Claude Desktop

Claude Desktop читає claude_desktop_config.json. Розташування конфігурації та вкладку налаштувань Developer описано в документації MCP (підключення локальних серверів, дата звернення 2026-10-25). У macOS файл - ~/Library/Application Support/Claude/claude_desktop_config.json, а у Windows %APPDATA%\Claude\claude_desktop_config.json.

{
  "mcpServers": {
    "elido": {
      "command": "node",
      "args": [
        "/absolute/path/to/url-shortener/packages/mcp-server/dist/index.js"
      ],
      "env": {
        "ELIDO_API_KEY": "elido_your_key_here",
        "ELIDO_WORKSPACE_ID": "42"
      }
    }
  }
}

Використовуйте абсолютний шлях. ELIDO_WORKSPACE_ID необов'язковий, лише коли ключ бачить рівно один робочий простір; тоді сервер один раз викликає GET /v1/workspaces і кешує id. За двох і більше робочих просторів він кидає помилку з проханням задати змінну, тож задайте її з самого початку.

Перезапустіть Claude Desktop після збереження. Якщо сервер не з'являється, спершу запустіть ту саму команду в терміналі. Відсутній ключ не зупиняє процес, він друкує попередження в stderr, а кожен виклик інструмента потім провалюється.

Налаштування Cursor і Claude Code

Cursor читає ту саму форму mcpServers з .cursor/mcp.json у проєкті або з ~/.cursor/mcp.json для всіх проєктів (документація Cursor MCP, дата звернення 2026-10-25). Вставте блок вище, додайте файл у .gitignore, бо він містить живий ключ, і перевірте сервер у налаштуваннях MCP Cursor.

Claude Code додає сервер stdio з командного рядка (документація Claude Code MCP, дата звернення 2026-10-25):

claude mcp add --env ELIDO_API_KEY=elido_your_key_here --env ELIDO_WORKSPACE_ID=42 \
  --transport stdio elido -- node /absolute/path/to/packages/mcp-server/dist/index.js

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

Дві сесії зі справжніми формами запитів

Це ілюстративні розмови, а не записи, і числа вигадані. Аргументи інструментів і поля результатів відповідають коду.

Скоротити посилання кампанії. Ви просите Claude скоротити https://shop.example.com/spring зі slug spring і тегом spring. Він викликає create_link з destination_url, slug, title і tags. Оскільки domain_id не передано, сервер спершу отримує GET /v1/workspaces/{id}/domains і використовує перший повернений. Якщо у вашому робочому просторі кілька доменів, передайте domain_id самі. API відповідає записом посилання, що містить short_url, і Claude вставляє його в чернетку. Якщо slug зайнятий, API повертає 409 «slug already exists for this domain», і Claude може обрати інший.

Повний цикл create_link: LLM-агент запитує create_link з URL, slug і тегами, інструмент MCP перекладає виклик і визначає робочий простір, api-core обробляє POST і записує посилання, а запис короткого посилання повертається, тож агент вставляє коротку URL у чат

Прочитати кліки минулого тижня. Ви просите щоденні кліки для одного посилання за берлінським часом. Claude викликає query_analytics з link_id, from, to, interval: "day" і tz: "Europe/Berlin". Дати мають формат YYYY-MM-DD, а API відхиляє діапазон, де from не раніше за to, тож передайте день після вашого останнього дня як to. Якщо їх пропустити, діапазон - останні 30 днів. Результат - {"items": [{"ts": "...", "count": 312}, ...]}. Поля total немає, тож попросіть Claude підсумувати значення. Лише кліки: розбивки за країною, пристроєм чи реферером цей інструмент не повертає.

Безпека та ліміти

Ролі, а не scope. Обирайте найнижчу роль, що виконує роботу. Viewer для звітних агентів, editor для тих, що створюють посилання, admin лише з конкретної причини.

Що залишає вашу машину. Сервер надсилає запити на вашу базу API Elido і більше нікуди. Те, що ваш AI-клієнт надсилає своєму провайдеру, регулюється політикою цього провайдера.

Слід аудиту. Створення ключа породжує подію аудиту api_key.created, а створення посилання - link.created. Я не перевіряв, як подія приписується окремому ключу, тож не покладайтеся на журнал аудиту, щоб відрізнити двох агентів. Дайте кожному власний ключ і стежте за списком ключів.

Ліміти запитів. Виклики враховуються в ліміті робочого простору: 10 запитів на секунду на Free, 30 на Pro і 100 на Business, зі сплесками 20, 60 і 200 (services/api-core/internal/httpserver/server.go). Агент, що створює сотні посилань, має використовувати POST /v1/workspaces/{id}/links/bulk через API, як у масовому імпорті з Google Sheet.

Віддалений MCP. Це хостед-ендпоінт з OAuth, щоб конектор Claude міг дістатися до Elido без локального процесу. Він запланований, але не збудований, а каталог інтеграцій у дашборді перелічує лише локальний сервер. Поки що використовуйте його.

Дрейф протоколу. Сервер оголошує 2024-11-05, тоді як поточна редакція специфікації - 2026-07-28. Ми не тестували його з кожним релізом клієнтів, тож перевіряйте стан сервера у своєму клієнті після оновлення.

Куди це піде далі

Прогалини вище є в беклозі: опублікувати пакет, виправити generate_qr, додати Streamable HTTP і віддалену кінцеву точку, додати більше інструментів (оновлення, видалення, географічні розбивки) та атрибуцію аудиту за ключем. Про інший шлях до тієї самої ідеї агента див. посібник із Gemini і посібник із ChatGPT; про гігієну ключів - дозволи ключів API для інструментів посилань.

Читайте також у блозі

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

Чи є сервер Elido MCP на npm?

Ще ні. Пакета немає на npm (`npm view @elido/mcp-server` повертає 404 станом на 2026-11-11), тож `npx -y @elido/mcp-server` не спрацьовує. Публічний реліз незабаром. До того сервер запускається лише з локальної збірки пакета (packages/mcp-server у нашому приватному монорепозиторії), на скомпільований файл dist/index.js якої спрямовується клієнт MCP.

Які інструменти надає сервер Elido MCP?

П'ять: create_link, list_links, query_analytics, generate_qr та list_workspaces. Перші чотири потребують робочого простору, який береться з ELIDO_WORKSPACE_ID або з того, що ключ бачить рівно один робочий простір. generate_qr звертається до маршруту, якого ми не знайшли в api-core, тож вважайте його ненадійним, доки не виправлять.

Як зробити ключ MCP лише для читання?

Створіть ключ API з роллю viewer на панелі. Ключі несуть роль робочого простору (viewer, editor або admin, типово editor), а не scope для окремих інструментів. Ключ viewer може переглядати посилання й читати аналітику, а create_link повертається з API як помилка дозволу.

Чи є в Elido віддалена URL MCP для конекторів Claude?

Ще ні. Хостед-ендпоінта MCP з OAuth немає, віддалений сервер лише запланований. Використовуйте локальний сервер stdio, який надає п'ять інструментів, перелічених вище.

Який транспорт MCP і версію протоколу використовує сервер?

Лише stdio, з JSON-RPC 2.0, розділеним рядками. Він відповідає на initialize версією протоколу 2024-11-05 і обробляє tools/list та tools/call. Поточна специфікація MCP також визначає транспорт Streamable HTTP, якого цей сервер не реалізує.

Чи враховуються виклики інструментів у моєму ліміті запитів?

Так. Сервер - звичайний клієнт API, тож діє ліміт на робочий простір: 10 запитів на секунду на Free, 30 на Pro і 100 на Business, зі сплесками 20, 60 і 200. Для сотень посилань використовуйте кінцеву точку масового створення замість окремого виклику інструмента на кожне.

Спробуйте Elido

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

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

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

Спробуйте Elido

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

Теги
elido mcp server
model context protocol
claude desktop mcp
cursor mcp
claude code mcp
url shortener api

Читати далі