NEW: Claude Code Security — research preview

MCP Server Catalog

Top Model Context Protocol servers for Claude Code, Copilot, and Cursor — setup recipes and use cases

Read time: 15 min

title: "MCP Server Catalog" description: "Top Model Context Protocol servers for Claude Code, Copilot, and Cursor — setup recipes and use cases" section: "Ecosystem" readTime: "15 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 that expose tools (actions the agent can call) and resources (data the agent can read). Claude Code, Copilot, and Cursor can all use MCP servers.

Core MCP Servers

Filesystem (official)

Read, write, search files outside the current workspace.

// claude settings / mcp config
{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/home/user/projects"]
    }
  }
}

Tools exposed: read_file, write_file, list_directory, search_files, move_file

Use cases: Access files across multiple repos, read config files outside the project


GitHub (official)

Full GitHub API access — repos, issues, PRs, branches, file contents.

{
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_your_token_here"
      }
    }
  }
}

Tools exposed: search_repositories, get_file_contents, create_issue, create_pull_request, list_commits, get_pull_request

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 (official)

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 introspection tools

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.


Web search without leaving the agent session.

{
  "mcpServers": {
    "brave-search": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-brave-search"],
      "env": {
        "BRAVE_API_KEY": "your_key_here"
      }
    }
  }
}

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"

Puppeteer / Browser (community)

Control a real Chromium browser — navigate, screenshot, fill forms, extract content.

{
  "mcpServers": {
    "puppeteer": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-puppeteer"]
    }
  }
}

Tools exposed: navigate, screenshot, click, fill, evaluate, get_visible_text

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"

Memory (official)

Persistent key-value 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 (community)

Read channels, post messages, search message history.

{
  "mcpServers": {
    "slack": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-slack"],
      "env": {
        "SLACK_BOT_TOKEN": "xoxb-...",
        "SLACK_TEAM_ID": "T..."
      }
    }
  }
}

Use cases:

claude "Read the #incidents channel from today and generate an incident summary report"

AWS Knowledge Base (community)

Query AWS Bedrock Knowledge Bases — grounded in your internal documentation.

{
  "mcpServers": {
    "aws-kb": {
      "command": "npx",
      "args": ["-y", "aws-kb-retrieval-server"],
      "env": {
        "AWS_REGION": "us-east-1",
        "AWS_ACCESS_KEY_ID": "...",
        "AWS_SECRET_ACCESS_KEY": "..."
      }
    }
  }
}

VS Code / Copilot MCP Configuration

For GitHub Copilot, configure MCP servers in VS Code settings:

// .vscode/mcp.json (workspace-scoped)
{
  "servers": {
    "github": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "${input:githubToken}"
      }
    }
  }
}

Then in Copilot Chat: @mcp List all open PRs older than 7 days

Cursor MCP Configuration

// .cursor/mcp.json
{
  "mcpServers": {
    "postgres": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-postgres", "${env:DATABASE_URL}"]
    }
  }
}

Security Best Practices

MCP servers execute with the same permissions as your local process. A malicious or misconfigured MCP server could read all your files or execute arbitrary code.

Finding More MCP Servers