项目简介
Ceregrep Client 最初是一个模块化的无头代理框架,通过 TypeScript SDK、Python SDK 或 CLI 提供 Bash 和 Ripgrep 等工具支持,帮助 LLM 代理分析和理解代码库。
本仓库同时包含了一个 Ceregrep MCP 服务器 实现('mcp-server' 目录下的 Python 代码)。这个 MCP 服务器的目的是将 Ceregrep 自身作为一个“超级工具”,通过 MCP 协议暴露给其他 LLM 客户端或代理。这意味着,一个顶层 LLM 代理可以通过调用 Ceregrep MCP 服务器提供的 'ceregrep_query' 工具,来委托 Ceregrep 代理进行复杂的代码分析、上下文查找和架构理解任务。这种“代理调用代理”的模式实现了强大的递归代理功能。
主要功能点
- 代码分析与上下文查找:Ceregrep 核心功能,通过 Bash 和 Grep 工具执行命令、搜索文件,结合 LLM 进行深入的代码理解。
- 作为 MCP 服务器运行:将 Ceregrep 的能力包装成一个 MCP 服务,通过 JSON-RPC 协议与 MCP 客户端通信。
- 注册与执行 MCP 工具:服务器会注册 'ceregrep_query' 工具,允许客户端调用以执行 Ceregrep 代理的查询任务。
- 标准化通信:通过 Stdio 等传输协议,以标准化的 JSON-RPC 格式接收 LLM 客户端请求并返回响应。
- 能力声明:服务器向客户端声明其提供的工具和能力。
- 递归代理模式:允许一个 LLM 代理调用 Ceregrep MCP 服务器作为子代理,实现更复杂的任务委托和专业化处理。
安装步骤
-
安装 Ceregrep CLI (Node.js/npm): 首先,确保你已经安装了 Node.js (版本 >= 18.0.0)。Ceregrep MCP 服务器需要调用 Ceregrep CLI 来执行实际的查询任务。
npm install -g ceregrep或从源代码安装(开发者推荐):
git clone https://github.com/swarmcode/ceregrep-client.git cd ceregrep-client npm install npm run build npm link # 全局链接 ceregrep 命令 -
安装 Ceregrep MCP 服务器 (Python/pip): 确保你已安装 Python 3。Ceregrep MCP 服务器本身是一个 Python 包。
pip install ceregrep-mcp
服务器配置
Ceregrep MCP 服务器是为 MCP 客户端(如 Anthropic Claude Desktop)提供服务的。你需要在 MCP 客户端的配置文件中添加 Ceregrep MCP 服务器的启动信息。
以下是一个示例,展示如何在 MCP 客户端(例如 '~/Library/Application Support/Claude/claude_desktop_config.json' 或其他支持 MCP 的应用配置)中配置 Ceregrep MCP 服务器:
{ "mcpServers": { "ceregrep": { "command": "ceregrep-mcp", "args": [], "description": "Ceregrep MCP 服务器,提供代码分析与上下文查找工具。" } } }
- 'ceregrep': 这是你给这个 MCP 服务器起的名称,可以自定义。MCP 客户端会通过这个名称引用服务器。
- 'command': 指定启动 Ceregrep MCP 服务器的命令。这里是 'ceregrep-mcp',这是通过 'pip install ceregrep-mcp' 安装后可执行的命令。
- 'args': 启动命令所需的额外参数,Ceregrep MCP 服务器目前不需要特定的命令行参数。
- 'description': 对该 MCP 服务器的简要描述,方便用户理解其用途。
基本使用方法
配置完成后,MCP 客户端(例如 Claude Desktop)将能够发现并调用 Ceregrep MCP 服务器提供的工具。
主要的 MCP 工具是 'ceregrep_query'。LLM 代理可以通过这个工具向 Ceregrep 提出自然语言查询,让 Ceregrep 代理分析代码库。
示例查询 (由 MCP 客户端的 LLM 代理生成并调用):
假设你的 LLM 客户端正在与 Ceregrep MCP 服务器交互,它可能会发出以下工具调用:
-
查找所有异步函数
Agent: "我需要查找这个代码库中所有的异步函数。"MCP 客户端的 LLM 可能会调用 'ceregrep_query' 工具,并传入: 'ceregrep_query(query="Find all async functions in this codebase")'
-
解释认证系统工作原理
Agent: "请解释一下这个项目的认证系统是如何工作的。"MCP 客户端的 LLM 可能会调用 'ceregrep_query' 工具,并传入: 'ceregrep_query(query="Explain how the authentication system works")'
-
展示所有 API 端点
Agent: "我想看看所有的 API 端点。"MCP 客户端的 LLM 可能会调用 'ceregrep_query' 工具,并传入: 'ceregrep_query(query="Show me all API endpoints")'
Ceregrep MCP 服务器将接收这些调用,并在后台启动 Ceregrep CLI 代理来执行实际的查询和分析,最终将结果返回给 MCP 客户端。
信息
分类
开发者工具