关于 grepai-mcp-tools
grepai-mcp-tools 是 GrepAI MCP 服务工具的参考技能,面向需要了解工具参数、调用方式和错误处理的 AI 集成开发者。内容涵盖语义代码搜索、调用关系追踪、调用图及索引状态。
主要功能
- 01语义代码搜索
- 02追踪调用者与被调用函数
- 03生成函数调用图
- 04检查代码索引状态
- 05紧凑格式与 JSON/TOON 输出
适用场景
- 01为 AI 集成查询 MCP 工具参数
- 02定位代码中与描述相关的实现
- 03追踪函数调用关系以理解代码
- 04排查索引或嵌入服务错误
MCP 相关
说明 GrepAI MCP 服务可通过 `grepai mcp-serve` 启动,并向 MCP 客户端提供搜索、追踪和索引状态工具。
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ yoanbernabeu/ grepai-skills --skill grepai-mcp-tools安装后在 Claude Code 中输入/grepai-mcp-tools确认已加载。
详细介绍
GrepAI MCP 工具参考
本技能提供 GrepAI MCP 服务中所有可用工具的完整参考。
何时使用此技能
- 了解可用的 MCP 工具
- 学习工具参数和选项
- 将 GrepAI 集成到 AI 助手中
- 调试 MCP 工具的使用
启动 MCP 服务
grepai mcp-serve
该服务通过 Model Context Protocol 提供工具。
可用工具
1. grepai_search
使用嵌入进行语义代码搜索。
参数
| 参数 | 类型 | 必填 | 默认值 | 描述 |
|---|---|---|---|---|
query | 字符串 | 是 | - | 描述要查找内容的搜索查询 |
limit | 数字 | 否 | 10 | 返回结果的最大数量 |
compact | 布尔值 | 否 | false | 返回精简输出(不含内容) |
format | 字符串 | 否 | "json" | 输出格式:"json" 或 "toon"(v0.26.0+) |
请求示例
{
"tool": "grepai_search",
"parameters": {
"query": "user authentication middleware",
"limit": 5,
"compact": true,
"format": "toon"
}
}
响应(精简)
{
"q": "user authentication middleware",
"r": [
{"s": 0.92, "f": "src/auth/middleware.go", "l": "15-45"},
{"s": 0.85, "f": "src/auth/jwt.go", "l": "23-55"},
{"s": 0.78, "f": "src/handlers/auth.go", "l": "10-40"}
],
"t": 3
}
响应(完整)
{
"query": "user authentication middleware",
"results": [
{
"score": 0.92,
"file": "src/auth/middleware.go",
"start_line": 15,
"end_line": 45,
"content": "func AuthMiddleware() gin.HandlerFunc {\n ..."
}
],
"total": 3
}
2. grepai_trace_callers
查找调用指定符号的所有函数。
参数
| 参数 | 类型 | 必填 | 默认值 | 描述 |
|---|---|---|---|---|
symbol | 字符串 | 是 | - | 要追踪的函数/方法名称 |
compact | 布尔值 | 否 | false | 返回精简输出(不含上下文) |
format | 字符串 | 否 | "json" | 输出格式:"json" 或 "toon"(v0.26.0+) |
请求示例
{
"tool": "grepai_trace_callers",
"parameters": {
"symbol": "Login",
"compact": true
}
}
响应(精简)
{
"q": "Login",
"m": "callers",
"c": 3,
"r": [
{"f": "handlers/auth.go", "l": 42, "fn": "HandleAuth"},
{"f": "handlers/auth_test.go", "l": 15, "fn": "TestLoginSuccess"},
{"f": "cmd/main.go", "l": 88, "fn": "RunCLI"}
]
}
响应(完整)
{
"query": "Login",
"mode": "callers",
"count": 3,
"results": [
{
"file": "handlers/auth.go",
"line": 42,
"caller": "HandleAuth",
"context": "user.Login(ctx, credentials)"
}
]
}
3. grepai_trace_callees
查找指定符号调用的所有函数。
参数
| 参数 | 类型 | 必填 | 默认值 | 描述 |
|---|---|---|---|---|
symbol | 字符串 | 是 | - | 要追踪的函数/方法名称 |
compact | 布尔值 | 否 | false | 返回精简输出(不含上下文) |
format | 字符串 | 否 | "json" | 输出格式:"json" 或 "toon"(v0.26.0+) |
请求示例
{
"tool": "grepai_trace_callees",
"parameters": {
"symbol": "ProcessOrder",
"compact": true
}
}
响应(精简)
{
"q": "ProcessOrder",
"m": "callees",
"c": 4,
"r": [
{"f": "services/order.go", "l": 45, "fn": "validateOrder"},
{"f": "services/order.go", "l": 48, "fn": "calculateTotal"},
{"f": "services/order.go", "l": 51, "fn": "applyDiscount"},
{"f": "services/order.go", "l": 55, "fn": "sendConfirmation"}
]
}
4. grepai_trace_graph
从指定符号开始构建完整的调用图。
参数
| 参数 | 类型 | 必填 | 默认值 | 描述 |
|---|---|---|---|---|
symbol | 字符串 | 是 | - | 图的根函数 |
depth | 数字 | 否 | 2 | 最大递归深度 |
compact | 布尔值 | 否 | false | 返回精简 JSON 格式 |
format | 字符串 | 否 | "json" | 输出格式:"json" 或 "toon"(v0.26.0+) |
请求示例
{
"tool": "grepai_trace_graph",
"parameters": {
"symbol": "main",
"depth": 3,
"compact": true
}
}
响应(精简)
{
"q": "main",
"d": 3,
"r": {
"n": "main",
"c": [
{
"n": "initialize",
"c": [
{"n": "loadConfig"},
{"n": "connectDB"}
]
},
{
"n": "startServer",
"c": [
{"n": "registerRoutes"}
]
}
]
},
"s": {"nodes": 6, "depth": 3}
}
响应(完整)
{
"query": "main",
"mode": "graph",
"depth": 3,
"root": {
"name": "main",
"file": "cmd/main.go",
"line": 10,
"children": [
{
"name": "initialize",
"file": "cmd/main.go",
"line": 15,
"children": [...]
}
]
},
"stats": {
"nodes": 6,
"max_depth": 3
}
}
5. grepai_index_status
检查代码索引的运行状况和状态。
参数
| 参数 | 类型 | 必填 | 默认值 | 描述 |
|---|---|---|---|---|
verbose | 布尔值 | 否 | false | 包含详细信息 |
format | 字符串 | 否 | "json" | 输出格式:"json" 或 "toon"(v0.26.0+) |
请求示例
{
"tool": "grepai_index_status",
"parameters": {
"verbose": true
}
}
响应
{
"status": "healthy",
"project": "/path/to/project",
"embedder": {
"provider": "ollama",
"model": "nomic-embed-text",
"status": "connected"
},
"store": {
"backend": "gob",
"location": ".grepai/index.gob"
},
"index": {
"files": 245,
"chunks": 1234,
"last_updated": "2025-01-28T10:30:00Z"
},
"daemon": {
"running": true,
"pid": 12345
}
}
精简格式参考
当 compact: true 时,响应使用缩写键:
| 完整键 | 精简键 | 描述 |
|---|---|---|
query | q | 搜索查询或符号 |
results | r | 结果数组 |
total | t | 总数 |
count | c | 数量 |
score | s | 相似度分数 |
file | f | 文件路径 |
line | l | 行号 |
mode | m | 追踪模式 |
depth | d | 图深度 |
name | n | 节点名称 |
children | c | 子节点 |
stats | s | 统计信息 |
function | fn | 函数名称 |
令牌效率
精简模式可显著减少令牌数:
| 响应类型 | 完整 | 精简 | 节省 |
|---|---|---|---|
| 搜索(5 个结果) | ~800 | ~150 | 81% |
| 追踪调用方(10 个) | ~600 | ~120 | 80% |
| 调用图追踪(深度 3) | ~1200 | ~250 | 79% |
错误响应
未找到索引
{
"error": "Index not found. Run 'grepai watch' first.",
"code": "INDEX_NOT_FOUND"
}
嵌入器连接失败
{
"error": "Cannot connect to embedding provider. Is Ollama running?",
"code": "EMBEDDER_UNAVAILABLE"
}
未找到符号
{
"error": "Symbol 'FunctionName' not found in index.",
"code": "SYMBOL_NOT_FOUND"
}
参数无效
{
"error": "Parameter 'query' is required.",
"code": "INVALID_PARAMETERS"
}
AI 集成最佳实践
- 使用精简模式: 将令牌用量减少约 80%
- 限制结果: 仅请求所需内容
- 先检查状态: 搜索前使用
grepai_index_status - 处理错误: 检查是否有错误响应
- 组合使用工具: 搜索 + 跟踪,全面了解情况
MCP 协议详情
请求格式
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "grepai_search",
"arguments": {
"query": "authentication",
"limit": 5,
"compact": true
}
}
}
响应格式
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"content": [
{
"type": "text",
"text": "{\"q\":\"authentication\",\"r\":[...],\"t\":5}"
}
]
}
}
输出格式
MCP 工具参考摘要:
📚 GrepAI MCP Tools Reference
Tools available:
1. grepai_search
- Semantic code search
- Params: query*, limit, compact
2. grepai_trace_callers
- Find function callers
- Params: symbol*, compact
3. grepai_trace_callees
- Find function callees
- Params: symbol*, compact
4. grepai_trace_graph
- Build call graph
- Params: symbol*, depth, compact
5. grepai_index_status
- Check index health
- Params: verbose
* = required parameter
Compact mode: ~80% token reduction
评论
支持 Markdown