使用说明
带MCP服务器的Claude代码
项目概述
该项目使Claude能够使用模型上下文协议(MCP)服务器来增强功能,包括web搜索、GitHub集成、文件操作、数据库访问和通信工具。
关键概念
- MCP(模型上下文协议):LLM与外部工具和服务交互的标准化方式
- 参考MCP服务器:位于
$HOME/dev/mcp-servers-repo(克隆 github/modelcontextprotocol/servers) - 本地MCP服务器:我们自己的实现位于
$HOME/dev/claude-code/mcp-servers/
参考服务器应被视为只读。我们的本地服务器将是我们自己的实现,一些基于参考服务器,但有扩展和改进。
目录结构
docs/-参考文件mcp-servers/-我们的本地MCP服务器实现archive/-已弃用代码组件的存储data/-服务器数据存储(SQLite数据库、内存文件等)scripts/-用于设置和测试的实用程序脚本src/-Python模块和实用程序
MCP服务器配置
配置由处理 claude-mcp 项目根目录下的脚本。此脚本:
- 为服务器路径设置环境变量
- 使用Claude注册服务器
claude mcp add命令 - 使用基于包的服务器(来自npm/pypi)和本地实现
# Script path
/Users/williambrown/dev/claude-code/claude-mcp
# List all registered servers
claude mcp list
可用的MCP服务器
| 服务器 | 目的 | 来源 |
|---|---|---|
| 勇敢的搜索 | 网络搜索功能 | npm包 |
| github | github仓库操作 | npm包 |
| 文件系统 | 本地文件系统操作 | npm包 |
| fetch | 网页抓取 | PyPI包 |
| 内存 | 持久内存知识图 | npm包 |
| sqlite | 数据库操作 | 本地实现 |
| slack | slack通信 | npm包 |
| 线性 | 线性问题跟踪 | npm包 |
| e2b | 代码执行沙盒 | npm包 |
所需的环境变量
BRAVE_API_KEY-对于勇敢的搜索服务器GITHUB_TOKEN-GitHub运营LINEAR_API_KEY-用于线性问题跟踪SLACK_BOT_TOKEN和SLACK_TEAM_ID-用于Slack通信E2B_API_KEY-用于代码执行沙盒ALLOWED_PATHS-用于文件系统访问控制(默认为项目根)
开发方法
我们正在对MCP服务器采取双管齐下的方法:
- 使用现有服务器:通过npm/PyPI包利用已建立的MCP服务器实现标准功能
- 构建自定义服务器:开发我们自己的扩展功能和实验实现
所有遗留或未维护的代码都将移动到 archive/ 目录,以保持主代码库的干净和专注。
开发指南
包管理
- 使用
uv用于Python包管理(从不pip) - 安装:
uv add package - 运行工具:
uv run tool - TypeScript:使用npm进行包管理
代码质量
- 所有Python和TypeScript代码都需要类型提示
- 公共API必须具有文档字符串
- 功能必须集中且小
- 行长度:最多88个字符
- 遵循Python的PEP标准
- 遵循TypeScript的现有模式
测试
- 框架:
uv run pytest - 异步测试:使用anyio,而不是asyncio
- 覆盖范围:测试边缘情况和错误
- 新功能需要测试
- Bug修复需要回归测试
编码原则
- 使用干净、模块化的抽象
- 避免代码重复
- 确保向后兼容性
- 记录所有扩展和与参考实现的差异
- 努力实现易于维护的最少干净代码
Git工作流
- 在独立的分支机构中发展,迅速合并为主要分支机构
- 对于用户报告的修复:
git commit --trailer "Reported-by:<user>" - 关于GitHub问题:
git commit --trailer "Github-Issue:#<number>" - 切勿提及与他人合著或用于创建提交/PR的工具
MCP服务器开发指南
在开发我们自己的本地MCP服务器时:
-
首先参考实施:
- 研究中的原始服务器
MCP_REPO_PATH - 了解其API、行为和实现细节
- 记录关键功能和特征
- 研究中的原始服务器
-
实施策略:
- 首先,精确地模拟参考服务器
- 基本功能正常工作后,添加扩展
- 确保向后兼容性
-
代码质量:
- 使用正确的类型(TypeScript/Python类型提示)
- 添加全面的文档
- 实施适当的错误处理
- 遵循一致的命名约定
- 为所有功能编写测试
有关项目标准、代码样式和特定服务器实现的详细信息,请参阅 CLAUDE.md.