MCP(Model Context Protocol)是让 Claude Code 连接外部世界的标准协议。配置正确的 MCP 服务器,Claude Code 可以直接查询你的数据库、调用 GitHub API、搜索内部文档——不再需要手动复制粘贴数据。
什么是 MCP?
MCP 是 Anthropic 开源的标准协议,定义了 AI 模型如何与外部工具和数据源交互。可以理解为给 Claude Code 的"插头标准"——任何实现了 MCP 协议的服务器都可以直接接入。
MCP 的三种能力:
- Tools:Claude 可以调用的函数(查询数据库、发送消息等)
- Resources:Claude 可以读取的数据(文件、API 响应等)
- Prompts:可复用的提示词模板
配置方式
全局配置(所有项目可用)
json
// ~/.claude/settings.json
{
"mcpServers": {
"server-name": {
"command": "命令",
"args": ["参数"],
"env": {
"ENV_VAR": "值"
}
}
}
}项目级配置(仅当前项目)
json
// .claude/settings.json
{
"mcpServers": {
"project-specific-server": {
"command": "npx",
"args": ["-y", "my-custom-mcp-server"]
}
}
}10 个最实用的 MCP 集成
1. PostgreSQL/MySQL 数据库
json
{
"mcpServers": {
"postgres": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres"],
"env": {
"DATABASE_URL": "${DATABASE_URL}"
}
}
}
}能做什么:
- 直接查询数据库 Schema,不需要手动粘贴表结构
- 运行 SELECT 查询验证数据
- 分析查询性能
> 查看 users 表的完整结构,以及最近 7 天的新注册量
> 分析 orders 表里响应时间超过 2 秒的查询
2. GitHub
json
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_TOKEN": "${GITHUB_TOKEN}"
}
}
}
}能做什么:
- 查看 PR 状态、CI 结果
- 创建 Issue 和评论
- 搜索代码库
> 查看所有标注了 "bug" 且超过 7 天没有更新的 Issue
> 检查 PR #234 的 CI 状态,如果失败了找出失败原因
3. Slack
json
{
"mcpServers": {
"slack": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-slack"],
"env": {
"SLACK_BOT_TOKEN": "${SLACK_BOT_TOKEN}",
"SLACK_TEAM_ID": "${SLACK_TEAM_ID}"
}
}
}
}能做什么:
- 发送通知到频道
- 读取特定频道的消息
4. 文件系统扩展访问
json
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/Users/you/documents",
"/Users/you/projects"
]
}
}
}用于 Monorepo 或需要访问项目目录之外的文件。
5. Brave Search(实时网页搜索)
json
{
"mcpServers": {
"brave-search": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-brave-search"],
"env": {
"BRAVE_API_KEY": "${BRAVE_API_KEY}"
}
}
}
}能做什么:
- 搜索最新的技术文档
- 查找某个库的最新版本
- 实时研究
> 搜索 React 19 的 breaking changes,看看我们的代码库需要哪些迁移
6. 跨会话持久知识(Memory)
json
{
"mcpServers": {
"memory": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-memory"]
}
}
}能做什么:
- 保存重要信息跨会话使用
- 存储团队约定、决策记录
- 积累项目特定知识
7. Jira
json
{
"mcpServers": {
"jira": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-jira"],
"env": {
"JIRA_URL": "${JIRA_URL}",
"JIRA_EMAIL": "${JIRA_EMAIL}",
"JIRA_API_TOKEN": "${JIRA_API_TOKEN}"
}
}
}
}能做什么:
- 查看当前 Sprint 的任务
- 更新 Issue 状态
- 根据 Jira ticket 直接实现功能
> 查看 PROJ-1234,根据描述和验收标准实现这个功能,完成后更新状态为 In Review
8. Redis
json
{
"mcpServers": {
"redis": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-redis"],
"env": {
"REDIS_URL": "${REDIS_URL}"
}
}
}
}能做什么:
- 检查缓存命中率
- 查看特定 key 的值
- 分析内存使用
9. AWS(S3、DynamoDB 等)
json
{
"mcpServers": {
"aws": {
"command": "npx",
"args": ["-y", "@aws/mcp-server"],
"env": {
"AWS_ACCESS_KEY_ID": "${AWS_ACCESS_KEY_ID}",
"AWS_SECRET_ACCESS_KEY": "${AWS_SECRET_ACCESS_KEY}",
"AWS_DEFAULT_REGION": "us-east-1"
}
}
}
}10. 自定义 HTTP API
json
{
"mcpServers": {
"internal-api": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-fetch"],
"env": {
"API_BASE_URL": "https://api.internal.example.com",
"API_KEY": "${INTERNAL_API_KEY}"
}
}
}
}MCP 工具结果大小配置(v2.1.91)
对于返回大体积结果的工具(数据库 Schema、文件树等),可以调高上限:
json
// MCP 服务器的 tools/list 响应里
{
"name": "get_full_schema",
"description": "获取完整数据库 Schema",
"_meta": {
"anthropic/maxResultSizeChars": 500000 // 最高 50 万字符
}
}Hooks 直接调用 MCP 工具(v2.1.114)
json
// .claude/settings.json
{
"hooks": {
"PostToolUse": [{
"matcher": "Write(**/*.ts)",
"hooks": [{
"type": "mcp_tool",
"server": "slack",
"tool": "post_message",
"input": {
"channel": "#dev-updates",
"text": "TypeScript 文件已更新"
}
}]
}]
}
}直接调用 MCP 工具而不是启动新进程,速度更快,复用已连接的服务器。
安全最佳实践
- 用环境变量存储密钥,不要硬编码在 settings.json 里
- 最小权限原则:数据库 MCP 只给 SELECT 权限
- Auto Mode + MCP:Auto Mode 会评估 MCP 工具调用的安全性
- 审计日志:用 Hooks 记录所有 MCP 工具调用
bash
# 查看已配置的 MCP 服务器
> /mcp
# 在 Claude Code 里查看可用工具
> 列出所有可用的 MCP 工具来源:Claude Code MCP 官方文档 | MCP 官方协议 | 整理:ClaudeEagle