The hosted server accepts clients that identify themselves with a published client identity. Clients that can only register themselves anonymously, including Cursor today, cannot sign in. Use the local server with an API key instead.
MCP
The MCP server exposes the v2 and v3 APIs as tools for chat clients that cannot run commands. No integration code required. If your agent already has a shell, the Agent Skill is the better surface — it costs no context until it is used.
There are two ways to connect:
- Hosted server, sign in with Elfa — add
https://mcp.elfa.ai/mcpto Claude, ChatGPT, Claude Code or Codex and approve it in your browser. No key to copy, nothing to install. - Local server, API key — run
npx -y @elfa-ai/mcpwithELFA_API_KEYset. Use this for any other MCP client, including Cursor and VS Code.
Both expose the same tools and bill the same credits.
Hosted Server
Server URL: https://mcp.elfa.ai/mcp
You need an Elfa account on dev.elfa.ai, signed in with Google, email or a wallet. An API-key login cannot approve an app; sign in with an account instead.
What happens when you connect:
- You approve one app at a time. The client opens dev.elfa.ai on a consent screen naming the app (for example Claude or ChatGPT). Click Allow.
- Each app gets its own API key, billed to your account like any other API call. It does not appear in your API keys list; you manage it under Connected apps (settings → General).
- Sign-in lasts up to 30 days without use, and 180 days at most. After that the app asks you to sign in again.
- Plan limits still apply. A tool your plan does not include stays listed, but says it needs a higher-tier plan and costs nothing to call.
Claude (web, desktop and mobile)
- Settings → Connectors → Add custom connector.
- Name
Elfa, URLhttps://mcp.elfa.ai/mcp. Leave any request headers empty. - Keep Sign in now and Claude's published identity, then click Allow on the dev.elfa.ai tab that opens.
- Turn the connector on in a chat. The desktop and mobile apps use the same connector.
ChatGPT
Adding your own MCP server needs ChatGPT's developer mode.
- Settings → Security and login → turn on Developer mode.
- Go to chatgpt.com/plugins, select the plus button and enter
https://mcp.elfa.ai/mcpas the MCP server URL. Name itElfa. If asked for authentication, choose OAuth and leave any client ID and secret blank: ChatGPT identifies itself. - Click Allow on the dev.elfa.ai tab that opens.
- Open your personal plugins, open Elfa and select the plus button to install it.
- On the ChatGPT homepage, switch from Chat to Work, start a new chat, type
@and pick Elfa.
Claude Code
# --scope user makes Elfa available in every project, not just this directory
claude mcp add --transport http --scope user elfa https://mcp.elfa.ai/mcp
Then run /mcp in Claude Code, choose elfa → Authenticate, and click Allow in the browser. The consent screen warns that the app runs on your own computer; that is expected for a command-line client.
Codex
codex mcp add elfa --url https://mcp.elfa.ai/mcp
codex mcp login elfa
Click Allow in the browser that opens. If Codex fails before a browser opens, your version is trying to register itself anonymously — use the local server with an API key.
Disconnecting an app
On dev.elfa.ai, open settings → General → Connected apps and click Disconnect. That app's calls stop working within about a minute and it asks you to sign in again; your other apps are unaffected.
Local Server (API Key)
Get a key from dev.elfa.ai, then pick a client.
Claude Code
claude mcp add elfa --env ELFA_API_KEY=your-key -- npx -y @elfa-ai/mcp
Claude Desktop — download the .mcpb from the latest release and open it.
Everything else — npx -y @elfa-ai/mcp with ELFA_API_KEY in the environment. VS Code uses servers where Cursor uses mcpServers.
| Variable | Required | Purpose |
|---|---|---|
ELFA_API_KEY | Yes | Authenticates every request. |
ELFA_TIMEOUT | No | Defaults to 120000. |
ELFA_RETRIES | No | Defaults to 0. |
ELFA_MCP_MAX_RESPONSE_CHARS | No | Response size ceiling. Defaults to 60000. |
ELFA_EXTRA_HEADERS | No | JSON object of extra headers sent upstream, for proxies and non-production environments. |
The interpretation endpoints are LLM-backed, can take over a minute, and charge credits per attempt. A silent retry bills you again for a call you never saw.
Tools
Clients prefix tool names with the server name, so these appear as elfa_mentions and so on.
| Tool | Credits | What it does |
|---|---|---|
api_status | Free | Key tier, credit usage, remaining requests, and how far back API v3 reads. |
mentions | 1 | Mentions from X and Telegram. Top, search or news. |
trending | 1 | Trending tokens, or contract addresses. |
narratives | 5 | Narrative analysis with source links. |
account_stats | 1 | Smart follower and engagement stats. Legacy: it still works, but will be removed on 28 October 2026. |
market_chat | Varies | Written market analysis. |
auto_build auto_validate auto_query | 1 / Free / Free | Build EQL, cost it or check a symbol, poll it. |
auto_query_write auto_draft | 5 / Free | Activate and park Auto plans. |
entities | Free until 31 October 2026 | Resolve a ticker, name, handle or address to the id the v3 tools take. Exact match, not a search. |
events | Free until 31 October 2026 | Events, storylines and arcs, searchable by topic. |
market | Free until 31 October 2026 | Mindshare and call books, crypto or equity; trending contracts, crypto only. |
calls | Free until 31 October 2026 | Calls, call episodes, and positioning on one asset. |
top_accounts | Free until 31 October 2026 | X accounts ranked by standing, with their track record. |
Streaming endpoints are not tools — a tool call returns a single result. Poll auto_query, or use an SDK for SSE.
Auto
An armed query keeps evaluating and fires without asking again, so it is three deliberate steps: auto_build to draft, auto_validate to cost it, auto_query_write to arm it. Show the user the cost and the action before the third.
Mentions, news and narratives return third-party posts that anyone can write, events and calls are derived from them, and the v3 tools carry third-party asset, account and channel names. Every response is marked untrusted, but review any chain where an agent reads that content and can then reach auto_query_write.
Next Step
Read Auto for what the condition engine can watch, or Market Intelligence for what each data tool returns. Source and issues live in elfa-ai/mcp.