Claude Code MCP 精选
一个实现了 Claude Code 作为模型上下文协议(Model Context Protocol, MCP)服务器的方案,它可以通过标准化的 MCP 接口来使用 Claude 的软件工程能力(代码生成、编辑、审查和文件操作)。
Tools
bash
Execute a shell command
readFile
Read a file from the local filesystem
listFiles
Lists files and directories in a given path
searchGlob
Search for files matching a pattern
grep
Search for text in files
think
A tool for thinking through complex problems
codeReview
Review code for bugs, security issues, and best practices
editFile
Create or edit a file
README
Claude Code MCP
Claude Code MCP 是 Claude Code 作为 模型上下文协议 (MCP) 服务器的实现。该项目允许您通过标准化的 MCP 接口使用 Claude Code 强大的软件工程能力。
什么是 Claude Code?
Claude Code 是 Anthropic 的 CLI 工具,用于软件工程任务,由 Claude 提供支持。它提供了一组工具和功能,可以帮助开发人员:
- 代码生成和编辑
- 代码审查和分析
- 调试和故障排除
- 文件系统操作
- Shell 命令执行
- 项目探索和理解
原始实现是一个 JavaScript 模块,它定义了与 Claude API 交互的提示和工具。
什么是 MCP?
模型上下文协议 (MCP) 是 AI 模型的标准化接口,它支持跨不同模型和提供商的一致交互模式。 MCP 定义:
- 工具 (Tools):模型可以调用以执行操作的函数
- 资源 (Resources):模型可以访问的外部数据
- 提示 (Prompts):预定义的对话模板
通过将 Claude Code 实现为 MCP 服务器,我们可以使其功能可用于任何 MCP 兼容的客户端,从而实现更大的互操作性和灵活性。
特性
- Claude Code 功能作为 MCP 服务器的完整实现
- 提供用于文件操作、shell 命令和代码分析的工具
- 公开用于访问文件系统和环境信息的资源
- 包括用于通用 CLI 交互和代码审查的提示
- 与任何 MCP 客户端兼容
- 具有完整类型安全的 TypeScript 实现
安装
# 克隆仓库
git clone https://github.com/auchenberg/claude-code-mcp.git
cd claude-code-mcp
# 安装依赖
npm install
# 构建项目
npm run build
用法
作为独立服务器运行
# 启动服务器
npm start
与 MCP 客户端一起使用
Claude Code MCP 可以与任何 MCP 客户端一起使用。 以下是如何使用 MCP TypeScript SDK 连接到它的示例:
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";
const transport = new StdioClientTransport({
command: "node",
args: ["dist/index.js"]
});
const client = new Client(
{
name: "example-client",
version: "1.0.0"
},
{
capabilities: {
prompts: {},
resources: {},
tools: {}
}
}
);
await client.connect(transport);
// 通过 MCP 使用 Claude Code
const result = await client.callTool({
name: "bash",
arguments: {
command: "ls -la"
}
});
console.log(result);
可用工具
Claude Code MCP 提供以下工具:
- bash: 执行 shell 命令,具有安全限制和超时选项
- readFile: 从文件系统读取文件,具有行偏移量和限制选项
- listFiles: 列出文件和目录,具有详细的元数据
- searchGlob: 搜索与 glob 模式匹配的文件
- grep: 在文件中搜索文本,支持正则表达式模式
- think: 用于思考复杂问题的空操作工具
- codeReview: 分析和审查代码,查找错误、安全问题和最佳实践
- editFile: 创建或编辑文件,具有指定的内容
工具详情
bash
{
command: string; // 要执行的 shell 命令
timeout?: number; // 可选的超时时间,以毫秒为单位 (最大 600000)
}
bash 工具包含安全限制,可防止执行潜在的危险命令,如 curl
、wget
等。
readFile
{
file_path: string; // 要读取的文件的绝对路径
offset?: number; // 开始读取的行号
limit?: number; // 要读取的行数
}
searchGlob
{
pattern: string; // 用于匹配文件的 glob 模式
path?: string; // 要搜索的目录(默认为当前工作目录)
}
grep
{
pattern: string; // 要搜索的正则表达式模式
path?: string; // 要搜索的目录(默认为当前工作目录)
include?: string; // 要包含在搜索中的文件模式(例如 "*.js", "*.{ts,tsx}")
}
可用资源
-
file: 访问文件内容 (
file://{path}
)- 提供对文件内容的直接访问,具有适当的错误处理
- 返回指定文件的完整文本内容
-
directory: 列出目录内容 (
dir://{path}
)- 返回文件信息对象的 JSON 数组
- 每个对象包括名称、路径、isDirectory、大小和修改日期
-
environment: 获取系统环境信息 (
env://info
)- 返回有关系统环境的信息
- 包括 Node.js 版本、npm 版本、OS 信息和环境变量
可用提示
-
generalCLI: Claude Code 的通用 CLI 提示
- 为 Claude 提供了一个全面的系统提示,使其充当 CLI 工具
- 包括关于语气、风格、主动性和遵循约定的指导方针
- 自动包含环境详细信息
-
codeReview: 用于审查代码的提示
- 用于代码审查任务的专用提示
- 分析代码中的错误、安全漏洞、性能问题和最佳实践
-
prReview: 用于审查拉取请求的提示
- 用于 PR 审查任务的专用提示
- 分析 PR 更改并提供全面的反馈
-
initCodebase: 使用代码库文档初始化一个新的 CLAUDE.md 文件
- 为构建/lint/test 命令和代码风格指南创建文档
- 适用于使用 Claude Code 设置新项目
开发
# 在开发模式下运行,具有自动重新加载功能
npm run dev
架构
Claude Code MCP 采用模块化架构构建:
claude-code-mcp/
├── src/
│ ├── server/
│ │ ├── claude-code-server.ts # 主要服务器设置
│ │ ├── tools.ts # 工具实现
│ │ ├── prompts.ts # 提示定义
│ │ └── resources.ts # 资源实现
│ ├── utils/
│ │ ├── bash.ts # Shell 命令实用程序
│ │ └── file.ts # 文件系统实用程序
│ └── index.ts # 入口点
├── package.json
├── tsconfig.json
└── README.md
该实现遵循以下关键原则:
- 模块化 (Modularity):每个组件(工具、提示、资源)都在单独的模块中实现
- 类型安全 (Type Safety):所有组件的完整 TypeScript 类型定义
- 错误处理 (Error Handling):所有操作的全面错误处理
- 安全性 (Security):对潜在危险操作的安全限制
实现细节
MCP 服务器设置
主服务器在 claude-code-server.ts
中设置:
export async function setupClaudeCodeServer(server: McpServer): Promise<void> {
// 设置 Claude Code 工具
setupTools(server);
// 设置 Claude Code 提示
setupPrompts(server);
// 设置 Claude Code 资源
setupResources(server);
}
工具实现
工具使用 MCP SDK 的工具注册方法实现:
server.tool(
"toolName",
"Tool description",
{
// 工具参数的 Zod 模式
param1: z.string().describe("Parameter description"),
param2: z.number().optional().describe("Optional parameter description")
},
async ({ param1, param2 }) => {
// 工具实现
return {
content: [{ type: "text", text: "Result" }]
};
}
);
资源实现
资源使用 MCP SDK 的资源注册方法实现:
server.resource(
"resourceName",
new ResourceTemplate("resource://{variable}", { list: undefined }),
async (uri, variables) => {
// 资源实现
return {
contents: [{
uri: uri.href,
text: "Resource content"
}]
};
}
);
许可证
MIT
致谢
- Anthropic 的 Claude Code
- 模型上下文协议
- MCP TypeScript SDK
贡献
欢迎贡献! 请随时提交 Pull Request。
免责声明
本项目与 Anthropic 没有官方关联。 Claude Code 是 Anthropic 的产品,本项目是 Claude Code 作为 MCP 服务器的独立实现。
推荐服务器
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
Excel MCP Server
一个模型上下文协议服务器,使 AI 助手能够读取和写入 Microsoft Excel 文件,支持诸如 xlsx、xlsm、xltx 和 xltm 等格式。
Playwright MCP Server
提供一个利用模型上下文协议的服务器,以实现类人浏览器的自动化,该服务器使用 Playwright,允许控制浏览器行为,例如导航、元素交互和滚动。
MCP Package Docs Server
促进大型语言模型高效访问和获取 Go、Python 和 NPM 包的结构化文档,通过多语言支持和性能优化来增强软件开发。
@kazuph/mcp-taskmanager
用于任务管理的模型上下文协议服务器。它允许 Claude Desktop(或任何 MCP 客户端)在基于队列的系统中管理和执行任务。
Apple MCP Server
通过 MCP 协议与 Apple 应用(如“信息”、“备忘录”和“通讯录”)进行交互,从而使用自然语言发送消息、搜索和打开应用内容。

Supabase MCP Server
一个模型上下文协议(MCP)服务器,它提供对 Supabase 管理 API 的编程访问。该服务器允许 AI 模型和其他客户端通过标准化的接口来管理 Supabase 项目和组织。
mermaid-mcp-server
一个模型上下文协议 (MCP) 服务器,用于将 Mermaid 图表转换为 PNG 图像。