MCP Server Catalog
Top Model Context Protocol servers for Claude Code, Copilot, and Cursor — setup recipes and use cases
title: "MCP Server Catalog" description: "Top Model Context Protocol servers for Claude Code, Copilot, and Cursor — setup recipes and use cases" section: "Ecosystem" readTime: "18 min"
MCP Server Catalog
Model Context Protocol (MCP) lets AI agents connect to external systems — databases, APIs, browsers, file systems — through a standardized interface. Instead of copy-pasting data into the chat, the agent queries it directly.
What MCP Enables
Without MCP: you paste database schema into the prompt. With MCP: the agent queries your live database schema, runs queries, and reads results directly.
MCP servers are processes (local) or endpoints (remote) that expose tools (actions the agent can call), resources (data the agent can read), and prompts (reusable templates). Claude Code, Copilot, and Cursor can all use MCP servers.
Adding Servers in Claude Code
The claude mcp add command is the easiest way to register a server. Options go before the server name; for local servers, the command to launch goes after --.
# Remote HTTP server (recommended transport for remote servers)
claude mcp add --transport http notion https://mcp.notion.com/mcp
# Remote server with an auth header
claude mcp add --transport http secure-api https://api.example.com/mcp \
--header "Authorization: Bearer your-token"
# Local stdio server with an environment variable
claude mcp add --env AIRTABLE_API_KEY=YOUR_KEY --transport stdio airtable \
-- npx -y airtable-mcp-server
# Add from a JSON definition
claude mcp add-json weather-api '{"type":"http","url":"https://api.weather.com/mcp"}'| Flag | Purpose |
|---|---|
--transport / -t | stdio, http, or sse (SSE is deprecated — use HTTP where available) |
--scope / -s | local (default), project, or user |
--env / -e | KEY=value for the server process (repeatable) |
--header / -H | HTTP header for remote servers |
Manage servers with claude mcp list, claude mcp get <name>, claude mcp remove <name>, or /mcp inside a session (which also handles OAuth login for remote servers). claude mcp add-from-claude-desktop imports servers from Claude Desktop (macOS and WSL only), and claude mcp serve runs Claude Code itself as an MCP server.
Scopes
| Scope | Loads in | Shared with team | Stored in |
|---|---|---|---|
local (default) | Current project only | No | ~/.claude.json (under the project path) |
project | Current project | Yes, via git | .mcp.json at the project root |
user | All your projects | No | ~/.claude.json |
When the same server name is defined in several places, local wins over project, which wins over user. In interactive sessions, Claude Code asks you to approve each project-scoped server from .mcp.json before using it; reset those choices with claude mcp reset-project-choices.
Environment Variables in .mcp.json
Keep secrets out of committed config with ${VAR} or ${VAR:-default} expansion, which works in command, args, env, url, and headers:
{
"mcpServers": {
"api-server": {
"type": "http",
"url": "${API_BASE_URL:-https://api.example.com}/mcp",
"headers": { "Authorization": "Bearer ${API_KEY}" }
}
}
}Using Resources, Prompts, and Many Servers
- Resources: type
@to browse them, or reference one directly as@server:protocol://resource/path(for example@github:issue://123). - Prompts: MCP prompts show up as commands, e.g.
/mcp__github__pr_review 456. - Tool search: enabled by default — MCP tool definitions are deferred and loaded on demand, so adding servers costs little context. Control it with
ENABLE_TOOL_SEARCH(auto,auto:N,true,false). - Limits:
MCP_TIMEOUTsets the server startup timeout (ms);MAX_MCP_OUTPUT_TOKENSraises the per-tool output cap (default 25,000 tokens).
The JSON blocks in the catalog below use the standard mcpServers format, so you can paste them into .mcp.json or pass the same values to claude mcp add.
Core MCP Servers
The modelcontextprotocol/servers repo now maintains only a small set of reference servers (Everything, Fetch, Filesystem, Git, Memory, Sequential Thinking, Time). Former entries such as GitHub, PostgreSQL, SQLite, Puppeteer, Slack, Brave Search, and AWS KB Retrieval were moved to servers-archived and no longer receive updates. Prefer the vendor-maintained replacements noted below.
Filesystem (reference)
Read, write, search files outside the current workspace.
// .mcp.json
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/home/user/projects"]
}
}
}Tools exposed (examples): read_text_file, write_file, edit_file, list_directory, search_files, move_file
Use cases: Access files across multiple repos, read config files outside the project
GitHub (official, by GitHub)
Full GitHub API access — repos, issues, PRs, branches, file contents. The old @modelcontextprotocol/server-github package is archived; GitHub now maintains its own server, including a hosted remote endpoint.
claude mcp add --transport http github https://api.githubcopilot.com/mcp/ \
--header "Authorization: Bearer ${GITHUB_PAT}"Typical tools: repository search, file contents, issues, pull requests, commits
Use cases:
claude "Find all open issues labeled 'bug' in the monorepo and triage them by affected module"
claude "Create a PR from branch agent/auth-refactor with a detailed description of the changes"PostgreSQL / SQLite (archived reference)
Execute SQL queries against a live database.
{
"mcpServers": {
"postgres": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres", "postgresql://localhost/mydb"]
}
}
}Tools exposed: query (read-only SQL), schema resources
This package is archived, unmaintained, and marked deprecated on npm. It still illustrates the pattern, but for real use pick an actively maintained database MCP server (many database vendors now ship their own) and pin its version.
Use cases:
claude "Look at the users table schema and generate TypeScript types matching it"
claude "Check which users signed up in the last 7 days and weren't sent an onboarding email"Connect to a read-only replica or a development database. Never give AI agents write access to production data.
Brave Search (official, by Brave)
Web search without leaving the agent session. The archived @modelcontextprotocol/server-brave-search was replaced by Brave's own package.
{
"mcpServers": {
"brave-search": {
"command": "npx",
"args": ["-y", "@brave/brave-search-mcp-server"],
"env": {
"BRAVE_API_KEY": "${BRAVE_API_KEY}"
}
}
}
}Use cases:
claude "Search for the latest CVEs affecting express.js and check if we're using a vulnerable version"
claude "Find the migration guide for Prisma v5 → v6 and apply the breaking changes to our schema"Browser Automation (Puppeteer archived)
Control a real browser — navigate, screenshot, fill forms, extract content. @modelcontextprotocol/server-puppeteer is archived; Microsoft's Playwright MCP server is the commonly used maintained alternative.
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": ["-y", "@playwright/mcp@latest"]
}
}
}Typical tools: navigate, click, type/fill, take screenshots, read page snapshots
Use cases:
claude "Open our staging app at localhost:3000, log in as test user, and verify the dashboard loads correctly"
claude "Take a screenshot of each page in the app and flag any visual regressions vs last week's screenshots"Claude Code also has a built-in Chrome integration (claude --chrome) for browser automation without a separate MCP server.
Memory (reference)
Persistent knowledge-graph store across agent sessions.
{
"mcpServers": {
"memory": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-memory"]
}
}
}Use cases: Store decisions made in one session and recall them in future sessions. Useful for evolving system design conversations.
Slack (archived reference)
Read channels, post messages, search message history.
{
"mcpServers": {
"slack": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-slack"],
"env": {
"SLACK_BOT_TOKEN": "${SLACK_BOT_TOKEN}",
"SLACK_TEAM_ID": "T..."
}
}
}
}This package is archived and deprecated on npm; the reference README points to Zencoder's fork, @zencoderai/slack-mcp-server. Check the Anthropic Directory or the MCP Registry for a currently maintained Slack server before adopting it.
Use cases:
claude "Read the #incidents channel from today and generate an incident summary report"AWS Knowledge Base (archived reference)
Query AWS Bedrock Knowledge Bases — grounded in your internal documentation.
{
"mcpServers": {
"aws-kb": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-aws-kb-retrieval"],
"env": {
"AWS_REGION": "us-east-1",
"AWS_ACCESS_KEY_ID": "${AWS_ACCESS_KEY_ID}",
"AWS_SECRET_ACCESS_KEY": "${AWS_SECRET_ACCESS_KEY}"
}
}
}
}This server is archived and deprecated on npm; AWS publishes its own maintained MCP servers (awslabs/mcp) that are a better starting point.
VS Code / Copilot MCP Configuration
For GitHub Copilot in VS Code, configure MCP servers in an mcp.json file:
// .vscode/mcp.json (workspace-scoped, VS Code format)
{
"servers": {
"github": {
"type": "http",
"url": "https://api.githubcopilot.com/mcp/"
}
}
}VS Code also reads the portable formats — .mcp.json at the workspace root and ~/.copilot/mcp-config.json for your user — which use a top-level mcpServers object, and its MCP: Add Server flow now recommends them over the deprecated .vscode/mcp.json for new servers (VS Code docs).
Once the server is trusted and started, its tools are available in the Chat view and are invoked as needed (e.g. "List all open PRs older than 7 days"); use the Configure Tools button in the chat input to toggle individual tools.
Cursor MCP Configuration
Cursor reads .cursor/mcp.json (project) or ~/.cursor/mcp.json (global) and interpolates ${env:NAME} in command, args, env, url, and headers (Cursor docs).
// .cursor/mcp.json
{
"mcpServers": {
"postgres": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres", "${env:DATABASE_URL}"]
}
}
}Security Best Practices
Local (stdio) MCP servers execute with the same permissions as your user account. A malicious or misconfigured MCP server could read all your files or execute arbitrary code. Anthropic reviews connectors listed in its Directory but does not security-audit or manage any MCP server.
Claude Code permission rules can target MCP tools by name: mcp__github (every tool on the github server), mcp__github__*, or a single tool such as mcp__github__create_issue. A deny rule of mcp__* blocks every MCP tool.
For organizations, admins can lock MCP down centrally:
| Mechanism | Effect |
|---|---|
managed-mcp.json (system path) | Fixed server set with exclusive control; an empty mcpServers disables MCP |
managedMcpServers (managed settings) | Provides remote servers to every user alongside their own |
allowedMcpServers / deniedMcpServers | Allowlist/denylist matched by serverUrl, serverCommand, or serverName |
allowManagedMcpServersOnly: true | Makes the managed allowlist the only one that applies |
Finding More MCP Servers
- Official MCP Registry: registry.modelcontextprotocol.io
- Anthropic Directory (reviewed connectors): claude.ai/directory
- Reference servers: github.com/modelcontextprotocol/servers
- Community registry: mcp.so
- Awesome MCP: search GitHub for
awesome-mcp-servers - Claude Code MCP docs: code.claude.com/docs/en/mcp