Skip to main content

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/mcp to 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/mcp with ELFA_API_KEY set. 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.
Which clients can sign in

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.

Claude (web, desktop and mobile)

  1. Settings → Connectors → Add custom connector.
  2. Name Elfa, URL https://mcp.elfa.ai/mcp. Leave any request headers empty.
  3. Keep Sign in now and Claude's published identity, then click Allow on the dev.elfa.ai tab that opens.
  4. 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.

  1. Settings → Security and login → turn on Developer mode.
  2. Go to chatgpt.com/plugins, select the plus button and enter https://mcp.elfa.ai/mcp as the MCP server URL. Name it Elfa. If asked for authentication, choose OAuth and leave any client ID and secret blank: ChatGPT identifies itself.
  3. Click Allow on the dev.elfa.ai tab that opens.
  4. Open your personal plugins, open Elfa and select the plus button to install it.
  5. 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.

VariableRequiredPurpose
ELFA_API_KEYYesAuthenticates every request.
ELFA_TIMEOUTNoDefaults to 120000.
ELFA_RETRIESNoDefaults to 0.
ELFA_MCP_MAX_RESPONSE_CHARSNoResponse size ceiling. Defaults to 60000.
ELFA_EXTRA_HEADERSNoJSON object of extra headers sent upstream, for proxies and non-production environments.
Retries are off on purpose

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.

ToolCreditsWhat it does
api_statusFreeKey tier, credit usage, remaining requests, and how far back API v3 reads.
mentions1Mentions from X and Telegram. Top, search or news.
trending1Trending tokens, or contract addresses.
narratives5Narrative analysis with source links.
account_stats1Smart follower and engagement stats. Legacy: it still works, but will be removed on 28 October 2026.
market_chatVariesWritten market analysis.
auto_build auto_validate auto_query1 / Free / FreeBuild EQL, cost it or check a symbol, poll it.
auto_query_write auto_draft5 / FreeActivate and park Auto plans.
entitiesFree until 31 October 2026Resolve a ticker, name, handle or address to the id the v3 tools take. Exact match, not a search.
eventsFree until 31 October 2026Events, storylines and arcs, searchable by topic.
marketFree until 31 October 2026Mindshare and call books, crypto or equity; trending contracts, crypto only.
callsFree until 31 October 2026Calls, call episodes, and positioning on one asset.
top_accountsFree until 31 October 2026X 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.

Social text is untrusted

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.