vike
Client setup

Cursor

The Vike data server in Cursor's mcp.json — the remote `url` + `headers` shape, globally or per project.

Add the server

Either Settings → MCP → Add new server, or edit the config file directly.

Global, at ~/.cursor/mcp.json — available in every project:

{
  "mcpServers": {
    "vike": {
      "url": "https://data.vike.io/mcp",
      "headers": { "X-API-KEY": "YOUR_KEY" }
    }
  }
}

Per project, at .cursor/mcp.json in the repository root — same shape, scoped to that project.

url + headers is the remote shape, and it is the only one that works here: Vike's data endpoint is an HTTP service, not a process Cursor launches, so a command key in this entry will not reach it.

The trader server is a sibling entry in this file

vike-cli mcp is a local subprocess and takes the other shape — command + args — inside the same mcpServers object, under a different name. See Trader / Cursor. The two share nothing: not a credential, not a budget, not a transport, so one failing says nothing about the other.

Keep the key out of the repository

A per-project .cursor/mcp.json sits inside the repository, so a pasted key is one git add away from being committed. Either add the file to .gitignore, or keep the server in the global ~/.cursor/mcp.json instead.

If a key does get committed, delete it under Account → API Keys and create a new one. Deletion is the fix; rewriting the file is not, because the old key keeps working until it is deleted — and briefly after, while the auth cache expires.

After editing

Reload Cursor, or toggle the server off and on in the MCP pane. The settings pane shows each server's status and the tools it exposes — a healthy vike entry lists 73.

Verify

Search for PEPE token using Vike

token_search costs 0 credits, so this is free to repeat while you get the configuration right.

Troubleshooting

The server shows as failed. Almost always the JSON: a trailing comma, or a key nested in the wrong object. url and headers are siblings inside the vike object.

The server is green but tools are never called. Cursor decides per request whether to use a tool. Name it — "use the vike token_search tool for PEPE" — to confirm the wiring before trusting the model to reach for it on its own.

Every call errors. Test the key outside Cursor with the raw HTTP tools/list call. A bad key is HTTP 401 with a JSON-RPC error in the body. ⚠ An unknown tool or a failed tool call is HTTP 200 with the error in the body, so a client that only checks the status code reports success on those.

A project config and a global config both exist. Keep the server in one of them. Two entries named vike with different keys will bill two different budgets depending on which one wins, which makes usage in Account → API Keys hard to read.

On this page