Claude Code MCP

Claude Code MCP
精选

一个实现了 Claude Code 作为模型上下文协议(Model Context Protocol, MCP)服务器的方案,它可以通过标准化的 MCP 接口来使用 Claude 的软件工程能力(代码生成、编辑、审查和文件操作)。

开发者工具
文件系统
操作系统自动化
本地
JavaScript
访问服务器

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 工具包含安全限制,可防止执行潜在的危险命令,如 curlwget 等。

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

该实现遵循以下关键原则:

  1. 模块化 (Modularity):每个组件(工具、提示、资源)都在单独的模块中实现
  2. 类型安全 (Type Safety):所有组件的完整 TypeScript 类型定义
  3. 错误处理 (Error Handling):所有操作的全面错误处理
  4. 安全性 (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

致谢

贡献

欢迎贡献! 请随时提交 Pull Request。

免责声明

本项目与 Anthropic 没有官方关联。 Claude Code 是 Anthropic 的产品,本项目是 Claude Code 作为 MCP 服务器的独立实现。

推荐服务器

Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
Excel MCP Server

Excel MCP Server

一个模型上下文协议服务器,使 AI 助手能够读取和写入 Microsoft Excel 文件,支持诸如 xlsx、xlsm、xltx 和 xltm 等格式。

精选
本地
Go
Playwright MCP Server

Playwright MCP Server

提供一个利用模型上下文协议的服务器,以实现类人浏览器的自动化,该服务器使用 Playwright,允许控制浏览器行为,例如导航、元素交互和滚动。

精选
本地
TypeScript
MCP Package Docs Server

MCP Package Docs Server

促进大型语言模型高效访问和获取 Go、Python 和 NPM 包的结构化文档,通过多语言支持和性能优化来增强软件开发。

精选
本地
TypeScript
@kazuph/mcp-taskmanager

@kazuph/mcp-taskmanager

用于任务管理的模型上下文协议服务器。它允许 Claude Desktop(或任何 MCP 客户端)在基于队列的系统中管理和执行任务。

精选
本地
JavaScript
Apple MCP Server

Apple MCP Server

通过 MCP 协议与 Apple 应用(如“信息”、“备忘录”和“通讯录”)进行交互,从而使用自然语言发送消息、搜索和打开应用内容。

精选
本地
TypeScript
Supabase MCP Server

Supabase MCP Server

一个模型上下文协议(MCP)服务器,它提供对 Supabase 管理 API 的编程访问。该服务器允许 AI 模型和其他客户端通过标准化的接口来管理 Supabase 项目和组织。

精选
JavaScript
mermaid-mcp-server

mermaid-mcp-server

一个模型上下文协议 (MCP) 服务器,用于将 Mermaid 图表转换为 PNG 图像。

精选
JavaScript