12.3 MCP 服务器管理

6 分钟阅读

学习如何管理已配置的 MCP 服务器,包括列出、查看详情、删除和检查状态。

列出服务器#

列出所有服务器#

claude mcp list

输出示例:

bash
已配置的 MCP 服务器: 本地范围: - github: https://api.githubcopilot.com/mcp/ - sentry: https://mcp.sentry.dev/mcp 项目范围: - database: stdio server - api: http server 用户范围: - formatter: stdio server

列出特定范围的服务器#

列出本地范围服务器

claude mcp list --scope local

列出项目范围服务器

claude mcp list --scope project

列出用户范围服务器

claude mcp list --scope user

bash
## 获取服务器详情

### 基本用法

claude mcp get <server-name>

示例:查看 GitHub 服务器详情#

bash
claude mcp get github

输出示例:

bash
服务器名称: github
传输方式: http
URL: https://api.githubcopilot.com/mcp/
范围: local
状态: 已连接
工具: 15
资源: 5

示例:查看数据库服务器详情#

bash
claude mcp get database

输出示例:

bash
服务器名称: database
传输方式: stdio
命令: npx -y @bytebase/dbhub
参数: --dsn "postgresql://readonly:pass@prod.db.com:5432/analytics"
范围: project
状态: 已连接
工具: 8
资源: 3

删除服务器#

基本用法#

bash
claude mcp remove <server-name>

示例:删除 GitHub 服务器#

bash
claude mcp remove github

输出:

bash
确认删除服务器 github? (y/n): y
服务器 github 已成功删除

删除特定范围的服务器#

bash
# 删除本地范围服务器 claude mcp remove github --scope local # 删除项目范围服务器 claude mcp remove database --scope project # 删除用户范围服务器 claude mcp remove formatter --scope user

批量删除#

bash
# 删除多个服务器 claude mcp remove github sentry database

检查服务器状态#

在 Claude Code 中检查#

bash
/mcp

输出示例:

bash
MCP 服务器状态:
本地范围:
✅ github: 已连接 (15 工具, 5 资源)
✅ sentry: 已连接 (10 工具, 3 资源)
项目范围:
✅ database: 已连接 (8 工具, 3 资源)
❌ api: 连接错误
用户范围:
✅ formatter: 已连接 (5 工具, 0 资源)

检查特定服务器状态#

bash
# 检查 GitHub 服务器状态 claude mcp get github

输出示例:

bash
GitHub 服务器状态:
- 状态: 已连接
- 响应时间: 100ms
- 最后检查: 2 分钟前
- 工具数量: 15
- 资源数量: 5

测试服务器连接#

测试所有服务器#

bash
# 测试所有 MCP 服务器连接 claude mcp list

输出示例:

bash
测试 MCP 服务器连接:
✅ github: 连接成功 (50ms)
✅ sentry: 连接成功 (80ms)
✅ database: 连接成功 (30ms)
❌ api: 连接失败 - 超时

测试特定服务器#

bash
# 测试 GitHub 服务器连接 claude mcp get github

输出示例:

bash
测试 GitHub 服务器连接:
✅ 连接成功
响应时间: 50ms
服务器版本: 1.2.3

更新服务器配置#

更新 HTTP 服务器#

bash
# 删除旧配置 claude mcp remove github # 添加新配置 claude mcp add --transport http github https://api.githubcopilot.com/mcp/v2

更新 stdio 服务器#

bash
# 删除旧配置 claude mcp remove database # 添加新配置 claude mcp add --transport stdio database \ --env DB_URL=new-db-url \ -- npx -y @bytebase/dbhub

更新环境变量#

bash
# 对于项目范围服务器,编辑 .mcp.json vim .mcp.json
json
{ "mcpServers": { "database": { "command": "npx", "args": ["-y", "@bytebase/dbhub"], "env": { "DB_URL": "${NEW_DB_URL:-postgresql://localhost/db}" } } } }

重置配置#

重置项目选择#

bash
claude mcp reset-project-choices

此命令将清除所有项目范围 MCP 服务器的批准选择。

重置所有配置#

bash
# 删除所有本地范围服务器 claude mcp list --scope local | awk '{print $1}' | xargs claude mcp remove # 删除所有用户范围服务器 claude mcp list --scope user | awk '{print $1}' | xargs claude mcp remove

监控服务器性能#

查看性能统计#

bash
# 显示 MCP 服务器性能统计 claude mcp list

输出示例:

bash
MCP 服务器性能统计:

github:
- 平均响应时间: 100ms
- 总调用次数: 150
- 成功率: 99.3%
- 最后调用: 1 分钟前

sentry:
- 平均响应时间: 200ms
- 总调用次数: 50
- 成功率: 100%
- 最后调用: 5 分钟前

database:
- 平均响应时间: 50ms
- 总调用次数: 300
- 成功率: 98.7%
- 最后调用: 30 秒前

查看错误日志#

bash
# 显示 MCP 服务器错误日志 claude --verbose

输出示例:

bash
MCP 服务器错误日志:

api:
- [2024-01-15 10:30:00] 连接超时
- [2024-01-15 10:35:00] API 限流

database:
- [2024-01-15 10:20:00] 查询超时
- [2024-01-15 10:25:00] 连接失败

故障排除#

服务器连接失败#

问题: 服务器无法连接

解决方案:

bash
# 1. 检查服务器状态 /mcp # 2. 测试连接 claude mcp list # 3. 查看错误日志 claude --verbose # 4. 验证配置 claude mcp get server-name # 5. 重新配置服务器 claude mcp remove server-name claude mcp add --transport http server-name <url>

服务器响应缓慢#

问题: 服务器响应时间过长

解决方案:

bash
# 1. 查看性能统计 claude mcp list # 2. 检查网络连接 ping api.example.com # 3. 增加超时设置 MCP_TIMEOUT=30000 claude # 4. 优化服务器配置 # 考虑使用更快的传输方式

工具调用失败#

问题: MCP 工具调用失败

解决方案:

bash
# 1. 检查服务器状态 /mcp # 2. 验证工具参数 # 检查工具参数 # 3. 查看错误日志 claude --verbose # 4. 重试工具调用 # 重试工具调用

配置文件错误#

问题: .mcp.json 配置文件有错误

解决方案:

bash
# 1. 验证 JSON 语法 cat .mcp.json | jq . # 2. 检查环境变量 echo $API_KEY # 3. 查看错误日志 claude --verbose # 4. 修复配置文件 vim .mcp.json

最佳实践#

1. 定期检查服务器状态#

bash
# 每天检查一次 /mcp

2. 监控性能#

bash
# 定期查看性能统计 claude mcp list # 识别慢速服务器 # 优化配置或更换服务器

3. 及时删除不需要的服务器#

bash
# 定期清理不使用的服务器 claude mcp list claude mcp remove unused-server

4. 备份配置#

bash
# 备份 .mcp.json cp .mcp.json .mcp.json.backup # 备份用户配置 cp ~/.claude/mcp.json ~/.claude/mcp.json.backup

5. 文档化配置#

bash
# 创建配置文档 echo "MCP 服务器配置说明" > MCP_CONFIG.md echo "- github: 用于代码审查" >> MCP_CONFIG.md echo "- database: 用于数据查询" >> MCP_CONFIG.md

自动化管理#

使用脚本管理#

bash
#!/bin/bash # mcp-manager.sh # 列出服务器 list_servers() { claude mcp list } # 添加服务器 add_server() { claude mcp add "$@" } # 删除服务器 remove_server() { claude mcp remove "$@" } # 检查状态 check_status() { echo "> /mcp" | claude } # 主函数 case "$1" in list) list_servers ;; add) shift; add_server "$@" ;; remove) shift; remove_server "$@" ;; status) check_status ;; *) echo "用法: $0 {list|add|remove|status}" ;; esac

定期维护#

bash
#!/bin/bash # mcp-maintenance.sh # 检查所有服务器状态 echo "检查 MCP 服务器状态..." claude mcp list # 测试连接 echo "测试服务器连接..." claude mcp list # 查看性能统计 echo "查看性能统计..." claude mcp list # 备份配置 echo "备份配置..." cp ~/.claude/mcp.json ~/.claude/mcp.json.backup.$(date +%Y%m%d)

设置定时任务#

bash
# 添加到 crontab crontab -e # 每天凌晨 2 点运行维护脚本 0 2 * * * /path/to/mcp-maintenance.sh

标记本节教程为已读

记录您的学习进度,方便后续查看。