Claude Code integrates with Model Context Protocol (MCP) servers to extend capabilities with external tools, data sources, and services. MCP enables secure, standardized communication between Claude Code and third-party tools.
Configure MCP servers through JSON configuration files.
{
"servers": {
"filesystem": {
"command": "npx",
"args": [
"@modelcontextprotocol/server-filesystem",
"/path/to/allowed-directory"
],
"env": {
"NODE_ENV": "production"
}
},
"git": {
"command": "mcp-server-git",
"args": [
"--repository",
".",
"--branch",
"main"
]
},
"database": {
"command": "python3",
"args": [
"/path/to/mcp-database-server.py",
"--connection-string",
"postgresql://localhost/mydb"
],
"env": {
"DB_PASSWORD": "${DB_PASSWORD}"
}
}
}
}Configuration Options:
command: Executable command to start the MCP serverargs: Array of command-line argumentsenv: Environment variables for the server processClaude Code supports various pre-built MCP servers for common functionality.
Provides secure file system access with path restrictions.
{
"filesystem": {
"command": "npx",
"args": [
"@modelcontextprotocol/server-filesystem",
"/allowed/directory",
"--read-only",
"--exclude-hidden"
]
}
}Filesystem Server Features:
Git repository operations and information.
{
"git": {
"command": "mcp-server-git",
"args": [
"--repository", "/path/to/repo",
"--branch", "main",
"--allow-push"
]
}
}Git Server Capabilities:
Web search and content retrieval.
{
"web-search": {
"command": "node",
"args": ["/path/to/web-search-server.js"],
"env": {
"SEARCH_API_KEY": "${SEARCH_API_KEY}",
"MAX_RESULTS": "10"
}
}
}Web Search Features:
Database query and management operations.
{
"database": {
"command": "python3",
"args": [
"/path/to/db-server.py",
"--connection-string", "postgresql://localhost/mydb",
"--read-only"
],
"env": {
"DB_PASSWORD": "${DB_PASSWORD}"
}
}
}Database Server Capabilities:
Manage MCP servers through CLI commands and configuration.
# List available MCP servers
/mcp --list
# Add new MCP server
/mcp --add server-name
# Remove MCP server
/mcp --remove server-name
# Check server status
/mcp --status
# Restart server
/mcp --restart server-name
# View server logs
/mcp --logs server-nameServer Management Features:
Configure MCP servers via command-line arguments.
# Single MCP config file
claude --mcp-config servers.json
# Multiple MCP config files
claude --mcp-config server1.json server2.json
# MCP with debugging
claude --mcp-config servers.json --mcp-debug
# MCP timeout configuration
MCP_TIMEOUT=30000 MCP_TOOL_TIMEOUT=10000 claude --mcp-config servers.jsonCommand-line Options:
--mcp-config: Specify MCP server configuration files--mcp-debug: Enable MCP debugging outputMCP_TIMEOUT: Overall MCP operation timeoutMCP_TOOL_TIMEOUT: Individual tool execution timeoutAccess MCP server tools directly through Claude Code.
# Use filesystem tools
"Read the config file using the filesystem server"
# Use git tools
"Show recent commits using git server"
# Use database tools
"Query the users table using database server"
# Use web search tools
"Search for React best practices using web search"Tool Discovery:
MCP servers can provide resources like files, database records, or web content.
{
"resources": [
{
"uri": "file:///path/to/config.json",
"name": "Application Configuration",
"description": "Main application configuration file",
"mimeType": "application/json"
},
{
"uri": "git://repository/commit/abc123",
"name": "Recent Commit",
"description": "Latest commit in main branch",
"mimeType": "text/plain"
}
]
}Resource Features:
MCP servers support various authentication methods.
{
"servers": {
"secure-api": {
"command": "node",
"args": ["/path/to/secure-server.js"],
"env": {
"API_KEY": "${API_KEY}",
"CLIENT_SECRET": "${CLIENT_SECRET}"
},
"auth": {
"type": "oauth",
"clientId": "your-client-id",
"scopes": ["read", "write"]
}
}
}
}Authentication Types:
Support for streaming responses and real-time updates.
{
"streaming-server": {
"command": "python3",
"args": ["/path/to/sse-server.py"],
"features": ["sse", "streaming"],
"env": {
"ENABLE_STREAMING": "true"
}
}
}SSE Features:
Create custom MCP servers for specific needs.
# Python MCP server example
from mcp import Server, Tool, Resource
class CustomMCPServer(Server):
def __init__(self):
super().__init__("custom-server", "1.0.0")
@Tool("custom-tool")
async def custom_tool(self, param1: str, param2: int = 10):
"""Custom tool implementation"""
result = await self.process_data(param1, param2)
return {"result": result, "success": True}
@Resource("custom-resource")
async def custom_resource(self, uri: str):
"""Custom resource provider"""
data = await self.fetch_resource(uri)
return {
"content": data,
"mimeType": "application/json"
}
# Start server
if __name__ == "__main__":
server = CustomMCPServer()
server.run()Custom Server Features:
{
"code-analyzer": {
"command": "python3",
"args": [
"/path/to/code-analyzer-server.py",
"--languages", "python,javascript,typescript",
"--max-file-size", "1MB"
]
}
}Code Analysis Tools:
{
"api-tester": {
"command": "node",
"args": [
"/path/to/api-test-server.js",
"--base-url", "https://api.example.com"
],
"env": {
"API_TOKEN": "${API_TOKEN}",
"TIMEOUT": "30000"
}
}
}API Testing Tools:
{
"docs": {
"command": "python3",
"args": [
"/path/to/docs-server.py",
"--docs-dir", "/path/to/documentation",
"--format", "markdown"
]
}
}Documentation Tools:
Debug MCP server issues and handle errors gracefully.
# Enable MCP debugging
claude --mcp-debug --mcp-config servers.json
# Check server health
/mcp --status
# View server logs
/mcp --logs server-name --tail
# Restart failed server
/mcp --restart server-name
# Validate configuration
/doctor --check-mcpError Types:
Optimize MCP server performance and resource usage.
{
"optimization": {
"serverTimeout": 30000,
"toolTimeout": 10000,
"maxConcurrentRequests": 5,
"connectionPoolSize": 10,
"cacheEnabled": true,
"cacheTTL": 300
}
}Performance Features:
Understanding the MCP protocol for advanced usage.
{
"protocol": {
"version": "1.0",
"capabilities": {
"tools": true,
"resources": true,
"prompts": true,
"completion": true
},
"transport": "stdio"
}
}Protocol Features: