8 min de leituraRecursos

Servidor MCP do Elido para Claude Desktop, Cursor e Code

Rode o servidor MCP do Elido a partir do monorepo, conecte-o ao Claude Desktop, ao Cursor e ao Claude Code e veja quais ferramentas funcionam hoje.

Marius Voß
DevRel · edge infra

O servidor MCP do Elido é um pequeno processo Node que permite ao Claude Desktop, ao Cursor ou ao Claude Code criar links curtos, listá-los e ler séries temporais de cliques de dentro de um chat. Ele vive no monorepo em packages/mcp-server, fala MCP por stdio e conversa com a mesma API REST que todo o resto.

Uma correção logo de início, porque uma versão anterior deste guia errou: o pacote não está no npm e ainda não é público. Em 2026-11-11, npm view @elido/mcp-server retorna 404; um lançamento público vem em breve. Até lá, você o executa a partir de uma compilação local. Tudo abaixo foi conferido com o código em packages/mcp-server e services/api-core.

O que é o MCP

O Model Context Protocol é um padrão aberto para permitir que um cliente de IA chame ferramentas que vivem fora do modelo. O cliente inicia um servidor ou se conecta a ele, pede a lista de ferramentas e envia as chamadas de ferramenta como mensagens JSON-RPC. O servidor faz o trabalho e devolve um texto que o modelo lê. O modelo nunca guarda a sua chave de API; quem guarda é o servidor.

A especificação define dois transportes, stdio para processos locais e Streamable HTTP para remotos (especificação do MCP, revisão mais recente de 2026-07-28, acesso em 2026-10-25). O servidor do Elido implementa apenas stdio.

Diagrama de arquitetura: o Claude Desktop e o Cursor se conectam pelo transporte stdio JSON-RPC ao servidor MCP local do Elido, que faz requisições autenticadas com Bearer à API REST do Elido, com a chave de API ficando dentro do servidor para que o modelo nunca a veja A página de integrações do Elido listando Claude, ChatGPT, Cursor, Claude Code, Gemini e outros conectores com guias de configuração

O que o servidor faz

Ele é escrito à mão, sem o @modelcontextprotocol/sdk oficial, para não ter dependências. Em src/index.ts ele responde a quatro coisas: initialize (informando a versão de protocolo 2024-11-05), tools/list, tools/call e a notificação notifications/initialized. Qualquer outra coisa recebe um erro de "method not found". Não há handlers de resources, prompts nem ping.

Cada chamada de ferramenta vira uma requisição REST autenticada para ELIDO_API_BASE (padrão https://api.elido.app) com Authorization: Bearer <key> e o cabeçalho User-Agent: elido-mcp-server/0.1.0. As chamadas que falham voltam como um erro que inclui o status HTTP e os primeiros 400 caracteres da resposta.

FerramentaRequisição que enviaStatus
create_linkPOST /v1/workspaces/{id}/linksFunciona; escolhe o primeiro domínio se nenhum for dado
list_linksGET /v1/workspaces/{id}/links?limit&offsetFunciona; limit de 1 a 100
query_analyticsGET /v1/workspaces/{id}/analytics/timeseriesFunciona; retorna {"items":[{"ts","count"}]}
generate_qrPOST /v1/workspaces/{id}/qrNenhuma rota correspondente encontrada no api-core
list_workspacesGET /v1/workspacesFunciona; lista os workspaces a que o chamador pertence

Sobre o generate_qr: o api-core serve um POST /v1/qr/generate público e um design por link em GET /v1/workspaces/{id}/links/{link_id}/qr, mas nada no caminho que a ferramenta chama. Até isso ser reconciliado, eu não construiria um fluxo de trabalho em cima dela. Está no backlog.

Compile e Obtenha uma Chave de API

O monorepo é privado, então os passos abaixo valem quando você tiver o código-fonte do pacote (um lançamento público vem em breve). Compile o pacote:

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

Isso produz packages/mcp-server/dist/index.js. Você precisa do Node 20 ou mais novo (engines no package.json dele).

Para a chave, abra Dashboard, depois API keys (/dashboard/api-keys), dê à chave o nome do agente e escolha um papel. O formulário oferece viewer, editor e admin, com editor como padrão. As chaves do Elido carregam um papel de workspace, não escopos por ferramenta. Uma chave viewer é a opção somente leitura: ela pode listar e ler análises, e a API recusa create_link. Defina uma validade se a chave for para um período de teste. Copie a chave quando ela for exibida e mantenha-a fora do controle de versão.

Configure o Claude Desktop

O Claude Desktop lê o claude_desktop_config.json. O local da configuração e a aba de configurações Developer estão descritos na documentação do MCP (conectar servidores locais, acesso em 2026-10-25). No macOS o arquivo é ~/Library/Application Support/Claude/claude_desktop_config.json, e no 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"
      }
    }
  }
}

Use um caminho absoluto. ELIDO_WORKSPACE_ID só é opcional quando a chave enxerga exatamente um workspace; o servidor então chama GET /v1/workspaces uma vez e guarda o id em cache. Com dois ou mais workspaces ele lança um erro pedindo que você defina a variável, então defina-a desde o início.

Reinicie o Claude Desktop depois de salvar. Se o servidor não aparecer, execute primeiro o mesmo comando em um terminal. Uma chave ausente não interrompe o processo, ele imprime um aviso no stderr e todas as chamadas de ferramenta passam a falhar.

Configure o Cursor e o Claude Code

O Cursor lê o mesmo formato mcpServers de .cursor/mcp.json em um projeto, ou de ~/.cursor/mcp.json para todos os projetos (documentação de MCP do Cursor, acesso em 2026-10-25). Cole o bloco acima, adicione o arquivo ao .gitignore porque ele guarda uma chave ativa e confira o servidor nas configurações de MCP do Cursor.

O Claude Code adiciona um servidor stdio pela linha de comando (documentação de MCP do Claude Code, acesso em 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

Chaves em um arquivo de configuração ficam em texto simples. Em uma máquina compartilhada, dê a cada pessoa a sua própria chave para que a trilha de auditoria signifique alguma coisa.

Duas Sessões, com os Formatos Reais de Requisição

São conversas ilustrativas, não gravações, e os números são inventados. Os argumentos das ferramentas e os campos de resultado correspondem ao código.

Encurtar um link de campanha. Você pede ao Claude para encurtar https://shop.example.com/spring com o slug spring e a tag spring. Ele chama create_link com destination_url, slug, title e tags. Como nenhum domain_id foi passado, o servidor primeiro busca GET /v1/workspaces/{id}/domains e usa o primeiro retornado. Se o seu workspace tem vários domínios, passe o domain_id você mesmo. A API responde com o registro do link incluindo short_url, e o Claude coloca isso no rascunho. Se o slug já estiver em uso, a API retorna 409 "slug already exists for this domain", e o Claude pode escolher outro.

Uma viagem de ida e volta de create_link: o agente LLM solicita create_link com uma URL, um slug e tags, a ferramenta MCP traduz a chamada e resolve o workspace, o api-core trata o POST e grava o registro do link, e o registro do link curto retorna para que o agente insira a URL curta no chat

Ler os cliques da semana passada. Você pede os cliques diários de um link, no horário de Berlim. O Claude chama query_analytics com link_id, from, to, interval: "day" e tz: "Europe/Berlin". As datas são YYYY-MM-DD, e a API rejeita um intervalo em que from não seja anterior a to, então passe o dia seguinte ao seu último dia como to. Se você as omitir, o intervalo são os últimos 30 dias. O resultado é {"items": [{"ts": "...", "count": 312}, ...]}. Não há campo total, então peça ao Claude que some as contagens. Apenas cliques: nenhum detalhamento por país, dispositivo ou referenciador passa por essa ferramenta.

Segurança e Limites

Papéis, não escopos. Escolha o menor papel que resolve o trabalho. Viewer para agentes de relatório, editor para os que criam links, admin só com um motivo específico.

O que sai da sua máquina. O servidor envia requisições para a base da sua API do Elido e para nenhum outro lugar. O que o seu cliente de IA envia ao próprio provedor é coberto pela política desse provedor.

Trilha de auditoria. Criar uma chave emite um evento de auditoria api_key.created, e a criação de um link emite link.created. Não verifiquei como um evento é atribuído a uma chave individual, então não conte com o log de auditoria para distinguir dois agentes. Dê a cada um a sua própria chave e acompanhe a lista de chaves.

Limites de taxa. As chamadas contam no limite do workspace: 10 requisições por segundo no Free, 30 no Pro e 100 no Business, com folgas de rajada de 20, 60 e 200 (services/api-core/internal/httpserver/server.go). Um agente que cria centenas de links deve usar POST /v1/workspaces/{id}/links/bulk pela API, como em importação em massa a partir de uma planilha do Google.

MCP remoto. Seria um endpoint hospedado com OAuth, para que um conector do Claude pudesse alcançar o Elido sem um processo local. Ele está planejado, não construído, e o catálogo de integrações do painel lista apenas o servidor local. Use-o por enquanto.

Divergência de protocolo. O servidor declara 2024-11-05 enquanto a revisão atual da especificação é 2026-07-28. Não o testamos com todas as versões de clientes, então confira o status do servidor no seu cliente depois de uma atualização.

Para Onde Isso Vai

As lacunas acima estão no backlog: publicar o pacote, corrigir o generate_qr, adicionar Streamable HTTP e o endpoint remoto, adicionar mais ferramentas (atualizar, apagar, detalhamentos geográficos) e atribuição de auditoria por chave. Para um caminho diferente até a mesma ideia de agente, veja o guia do Gemini e o guia do ChatGPT; para a higiene de chaves, permissões de chaves de API para ferramentas de links.

Relacionados no Blog

Perguntas frequentes

O servidor MCP do Elido está no npm?

Ainda não. O pacote não está no npm (`npm view @elido/mcp-server` retorna 404 em 2026-11-11), então `npx -y @elido/mcp-server` falha. Um lançamento público vem em breve. Até lá, o servidor só roda a partir de uma compilação local do pacote (packages/mcp-server no nosso monorepo privado), e você aponta o seu cliente MCP para o arquivo compilado dist/index.js.

Quais ferramentas o servidor MCP do Elido expõe?

Cinco: create_link, list_links, query_analytics, generate_qr e list_workspaces. As quatro primeiras precisam de um workspace, que vem de ELIDO_WORKSPACE_ID ou do fato de a chave enxergar exatamente um workspace. generate_qr chama uma rota que não encontramos no api-core, então trate-a como não confiável até ser corrigida.

Como deixo uma chave MCP somente leitura?

Crie a chave de API com o papel viewer no painel. As chaves carregam um papel de workspace (viewer, editor ou admin, com editor por padrão), não escopos por ferramenta. Uma chave viewer pode listar links e ler análises, e create_link volta como um erro de permissão da API.

O Elido tem uma URL MCP remota para os conectores do Claude?

Ainda não. Não há um endpoint MCP hospedado com OAuth; um servidor remoto está planejado. Use o servidor stdio local, que expõe as cinco ferramentas listadas acima.

Qual transporte MCP e qual versão do protocolo o servidor usa?

Somente stdio, com JSON-RPC 2.0 delimitado por linhas. Ele responde a initialize com a versão de protocolo 2024-11-05 e trata tools/list e tools/call. A especificação atual do MCP também define um transporte Streamable HTTP, que este servidor não implementa.

As chamadas de ferramenta contam no meu limite de taxa?

Sim. O servidor é um cliente de API comum, então vale o limite por workspace: 10 requisições por segundo no Free, 30 no Pro e 100 no Business, com rajadas de 20, 60 e 200. Para centenas de links, use o endpoint de criação em massa em vez de uma chamada de ferramenta para cada um.

Experimente Elido

Cole uma URL, obtenha um link curto

Sem cadastro. O link vive 30 dias. Cadastre-se para mantê-lo para sempre.

Sem registro. Crie uma conta grátis e obtenha 50 links por mês.

Experimente o Elido

Encurtador de URL hospedado na UE: domínios personalizados, análises profundas e API aberta. Plano gratuito - sem cartão de crédito.

Tags
elido mcp server
model context protocol
claude desktop mcp
cursor mcp
claude code mcp
url shortener api

Continuar lendo