Anthropic and the open-source community maintain a growing library of official MCP servers. Each server wraps an external system with a standardized interface — install it, configure it, and Claude can use it immediately.
Official MCP Server Catalog
graph LR
subgraph "Data & Storage"
FS[Filesystem]
PG[PostgreSQL]
SQ[SQLite]
end
subgraph "Developer Tools"
GH[GitHub]
SE[Sentry]
PP[Puppeteer]
end
subgraph "Communication"
SL[Slack]
GM[Google Maps]
end
subgraph "Claude Desktop"
C[Claude]
end
C --- FS
C --- PG
C --- SQ
C --- GH
C --- SE
C --- PP
C --- SL
C --- GM
Filesystem Server
Gives Claude controlled access to the local filesystem. The key security feature: you define exactly which directories are accessible.
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y", "@modelcontextprotocol/server-filesystem",
"/Users/dev/project/src",
"/Users/dev/project/docs"
]
}
}
}
Exposed tools:
read_file— Read contents of a filewrite_file— Write content to a filelist_directory— List files and directoriessearch_files— Recursive content searchmove_file— Rename or move a fileget_file_info— File metadata (size, timestamps)
Security: Only paths under the explicitly listed directories are accessible. Symlink traversal is blocked. This is how you give Claude write access without giving it your entire disk.
GitHub Server
Full GitHub API access — issues, pull requests, repositories, code search.
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_..."
}
}
}
}
Key tools:
create_or_update_file— Commit file changes directlysearch_repositories/search_code— GitHub searchcreate_issue/list_issues— Issue managementcreate_pull_request/get_pull_request_diff— PR workflowscreate_branch/list_branches— Branch management
Token scoping: Create a fine-grained personal access token with only the permissions needed. For read-only analysis, the repo:read scope is sufficient.
PostgreSQL Server
Read-only database access with schema introspection.
{
"mcpServers": {
"postgres": {
"command": "npx",
"args": [
"-y", "@modelcontextprotocol/server-postgres",
"postgresql://readonly_user:password@localhost:5432/mydb"
]
}
}
}
Exposed tools:
query— Execute read-only SQL querieslist_tables— Show all tablesdescribe_table— Column definitions and constraints
Best practice: Always use a read-only database user. The server enforces SELECT-only at the application level, but a read-only database role provides defense in depth.
Puppeteer Server
Browser automation — Claude can navigate web pages, take screenshots, fill forms, and extract content.
{
"mcpServers": {
"puppeteer": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-puppeteer"]
}
}
}
Key tools:
puppeteer_navigate— Open a URLpuppeteer_screenshot— Capture the current pagepuppeteer_click— Click an element by selectorpuppeteer_fill— Type text into an input fieldpuppeteer_evaluate— Run JavaScript in the page context
Use case: Claude can visually inspect a deployed application, verify that a UI bug is fixed, or scrape data from pages that require JavaScript rendering.
Slack Server
Read and post messages in Slack workspaces.
{
"mcpServers": {
"slack": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-slack"],
"env": {
"SLACK_BOT_TOKEN": "xoxb-...",
"SLACK_TEAM_ID": "T0123456789"
}
}
}
}
Key tools:
slack_list_channels— List available channelsslack_post_message— Send a message to a channelslack_reply_to_thread— Reply in a threadslack_get_channel_history— Read recent messagesslack_search_messages— Search across channels
Scoping: Create a dedicated Slack app with minimal permissions. Post only to designated channels — never give Claude access to DMs or private channels without explicit need.
Google Maps Server
Geocoding, directions, and place search.
{
"mcpServers": {
"google-maps": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-google-maps"],
"env": {
"GOOGLE_MAPS_API_KEY": "AIza..."
}
}
}
}
Key tools:
maps_geocode— Convert address to coordinatesmaps_reverse_geocode— Convert coordinates to addressmaps_directions— Route between two pointsmaps_search_places— Search for businesses and landmarks
Sentry Server
Error tracking and issue management directly from Claude.
{
"mcpServers": {
"sentry": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-sentry"],
"env": {
"SENTRY_AUTH_TOKEN": "sntrys_...",
"SENTRY_ORG": "my-org"
}
}
}
}
Key tools:
list_projects— List Sentry projectslist_issues— List error issues with frequency dataget_issue_details— Full stack trace and contextresolve_issue— Mark an issue as resolved
Workflow: Claude reads Sentry errors, cross-references with the codebase (via filesystem server), and proposes fixes.
Full Multi-Server Configuration
Here is a production Claude Desktop configuration that chains multiple servers:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y", "@modelcontextprotocol/server-filesystem",
"/Users/dev/project/src",
"/Users/dev/project/tests",
"/Users/dev/project/docs"
]
},
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_..."
}
},
"postgres": {
"command": "npx",
"args": [
"-y", "@modelcontextprotocol/server-postgres",
"postgresql://readonly:pass@localhost:5432/myapp"
]
},
"sentry": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-sentry"],
"env": {
"SENTRY_AUTH_TOKEN": "sntrys_...",
"SENTRY_ORG": "my-org"
}
}
}
}
Chaining Servers — Real Workflow Examples
The power of MCP is composition. With multiple servers configured, Claude can execute multi-step workflows that span systems.
Workflow 1: Bug Diagnosis and Fix
User: "Fix the top Sentry error in the payments module"
Claude's tool chain:
1. sentry → list_issues (filter: payments, sort: frequency)
2. sentry → get_issue_details (top issue — get stack trace)
3. filesystem → read_file (read the file from the stack trace)
4. filesystem → search_files (find related callers)
5. filesystem → write_file (apply the fix)
6. github → create_branch ("fix/payment-timeout")
7. github → create_or_update_file (commit the change)
8. github → create_pull_request (open PR with Sentry link)
Workflow 2: Database-Driven Documentation
User: "Document the schema of our user tables and update the wiki"
Claude's tool chain:
1. postgres → list_tables (find all user-related tables)
2. postgres → describe_table (for each: users, user_roles, user_sessions)
3. postgres → query (sample data to understand relationships)
4. filesystem → write_file (generate docs/schema/users.md)
5. github → create_pull_request (submit documentation PR)
Workflow 3: Incident Response
User: "We're getting 500 errors on /api/orders — investigate"
Claude's tool chain:
1. sentry → list_issues (filter: /api/orders, last 1 hour)
2. sentry → get_issue_details (get stack trace and request data)
3. postgres → query (check orders table for anomalies)
4. filesystem → read_file (read the orders endpoint code)
5. filesystem → search_files (find the failing dependency)
6. slack → slack_post_message (#incidents: post initial findings)
7. filesystem → write_file (apply fix)
8. slack → slack_reply_to_thread (update: fix deployed)
Performance Considerations
| Factor | Impact | Mitigation |
|---|---|---|
| Server startup time | Each stdio server spawns a process | Use persistent HTTP servers for latency-sensitive workflows |
| Sequential tool calls | Each call is a round trip | Design tools that return rich data to reduce call count |
| Token overhead | Tool schemas consume input tokens | Keep descriptions concise — every word counts |
| Concurrent servers | Memory usage scales with server count | Only enable servers you actively use |
Discovering More Servers
The MCP ecosystem is growing rapidly:
# Browse the official registry
npx @modelcontextprotocol/registry list
# Search for a specific integration
npx @modelcontextprotocol/registry search "jira"
Community servers follow the same protocol — if it implements MCP, it works with Claude.
In the next lesson, you will learn how to secure MCP servers for enterprise deployments — path restrictions, sandboxing, audit logging, and token scoping.