Skip to main content

Claude connector

Connect Claude to your workspace and ask about market-data spend, contracts, allocations and utilisation in plain English.

Marketdata.ai connector for Claude

The Marketdata.ai connector lets Claude answer questions about your market-data costs: which vendors you buy from, what the contracts and line items are, what each cost centre carries, who holds which subscriptions, and how much of what you pay for is actually used.

It reads the data already in your Marketdata.ai workspace. It is not a market-data feed and it does not provide prices, quotes, reference data or any other market data content. Everything it returns is your own contract, invoice, allocation and cost-centre records.

The server is a remote MCP server using Streamable HTTP at https://marketdata.ai/mcp.

What you need

  • A Marketdata.ai workspace on the Professional plan or above. A workspace without MCP access is refused with HTTP 403 on every MCP call. The demo workspace included with every signup has MCP access on every plan, so you can evaluate the connector against sample data before subscribing — demo responses are clearly marked as fictitious sample data.
  • A user login with access to the workspace you want to query. The connector sees exactly what that user sees, including their permission and legal-entity scope, and nothing beyond it.
  • A client that speaks MCP: claude.ai, Claude Desktop, Claude Code, or an IDE with MCP support.

How to connect

There are two credential paths. Both reach the same server and the same 15 tools.

claude.ai and Claude Desktop (OAuth)

  1. In Claude, add a custom connector with the URL https://marketdata.ai/mcp.
  2. In the connector's advanced settings, enter claude as the OAuth Client ID and leave the Client Secret blank. This step is required: the server keeps a closed client registry and does not offer dynamic client registration, so Claude cannot register itself.
  3. Claude sends you to Marketdata.ai to sign in with your normal credentials.
  4. On the consent screen, choose which account the connector may access, then approve.
  5. Claude completes the flow and the tools appear.

The flow is OAuth 2.1, authorization code with PKCE (S256 only). No client secret is needed and no configuration file is involved. Claude mobile uses the connectors added on claude.ai — nothing extra to configure there.

Claude Desktop extension

The API token page also offers a Claude Desktop extension (.mcpb). Download it, open it in Claude Desktop, and paste an API token when prompted. The token is stored in your operating system keychain.

Claude Code, mcp-remote and IDEs (API token)

  1. Go to Settings then API Tokens and create a token. Copy it when it is shown; the full value is not retrievable later.
  2. Point your client at https://marketdata.ai/mcp with the header Authorization: Bearer YOUR_API_TOKEN. The token page has a ready-made command for Claude Code and a JSON block for manual client configuration.

For a client that needs a stdio bridge:

{
  "mcpServers": {
    "Marketdata.ai": {
      "command": "npx",
      "args": [
        "-y", "mcp-remote", "https://marketdata.ai/mcp",
        "--header", "Authorization: Bearer YOUR_API_TOKEN"
      ]
    }
  }
}

Cursor and other mcp.json clients (API token)

Cursor connects the same way — a named entry in .cursor/mcp.json speaking Streamable HTTP directly, no bridge needed:

{
  "mcpServers": {
    "Marketdata.ai": {
      "url": "https://marketdata.ai/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_TOKEN"
      }
    }
  }
}

Clients that key servers by name rather than URL — Cursor and Claude Code among them — can hold several workspaces side by side: one named entry per workspace, each with that workspace's own API token.

To check a token before wiring it into a client:

curl -i -X POST "https://marketdata.ai/mcp" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -H "MCP-Protocol-Version: 2025-03-26" \
  -d '{"jsonrpc":"2.0","method":"initialize","id":1}'

What happens when you connect

  • Connecting does not copy anything out of your workspace. Data moves only when Claude calls a tool, and only the records that tool returns.
  • The credential is bound to one account — an account and a workspace are the same thing here. An OAuth token is bound to the account you picked on the consent screen; an API token is bound to the account it was created in.
  • One workspace per connection. claude.ai identifies a connector by its server URL and refuses to add the same URL twice, so an OAuth connection covers the one workspace you chose. To reach a second workspace today, use an API token per workspace with a client that names its servers rather than keying them by URL, such as Claude Code. Per-workspace connector URLs are planned.
  • Fourteen of the fifteen tools are read-only. The fifteenth, chat_with_workspace, records your question and its answer as messages in a chat thread in the workspace, visible in the web app.
  • No tool creates, edits or deletes a vendor, contract, cost or allocation record. Where a change would be needed, chat_with_workspace returns a described proposal for someone to confirm in the web app.

What you can ask

Each prompt below is answerable with the tools named after it.

  • Which vendors do we have, and what is each one costing us? (list_vendors)
  • How much have we spent on Bloomberg over the last 12 months, and what is the trend? (analyze_cost_trends)
  • Who holds Bloomberg subscriptions, and does anyone hold more than one? (analyze_allocations)
  • Which of our FactSet subscriptions are under-used? (analyze_utilization)
  • Show me the line items on our LSEG contract. (list_contracts, then list_contract_items)
  • Which cost centres carry market-data costs, and what is the current monthly figure for each? (list_cost_centers)
  • Break our market-data spend down by cost centre for this year and tell me which centre grew most. (chat_with_workspace)
  • Which applications and platforms consume market data here? (list_applications, list_platforms)
  • Which projects consume market data, and how is the Bloomberg Anywhere cost split? (list_projects, list_allocations)

Reading the figures

Rows returned by the list_* tools carry two money fields, and they mean different things:

  • cost covers the six months either side of today, on a cash basis.
  • monthly_cost covers the current month, on an accrual basis.

Both are converted to the workspace base currency. That is not the vendor's own invoicing currency, which appears separately as currency_userdef_id on the rows that carry it. A vendor invoiced in dollars still reports cost in your base currency.

For a spend figure over a period you choose, use analyze_cost_trends rather than adding up list rows.

List calls return up to 200 rows, 100 by default. When more records match than were returned, the response says so and gives the total count, so a shortened page is never mistaken for the whole estate.

Tool reference

Tool What it does Access
chat_with_workspace Answers a freeform question about the workspace's spend and estate. Writes (a chat thread and messages)
list_vendors Lists market-data vendors and suppliers, with optional name search. Read-only
list_contracts Lists vendor contracts, with optional name search. Read-only
list_contract_items Lists the line items inside contracts, such as a single seat or licence. Read-only
list_products Lists market-data products and subscriptions in the workspace. Read-only
list_product_groups Lists the groups used to categorise products. Read-only
list_applications Lists applications and systems that consume market data. Read-only
list_platforms Lists technology platforms that deliver or host market data. Read-only
list_cost_centers Lists the internal cost centres that market-data costs are allocated to. Read-only
list_projects Lists projects that consume market data. Read-only
list_allocations Lists how a subscription's cost is split across people, departments or cost centres. Read-only
list_currencies Lists the currencies used across pricing and invoices. Codes only, no amounts. Read-only
analyze_cost_trends Answers how much do we spend on X, with month-by-month figures and an optional forecast. Read-only
analyze_allocations Answers who holds or uses X, including per-person and per-department breakdowns. Read-only
analyze_utilization Answers how much of what we pay for is used, and flags under-used subscriptions. Read-only

Only chat_with_workspace writes. Its write is additive: it appends a thread and messages so the exchange is auditable in the web app. It does not modify business records. The other fourteen are read-only and are annotated as such in tools/list.

chat_with_workspace is slower and more expensive than the direct tools, so prefer a list_* or analyze_* call when one will answer the question.

Limits

  • 500 MCP calls per hour per credential for ordinary calls, and 60 per hour for chat_with_workspace and the three analyze_* tools. Over the limit the server returns HTTP 429 with a Retry-After header.
  • Request bodies are capped at 64 KB.
  • Search terms are truncated to 200 characters and chat messages to 10,000.
  • Supported protocol versions: 2025-03-26 and 2024-11-05.

What the connector does with your data

  • Tool results are returned to the client that asked for them and are then handled under that client's own terms. Nothing is sent anywhere else at the connector's initiative.
  • chat_with_workspace runs the answer through the AI inference subprocessor named in the privacy notice at https://marketdata.ai/privacy, in the same way the in-app assistant does. The other fourteen tools return records from your database without an inference step.
  • Workspace data is not used to train, fine-tune or improve any machine-learning or AI model, by Marketdata.ai or by any subprocessor.
  • Every MCP call is logged with its timestamp, credential, method, tool name, status and duration. These logs are retained for 365 days.

Ending access

  • API tokens are revoked at https://marketdata.ai/api_tokens.
  • OAuth connections are ended by removing the connector in your AI client. Access tokens expire one hour after they are issued. There is no self-service page for OAuth connections yet, so to have one revoked server-side before then, contact support@marketdata.ai.

Troubleshooting

Response Meaning
401 Missing, invalid, expired or revoked credential. Reconnect, or create a new token.
403 The credential is valid but the workspace plan does not include MCP access.
400 Unsupported protocol version, or a session-bound method sent without the mcp-session-id header.
429 Rate limit reached. Wait for the interval given in Retry-After.
413 Request body over 64 KB.

Empty results where you expected records usually means the credential is bound to a different account from the one you had in mind, or that the authorising user's permissions do not cover those records. Both are checked on every request and neither can be widened from the client.

Reference and support

  • Server card: https://marketdata.ai/.well-known/mcp/server-card.json
  • Protected resource metadata: https://marketdata.ai/.well-known/oauth-protected-resource
  • Authorization server metadata: https://marketdata.ai/.well-known/oauth-authorization-server
  • Authentication guide: https://marketdata.ai/auth.md
  • Privacy notice: https://marketdata.ai/privacy
  • Support: support@marketdata.ai
Questions?

Quick answers

Public info only, not your account

Ask about pricing, EU hosting, or reconciling invoices to contracts. I'm the website assistant, not the product, and I can't see your account. Want a person? Leave a work email.

Prefer a person? Reply with your work email and we'll follow up.