Bazel MCP Server

Expone el sistema de compilación Bazel a agentes de IA, permitiéndoles construir, consultar, probar y gestionar dependencias.

Documentación

Servidor MCP de Bazel

Un servidor MCP local que expone funcionalidad del sistema de compilación Bazel a agentes de IA habilitados para MCP.

Esto es útil cuando los entornos MCP no tienen una herramienta de línea de comandos existente, o cuando el shell invocado tiene un entorno mal configurado que impide el uso de Bazel.

Herramientas

El Servidor MCP de Bazel proporciona las siguientes herramientas:

  • bazel_build_target: Compila objetivos de Bazel especificados
  • bazel_query_target: Consulta el grafo de dependencias para objetivos que coincidan con un patrón
  • bazel_test_target: Ejecuta pruebas para objetivos especificados
  • bazel_list_targets: Lista todos los objetivos disponibles en el espacio de trabajo (requiere el parámetro de ruta, usa "//" para todos los objetivos)
  • bazel_fetch_dependencies: Obtiene dependencias externas
  • bazel_set_workspace_path: Cambia la ruta del espacio de trabajo de Bazel en tiempo de ejecución

Cada comando (excepto bazel_set_workspace_path) admite un parámetro opcional additionalArgs que permite pasar argumentos adicionales al comando de Bazel subyacente. Esto es útil para especificar banderas como --verbose_failures o --test_output=all.

Uso

Instalación

Uso con Cursor

Agrega lo siguiente a .cursor/mcp.json.

No necesitas proporcionar la ruta del espacio de trabajo, ya que el LLM puede usar set_workspace_path para cambiar la ruta del espacio de trabajo en tiempo de ejecución.

El binario de bazel generalmente se detecta automáticamente, pero si encuentras problemas, puedes proporcionar la ruta al binario de bazel usando la bandera --bazel_path.

:warning: Ten en cuenta que esto no funcionará al usar Cursor con sesiones SSH remotas, ya que ejecuta el servidor MCP localmente.

{
  "mcpServers": {
    "bazel": {
      "command": "npx",
      "args": [
        "-y",
        "github:nacgarg/bazel-mcp-server",

        // If you need to specify the bazel binary path
        "--bazel_path", 
        "/absolute/path/to/your/bazel/binary",

        // If you need to specify the workspace path
        "--workspace_path",
        "/absolute/path/to/your/bazel/workspace"

        // See Configuration Table below for more options
      ]
    }
  }
}

Uso con Claude Desktop

Puedes usar la misma configuración anterior con Claude Desktop.

Inicio independiente

# Run directly from GitHub (no installation needed)
npx -y github:nacgarg/bazel-mcp-server

# From source
git clone https://github.com/nacgarg/bazel-mcp-server.git
cd bazel-mcp-server
npm install
npm run build
dist/index.js

Configuración

Este servidor MCP permite un par de métodos de configuración diferentes. Se usarán en el siguiente orden:

  1. Argumentos de línea de comandos
  2. Variables de entorno
  3. Archivo de configuración

Tabla de Configuración

Argumento CLIVariable de EntornoClave del Archivo de ConfiguraciónDescripción
--bazel_pathMCP_BAZEL_PATHbazel_pathLa ruta al binario de Bazel a usar.
--workspace_pathMCP_WORKSPACE_PATHworkspace_pathLa ruta al espacio de trabajo de Bazel a usar.
--workspace_configMCP_WORKSPACE_CONFIGworkspace_configLa configuración del espacio de trabajo a usar. Por defecto, usa el archivo .bazelrc en la raíz del espacio de trabajo.
--log_pathMCP_LOG_PATHlog_pathLa ruta para escribir los registros del servidor.

Depuración

Establece la variable de entorno DEBUG=true para habilitar el registro detallado en la consola.

Configurar la ruta de registro también es útil para depurar con clientes que no imprimen registros en la consola (mirándote a ti, Cursor).

Licencia

Este proyecto está licenciado bajo la Licencia MIT. Consulta el archivo LICENSE para más detalles.