Best MCP Servers for Developers in 2026 (With Setup)

The best MCP servers for developers cover the places you otherwise copy and paste from: your database (StitchDB or Supabase), your code host (GitHub), a real browser (Playwright), current library docs (Context7), your errors (Sentry), your issues (Linear) and your payments (Stripe). Start with three or four, not fifteen: every server adds tools the model has to choose between, and every write tool is something that can go wrong. Below is what each one does, the official install command, and how to keep it safe.

Every server here is run by its vendor, and the setup details come from the vendor's own docs as of November 2026. Commands are for Claude Code; for Cursor, the same URL goes in .cursor/mcp.json.

#The list at a glance

ServerWhat it gives the agentTransportAuthRead-only option
StitchDBSchema, SQL, migrations, logs, advisors, Edge FunctionsRemote HTTPOAuth or token?read_only=true
GitHubRepos, issues, pull requests, code searchRemote HTTP or localOAuth or PAT--read-only (local)
PlaywrightA real browser driven through the accessibility treeLocal (npx)Nonen/a
Context7Up-to-date docs for librariesRemote HTTPAPI key recommendedRead-only by nature
SentryErrors, performance, issue triageRemote HTTPOAuthScope by org/project in the URL
LinearIssues, projects, commentsRemote HTTPOAuth or API key/mcp/readonly endpoint
StripeStripe API, docs searchRemote HTTPOAuth or agent API keyRestrict the key
SupabaseSupabase projectsRemote HTTPOAuth or tokenread_only=true

#How to choose

Pick servers by asking where your agent currently gets stuck:

  • It writes queries against columns that do not exist: a database server.
  • It uses an API that changed last year: a docs server.
  • It says "fixed" without checking the page: a browser server.
  • You paste stack traces into the chat: an error tracker server.
  • You re-type issue descriptions: an issue tracker server.

Then keep the number small. Servers with dozens of tools fill the context and make tool choice worse. Most servers let you narrow them with feature groups, toolsets or a read-only endpoint; use that.

#1. StitchDB: your database and backend

A remote server at https://stitchdb.com/platform/mcp that lets the agent list projects, inspect tables and policies, run SQL, apply migrations, read API, Auth, Postgres and function logs, read security and performance advisors, deploy Edge Functions and generate TypeScript types (tools).

Terminal
claude mcp add --transport http stitchdb \
  "https://stitchdb.com/platform/mcp?project_ref=<project-ref>&read_only=true" \
  --header "Authorization: Bearer sdb_pat_..."

Or leave out the header and run /mcp in Claude Code to sign in with OAuth. Useful options: ?project_ref= pins one project, ?read_only=true hides every write tool, ?features=database,docs offers only some tool groups (URL options).

Why it is on the list: the database is where agent mistakes are most expensive, and this server is built around that. execute_sql has a 15-second timeout and returns at most 1,000 rows; secrets such as the service_role key are never returned. For agents that write, an agent key gives the connection its own Postgres role, a query firewall, approvals for DELETE without WHERE or DROP, and per-session undo.

Trade-off: it works with StitchDB projects only, and StitchDB hosts in the EU.

#2. GitHub: issues, pull requests and code

GitHub's official server at https://api.githubcopilot.com/mcp reads and writes repositories, issues and pull requests. GitHub's install guide for Claude Code (2.1.1 and newer):

Terminal
claude mcp add-json github \
  '{"type":"http","url":"https://api.githubcopilot.com/mcp","headers":{"Authorization":"Bearer YOUR_GITHUB_PAT"}}'

Tools are grouped into toolsets; the defaults are context, repos, issues, pull_requests and users. When you run the server locally, --toolsets narrows them and --read-only skips every write tool, even ones you request explicitly.

Use it for: "summarize the open review comments on my PR", "find where this function is called across our repos", "open an issue for the bug we just found".

Watch out for: issue and PR text is written by other people. Treat it as untrusted input, and use a fine-grained token limited to the repositories you need.

#3. Playwright: let the agent check its own work

Microsoft's Playwright server drives a real browser. It reads the page through Playwright's accessibility tree, not screenshots, so the model gets structured text it can act on.

Terminal
claude mcp add playwright npx @playwright/mcp@latest

Use it for: "open localhost:3000, sign up with a test account and tell me what breaks", or reproducing a bug report click by click. This is the cheapest way to stop an agent from declaring a UI fixed without loading it.

Watch out for: a browser can reach anything your machine can. Point it at local and staging URLs, not at admin panels where you are signed in.

#4. Context7: current docs instead of memory

Context7 from Upstash serves documentation for libraries, so the model uses the current API instead of what it remembers from training. It has two tools: resolve-library-id and query-docs. The remote endpoint is https://mcp.context7.com/mcp; an API key is recommended for higher rate limits and is free from the Context7 dashboard. Context7's own setup command is npx ctx7 setup.

Use it for: frameworks that change often. Add a line to your project instructions (CLAUDE.md or your editor's rules) telling the agent to look up library docs with Context7 before it writes code against them.

#5. Sentry: real errors, not pasted stack traces

Sentry's hosted server at https://mcp.sentry.dev/mcp uses OAuth for every connection. You can scope it to one organization and project in the URL:

Terminal
claude mcp add --transport http sentry \
  https://mcp.sentry.dev/mcp/<organizationSlug>/<projectSlug>

Use it for: "what is the most frequent new error since yesterday's deploy, and where in our code does it start?" Pair it with the GitHub server and the agent can go from error to fix to pull request.

#6. Linear: issues as the agent's to-do list

Linear's server at https://mcp.linear.app/mcp uses Streamable HTTP with OAuth 2.1, or a Linear API key as a bearer token. For read-only access use https://mcp.linear.app/mcp/readonly.

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

Then run /mcp to authenticate.

Use it for: turning a plan into issues, reading the acceptance criteria of the issue you are working on, posting a summary when the work is done.

#7. Stripe: payments without the dashboard

Stripe's server at https://mcp.stripe.com exposes tools to search and call the Stripe API (stripe_api_read, stripe_api_write), search Stripe's docs and more.

Terminal
claude mcp add --transport http stripe https://mcp.stripe.com/

Then run /mcp to sign in with OAuth. For agents that cannot use OAuth, Stripe recommends an agent API key with only the permissions the client needs. Stripe's docs note that from December 2026 its MCP server no longer accepts full-access secret keys or restricted keys without the agent tag. Some actions, such as creating a refund, require human confirmation in the Stripe dashboard.

Use it for: setting up products and prices in a sandbox, checking a customer's subscription while debugging, finding the right webhook events. Keep it on sandbox keys while you build.

#8. Supabase: if your backend is Supabase

If your project runs on Supabase, its hosted server at https://mcp.supabase.com/mcp is the equivalent of the StitchDB server. It supports read_only=true, which runs queries as a read-only Postgres user, and project_ref= to scope to one project. Supabase's docs recommend connecting to production only when the task needs production evidence, and with scoping and read-only mode on.

You only need one database server: the one for the platform your data is on.

#Setting them up without regret

Scope where they load. In Claude Code, --scope user makes a server available everywhere, --scope project shares it through .mcp.json in the repository, and the default local keeps it to you in the current project. Put team servers in .mcp.json and reference tokens as ${VAR} so no secret is committed:

JSON
{
  "mcpServers": {
    "stitchdb": {
      "type": "http",
      "url": "https://stitchdb.com/platform/mcp?project_ref=<project-ref>&read_only=true",
      "headers": { "Authorization": "Bearer ${STITCHDB_TOKEN}" }
    }
  }
}

In Cursor, the same goes in .cursor/mcp.json, with ${env:STITCHDB_TOKEN} as the syntax (Cursor and VS Code).

Default to read-only. Most of the value of a database, error or issue server is reading. Add write access per task, not per machine.

Approve writes. Leave your client's tool approval on for anything that changes data, sends money or posts publicly.

Mind prompt injection. Rows in your database, GitHub issues, Sentry events and web pages are written by other people. A server combination that can read untrusted text and also write somewhere sensitive deserves extra care.

Revoke what you stop using. Tokens with an expiry are better than tokens that live forever.

For a deeper look at the database side, read MCP Postgres server setup and give Cursor safe access to your database.

#FAQ

#What is the best MCP server for coding?

For most developers, a database server and a docs server give the biggest improvement, followed by a browser server so the agent can test its own changes. Add GitHub and an error tracker once those work well.

#How many MCP servers should I use at once?

As few as cover your workflow, often three to five. Each server adds tools to the model's context, and too many make tool choice slower and less accurate. Use read-only endpoints, feature groups and toolsets to trim them.

#Are remote MCP servers safe?

They are as safe as the credential you give them. Prefer vendor-run servers, OAuth or short-lived scoped tokens, read-only modes, and approval for every write.

#Do these servers work in Cursor and VS Code too?

The remote ones do: use the same URL and auth in .cursor/mcp.json or .vscode/mcp.json. Local servers such as Playwright run with the same npx command in any client that supports stdio.

Add a database server your agent cannot break by accident: create a free StitchDB project and follow the AI tools guide.