smolanalytics
log inStart free
free tool

MCP config generator for Cursor, Claude Code, VS Code, Windsurf

paste your MCP server url and token, pick your editor, and copy the exact config. works for any remote MCP server, with the right file path shown for each editor. no hand-editing json, no schema guessing.

An MCP config generator turns a Model Context Protocol server's address and token into the exact configuration your editor expects, so you don't hand-edit JSON and guess the schema. This free tool works for any remote MCP server, not just smolanalytics: you enter your server's base URL and an API key, choose Cursor, Claude Code, VS Code, Windsurf, or Claude Desktop, and it prints the correct config. The shape is the documented remote-server one: an http-transport entry pointing at the server's /mcp endpoint with an Authorization: Bearer header. It also shows the right file path, since editors differ: Cursor uses ~/.cursor/mcp.json, Windsurf uses ~/.codeium/windsurf/mcp_config.json, and VS Code uses a top-level "servers" key instead of "mcpServers". Claude Code is configured from its CLI, so the tool prints the claude mcp add command instead of JSON. Copy it, paste it, restart the editor, and your assistant can call the server.
editor
put this in: ~/.cursor/mcp.json
{
  "mcpServers": {
    "smolanalytics": {
      "type": "http",
      "url": "https://YOUR-INSTANCE/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_KEY"
      }
    }
  }
}
this is the remote (http) MCP shape, pointed at your server's /mcp endpoint with a bearer token. if your server only speaks stdio (a local binary), use its own connect command instead. for smolanalytics, you don't need this at all: run smolanalytics connect and it wires every editor up for you.

using smolanalytics? you don't need this: run smolanalytics connect and it wires up every editor you have in one command. this tool is here for every other MCP server, and for setting a smolanalytics instance up by hand.

how it works

How do I connect an MCP server to my editor?

Every Model Context Protocol client reads a small config that tells it where the server is and how to authenticate. For a remote server that means three things: the transport (http), the endpoint (your server's /mcp url), and an Authorization: Bearer header carrying your token. The generator above fills all three in for the editor you pick, and it appends /mcp to your base url so you don't have to.

The catch is that editors don't agree on the file or the top-level key. Cursor, Windsurf, and Claude Desktop nest servers under mcpServers; VS Code uses servers; and Claude Code has no file at all, so you register the server with claude mcp add. The tool handles each of those, and prints the correct path with the config. Learn what an MCP server is on the MCP server page and the glossary definition.

file paths

Where does each editor's MCP config live?

The generator shows the right path for the editor you pick, but here they are in one place:

  • Cursor: ~/.cursor/mcp.json, key mcpServers.
  • Windsurf: ~/.codeium/windsurf/mcp_config.json, key mcpServers.
  • VS Code: a user mcp.json opened with the MCP: Open User Configuration command, key servers.
  • Claude Desktop: claude_desktop_config.json (on macOS under ~/Library/Application Support/Claude/), key mcpServers.
  • Claude Code: no file. Register with claude mcp add, then restart.
the example server

What is smolanalytics, the server in the example?

smolanalytics is an analytics MCP server: a single open-source Go binary that does web and product analytics from one snippet (visitors, referrers, funnels, retention, paths, cohorts) and exposes all of it to your AI over MCP as 47 tools and 13 prompts. The load-bearing part is that answers are computed from the same deterministic reports the dashboard renders, never generated by the model, and a CI agreement test fails the build if the editor's answer ever differs from the dashboard's. It is bring-your-own-model, so your editor's own AI does the asking and the AI part costs nothing.

The whole thing is one binary with the standard library only, no Kafka, ClickHouse, or Postgres, storing roughly 7 bytes per event. Kick the tyres locally, then point this generator at it:

docker (fastest)
docker run -p 8080:8080 ghcr.io/arjun0606/smolanalytics
# dashboard on http://localhost:8080, MCP server at /mcp

Full setup, including the web snippet and the universal ingestion endpoint, is in the docs. The Cursor and Claude Code walkthrough lives on the Cursor page.

Common questions

What is an MCP config generator?
It is a tool that writes the JSON (or CLI command) your editor needs to connect to a Model Context Protocol server. You give it the server URL and a bearer token, it fills in the right transport, endpoint, and headers for the editor you picked, and it shows you which file to paste it into. It saves you from remembering that Cursor, Windsurf, and Claude Desktop use the "mcpServers" key while VS Code uses "servers", and from typing the /mcp endpoint and Authorization header by hand.
Does this only work for smolanalytics?
No. It works for any remote MCP server that speaks HTTP with a bearer token, so you can point it at any server you run or subscribe to. smolanalytics is just the example, because it is an analytics MCP server that exposes 47 tools and 13 prompts over MCP. If you use smolanalytics itself, you don't even need this tool: run smolanalytics connect and it wires up every editor you have in one command.
Where does the config file go for each editor?
Cursor reads ~/.cursor/mcp.json. Windsurf reads ~/.codeium/windsurf/mcp_config.json. VS Code reads a user mcp.json you open with the MCP: Open User Configuration command, and it uses a top-level "servers" key rather than "mcpServers". Claude Desktop reads claude_desktop_config.json (on macOS at ~/Library/Application Support/Claude/). Claude Code has no JSON file: you register the server with the claude mcp add command, which the tool prints for you.
Why does VS Code use "servers" and not "mcpServers"?
That is just VS Code's chosen schema. Most editors nest MCP servers under a top-level "mcpServers" object; VS Code nests them under "servers". The generator handles the difference for you, so the config it prints for VS Code already uses the right key. Paste it as-is and it will parse.
Is my token stored or sent anywhere?
No. The whole tool runs in your browser. Nothing you type is sent to a server or logged; the config is built locally and put on your clipboard when you press copy. Still, treat the token as a secret and don't commit the config to a public repo.
What can I ask once smolanalytics is connected?
Your real numbers, in plain English, from the same window you write code: "what's my signup to paid conversion?", "did activation improve since we shipped onboarding?", "what's the retention curve for users from the blog?". Answers are computed from the same deterministic reports the dashboard renders, never guessed, and a CI agreement test fails the build if the editor's answer ever differs from the dashboard's. Your editor's own model does the asking, so the AI part costs nothing.
keep reading
Start the 14-day trial