Skip to main content

What Are MCP Servers?

MCP (Model Context Protocol) servers extend Claude Code with connections to external systems:
  • Browser automation (Playwright, Chrome DevTools)
  • Documentation fetching (Context7, DeepWiki)
  • Cloud services (AWS, GitHub, Slack)
  • Databases (PostgreSQL, Redis)
  • File systems and custom APIs
MCP servers expose tools that Claude can invoke just like built-in tools (Read, Write, Bash).
MCP servers are configured in .mcp.json (project) or ~/.claude.json (user), or in agent frontmatter.

Why MCP Matters

MCP servers enable Claude to:
  • Access real data: Query databases, APIs, and cloud services
  • Automate browsers: Test UIs, debug console errors, verify deployments
  • Fetch fresh docs: Get up-to-date library documentation instead of relying on training data
  • Integrate with tools: Connect to Slack, GitHub, Jira, and internal systems
MCP servers run with the same permissions as Claude Code. Only enable trusted servers.
Based on community feedback (“/r/mcp”):

Context7

Fetches up-to-date library docs into context. Prevents hallucinated APIs from outdated training data.Community: “by far the best MCP for coding”

Playwright

Browser automation — implement, test, and verify UI features autonomously. Screenshots, navigation, form testing.Community: “essential for frontend”

Claude in Chrome

Connects Claude to your real Chrome browser — inspect console, network, DOM. Debug what users actually see.Community: “game changer for debugging”

DeepWiki

Fetches structured wiki-style documentation for any GitHub repo — architecture, API surface, relationships.Community: “put it behind a gateway with Context7”
Workflow: Research (Context7/DeepWiki) → Debug (Playwright/Chrome) → Verify

Configuration

Project-Scoped (Team-Shared)

Create .mcp.json at project root (committed to git):

User-Scoped (Personal)

Add to ~/.claude.json:

Agent-Scoped

In agent frontmatter:

Server Types

Spawns a local process that communicates via stdin/stdout.Most common for npm packages:
Python servers:
Binary servers:

Enabling MCP Servers

By default, Claude Code prompts for approval when a .mcp.json server starts. Configure auto-approval in .claude/settings.json:
Enables all servers in .mcp.json without prompting.

Permissions for MCP Tools

MCP tools follow the mcp__<server>__<tool> naming convention:
Wildcard patterns:
  • mcp__* — All MCP servers and tools
  • mcp__memory__.* — All tools from memory server
  • mcp__.*__write.* — Any write tool from any server

MCP Scopes

MCP servers can be defined at three levels:
1

Subagent (highest priority)

Location: Agent frontmatter mcpServers fieldPurpose: Servers scoped to a specific subagent
2

Project

Location: .mcp.json at repo rootPurpose: Team-shared servers, committed to git
3

User (lowest priority)

Location: ~/.claude.json (mcpServers key)Purpose: Personal servers across all projects

Real Examples from Repository

From .mcp.json:
From .claude/settings.json:

Browser Automation MCPs

Three options for browser automation:
Best for: Automated testing, headless browser control
Capabilities:
  • Navigate, click, type, screenshot
  • Run in headless mode
  • Multiple browser engines (Chromium, Firefox, WebKit)
  • Parallel execution

Browser Automation MCP Comparison

Detailed comparison of Playwright, Chrome DevTools, and Claude in Chrome

MCP Management

Manage MCP server connections:
  • Add new servers
  • Enable/disable servers
  • List active servers
  • Get server info
  • Handle OAuth

Best Practices

“Went overboard with 15 MCP servers thinking more = better. Ended up using only 4 daily.” — r/mcp
Start minimal:
  1. Context7 (docs)
  2. Playwright or Claude in Chrome (browser)
  3. One integration (GitHub, Slack, etc.)
Add more as needed.
No need to install packages globally:
The -y flag auto-confirms installation.
Share MCP servers with your team:
Team members get the same tools automatically.
Don’t blindly allow all MCP tools:
Never commit API keys to .mcp.json:
Set in .claude/settings.local.json (git-ignored):

Environment Variables

Configure MCP behavior via settings:

Troubleshooting

Check logs:
Common issues:
  • Missing dependencies (run npx command manually)
  • Port conflicts (another process using the port)
  • Timeout too short (increase MCP_TIMEOUT)
Add to .claude/settings.json:
Ensure .mcp.json is valid JSON and in the project root.Test:

Settings

Configure MCP permissions and auto-approval

Subagents

Scope MCP servers to specific agents

MCP Best Practice

Recommended servers and configuration

Browser Automation Report

Compare Playwright, Chrome DevTools, and Claude in Chrome

Further Reading