Skip to Content
Elido is in closed beta — APIs are stable but rate-limits and quotas may change before GA. Request access →
GuidesMCP server

MCP server

The Model Context Protocol  is the open standard Anthropic published for letting AI agents call tools on your services. Elido ships an MCP server so any compatible client — Claude Desktop, Cursor, ChatGPT, Continue, Zed — can shorten URLs, read click analytics, manage QR codes, and run bulk imports without copy-pasting between tabs.

There are two ways to wire it up:

  • Hosted (recommended): point your client at https://mcp.elido.app/v1/ with a personal access token. No install, always up-to-date.
  • Self-hosted: run the binary or container locally; useful for air-gapped environments and offline work.

1. Get a personal access token

In the dashboard, go to Settings → API keys → New key. Pick scope mcp:full (or mcp:readonly if you only want analytics, not mutations). Copy the token — it’s shown once.

ELIDO_MCP_TOKEN="elt_…"

The token is workspace-scoped. Switch workspace, switch token.

2. Hosted setup — Claude Desktop

Open ~/Library/Application Support/Claude/claude_desktop_config.json on macOS (Windows: %APPDATA%\Claude\claude_desktop_config.json) and add:

{ "mcpServers": { "elido": { "type": "http", "url": "https://mcp.elido.app/v1/", "headers": { "Authorization": "Bearer elt_…" } } } }

Restart Claude. The Elido tool surface should appear in the tool picker.

3. Hosted setup — Cursor

Cursor reads from the same ~/.cursor/mcp.json:

{ "mcpServers": { "elido": { "url": "https://mcp.elido.app/v1/", "headers": { "Authorization": "Bearer elt_…" } } } }

Reload the Cursor window. @elido invocation works in chat panels.

4. Hosted setup — ChatGPT

ChatGPT reads MCP servers from Settings → Connectors → Add custom connector. Paste https://mcp.elido.app/v1/ and set the authorization header to Bearer elt_…. ChatGPT will surface the tools in any new conversation.

5. Self-host

The MCP binary ships in the same Docker image as the rest of the self-host bundle:

docker run --rm -p 8765:8765 \ -e ELIDO_API_BASE=https://api.elido.app \ -e ELIDO_MCP_TOKEN=elt_… \ ghcr.io/elidoapp/mcp-server:latest

Or with the npm wrapper if you want stdio transport (e.g. for an agent that prefers stdio):

npx -y @elido/mcp-server@latest

Configure the client to launch the local process:

{ "mcpServers": { "elido-local": { "command": "npx", "args": ["-y", "@elido/mcp-server@latest"], "env": { "ELIDO_MCP_TOKEN": "elt_…" } } } }

6. Tool surface

The server exposes 18 tools across 5 namespaces. The most-used:

ToolScopeWhat it does
links.createmcp:fullShorten a URL with optional UTM template + expiry
links.listmcp:readonlyPaginated link list with click counts
links.updatemcp:fullPatch destination, slug, rules, tags
analytics.summarymcp:readonlyTop countries / referrers / devices for a link or campaign
analytics.timeseriesmcp:readonlyHour / day buckets, returns chart-ready data
qrs.createmcp:fullDesigner QR with logo + colors
bulk.importmcp:fullUpload a CSV; returns per-row status
webhooks.replaymcp:fullRe-fire a delivery from the audit log

Full schema is at the API reference — every MCP tool maps 1:1 to a public REST endpoint, so the docs you read for the API are the docs for the agent.

7. Safety

  • Read-only by default: pick mcp:readonly if the agent is exploring; bump to mcp:full only when you need writes.
  • Per-tool allow-list: in the dashboard you can restrict a token to a subset of tools, e.g. allow links.* but deny bulk.import (which can create thousands of links in one call).
  • Audit log: every MCP call lands in the workspace audit log with the agent identifier, the tool, and the arguments — same surface as a human dashboard action.
  • Rate limit: hosted server is capped at 60 calls/minute per token; self-hosted is uncapped.

8. Edge cases

  • Long-running callsbulk.import for >5000 rows runs async; the tool returns a job id, and the agent polls bulk.status until done. No client-side timeouts.
  • Workspace switching — one token = one workspace. Issue a separate token per workspace; the MCP client’s connector list surfaces each as a distinct server.
  • Token rotation — issue a new token, update the config, then revoke the old one. Don’t reuse token slots; the audit log relies on stable token ids.

See also

  • API reference — REST + gRPC endpoints
  • SDKs — TypeScript / Go / Python wrappers around the same endpoints
  • Webhooks — push events out, where MCP pulls them in