模型上下文协议服务器

该项目通过模型上下文协议(MCP)服务器为Claude提供增强功能,包括网络搜索、GitHub集成、文件操作、数据库访问和通信工具。

  • by willccbb
  • TypeScript
  • 本地部署
  • 121 星标
  • 更新于
在 GitHub 查看 willccbb/claude-code-mcp

使用说明

带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 项目根目录下的脚本。此脚本:

  1. 为服务器路径设置环境变量
  2. 使用Claude注册服务器 claude mcp add 命令
  3. 使用基于包的服务器(来自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服务器采取双管齐下的方法:

  1. 使用现有服务器:通过npm/PyPI包利用已建立的MCP服务器实现标准功能
  2. 构建自定义服务器:开发我们自己的扩展功能和实验实现

所有遗留或未维护的代码都将移动到 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服务器时:

  1. 首先参考实施:

    • 研究中的原始服务器 MCP_REPO_PATH
    • 了解其API、行为和实现细节
    • 记录关键功能和特征
  2. 实施策略:

    • 首先,精确地模拟参考服务器
    • 基本功能正常工作后,添加扩展
    • 确保向后兼容性
  3. 代码质量:

    • 使用正确的类型(TypeScript/Python类型提示)
    • 添加全面的文档
    • 实施适当的错误处理
    • 遵循一致的命名约定
    • 为所有功能编写测试

有关项目标准、代码样式和特定服务器实现的详细信息,请参阅 CLAUDE.md.