MCP ExplorerExplorer

Bazel Mcp Server

@nacgargon 9 months ago
3 MIT
FreeCommunity
AI Systems
MCP server for Bazel

Overview

What is Bazel Mcp Server

The bazel-mcp-server is a local MCP server that exposes the functionality of the Bazel build system to MCP-enabled AI agents. It is designed to assist in environments where command-line tools are absent or misconfigured.

Use cases

Use cases for bazel-mcp-server include automating builds and tests in CI/CD pipelines, enabling AI agents to interact with Bazel in environments without direct command-line access, and facilitating development workflows in complex projects.

How to use

To use bazel-mcp-server, you can install it via Cursor by adding it to the .cursor/mcp.json configuration file, or run it directly using npx from GitHub. Configuration options include command line arguments, environment variables, and configuration files.

Key features

Key features of bazel-mcp-server include commands for building targets, querying dependency graphs, running tests, listing available targets, fetching dependencies, and changing the workspace path at runtime. It also supports passing additional arguments to Bazel commands.

Where to use

Bazel-mcp-server can be used in software development environments that utilize the Bazel build system, particularly in scenarios where traditional command-line access is limited or problematic.

Content

Bazel MCP Server

A local MCP server that exposes functionality of the Bazel build system to MCP-enabled AI agents.

This is helpful when MCP environments either don’t have an existing command-line tool, or where the invoked shell has a misconfigured environment that prevents Bazel from being used.

Tools

The Bazel MCP Server provides the following tools:

  • bazel_build_target: Build specified Bazel targets
  • bazel_query_target: Query the dependency graph for targets matching a pattern
  • bazel_test_target: Run tests for specified targets
  • bazel_list_targets: List all available targets in the workspace (requires path parameter, use “//” for all targets)
  • bazel_fetch_dependencies: Fetch external dependencies
  • bazel_set_workspace_path: Change the Bazel workspace path at runtime

Each command (except bazel_set_workspace_path) supports an optional additionalArgs parameter that allows passing additional arguments to the underlying Bazel command. This is useful for specifying flags like --verbose_failures or --test_output=all.

Usage

Installation

Using with Cursor

Add the following to .cursor/mcp.json.

You don’t need to provide the workspace path, as the LLM can use set_workspace_path to change the workspace path at runtime.

The bazel binary usually gets picked up automatically, but if you run into issues, you can provide the path to the bazel binary using the --bazel_path flag.

:warning: Note that this will not work when using Cursor with Remote SSH sessions, since it runs the MCP server locally.

Using with Claude Desktop

You can use the same configuration as above with Claude Desktop.

Launching standalone

# 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

Configuration

This MCP server allows a couple different configuration methods. They will be used in the following order:

  1. Command line arguments
  2. Environment variables
  3. Configuration file

Configuration Table

CLI Argument Environment Variable Configuration File Key Description
--bazel_path MCP_BAZEL_PATH bazel_path The path to the Bazel binary to use.
--workspace_path MCP_WORKSPACE_PATH workspace_path The path to the Bazel workspace to use.
--workspace_config MCP_WORKSPACE_CONFIG workspace_config The configuration of the workspace to use. By default, this uses the .bazelrc file in the workspace root.
--log_path MCP_LOG_PATH log_path The path to write server logs to.

Debugging

Set the DEBUG=true environment variable to enable verbose logging to the console.

Setting the log path is also helpful for debugging with clients that don’t print logs to the console (looking at you, Cursor).

License

This project is licensed under the MIT License. See the LICENSE file for details.

Tools

No tools

Comments

Recommend MCP Servers

View All MCP Servers