Skip to main content

Bruno MCP

MCP server for Bruno API collections that executes requests via the Bruno CLI tool.

Prerequisites

1. Install Bruno CLI

The Bruno CLI tool (bru) must be installed and available in your PATH.

  1. Install Bruno CLI using npm
npm install -g @usebruno/cli
  1. Verify installation:
    bru --version
    

2. Install uv (recommended)

uv is the recommended way to install and run bruno-mcp. It includes uvx, which handles package installation and execution automatically.

curl -LsSf https://astral.sh/uv/install.sh | sh

Setup

MCP Configuration (uvx)

Configure the MCP server by adding an entry to your IDE. For Cursor, create or edit the configuration file at ~/.cursor/mcp.json:

{
  "mcpServers": {
    "bruno-mcp": {
      "command": "uvx",
      "args": ["bruno-mcp"],
      "env": {
        "BRUNO_COLLECTION_PATH": "/path/to/your/bruno/collection"
      }
    }
  }
}

The only configuration required is BRUNO_COLLECTION_PATH, which should point to your Bruno collection directory. To load multiple collections, separate paths with : (Unix/Mac) or ; (Windows), e.g. BRUNO_COLLECTION_PATH="/path/to/collection1:/path/to/collection2".

Alternative: Run Server Manually

If you prefer not to use uvx, you can clone the repository and run the server directly:

git clone https://github.com/jackmulligan-ire/bruno-mcp.git
cd bruno-mcp
uv sync

Then configure your MCP client with the full paths:

{
  "mcpServers": {
    "bruno-mcp": {
      "command": "/path/to/bruno-mcp/.venv/bin/python",
      "args": ["-m", "bruno_mcp"],
      "cwd": "/path/to/bruno-mcp",
      "env": {
        "BRUNO_COLLECTION_PATH": "/path/to/your/bruno/collection",
        "PYTHONPATH": "/path/to/bruno-mcp/src"
      }
    }
  }
}

After updating the configuration file, enable the server in your IDE's MCP settings.

Usage Notes

Multiple Collections

When BRUNO_COLLECTION_PATH contains multiple paths (separated by : on Unix/Mac or ; on Windows), the server loads all collections at startup. The first path is the initial active collection. Use the list_collections tool or bruno://collections resource to see available collections, and set_active_collection to switch which collection tools operate on.

Variable Overrides

The run_request_by_id tool accepts a variable_overrides parameter that maps to the Bruno CLI's --env-var flag. This allows you to substitute {{variable}} placeholders in your .bru files at runtime.

Important limitation: --env-var can only override variables that are already defined in a Bruno environment. It cannot introduce new variables, or replace the values of pre-request and post-request variables. If a variable is not defined in any environment, the override will be silently ignored and the placeholder will resolve to an empty string.

To use variable overrides:

  1. Define the variable in a Bruno environment file (even as an empty string):
    vars {
      postId:
    }
    
  2. Pass variable_overrides when calling the tool. For example, if you have a .bru file with the URL https://api.example.com/posts/{{postId}} and an environment called dev that defines postId, you would call:
    • variable_overrides: {"postId": "42"}

Release files for bruno-mcp 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for bruno-mcp 0.2.0
File Size Uploaded
bruno_mcp-0.2.0.tar.gz 19.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for bruno-mcp 0.2.0
File Interpreter ABI Platform
bruno_mcp-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 44.4 kB

Release files / bruno_mcp-0.2.0.tar.gz

Download URL bruno_mcp-0.2.0.tar.gz
Size 19.3 kB
Tags Source
SHA-256 checksum
How to use checksums
3c1375d0062c649b807ab5ba67408efa8ee87d31e72697b6b094091696253b05
BLAKE2b-256 checksum
How to use checksums
2cc1eb8ffe971be62c85609fd711ae732b2c4b358165281f41d364d822bb33f5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.1

Release files / bruno_mcp-0.2.0-py3-none-any.whl

Download URL bruno_mcp-0.2.0-py3-none-any.whl
Size 25.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3a8f33abe4ce1fef3b5cb1df5801d6f5be9675075926bbea2615c3f70cb13bda
BLAKE2b-256 checksum
How to use checksums
697d4a9ab033423930034482b55f6d69f2cb36d62eb51cf4858c0ee22fde5279
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.1

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page