Bazel MCP Server

Expõe o sistema de build Bazel para agentes de IA, permitindo que eles construam, consultem, testem e gerenciem dependências.

Documentação

Servidor MCP do Bazel

Um servidor MCP local que expõe funcionalidades do sistema de build Bazel para agentes de IA habilitados para MCP.

Isso é útil quando ambientes MCP não possuem uma ferramenta de linha de comando existente, ou quando o shell invocado tem um ambiente mal configurado que impede o uso do Bazel.

Ferramentas

O Servidor MCP do Bazel fornece as seguintes ferramentas:

  • bazel_build_target: Compila alvos Bazel especificados
  • bazel_query_target: Consulta o grafo de dependências para alvos que correspondem a um padrão
  • bazel_test_target: Executa testes para alvos especificados
  • bazel_list_targets: Lista todos os alvos disponíveis no workspace (requer parâmetro de caminho, use "//" para todos os alvos)
  • bazel_fetch_dependencies: Busca dependências externas
  • bazel_set_workspace_path: Altera o caminho do workspace do Bazel em tempo de execução

Cada comando (exceto bazel_set_workspace_path) suporta um parâmetro opcional additionalArgs que permite passar argumentos adicionais ao comando Bazel subjacente. Isso é útil para especificar flags como --verbose_failures ou --test_output=all.

Uso

Instalação

Usando com Cursor

Adicione o seguinte ao .cursor/mcp.json.

Você não precisa fornecer o caminho do workspace, pois o LLM pode usar set_workspace_path para alterar o caminho do workspace em tempo de execução.

O binário do bazel geralmente é detectado automaticamente, mas se você encontrar problemas, pode fornecer o caminho para o binário do bazel usando a flag --bazel_path.

:warning: Observe que isso não funcionará ao usar Cursor com sessões SSH remotas, pois ele executa o 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
      ]
    }
  }
}

Usando com Claude Desktop

Você pode usar a mesma configuração acima com o Claude Desktop.

Iniciando de forma autônoma

# 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

Configuração

Este servidor MCP permite alguns métodos diferentes de configuração. Eles serão usados na seguinte ordem:

  1. Argumentos de linha de comando
  2. Variáveis de ambiente
  3. Arquivo de configuração

Tabela de Configuração

Argumento de CLIVariável de AmbienteChave do Arquivo de ConfiguraçãoDescrição
--bazel_pathMCP_BAZEL_PATHbazel_pathO caminho para o binário do Bazel a ser usado.
--workspace_pathMCP_WORKSPACE_PATHworkspace_pathO caminho para o workspace do Bazel a ser usado.
--workspace_configMCP_WORKSPACE_CONFIGworkspace_configA configuração do workspace a ser usada. Por padrão, usa o arquivo .bazelrc na raiz do workspace.
--log_pathMCP_LOG_PATHlog_pathO caminho para gravar os logs do servidor.

Depuração

Defina a variável de ambiente DEBUG=true para habilitar o registro detalhado no console.

Definir o caminho do log também é útil para depuração com clientes que não imprimem logs no console (olhando para você, Cursor).

Licença

Este projeto é licenciado sob a Licença MIT. Consulte o arquivo LICENSE para obter detalhes.