Claude Code MCP 是 Claude Code 在 Model Context Protocol (MCP) 服务器上的实现。此项目允许您通过标准化的 MCP 接口使用 Claude Code 强大的软件工程能力。
Claude Code MCP 是由 DevinAI 自动生成的项目,DevinAI 被提示分析 Claude Code 的代码库,并生成一个 MCP 服务器。
这是一个概念验证项目,我不建议任何人使用。
Claude Code 是 Anthropic 的用于软件工程任务的 CLI 工具,由 Claude 提供支持。它提供了一组工具和能力,帮助开发者进行:
原始实现是一个定义了与 Claude API 交互的提示和工具的 JavaScript 模块。
Model Context Protocol (MCP) 是一种标准化接口,适用于 AI 模型,使不同模型和提供商之间可以有一致的交互模式。MCP 定义了:
通过将 Claude Code 实现为 MCP 服务器,我们使其功能可供任何兼容 MCP 的客户端使用,从而提高了互操作性和灵活性。
# 克隆仓库
git clone https://github.com/auchenberg/claude-code-mcp.git
cd claude-code-mcp
# 安装依赖
npm install
# 构建项目
npm run build
# 启动服务器
npm start
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 提供以下工具:
{
command: string; // 要执行的 shell 命令
timeout?: number; // 可选超时时间(最大 600000 毫秒)
}
bash 工具包括安全限制,防止执行潜在危险的命令如 curl、wget 等。
{
file_path: string; // 要读取的文件的绝对路径
offset?: number; // 开始读取的行号
limit?: number; // 要读取的行数
}
{
pattern: string; // 要匹配文件的 glob 模式
path?: string; // 要搜索的目录(默认为当前工作目录)
}
{
pattern: string; // 要搜索的正则表达式模式
path?: string; // 要搜索的目录(默认为当前工作目录)
include?: string; // 要包含在搜索中的文件模式(例如 "*.js","*.{ts,tsx}")
}
file:访问文件内容 (file://{path})
directory:列出目录内容 (dir://{path})
environment:获取系统环境信息 (env://info)
generalCLI:Claude Code 的通用 CLI 提示
codeReview:代码审查提示
prReview:审查拉取请求的提示
initCodebase:初始化包含代码库文档的新 CLAUDE.md 文件
# 在开发模式下运行,自动重新加载
npm run dev
Claude Code MCP 使用模块化架构构建:
claude-code-mcp/
├── src/
│ ├── server/
│ │ ├── claude-code-server.ts # 主服务器设置
│ │ ├── tools.ts # 工具实现
│ │ ├── prompts.ts # 提示定义
│ │ └── resources.ts # 资源实现
│ ├── utils/
│ │ ├── bash.ts # 命令行工具
│ │ └── file.ts # 文件系统工具
│ └── index.ts # 入口点
├── package.json
├── tsconfig.json
└── README.md
实现遵循以下关键原则:
主服务器在 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",
"工具描述",
{
// Zod 模式工具参数
param1: z.string().describe("参数描述"),
param2: z.number().optional().describe("可选参数描述")
},
async ({ param1, param2 }) => {
// 工具实现
return {
content: [{ type: "text", text: "结果" }]
};
}
);
资源使用 MCP SDK 的资源注册方法实现:
server.resource(
"resourceName",
new ResourceTemplate("resource://{variable}", { list: undefined }),
async (uri, variables) => {
// 资源实现
return {
contents: [{
uri: uri.href,
text: "资源内容"
}]
};
}
);
MIT
欢迎贡献!请随时提交 Pull Request。
本项目未得到 Anthropic 的正式认可。Claude Code 是 Anthropic 的产品,而本项目是作为 MCP 服务器的独立实现。