克劳德代码 MCP
Claude Code MCP 是Claude Code作为模型上下文协议 (MCP)服务器的实现。该项目允许您通过标准化的 MCP 接口使用 Claude Code 强大的软件工程功能。
⚠️ 免责声明 ⚠️
Claude Code MCP 是由 DevinAI 自动生成的项目,DevinAI 受提示分析 Claude Code 代码库,并生成 MCP 服务器。
这是一个概念证明,我不建议任何人使用。
什么是克劳德密码?
Claude Code 是 Anthropic 开发的用于软件工程任务的 CLI 工具,由 Claude 提供支持。它提供了一系列工具和功能,可帮助开发人员完成以下工作:
代码生成和编辑
代码审查和分析
调试和故障排除
文件系统操作
Shell命令执行
项目探索与理解
原始实现可作为 JavaScript 模块使用,该模块定义了与 Claude 的 API 交互的提示和工具。
Related MCP server: Gemini MCP
什么是 MCP?
模型上下文协议 (MCP) 是 AI 模型的标准化接口,可实现不同模型和提供商之间一致的交互模式。MCP 定义:
工具:模型可以调用来执行操作的函数
资源:模型可以访问的外部数据
提示:预定义对话模板
通过将 Claude Code 实现为 MCP 服务器,我们使其功能可供任何兼容 MCP 的客户端使用,从而实现更高的互操作性和灵活性。
特征
作为 MCP 服务器全面实现 Claude Code 功能
提供文件操作、shell 命令和代码分析的工具
公开用于访问文件系统和环境信息的资源
包括一般 CLI 交互和代码审查的提示
与任何 MCP 客户端兼容
具有完全类型安全性的 TypeScript 实现
安装
# Clone the repository
git clone https://github.com/auchenberg/claude-code-mcp.git
cd claude-code-mcp
# Install dependencies
npm install
# Build the project
npm run build用法
作为独立服务器运行
# Start the server
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);
// Use Claude Code through MCP
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 :创建或编辑具有指定内容的文件
工具详细信息
狂欢
{
command: string; // The shell command to execute
timeout?: number; // Optional timeout in milliseconds (max 600000)
}bash 工具包含安全限制,可防止执行潜在危险的命令,如curl 、 wget等。
读文件
{
file_path: string; // The absolute path to the file to read
offset?: number; // The line number to start reading from
limit?: number; // The number of lines to read
}搜索全局
{
pattern: string; // The glob pattern to match files against
path?: string; // The directory to search in (defaults to current working directory)
}grep
{
pattern: string; // The regular expression pattern to search for
path?: string; // The directory to search in (defaults to current working directory)
include?: string; // File pattern to include in the search (e.g. "*.js", "*.{ts,tsx}")
}可用资源
file :访问文件内容(
file://{path})提供对文件内容的直接访问,并进行适当的错误处理
返回指定文件的全文内容
目录:列出目录内容(
dir://{path})返回文件信息对象的 JSON 数组
每个对象包括名称、路径、isDirectory、大小和修改日期
environment :获取系统环境信息(
env://info)返回有关系统环境的信息
包括 Node.js 版本、npm 版本、操作系统信息和环境变量
可用提示
generalCLI :Claude 代码的通用 CLI 提示符
为 Claude 提供全面的系统提示,使其充当 CLI 工具
包括语气、风格、主动性和遵循惯例的指导
自动包含环境详细信息
codeReview :提示审查代码
代码审查任务的专门提示
分析代码中的错误、安全漏洞、性能问题和最佳实践
prReview :提示审查拉取请求
PR 审核任务的专门提示
分析 PR 变化并提供全面的反馈
initCodebase :使用代码库文档初始化一个新的 CLAUDE.md 文件
为 build/lint/test 命令和代码风格指南创建文档
有助于使用 Claude Code 创建新项目
发展
# Run in development mode with auto-reload
npm run dev建筑学
Claude Code MCP 采用模块化架构构建:
claude-code-mcp/
├── src/
│ ├── server/
│ │ ├── claude-code-server.ts # Main server setup
│ │ ├── tools.ts # Tool implementations
│ │ ├── prompts.ts # Prompt definitions
│ │ └── resources.ts # Resource implementations
│ ├── utils/
│ │ ├── bash.ts # Shell command utilities
│ │ └── file.ts # File system utilities
│ └── index.ts # Entry point
├── package.json
├── tsconfig.json
└── README.md实施遵循以下关键原则:
模块化:每个组件(工具、提示、资源)都在单独的模块中实现
类型安全:所有组件的完整 TypeScript 类型定义
错误处理:针对所有操作的全面错误处理
安全:针对潜在危险操作的安全限制
实现细节
MCP 服务器设置
主服务器在claude-code-server.ts中设置:
export async function setupClaudeCodeServer(server: McpServer): Promise<void> {
// Set up Claude Code tools
setupTools(server);
// Set up Claude Code prompts
setupPrompts(server);
// Set up Claude Code resources
setupResources(server);
}工具实现
工具是使用 MCP SDK 的工具注册方法实现的:
server.tool(
"toolName",
"Tool description",
{
// Zod schema for tool arguments
param1: z.string().describe("Parameter description"),
param2: z.number().optional().describe("Optional parameter description")
},
async ({ param1, param2 }) => {
// Tool implementation
return {
content: [{ type: "text", text: "Result" }]
};
}
);资源实施
资源使用MCP SDK的资源注册方法实现:
server.resource(
"resourceName",
new ResourceTemplate("resource://{variable}", { list: undefined }),
async (uri, variables) => {
// Resource implementation
return {
contents: [{
uri: uri.href,
text: "Resource content"
}]
};
}
);执照
麻省理工学院
致谢
克劳德代码(Anthropic)
贡献
欢迎贡献代码!欢迎提交 Pull 请求。
免责声明
该项目与 Anthropic 无正式关联。Claude Code 是 Anthropic 的产品,而本项目是 Claude Code 作为 MCP 服务器的独立实现。