返回 AI编程

MCP Servers 详解

MCP Servers 详解

MCP(Model Context Protocol)是 AI 的扩展接口标准,通过添加 MCP 服务器可以扩展 Claude Code 获取外部工具、资源、服务的能力。

一、什么是 MCP?

核心概念

MCP(Model Context Protocol) 是 Anthropic 推出的 AI 扩展接口标准,具有以下特点:

  • 标准化接口:统一的协议标准
  • 可扩展性:动态添加外部能力
  • 模块化:每个 MCP 服务器提供特定功能
  • 安全性:通过认证和权限控制

MCP 架构

┌─────────────────────────────────────────────────────────────────┐
│                         Claude Code                             │
│  ┌─────────┐  ┌─────────┐  ┌─────────┐  ┌─────────┐           │
│  │ MCP     │  │ MCP     │  │ MCP     │  │ MCP     │          │
│  │ Client  │→ │ Server  │→ │ Server  │→ │ Server  │→ ...     │
│  └─────────┘  └─────────┘  └─────────┘  └─────────┘           │
│       ↓           ↓           ↓           ↓                    │
│  ┌─────────┐  ┌─────────┐  ┌─────────┐  ┌─────────┐           │
│  │ GitHub  │  │Browser  │  │Database │  │Web      │          │
│  │ API     │  │DevTools │  │         │  │Search   │          │
│  └─────────┘  └─────────┘  └─────────┘  └─────────┘           │
└─────────────────────────────────────────────────────────────────┘

二、常用 MCP 服务器

浏览器开发工具

| MCP Server | 功能 | Star 数 |
|-------------|------|---------|
| chrome-devtools-mcp | 浏览器自动化,26 个工具 | 18.5k |

GitHub 集成

| MCP Server | 功能 | Star 数 |
|-------------|------|---------|
| github-mcp | GitHub API 集成 | 10k+ |

数据库操作

| MCP Server | 功能 | Star 数 |
|-------------|------|---------|
| postgres-mcp | PostgreSQL 数据库操作 | 5k+ |

文件系统

| MCP Server | 功能 | Star 数 |
|-------------|------|---------|
| filesystem-mcp | 增强文件系统操作 | 3k+ |

网络搜索

| MCP Server | 功能 | Star 数 |
|-------------|------|---------|
| web-search-mcp | 网络搜索功能 | 2k+ |

其他 MCP 服务器

| MCP Server | 功能 |
|-------------|------|
| filesystem | 文件系统操作增强 |
| memory | 知识图谱和记忆管理 |
| everything | 桌面搜索集成 |
| puppeteer | 浏览器自动化 |
| sequential-thinking | 顺序思考增强 |

三、安装 MCP 服务器

方式一:命令行安装

# 安装 Chrome DevTools MCP
claude mcp add chrome-devtools npx chrome-devtools-mcp@latest

# 安装 GitHub MCP
claude mcp add github npx -y @modelcontextprotocol/server-github

# 安装 PostgreSQL MCP
claude mcp add postgres npx -y @modelcontextprotocol/server-postgres

# 安装文件系统 MCP
claude mcp add filesystem npx -y @modelcontextprotocol/server-filesystem

# 安装网络搜索 MCP
claude mcp add web-search npx -y @modelcontextprotocol/server-web-search

方式二:配置文件安装

编辑 ~/.claude/mcp.json

{
  "mcpServers": {
    "chrome-devtools": {
      "command": "npx",
      "args": ["chrome-devtools-mcp@latest"],
      "disabled": false
    },
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_TOKEN": "your_github_token_here"
      }
    },
    "postgres": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-postgres"],
      "env": {
        "POSTGRES_CONNECTION_STRING": "postgresql://user:password@localhost:5432/db"
      }
    },
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem"],
      "allowedRoots": ["/home/user/projects"]
    }
  }
}

方式三:使用 MCP Builder

# 安装 MCP Builder
npm install -g @anthropics/mcp-builder

# 创建新的 MCP 服务器
mcp-builder create my-mcp-server

四、验证安装

查看已安装的 MCP 服务器

# 在 Claude Code 中
/mcp

# 或通过命令行
claude mcp list

测试 MCP 服务器

# 测试特定 MCP 服务器
claude mcp test chrome-devtools

# 测试所有 MCP 服务器
claude mcp test all

查看 MCP 服务器状态

claude mcp status

五、Chrome DevTools MCP 详解

安装

claude mcp add chrome-devtools npx chrome-devtools-mcp@latest

26 个内置工具

| 工具名称 | 功能描述 |
|----------|----------|
| chrome_navigate | 导航到指定 URL |
| chrome_screenshot | 截取页面截图 |
| chrome_click | 点击元素 |
| chrome_fill | 填写表单 |
| chrome_select | 选择元素 |
| chrome_evaluate | 执行 JavaScript |
| chrome_hover | 鼠标悬停 |
| chrome_drag | 拖拽元素 |
| chrome_press_key | 按键盘按键 |
| chrome_scroll | 滚动页面 |
| chrome_go_back | 返回上一页 |
| chrome_go_forward | 前进一页 |
| chrome_refresh | 刷新页面 |
| chrome_new_tab | 打开新标签页 |
| chrome_close_tab | 关闭标签页 |
| chrome_switch_tab | 切换标签页 |
| chrome_get_tabs | 获取所有标签页 |
| chrome_get_cookies | 获取 cookies |
| chrome_set_cookies | 设置 cookies |
| chrome_delete_cookies | 删除 cookies |
| chrome_get_local_storage | 获取 localStorage |
| chrome_set_local_storage | 设置 localStorage |
| chrome_delete_local_storage | 删除 localStorage |
| chrome_get_session_storage | 获取 sessionStorage |
| chrome_set_session_storage | 设置 sessionStorage |
| chrome_execute_script | 执行脚本 |
| chrome_network | 网络请求监控 |

使用示例

# 在 Claude Code 中
用 Chrome 浏览器打开 https://example.com,然后完成以下任务:
1. 截取页面截图
2. 提取所有链接
3. 分析页面结构
4. 获取页面性能数据

实战案例

案例 1:自动化表单填写

使用 Chrome DevTools MCP 完成以下操作:
1. 打开 https://example.com/form
2. 填写用户名: testuser
3. 填写邮箱: test@example.com
4. 点击提交按钮
5. 截图保存结果

案例 2:网页数据提取

使用 Chrome DevTools MCP:
1. 打开 https://news.example.com
2. 提取所有文章标题
3. 提取所有链接地址
4. 生成结构化数据报告

六、GitHub MCP 详解

安装

claude mcp add github npx -y @modelcontextprotocol/server-github

配置

需要设置 GitHub Token:

# 环境变量方式
export GITHUB_TOKEN=your_github_token

# 或在配置文件中
{
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_TOKEN": "your_github_token_here"
      }
    }
  }
}

功能列表

| 工具名称 | 功能描述 |
|----------|----------|
| github_get_user | 获取用户信息 |
| github_get_repo | 获取仓库信息 |
| github_list_repos | 列出用户仓库 |
| github_search_repos | 搜索仓库 |
| github_create_issue | 创建 Issue |
| github_list_issues | 列出 Issues |
| github_get_issue | 获取 Issue 详情 |
| github_close_issue | 关闭 Issue |
| github_create_pull_request | 创建 PR |
| github_list_pull_requests | 列出 PRs |
| github_get_pull_request | 获取 PR 详情 |
| github_merge_pull_request | 合并 PR |
| github_create_branch | 创建分支 |
| github_get_file | 获取文件内容 |
| github_create_or_update_file | 创建或更新文件 |
| github_delete_file | 删除文件 |
| github_list_commits | 列出提交 |
| github_get_commit | 获取提交详情 |
| github_create_release | 创建 Release |

使用示例

# 查看仓库信息
使用 GitHub MCP 查看 anthropics/claude-code 仓库的最近 10 个 issues

# 创建 Issue
使用 GitHub MCP 在当前仓库创建一个新的 Issue:
标题: "功能建议:添加 X 功能"
内容: "详细描述..."

# 管理 PR
使用 GitHub MCP 审查最近提交的 PR,并添加评论

七、PostgreSQL MCP 详解

安装

claude mcp add postgres npx -y @modelcontextprotocol/server-postgres

配置

{
  "mcpServers": {
    "postgres": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-postgres"],
      "env": {
        "POSTGRES_CONNECTION_STRING": "postgresql://user:password@localhost:5432/dbname"
      }
    }
  }
}

功能列表

| 工具名称 | 功能描述 |
|----------|----------|
| postgres_query | 执行 SQL 查询 |
| postgres_list_tables | 列出所有表 |
| postgres_describe_table | 描述表结构 |
| postgres_list_indexes | 列出索引 |
| postgres_get_schema | 获取数据库 schema |

使用示例

# 列出所有表
使用 PostgreSQL MCP 列出当前数据库的所有表

# 查询数据
使用 PostgreSQL MCP 查询 users 表中最近 10 条记录

# 分析表结构
使用 PostgreSQL MCP 分析 orders 表的结构

八、MCP 服务器管理

启用/禁用 MCP 服务器

# 启用
claude mcp enable chrome-devtools

# 禁用
claude mcp disable chrome-devtools

更新 MCP 服务器

claude mcp update chrome-devtools

卸载 MCP 服务器

claude mcp remove chrome-devtools

配置 MCP 服务器

claude mcp configure chrome-devtools --option value

九、最佳实践

1. 安全性配置

{
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_TOKEN": "your_github_token_here"
      },
      "permissions": {
        "read": ["repos/*"],
        "write": ["repos/*"]
      }
    }
  }
}

2. 资源限制

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem"],
      "allowedRoots": ["/home/user/projects"],
      "maxResults": 100
    }
  }
}

3. 错误处理

# 测试 MCP 连接
claude mcp test <server-name>

# 查看 MCP 日志
claude mcp logs <server-name>

# 调试 MCP 问题
claude mcp debug <server-name>

十、常见问题

问题 1:MCP 服务器无法启动

可能原因:

  1. Node.js 版本不兼容
  2. 依赖未安装
  3. 端口被占用
  4. 权限不足

解决方案:

# 检查 Node.js 版本
node -v

# 重新安装
claude mcp remove <server-name>
claude mcp add <server-name>

# 查看日志
claude mcp logs <server-name>

问题 2:认证失败

可能原因:

  1. Token 过期
  2. Token 权限不足
  3. Token 格式错误

解决方案:

# 检查 Token
echo $GITHUB_TOKEN

# 更新 Token
claude mcp configure github --env.GITHUB_TOKEN=new_token

问题 3:连接超时

可能原因:

  1. 网络问题
  2. 服务器地址错误
  3. 防火墙阻止

解决方案:

# 测试网络连接
ping api.github.com

# 检查配置
cat ~/.claude/mcp.json

# 查看连接状态
claude mcp status

MCP 是 Claude Code 强大的扩展机制,通过 MCP 可以为 Claude Code 添加各种外部能力,极大地扩展了其应用范围。

参考资源