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

HerramientaDescripción
bazel_queryEjecutar expresiones arbitrarias de bazel query
bazel_cqueryEjecutar expresiones configuradas de bazel cquery (select() y plataformas)
bazel_aqueryEjecutar expresiones de acción bazel aquery (banderas del compilador, comandos)
list_targetsListar objetivos en un paquete o subárbol
get_depsDependencias directas o transitivas de un objetivo
get_rdepsDependencias inversas dentro de un alcance
show_target_infoDefinición de reglas mediante query --output=build
find_affected_targetsEncontrar objetivos afectados por archivos modificados
bazel_buildEjecutar bazel build con diagnósticos estructurados de fallos
bazel_testEjecutar bazel test con resultados estructurados de objetivos y casos fallidos
bazel_runEjecutar bazel run con argumentos, variables de entorno y controles de directorio de trabajo
explain_build_fileLeer 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