Bazel MCP
Un servidor MCP local que expone las capacidades del sistema de compilación Bazel a asistentes de IA.
Documentación
Bazel MCP
Un servidor de Model Context Protocol que expone las capacidades del sistema de compilación Bazel a asistentes de IA.
Repositorio: github.com/saeid-rez/bazel-mcp
Herramientas
| Herramienta | Descripción |
|---|---|
bazel_query | Ejecutar expresiones arbitrarias de bazel query |
bazel_cquery | Ejecutar expresiones configuradas de bazel cquery (select() y plataformas) |
bazel_aquery | Ejecutar expresiones de acción bazel aquery (banderas del compilador, comandos) |
list_targets | Listar objetivos en un paquete o subárbol |
get_deps | Dependencias directas o transitivas de un objetivo |
get_rdeps | Dependencias inversas dentro de un alcance |
show_target_info | Definición de reglas mediante query --output=build |
find_affected_targets | Encontrar objetivos afectados por archivos modificados |
bazel_build | Ejecutar bazel build con diagnósticos estructurados de fallos |
bazel_test | Ejecutar bazel test con resultados estructurados de objetivos y casos fallidos |
bazel_run | Ejecutar bazel run con argumentos, variables de entorno y controles de directorio de trabajo |
explain_build_file | Leer el contenido de archivos BUILD para análisis |
Uso
Requiere uv. Configura el servidor con una ruta de espacio de trabajo de Bazel si tu cliente MCP no lo inicia desde ese espacio de trabajo.
Antigravity (agy)
Agrega lo siguiente a ~/.gemini/config/mcp_config.json:
{
"mcpServers": {
"bazel": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/saeid-rez/bazel-mcp",
"bazel-mcp-server"
]
}
}
}
Los comandos de Bazel se ejecutan en tu espacio de trabajo activo de forma predeterminada. Si Antigravity no inicia el servidor desde tu espacio de trabajo de Bazel, pasa --workspace-root explícitamente:
{
"mcpServers": {
"bazel": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/saeid-rez/bazel-mcp",
"bazel-mcp-server",
"--workspace-root",
"/path/to/your/bazel/workspace"
]
}
}
}
OpenCode
Agrega lo siguiente a opencode.json o opencode.jsonc. Reemplaza /path/to/your/bazel/workspace con la ruta absoluta a tu espacio de trabajo de Bazel.
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"bazel": {
"type": "local",
"command": [
"uvx",
"--from",
"git+https://github.com/saeid-rez/bazel-mcp",
"bazel-mcp-server",
"--workspace-root",
"/path/to/your/bazel/workspace"
],
"enabled": true
}
}
}
GitHub Copilot CLI
Agrega lo siguiente a ~/.copilot/mcp-servers.json. Reemplaza /path/to/your/bazel/workspace con la ruta absoluta a tu espacio de trabajo de Bazel.
{
"mcp": {
"servers": {
"bazel": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/saeid-rez/bazel-mcp",
"bazel-mcp-server",
"--workspace-root",
"/path/to/your/bazel/workspace"
],
"protocol": "stdio"
}
}
}
}
Alternativamente, ejecuta /mcp add bazel dentro de Copilot CLI y proporciona el mismo comando y argumentos.
Instalar con uv
Para instalar el servidor de forma persistente en lugar de ejecutarlo desde GitHub, ejecuta:
uv tool install bazel-mcp-server
Luego usa la siguiente configuración de servidor instalado en lugar del comando basado en GitHub anterior. Incluye --workspace-root y su ruta cuando el cliente no inicie el servidor desde el espacio de trabajo de Bazel.
Antigravity (agy):
{
"mcpServers": {
"bazel": {
"command": "bazel-mcp-server",
"args": ["--workspace-root", "/path/to/your/bazel/workspace"]
}
}
}
OpenCode:
{
"mcp": {
"bazel": {
"type": "local",
"command": ["bazel-mcp-server", "--workspace-root", "/path/to/your/bazel/workspace"],
"enabled": true
}
}
}
GitHub Copilot CLI:
{
"mcp": {
"servers": {
"bazel": {
"command": "bazel-mcp-server",
"args": ["--workspace-root", "/path/to/your/bazel/workspace"],
"protocol": "stdio"
}
}
}
}
Cursor
Agrega esto a .cursor/mcp.json en el espacio de trabajo de Bazel.
{
"mcpServers": {
"bazel": {
"command": "uvx",
"args": ["--from", "git+https://github.com/saeid-rez/bazel-mcp", "bazel-mcp-server"]
}
}
}
Los comandos de Bazel se ejecutan en tu espacio de trabajo abierto de forma predeterminada.
Si Cursor no inicia el servidor desde el espacio de trabajo de Bazel, pasa el espacio de trabajo explícitamente:
{
"mcpServers": {
"bazel": {
"command": "uvx",
"args": [
"bazel-mcp-server",
"--workspace-root",
"/path/to/your/bazel/workspace"
]
}
}
}
Otras banderas opcionales:
bazel-mcp-server --bazel-path bazelisk --timeout 600 --max-output-chars 64000
Desarrollo
Clona el repositorio y ejecuta las pruebas localmente:
git clone https://github.com/saeid-rez/bazel-mcp
cd bazel-mcp
uv sync --group dev
uv run pytest