Agent Skills

Twelve Data MCP (Model Context Protocol) Server provides seamless, real-time access to financial market data via WebSocket, enabling reliable streaming of price quotes, market metrics, and events directly into your applications.

Install

https://mcp.twelvedata.com/mcp

Transport: streamable-http

README.md

Twelve Data MCP Server

Connect Claude, ChatGPT, and other AI assistants to the Twelve Data financial API — real-time and historical prices, 60+ technical indicators, fundamentals, earnings, dividends, ETFs, company news, market movers, and more.

You need a Twelve Data account. Sign up at twelvedata.com.

There are two ways to use it. Most people should use the cloud server (Option 1) — there is nothing to install.


Option 1 — Use our cloud server (recommended)

Connect your AI assistant to our hosted server:

https://mcp.twelvedata.com/mcp

That's it. No installation, no API key to copy and paste. When you connect, a browser window opens and you log in with your Twelve Data account — your personal API key is linked automatically and stays tied to your account.

How to add it

Claude (Desktop / Web) and ChatGPT support custom connectors / MCP servers:

  1. Open your assistant's Connectors (or Integrations / MCP servers) settings.
  2. Add a new connector with the URL https://mcp.twelvedata.com/mcp.
  3. When prompted, click Connect / Log in — a Twelve Data login page opens in your browser.
  4. Authorize, and you're done. Ask things like "What's the RSI for AAPL?" or "Show me TSLA's latest earnings."

The exact menu names differ between apps and versions, but the flow is always the same: add the URL, then log in via the browser popup.

The MCP host does not issue tokens. The connector URL is https://mcp.twelvedata.com/mcp. The client must follow that URL's protected-resource metadata to the authorization server named there. Do not point a connector at the host root (it answers 404), or at this host's /register or /.well-known/oauth-authorization-server.

Perplexity (custom remote connector)

Perplexity Pro, Max, and Enterprise users can add the hosted server as a custom remote connector. That is a per-account setup, not a listing in Perplexity's public curated directory.

  1. In Perplexity, open Account settings → Connectors → + Custom connector and select Remote. On Enterprise, an admin may need to allow custom connectors first.
  2. Set Name to Twelve Data and MCP Server URL to https://mcp.twelvedata.com/mcp.
  3. Choose OAuth for authentication and Streamable HTTP for transport. Leave the Client ID and Client Secret blank so Perplexity can use dynamic client registration on the authorization server named in the server's protected-resource metadata.
  4. Accept Perplexity's custom connector acknowledgement and click Add. Then click the Twelve Data connector card to start authentication, sign in to your Twelve Data account, and authorize access.
  5. Once the connector is enabled, try these prompts:
    • "Use Twelve Data to find the AAPL symbol."
    • "Use Twelve Data to get the latest quote for AAPL, including price and volume."
    • "Use Twelve Data to show the last five daily closing prices for AAPL."
    • "Use Twelve Data to show AAPL RSI."

Each person signs in with their own Twelve Data account. If an Enterprise admin shares the connector, require individual authentication for each member. Do not paste a Twelve Data API key into the connector's API Key authentication field.

If the OAuth window is blocked, login fails, or tools stop after idle time, open the Twelve Data connector, disable it, enable it again, and sign in. Reconnect this way rather than switching the connector to API Key auth. Confirm the URL is exactly https://mcp.twelvedata.com/mcp with no trailing slash, and that the Twelve Data plan includes the requested data. See Perplexity's custom remote connector guide for the current settings screens.

Codex (CLI, desktop, and IDE)

Add the hosted MCP server to Codex without installing this repository or copying an API key:

codex mcp add twelvedata --url https://mcp.twelvedata.com/mcp
codex mcp list

The add command starts OAuth: complete the Twelve Data sign-in in your browser. If you need to authorize again later, run codex mcp login twelvedata. In Codex, use /mcp to check the connection, then ask: "Use Twelve Data to get the latest quote for AAPL." and "Use Twelve Data to show AAPL RSI." To disconnect, run codex mcp remove twelvedata.

The public plugin repository is https://github.com/MazeBraker/twelvedata-skills. It installs the skills and the same hosted MCP:

codex plugin marketplace add https://github.com/MazeBraker/twelvedata-skills
codex plugin add twelvedata@twelvedata-skills

Option 2 — Run it yourself with an API key

Prefer to run the server on your own machine? You only need your Twelve Data API key — no OAuth setup. Get it at twelvedata.com → your dashboard → API Keys.

1. Install

Requires Python 3.10+ (3.12 recommended; on macOS brew install python@3.12 or make python-install).

make install

2. Add your API key

Create a .env file in the project root with your key, readable only by you:

echo 'TWELVE_DATA_API_KEY=your_api_key_here' > .env
chmod 600 .env

The server reads the key from .env and every request uses it. No login step needed.

3. Connect over stdio

Claude Desktop — add to ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "twelvedata": {
      "command": "/path/to/mcp/.venv/bin/python",
      "args": ["/path/to/mcp/src/server.py"]
    }
  }
}

Use the .venv/bin/python path (not the system Python — macOS ships 3.9, and this server needs 3.10+). Restart Claude Desktop after editing the config.

Claude Code:

claude mcp add twelvedata -- /path/to/mcp/.venv/bin/python /path/to/mcp/src/server.py

4. Connect over HTTP

make run           # serves http://localhost:8000/mcp
claude mcp add --transport http twelvedata http://localhost:8000/mcp

5. Run it in Docker

docker build -t twelvedata-mcp .
docker run --rm --env-file .env -p 127.0.0.1:8000:8000 twelvedata-mcp

--env-file keeps the key out of your shell history. Connect to http://localhost:8000/mcp as in step 4. OAuth login is not supported in Docker.

6. Security

  • make run and Docker serve /mcp with no authentication, on 0.0.0.0 by default.
  • Every call is served under your credential.
  • Anyone who reaches the port can call auth_status and oauth_configure. That includes a web page you open, through DNS rebinding, because the default bind checks neither the Host nor the Origin header.
  • MCP_HOST=127.0.0.1 make run keeps the server local and turns on the MCP SDK's Host and Origin check.
  • With MCP_HOST=127.0.0.1, ngrok works only when started with --host-header=rewrite.

7. Troubleshooting

Call auth_status from your client first. It shows whether an API key is configured, the stored token, the detected host and the redirect URI — usually enough to see what is missing.


What you can ask

  • Prices — stocks, ETFs, forex, crypto, commodities (real-time & historical)
  • Technical indicators — RSI, MACD, SMA, BBANDS, ATR, and 60+ more
  • Fundamentals — financial statements, earnings, dividends, splits, company profiles, market cap, key stats, IPO calendar
  • Funds — ETF & mutual fund profiles, performance, holdings, risk
  • News — company news & press releases
  • Market intelligence — movers, exchange rates, analyst ratings, price targets
  • Regulatory — SEC/EDGAR filings, insider transactions, institutional holdings

Symbol formats: stocks AAPL, crypto BTC/USD, forex EUR/USD.


Partners

Running your own public instance or setting up a dedicated OAuth login? That's a partner arrangement — reach out to us at twelvedata.com and we'll provide the setup guide and OAuth credentials.

Search skills and MCP servers

Fuzzy search across 23,137 skills and servers