ast-grep-mcp
Servidor MCP que expone ast-grep (sg) como dos herramientas para búsqueda estructural de código.
GitHubPrueba este MCPPatrocinado
Documentación
ast-grep-mcp
Servidor MCP que expone ast-grep (sg) como dos herramientas para búsqueda estructural de código.
Requisitos previos
Instala sg (CLI de ast-grep):
# via npm
npm i -g @ast-grep/cli
# via cargo
cargo install ast-grep
Verifica: sg --version
Instalación y ejecución
# from this directory
npm install
node src/index.js # starts MCP server on stdio
# or via npx after publish:
# npx ast-grep-mcp
Herramientas
ast_search
Búsqueda estructural de código usando un patrón de ast-grep.
| parámetro | tipo | requerido | descripción |
|---|---|---|---|
lang | string | sí | Lenguaje: js, ts, py, go, rust, java, … |
pattern | string | sí | Patrón de ast-grep (p. ej. console.log($MSG)) |
dir | string | no | Directorio a buscar (predeterminado: .) |
Devuelve: Arreglo JSON de { file, line, match, snippet }
Ejemplo de prompt:
Usa ast_search con lang=ts, pattern=
console.log($MSG), dir=./src
ast_search_preset
Ejecuta un preset de malos olores de código con nombre.
| parámetro | tipo | requerido | descripción |
|---|---|---|---|
name | enum | sí | Uno de los 5 presets a continuación |
dir | string | no | Directorio a buscar (predeterminado: .) |
Presets disponibles:
| nombre | qué encuentra |
|---|---|
async-no-catch | Expresiones await — verifica si falta try/catch |
hooks-missing-deps | useEffect(..., []) — dependencias vacías pueden ocultar dependencias faltantes |
route-no-auth | Express app.METHOD(path, handler) — rutas que pueden carecer de middleware de autenticación |
sql-no-param | Cadenas SQL con template literals — posible riesgo de inyección |
promise-no-return | Cuerpos de new Promise(...) — verifica que todas las rutas resuelvan/rechacen |
Configuración de Claude Desktop
~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"ast-grep": {
"command": "node",
"args": ["/absolute/path/to/ast-grep-mcp/src/index.js"]
}
}
}
Cursor mcp.json
.cursor/mcp.json en la raíz de tu proyecto:
{
"mcpServers": {
"ast-grep": {
"command": "node",
"args": ["/absolute/path/to/ast-grep-mcp/src/index.js"]
}
}
}
O si publicas en npm:
{
"mcpServers": {
"ast-grep": {
"command": "npx",
"args": ["ast-grep-mcp"]
}
}
}
Referencia rápida de patrones
$VAR – single node (any)
$$$NODES – multiple nodes (spread)
`template $X` – template literal containing X
foo($A, $B) – function call with two args
Consulta la sintaxis de patrones de ast-grep para la documentación completa.