# mcp-bruno [Health: Active]

**Category:** 💻 Developer Tools  
**Repository:** https://github.com/Kta41/mcp-bruno  
**GitHub Stars:** 0  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/mcp-bruno

## Description
Python MCP server for running and inspecting Bruno API collections.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `uvx` (confidence: high):

```json
"mcpServers": {
  "mcp-bruno": {
    "command": "uvx",
    "args": ["--from","mcp-bruno","bruno-mcp"]
  }
}
```

## Documentation

## What mcp-bruno does

The mcp-bruno MCP server exposes Bruno collection operations to MCP-compatible clients through Python. It uses the `bru` command-line interface to execute collections and converts execution data into structured results with success status, summaries, failures, and timing information.

The project belongs in the 💻 Developer Tools category and is intended for repositories that store Bruno collections, request files, environments, and related artifacts. Collection inputs can be a collection directory, a `.bru` request file, an internal `.vru` request file, or an `opencollection.yml` descriptor.

## How it works

The mcp-bruno MCP server communicates over MCP `stdio`. A client starts it with `uv run bruno-mcp`, and the server launches Bruno CLI processes for collection runs. Workspace roots can restrict which collection paths are accepted. Execution also supports configurable timeouts, output limits, and a maximum number of concurrent runs.

Environment files can be selected for a run, and variables can be supplied as `KEY=value` strings. Sensitive values can instead be named in `inherited_variables`; the server reads those values from its own process environment and passes them through a temporary owner-only environment file and child-process environment. This avoids placing secret values in CLI arguments or returning them to the model.

Raw JSON reports are stored as temporary artifacts with restricted permissions and automatic cleanup. The server can identify likely authentication failures and include an authentication message in the response.

## Setup and configuration

Python 3.10 or newer and `uv` are required. Install the project dependencies with `uv sync`, then start the server with `uv run bruno-mcp` or `uv run python -m bruno_mcp`. The Bruno CLI must be available as `bru`; the documented pinned version is 4.2.0. Automatic installation is optional and can be enabled with `BRUNO_MCP_AUTO_INSTALL_BRU=1` or the matching TOML setting.

Configuration can be stored in `bruno-mcp.toml` in the working directory or in `~/.config/bruno-mcp/config.toml`. Settings cover workspace roots, the Bruno CLI version, automatic installation, run limits, artifact retention, root confinement, inherited variable names, and a default environment. Environment variables override file settings.

A client can register the server with a stdio command using `uv` and the `run bruno-mcp` arguments. The repository also documents local and global VS Code setup through an MCP configuration file.

## Tools and capabilities

The mcp-bruno MCP server provides tools for:

- Listing collections below a configured or supplied root, with optional case-insensitive name and path filtering.
- Running collections with an environment file, regular variables, or inherited secrets.
- Discovering sibling Bruno environments and their variable names without exposing secret values.
- Reading bounded, redacted result artifacts.
- Inspecting documented query filters and running temporary filter scenarios without changing the source collection.
- Performing baseline tests and documented filter checks through two-phase full validation.

## Limitations and notes

The server depends on the Bruno CLI and does not silently install it unless runtime installation is explicitly enabled. Paths outside configured workspace roots are rejected when root confinement is active. Runs are bounded by configured timeout, output-size, and concurrency limits, while stored artifacts are subject to retention limits.

The examples use placeholder paths and collection names; deployments must replace them with local values. Environment variable names are exposed for discovery, but secret values are not returned. A configured environment file can conflict with an injected secret, in which case the server uses a temporary sanitized collection copy so source files remain unchanged.

_Full upstream README: https://allmcps.com/mcp/mcp-bruno/readme_

