Bazel MCP

Um servidor MCP local que expõe as capacidades do sistema de build Bazel para assistentes de IA.

Documentação

Bazel MCP

Um servidor Model Context Protocol que expõe capacidades do sistema de build Bazel a assistentes de IA.

Repositório: github.com/saeid-rez/bazel-mcp

Ferramentas

FerramentaDescrição
bazel_queryExecutar expressões bazel query arbitrárias
bazel_cqueryExecutar expressões bazel cquery configuradas (select() e plataformas)
bazel_aqueryExecutar expressões de bazel aquery de ação (flags do compilador, comandos)
list_targetsListar alvos em um pacote ou subárvore
get_depsDependências diretas ou transitivas de um alvo
get_rdepsDependências reversas dentro de um escopo
show_target_infoDefinição de regra via query --output=build
find_affected_targetsEncontrar alvos afetados por arquivos alterados
bazel_buildExecutar bazel build com diagnósticos estruturados de falha
bazel_testExecutar bazel test com resultados estruturados de alvos e casos com falha
bazel_runExecutar bazel run com argumentos, variáveis de ambiente e controles de diretório de trabalho
explain_build_fileLer o conteúdo de arquivos BUILD para análise

Uso

Requer uv. Configure o servidor com um caminho de workspace Bazel se o seu cliente MCP não o iniciar a partir desse workspace.

Antigravity (agy)

Adicione o seguinte ao ~/.gemini/config/mcp_config.json:

{
  "mcpServers": {
    "bazel": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/saeid-rez/bazel-mcp",
        "bazel-mcp-server"
      ]
    }
  }
}

Os comandos Bazel são executados no seu workspace ativo por padrão. Se o Antigravity não iniciar o servidor a partir do seu workspace Bazel, passe --workspace-root explicitamente:

{
  "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

Adicione o seguinte ao opencode.json ou opencode.jsonc. Substitua /path/to/your/bazel/workspace pelo caminho absoluto do seu workspace 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

Adicione o seguinte ao ~/.copilot/mcp-servers.json. Substitua /path/to/your/bazel/workspace pelo caminho absoluto do seu workspace 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, execute /mcp add bazel dentro do Copilot CLI e forneça o mesmo comando e argumentos.

Instalar com uv

Para instalar o servidor de forma persistente em vez de executá-lo a partir do GitHub, execute:

uv tool install bazel-mcp-server

Em seguida, use a seguinte configuração de servidor instalado no lugar do comando baseado no GitHub acima. Inclua --workspace-root e seu caminho quando o cliente não iniciar o servidor a partir do workspace 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

Adicione isso ao .cursor/mcp.json no workspace Bazel.

{
  "mcpServers": {
    "bazel": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/saeid-rez/bazel-mcp", "bazel-mcp-server"]
    }
  }
}

Os comandos Bazel são executados no seu workspace aberto por padrão.

Se o Cursor não iniciar o servidor a partir do workspace Bazel, passe o workspace explicitamente:

{
  "mcpServers": {
    "bazel": {
      "command": "uvx",
      "args": [
        "bazel-mcp-server",
        "--workspace-root",
        "/path/to/your/bazel/workspace"
      ]
    }
  }
}

Outras flags opcionais:

bazel-mcp-server --bazel-path bazelisk --timeout 600 --max-output-chars 64000

Desenvolvimento

Clone o repositório e execute os testes localmente:

git clone https://github.com/saeid-rez/bazel-mcp
cd bazel-mcp
uv sync --group dev
uv run pytest