MCP servers for Cursor
Cursor reads MCP servers from an mcpServers object in ~/.cursor/mcp.json (every project) or .cursor/mcp.json in a project root (that project only). Add the entry below under that key, or paste the equivalent into Settings then MCP then Add new MCP Server. Entries with a url are hosted; everything else spawns a local process with command/args.

"context7": { "command": "npx", "args": ["-y", "@upstash/context7-mcp"] }Works unauthenticated on a low rate limit. Add --api-key <key> (free, from context7.com/dashboard) for higher limits.

"supabase": { "command": "npx", "args": ["-y", "@supabase/mcp-server-supabase@latest", "--read-only", "--project-ref=<project-ref>"], "env": { "SUPABASE_ACCESS_TOKEN": "<token>" } }Needs a Supabase personal access token. Drop --read-only only once you actually want the agent applying migrations.
"posthog": { "url": "https://mcp.posthog.com/mcp" }Hosted by PostHog. It asks for a PostHog personal API key the first time a tool call runs.

"brave-search": { "command": "npx", "args": ["-y", "@brave/brave-search-mcp-server"], "env": { "BRAVE_API_KEY": "<key>" } }Needs a Brave Search API key. Brave removed the always-free tier in 2026; a new key starts on metered billing.

"filesystem": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/allowed/directory"] }Every path you list becomes readable and writable by the agent. Only list directories you mean to hand over.
"github": { "command": "docker", "args": ["run", "-i", "--rm", "-e", "GITHUB_PERSONAL_ACCESS_TOKEN", "ghcr.io/github/github-mcp-server"], "env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "<token>" } }Needs Docker running locally and a GitHub personal access token with repo scope.

"playwright": { "command": "npx", "args": ["@playwright/mcp@latest"] }First run downloads a Chromium build via Playwright. No API key.
"postgres": { "command": "uvx", "args": ["postgres-mcp", "--access-mode=restricted"], "env": { "DATABASE_URI": "<connection-string>" } }Needs uv/uvx installed and a Postgres connection string. --access-mode=unrestricted allows writes; restricted is read-only.

"sentry": { "url": "https://mcp.sentry.dev/mcp" }Hosted by Sentry. First use opens a browser tab for OAuth; no local process to run.

"slack": { "url": "https://mcp.slack.com/mcp" }Hosted by Slack, GA since February 2026. A workspace admin has to approve the connection before it works.