使用说明
mcp探头启动
基于Go的模型上下文协议(MCP)服务器,用于使用ElasticSearch和AST grep搜索和提取代码,支持代码块提取和高级代码查询。
特征
- 搜索代码 在您的存储库中使用ElasticSearch查询。
- 查询代码 使用ast-grep结构模式匹配。
- 提取代码块 根据行号或符号名称从文件中提取。
- 支持过滤、上下文行、测试代码包含和输出格式。
- 超时保护 --每次探测调用都受到2分钟全局超时的限制;进程在到期时被杀死和收获。
入门指南
先决条件
构建
cd cli
go build -o probe-mcp-server main.go
跑
./probe-mcp-server
服务器将启动并监听stdio请求。
用法
服务器注册了以下工具:
search_code:使用ElasticSearch查询搜索代码。query_code:使用ast-grep模式搜索代码。extract_code:按行或符号提取代码块。
每个工具都公开了一组参数,用于灵活的代码搜索和提取。有关每个工具选项的详细信息,请参阅代码。
超时
通过MCP工具进行的每次探测CLI调用都受到全局2分钟超时的限制。当超时到期时,探测进程将收到 SIGTERM (优雅关机)。如果它在5秒内没有退出,它将被强行杀死 SIGKILL孩子的过程总是收获颇丰——没有僵尸被留下。
| 设置 | 值 | 描述 |
|---|---|---|
DefaultMCPTimeout |
2 * time.Minute |
应用于每次探测调用 |
MCP_PROBE_TIMEOUT |
env var | 覆盖超时(例如。 30s, 5m; 0 禁用) |
# Use default 2-minute timeout
./probe-mcp-server
# Override to 30 seconds
MCP_PROBE_TIMEOUT=30s ./probe-mcp-server
# Disable timeout entirely
MCP_PROBE_TIMEOUT=0 ./probe-mcp-server
超时错误会被清楚地报告,这样调用者就可以区分资源耗尽和普通故障。
发展
- 主服务器逻辑在
main.go和cli/main.go. - 工具处理程序在
search_code.go,query_code.go,以及extract_code.go. - 使用 mcp走 服务器框架。
许可证
MIT许可证。看 许可证 了解详情。