Ad space · Your tool here
PluginStack
Setup guide

The best MCP servers for Claude Code

Checked against the official docs:

Claude Code can already read, edit and run code in your project. MCP servers connect it to the things it can't see on its own: your GitHub issues, current library docs, a real browser, production errors, your tickets and your database. Below are nine official servers worth considering, the exact command to add each one, and how to fix the usual setup problems.

How we picked

  • Official: published by the company behind the service (or by Microsoft and Google for the browser tools), so it tracks the real API.
  • Fills a gap: it gives Claude Code something it can't already do with its built-in tools.
  • Can be scoped down: OAuth sign-in, read-only modes or narrow tokens, so you don't have to hand over full access.

This isn't a ranking, and no one paid to be included. Pick the few that match how you work. Each connected server takes some of Claude's context window, because its tool names and server instructions load into every session, so fewer well-chosen servers beat many.

Adding any MCP server to Claude Code

Run these in your terminal, not inside a claude session. A remote (hosted) server takes --transport http and a URL:

bash
claude mcp add --transport http <name> <url>

A local server takes the command that starts it after --. Everything after -- goes to the server untouched, so flags like -y aren't read as Claude Code options:

bash
claude mcp add <name> -- npx -y <package>

Then check and manage your servers:

bash
claude mcp list          # every server and its status
claude mcp get <name>    # details for one server
claude mcp remove <name> # remove it

Inside a session, /mcp shows status and handles OAuth sign-in for servers that need it.

Pick a scope

  • --scope local (default): just you, this project. Stored in ~/.claude.json.
  • --scope user: just you, every project. Also in ~/.claude.json.
  • --scope project: shared with everyone who clones the repo, through a .mcp.json file in the project root.

The servers

1. GitHub MCP Server: issues, PRs and Actions

GitHub's official server lets Claude read repositories, triage issues, review pull requests and check why a GitHub Actions run failed. The hosted server takes a personal access token as a header. Create a fine-grained token with access to only the repositories you want Claude to work with:

bash
claude mcp add --transport http github https://api.githubcopilot.com/mcp/ \
  --header "Authorization: Bearer YOUR_GITHUB_PAT"

For read-only tools, GitHub's remote-server docs give https://api.githubcopilot.com/mcp/readonly as the URL. claude mcp add doesn't check the token when it saves, so run /mcp afterwards: a bad token shows an ✘ and an HTTP 401. More: GitHub MCP Server on PluginStack.

2. Context7: current library docs

Context7 pulls version-specific documentation and code examples into the conversation, which helps with libraries that changed after the model was trained. The quickest setup signs you in and configures Claude Code for you (needs Node.js 22.13+):

bash
npx ctx7 setup --claude

Or add the hosted server by hand. An API key is optional but recommended for higher rate limits (free keys at context7.com/dashboard):

bash
claude mcp add --scope user --header "Authorization: Bearer YOUR_API_KEY" \
  --transport http context7 https://mcp.context7.com/mcp

Add "use context7" to a prompt, or a line in CLAUDE.md telling Claude to use it for library questions. More: Context7.

3. Playwright MCP: drive a real browser

Microsoft's Playwright server lets Claude open pages, click, fill forms and read the result, which is handy for checking that a UI change actually works. It needs Node.js 18 or newer:

bash
claude mcp add playwright -- npx -y @playwright/mcp@latest

The first claude mcp list can show "Failed to connect" while npx downloads the package; run it again after a moment. Microsoft notes that for coding agents its Playwright CLI with skills can be more token-efficient than the MCP server. More: Playwright MCP.

4. Chrome DevTools MCP: debug and profile in Chrome

Google's Chrome DevTools server lets Claude control and inspect a live Chrome browser: performance traces, network requests and console messages. It needs a current Node.js LTS and Chrome:

bash
claude mcp add chrome-devtools --scope user npx chrome-devtools-mcp@latest

Google collects usage statistics by default; add --no-usage-statistics to the server's arguments to opt out. Performance tools may send trace URLs to the CrUX API unless you pass --no-performance-crux. More: Chrome DevTools MCP.

5. Sentry MCP: production errors

Sentry's hosted server is built for coding agents: it lets Claude look up Sentry issues, errors and traces and help you debug them:

bash
claude mcp add --transport http sentry https://mcp.sentry.dev/mcp

Then run /mcp, select sentry and choose Authenticate to sign in through your browser. Sentry also offers a Claude Code plugin (claude plugin marketplace add getsentry/sentry-mcp, then claude plugin install sentry-mcp@sentry-mcp). More: Sentry MCP.

6. Linear MCP: tickets and projects

Linear's official server lets Claude find, create and update issues, projects and comments:

bash
claude mcp add --transport http linear-server https://mcp.linear.app/mcp

Run /mcp to sign in. For read-only access, Linear offers https://mcp.linear.app/mcp/readonly. More: Linear MCP.

7. Notion MCP: specs and docs

Notion's hosted server lets Claude search, read, create and update the pages and databases you can access, so specs and notes don't have to be pasted in:

bash
claude mcp add --transport http notion https://mcp.notion.com/mcp

Run /mcp to complete the OAuth sign-in. Workspace members can connect; guests can't. More: Notion MCP.

8. Supabase MCP (or Neon): your database

Supabase's server lets Claude manage tables, fetch project config and query data. Supabase asks you to read its MCP security best practices first, because connecting an LLM to a database carries real risk. Scoping the server to one project in read-only mode is a sensible start:

bash
claude mcp add --scope project --transport http supabase \
  "https://mcp.supabase.com/mcp?project_ref=<your-project-ref>&read_only=true"

Run /mcp to sign in to Supabase. On Neon instead? npx neon@latest init signs you in and configures Neon's server for Claude Code, and https://mcp.neon.tech/mcp?readonly=true limits it to reads. More: Supabase MCP Server, Neon MCP Server.

9. Figma MCP Server: designs to code

Figma's hosted server brings design context from your Figma files into Claude Code, so the code it writes can match your designs:

bash
claude mcp add --transport http figma https://mcp.figma.com/mcp

Sign in through Figma's OAuth flow, then paste a link to a frame or layer into your prompt. More: Figma MCP Server.

Also worth a look

Servers you can usually skip

Claude Code already reads and edits files in your project and loads project instructions from CLAUDE.md. That makes general-purpose Filesystem and Memory servers mostly redundant in Claude Code. They're more useful when you want the same setup across several MCP apps, or access to folders outside the project.

Share servers with your team

Add a server with --scope project (or write the entry by hand) and commit the resulting .mcp.json. Teammates get a prompt to approve each project server the first time Claude Code sees it. Keep secrets out of the file with environment variables: .mcp.json expands ${VAR} and ${VAR:-default}.

.mcp.json
json
{
  "mcpServers": {
    "github": {
      "type": "http",
      "url": "https://api.githubcopilot.com/mcp/",
      "headers": {
        "Authorization": "Bearer ${GITHUB_PAT}"
      }
    },
    "playwright": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@playwright/mcp@latest"]
    }
  }
}

Remote entries need a "type" ("http", "sse" or "ws"). An entry with a url but no type is read as a stdio server and skipped with an error.

If a remote server gets an empty token and answers 401, check the variable name. In remote url and headers values, Claude Code deliberately reads some well-known credential variables as empty, such as ANTHROPIC_API_KEY or NPM_TOKEN, so they can't leak to a third-party server. Use a name of your own, like GITHUB_PAT above.

Common errors and fixes

/mcp says "No MCP servers configured"

  • You added the server from a different folder. Local-scope servers belong to the project you ran claude mcp add in. Re-add it here, or use --scope user.
  • You edited the wrong file. Claude Code reads ~/.claude.json and <project>/.mcp.json, not paths like ~/.claude/mcp.json.
  • An entry in .mcp.json is malformed. Run claude mcp list and look for the parse warning that names the field.

"Failed to connect" or "Connection error"

  • Run claude mcp get <name>: on recent versions it shows the HTTP status and the server's error text.
  • For a remote server, test the URL with curl -I <url> (curl.exe in PowerShell). A 404 or 405 still means it's reachable, since many MCP endpoints only answer POST; a 401 or 403 means you need to sign in or fix your token.
  • For a local server, run its command directly (for example npx -y @playwright/mcp@latest). If it errors, the message names what's missing. If it starts and waits, check that you put -- before the command when adding it.

Timed out at startup

The first run of an npx server can be slow while it downloads. Raise the startup timeout (in milliseconds):

bash
MCP_TIMEOUT=60000 claude

"already exists"

A server with that name already exists in that scope. Remove it with claude mcp remove <name> (add --scope if it exists in more than one) or pick another name.

Connected, but no tools

The server is usually missing a required environment variable such as an API key. Pass it with --env KEY=value (before --) or in the entry's env field.

Edits to .mcp.json don't take effect

Claude Code reads .mcp.json when a session starts, so exit and restart. If you rejected the server earlier, reset your choices with claude mcp reset-project-choices.

OAuth sign-in fails

Run /mcp, select the server and choose Authenticate again. If the browser doesn't open, copy the URL from the terminal into your browser.

Building your own server?

Anthropic's mcp-server-dev plugin can scaffold one: run /plugin install mcp-server-dev@claude-plugins-official inside Claude Code, then /mcp-server-dev:build-mcp-server. Test it with the MCP Inspector, or start from a framework like FastMCP. If you want ready-made prompts for this, our own (paid) Agent Builder Rules + Prompts pack includes MCP server scaffolding prompts and rules for Claude Code and Cursor.

FAQ

How many MCP servers should I add?

Only the ones you'll use. Each server's tool names and instructions take up context in every session. Turn one off in the /mcp panel to keep its config without loading it, and remove the ones you've stopped using.

Can I reuse servers I set up in Claude Desktop or claude.ai?

Yes. claude mcp add-from-claude-desktop imports Claude Desktop servers (macOS and WSL). Connectors you added at claude.ai show up automatically when you sign in to Claude Code with that claude.ai account.

Using Cursor too?

Most of these servers work in Cursor as well. See how to add an MCP server to Cursor.

Sources

Commands and config above come from these official docs. Tools change often, so check them for the latest steps.

PluginStack is independent and not affiliated with or endorsed by the companies mentioned. Spotted something out of date? Email pluginstackai@gmail.com.