The MCP Servers Worth Adding to Claude Code, With What Each One Costs
Seven servers earn their place. The rest cost context, copy a built-in tool, or only pay off for one kind of project. Copy a command, or check your own stack below.
- 01 Context7Current library docs on demand, so Claude stops guessing APIs.1kmeasured claude mcp add context7 -- npx -y @upstash/context7-mcp
- 02 PlaywrightDrives a real browser to check the UI it just built.3.9kmeasured claude mcp add playwright -- npx @playwright/mcp@latest
- 03 GitHubIssues, pull requests and reviews without leaving the session.~6kestimate claude mcp add --transport http --header "Authorization: Bearer $GITHUB_TOKEN" github https://api.githubcopilot.com/mcp
- 04 SentryPulls the stack trace and context for the error you are fixing.~5kestimate claude mcp add --transport http sentry https://mcp.sentry.dev/mcp
- 05 LinearReads the ticket, then updates it when the work lands.~6kestimate claude mcp add --transport http linear https://mcp.linear.app/mcp
- 06 ExaSearch built for agents, returning clean page text.485measured claude mcp add --transport http exa https://mcp.exa.ai/mcp
- 07 PostgresOne read-only query tool: the cheapest server on this list.33measured claude mcp add postgres -- npx -y @modelcontextprotocol/server-postgres@0.6.2 postgresql://localhost/mydb
What are the best MCP servers for Claude Code?
Start with seven: Context7 for current docs, Playwright for the browser, GitHub, Sentry and Linear for the work around your code, Exa for search, and a read-only Postgres server for data. Skip servers that copy tools Claude Code already has: Filesystem, Fetch, Git and Sequential Thinking. Then add servers one at a time, and only for the projects that need them.
Most "best MCP servers" lists rank by GitHub stars. Stars measure how many people tried a server, not whether it helps once it is loaded, and every server you add takes part of the context window before you type a word.
Eight tools later, I deleted most of them.
How we test each server
Each server that starts without a sign-in is installed fresh, started, and its tools/list response counted with an approximate Claude tokenizer. That is what it costs before you use it.
Servers that need an account sign-in show an estimate, marked ~, until we connect a test account, or n/a when we have no number to show.
Keep earns its tokens on most projects. Situational pays off for one kind of work. Skip copies a built-in tool or costs more than it returns.
Popularity anti-correlates
Every server we tested
Filter by what you work on, sort by cost, and open a row for the command and the reason behind its verdict. Each row has its own link.
| Category | Runs · auth | Tools | |||
|---|---|---|---|---|---|
| Postgres | Data | Local · DB URL | 1 | 33m | Keep |
One read-only query tool: the cheapest server on this list. Data · Local · DB URL · 1 tool, 33 tokens at load, measured 4 Oct on version 0.6.2 The reference server is archived and its read-only mode can be bypassed, so connect it with a database role that can only read. The command pins the version we measured. Source: modelcontextprotocol/servers-archived · #srv-postgres add it claude mcp add postgres -- npx -y @modelcontextprotocol/server-postgres@0.6.2 postgresql://localhost/mydb | |||||
| Exa | Web | Remote · API key | 2 | 485m | Keep |
Search built for agents, returning clean page text. Web · Remote · API key · 2 tools, 485 tokens at load, measured 4 Oct on version 3.2.1 Search and page fetch behind one connection, in two small tools: the case where an MCP beats the built-in WebSearch. It listed its tools without a key, so we could measure it. Source: exa-labs/exa-mcp-server · #srv-exa add it claude mcp add --transport http exa https://mcp.exa.ai/mcp | |||||
| Context7 | Docs | Local · None | 2 | 1km | Keep |
Current library docs on demand, so Claude stops guessing APIs. Docs · Local · None · 2 tools, 1,046 tokens at load, measured 4 Oct on version 4.1.1 Two tools, about a thousand tokens: the best value on this list. Source: upstash/context7 · #srv-context7 add it claude mcp add context7 -- npx -y @upstash/context7-mcp | |||||
| Playwright | Browser | Local · None | 25 | 3.9km | Keep |
Drives a real browser to check the UI it just built. Browser · Local · None · 25 tools, 3,887 tokens at load, measured 4 Oct on version 0.0.83 Page snapshots add more tokens once you use it. One Claude Code session at a time. Source: microsoft/playwright-mcp · #srv-playwright add it claude mcp add playwright -- npx @playwright/mcp@latest | |||||
| Sentry | Tracking | Remote · OAuth | n/a | ~5k | Keep |
Pulls the stack trace and context for the error you are fixing. Tracking · Remote · OAuth · About 5k tokens, an estimate until a test account is connected Sign in once from /mcp. Worth it on any project that reports errors to Sentry. Source: mcp.sentry.dev · #srv-sentry add it claude mcp add --transport http sentry https://mcp.sentry.dev/mcp | |||||
| GitHub | Code | Remote · Token | n/a | ~6k | Keep |
Issues, pull requests and reviews without leaving the session. Code · Remote · Token · About 6k tokens, an estimate until a test account is connected Heavy at load. If gh is installed and logged in, Claude can do most of this through the CLI at no load cost. Source: github/github-mcp-server · #srv-github add it claude mcp add --transport http --header "Authorization: Bearer $GITHUB_TOKEN" github https://api.githubcopilot.com/mcp | |||||
| Linear | Tracking | Remote · OAuth | n/a | ~6k | Keep |
Reads the ticket, then updates it when the work lands. Tracking · Remote · OAuth · About 6k tokens, an estimate until a test account is connected Swap for Atlassian if your team lives in Jira. Source: Linear docs · #srv-linear add it claude mcp add --transport http linear https://mcp.linear.app/mcp | |||||
| Memory | Other | Local · None | 9 | 925m | Situational |
A small knowledge graph Claude can write facts into. Other · Local · None · 9 tools, 925 tokens at load, measured 4 Oct on version 2026.8.31 CLAUDE.md covers most project memory. Use this when you want facts kept across projects. Source: modelcontextprotocol/servers · #srv-memory add it claude mcp add memory -- npx -y @modelcontextprotocol/server-memory | |||||
| Figma | Design | Remote · OAuth | n/a | ~2.5k | Situational |
Turns a selected frame into layout, tokens and assets. Design · Remote · OAuth · About 2.5k tokens, an estimate until a test account is connected Front-end projects with a Figma file only. Source: Figma docs · #srv-figma add it claude mcp add --transport http figma https://mcp.figma.com/mcp | |||||
| Notion | Docs | Remote · OAuth | n/a | ~5k | Situational |
Reads specs and writes notes where your team keeps them. Docs · Remote · OAuth · About 5k tokens, an estimate until a test account is connected Useful when specs live in Notion; dead weight otherwise. Source: Notion docs · #srv-notion add it claude mcp add --transport http notion https://mcp.notion.com/mcp | |||||
| Chrome DevTools | Browser | Local · None | 30 | 5.7km | Situational |
Performance traces, network and console from a real Chrome. Browser · Local · None · 30 tools, 5,679 tokens at load, measured 4 Oct on version 1.10.1 Choose it over Playwright when you are profiling, not testing. Source: ChromeDevTools/chrome-devtools-mcp · #srv-chrome-devtools add it claude mcp add chrome-devtools -- npx chrome-devtools-mcp@latest | |||||
| Supabase | Data | Remote · OAuth | n/a | ~8kuser | Situational |
Tables, logs and docs for a Supabase project. Data · Remote · OAuth · About 8k tokens by a user report; not measured by us yet One user put its search_docs tool alone at about 8k tokens (quoted below), so the whole server costs more. Scope it to Supabase projects. Source: Supabase docs · #srv-supabase add it claude mcp add --transport http supabase https://mcp.supabase.com/mcp | |||||
| Atlassian | Tracking | Remote · OAuth | n/a | ~9k | Situational |
Jira tickets and Confluence pages in one server. Tracking · Remote · OAuth · About 9k tokens, an estimate until a test account is connected Large tool list. Keep it to the projects tracked in Jira. Source: Atlassian docs · #srv-atlassian add it claude mcp add --transport http atlassian https://mcp.atlassian.com/v2/mcp | |||||
| Murkuzaffiliated | Analytics | Remote · OAuth | n/a | n/a | Situational |
Read-only Search Console, GA4 and Bing data for the site you are working on. Analytics · Remote · OAuth · Not measured yet: it needs an account sign-in For content and SEO work. Read-only, so it cannot change your analytics settings. Source: murkuz.com · #srv-murkuz add it claude mcp add --transport http murkuz https://murkuz.com/mcp | |||||
| Fetch | Web | Local · None | 1 | 244m | Skip |
Fetches a URL and returns it as text. Web · Local · None · 1 tool, 244 tokens at load, measured 4 Oct on version 2026.8.18 Copies the built-in WebFetch tool. Source: modelcontextprotocol/servers · #srv-fetch add it claude mcp add fetch -- uvx mcp-server-fetch | |||||
| Time | Other | Local · None | 2 | 251m | Skip |
Current time and time-zone conversion. Other · Local · None · 2 tools, 251 tokens at load, measured 4 Oct on version 2026.8.18 The shell has date. Cheap, but it earns nothing. Source: modelcontextprotocol/servers · #srv-time add it claude mcp add time -- uvx mcp-server-time | |||||
| Sequential Thinking | Other | Local · None | 1 | 927m | Skip |
A scratchpad tool for step-by-step reasoning. Other · Local · None · 1 tool, 927 tokens at load, measured 4 Oct on version 2026.8.31 Claude Code models think before acting already. Source: modelcontextprotocol/servers · #srv-sequential-thinking add it claude mcp add sequential-thinking -- npx -y @modelcontextprotocol/server-sequential-thinking | |||||
| Git | Code | Local · None | 12 | 1.2km | Skip |
Git status, diff and commit as tools. Code · Local · None · 12 tools, 1,158 tokens at load, measured 4 Oct on version 2026.8.18 Claude Code runs git in the shell already, with nothing to load. Source: modelcontextprotocol/servers · #srv-git add it claude mcp add git -- uvx mcp-server-git --repository /path/to/repo | |||||
| Filesystem | Code | Local · None | 14 | 1.7km | Skip |
File reads and writes inside chosen folders. Code · Local · None · 14 tools, 1,748 tokens at load, measured 4 Oct on version 2026.8.31 Claude Code already reads, edits and searches files with built-in tools. Source: modelcontextprotocol/servers · #srv-filesystem add it claude mcp add filesystem -- npx -y @modelcontextprotocol/server-filesystem /path/to/allowed/folder | |||||
| Azure DevOps | Tracking | Local · PAT | 40 | 16km | Skip |
Boards, repos and pipelines in Azure DevOps. Tracking · Local · PAT · 40 tools, 16,396 tokens at load, measured 4 Oct on version 2.10.0 The heaviest server we measured. The az CLI does the same work at no load cost. Source: microsoft/azure-devops-mcp · #srv-azure-devops add it claude mcp add azure-devops -- npx -y @azure-devops/mcp your-org | |||||
No server matches. Clear the search or pick All.
Supabase MCP really devours your context window. IIRC, it uses 8k for its search_docs tool alone
How many MCP servers is too many?
Count tokens, not servers. Keep tool definitions under about 10% of your context window: 20k tokens on a 200k window. Five light servers can cost less than one heavy one. Tool search, on by default in Claude Code, loads tool names first and full definitions only when Claude needs them, which removes most of that cost.
my context window would start around 25% full
When a CLI beats an MCP server
Claude Code can already run any command-line tool you have installed, and it costs nothing until it is used. An MCP server is worth its load cost when it does something the CLI cannot: sign in for you, limit what Claude may do, or chain several tools behind one connection.
| Job | Use the CLI when | Use the MCP server when |
|---|---|---|
| GitHub | gh is installed and logged in: zero tokens at load | You need it on machines without gh, or in Claude Desktop |
| Azure DevOps | az covers your boards and pipelines | Rarely: the full server loaded 40 tools and about 16k tokens in our run |
| Kubernetes | You trust Claude with every kubectl verb | You want to block exec and delete, which raw kubectl cannot |
| Postgres | You want writes and migrations through psql | You want one read-only query tool for 33 tokens |
| Web search | The built-in WebSearch and WebFetch are enough | You want search, crawl and page text chained in one place |
particularly usefuly in trying to restrict LLM access to certain tools such as exec and delete tools
Exa is a good example of where MCP makes sense
How do I add an MCP server to Claude Code?
Run claude mcp add. For a remote server: claude mcp add --transport http name https://url. For a local one: claude mcp add name -- npx package. Add --scope project to share it with your team through .mcp.json, or --scope user for every project. Type /mcp in a session to check it connected.
Pick your servers and where they should go. The builder writes the command or the config file, with secrets left as placeholders.
claude mcp add context7 -- npx -y @upstash/context7-mcp claude mcp add playwright -- npx @playwright/mcp@latest claude mcp add postgres -- npx -y @modelcontextprotocol/server-postgres@0.6.2 postgresql://localhost/mydb
Then run /mcp in a session to sign in and check status.
Already set up in Claude Desktop?
Paste the mcpServers block from claude_desktop_config.json. You get one command per server, and remote servers bridged through mcp-remote come back as direct HTTP connections.
2 servers converted; 1 mcp-remote bridge replaced with a direct connection.
claude mcp add-json context7 '{"type":"stdio","command":"npx","args":["-y","@upstash/context7-mcp"]}'
claude mcp add --transport http linear https://mcp.linear.app/mcpWhere does Claude Code store MCP servers?
Local and user scope live in ~/.claude.json in your home folder: user servers at the top level, local servers under that project's entry. Project scope lives in .mcp.json at the repo root, which you commit. When two scopes define the same name, local wins over project, and project wins over user.
You have MCPs disabled by default but turn on the ones you need in specific projects.
Keep the context lean
- Measure first. Run
/contextin a session. It lists what each MCP server costs right now. - Scope heavy servers to the projects that use them. Playwright belongs in the web app, not in every Go service.
- Turn servers off for a session from
/mcpinstead of removing them. - Pick toolsets where the server offers them. GitHub's server can load only the toolsets you name.
- Cap tool output. Claude Code warns when one MCP result passes 10,000 tokens; raise or lower the limit with
MAX_MCP_OUTPUT_TOKENS.
when using MCP be selective about which tools you enable
all WebSearch, WebFetch, Context7 exposed as a single "web research" tool
When a server will not connect
Work from the outside in: is it configured, does it start, does it sign in.
# 1. is it configured?claude mcp list# 2. what exactly is saved?claude mcp get playwright# 3. start with a longer timeout (ms) and debug outputMCP_TIMEOUT=30000 claude --debug# 4. native Windows only: wrap npx serversclaude mcp add playwright -- cmd /c npx @playwright/mcp@latest
Slow servers need a longer start-up window. Set it in milliseconds with MCP_TIMEOUT; values past 60 seconds have been ignored in some versions. On native Windows, wrap npx servers in cmd /c.
Claude code does not obey values of MCP_TIMEOUT longer than 60 seconds
Security checklist
An MCP server runs with your permissions, outside Claude Code's sandbox. Treat each one like a dependency you are about to give shell access.
- Install from the vendor. Use the repo or docs the company itself links to, not a lookalike package.
- Read the tool list. Run /mcp after adding it and check every tool name before the first call.
- Pin team configs. Use exact versions in .mcp.json; @latest changes under you.
- Keep secrets out of git. Reference ${VAR} in .mcp.json and set the value in your shell.
- Prefer read-only. Give database and analytics servers read-only roles.
- Block destructive tools. Deny delete and exec style tools in your permission rules.
- Check what loaded. Account-level connectors can appear in the CLI after login.
MCP is an instant obligatory sandbox escape
MCP servers, skills or plugins?
They solve different problems, and a plugin can carry the other two.
A live connection
Talks to a system outside your machine or repo: a tracker, a database, a browser.
- Tool definitions load up front
- Tool search trims that cost
- Needs sign-in or a running process
Know-how on demand
A folder of instructions and scripts Claude reads only when the task calls for it.
- Only a short description loads
- No process, no sign-in
- Best for repeatable procedures
A bundle to install
Packages skills, slash commands, agents, hooks and MCP servers so a team installs them in one step.
- Costs what it contains
- Shared through a marketplace
- Best for team setups
Most MCP servers still bloat up my context even when I am not using them at all.
Questions people ask
How do I see which MCP servers are loaded?
Type /mcp in a session for status and sign-in, or run claude mcp list in your terminal. /context shows what each one costs.
How do I remove an MCP server?
claude mcp remove name. Add --scope project or --scope user if it was not added locally.
Can I reuse my Claude Desktop servers?
Yes. Run claude mcp add-from-claude-desktop on macOS or WSL, or paste the JSON into the converter above.
Why did servers I never added show up?
Connectors on your claude.ai account can load into the CLI after login. Turn them off in /mcp if you do not want them.
Should I use SSE or HTTP?
HTTP. SSE still works but is deprecated; use it only when a server offers nothing else.
Do MCP servers make Claude Code slower?
Start-up waits for local servers to launch, and every loaded definition is read on each turn. Fewer, lighter servers start faster and leave more room for your code.
What hardware runs a local model?
See what your GPU or Mac can run, how fast, and what to buy for the model you want.