MCP.Market

Bruno MCP server

by kta41·io.github.kta41/mcp-bruno·v0.1.1

Python MCP server for running and inspecting Bruno API collections.

B83/100grade B
What users say
No reviews yet
Be the first
Safety scan
B83/100

full report

Adoption
Growing

0 stars118 downloads/wk

Reviews

Write one

Nobody has reviewed Bruno yet.

If you have run it, two minutes of your experience saves the next person an afternoon.

Bruno tools

No tool declarations could be read from the package source. They show once the server is installed.

Public scan report

scanner v0.1.10 · 2026-10-01 · same rubric, same numbers if you re-run it

no findings
  • Code scan8 source files scanned25/25
  • –Live reliabilityno gateway calls yet and no remote to proben/a
  • –Tool poisoningtools not inspected (local package is not executed); not countedn/a
  • Auth qualitystatic API keys via environment variables6/15
  • Maintenancelast push 0 days ago15/15
  • Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
Overall 83/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

How Bruno compares

Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.

Safety score
83/100
higher than 65% of 48,255 servers
Downloads a week
118
more than 66% of 12,191 servers with a package

Install Bruno in Claude Code, Cursor or VS Code

claude mcp add mcp-bruno -- uvx mcp-bruno
Add to Cursor

What the publisher says

From the Bruno repository's README, as published. We do not edit it. Read it on GitHub

🔌 Bruno MCP Server for Python

Python MCP server for running Bruno collections. It exposes a Model Context Protocol server over stdio with tools that run collections through the bru CLI and return normalized JSON results.

Note: All examples in this repository use placeholder names (project1, /home/user/project/bruno, example.test). Replace them with your own paths and collection names.

✨ Features

  • Run Bruno collections natively using the Bruno CLI.
  • Discover collections and sibling environment files automatically.
  • Support environment files and dynamic environment variables.
  • Secure Secret Injection: Pass secrets to Bruno without exposing values to the LLM via inherited_variables. Secret values are injected through a temporary, owner-only --env-file and the child process environment — they never appear in CLI arguments (ps output) or logs.
  • Filter Inspection: Inspect documented query filters and run temporary filter scenarios without modifying the source collection.
  • Two-Phase Full Validation: Execute baseline tests + all documented filters in a single tool call.
  • Normalized Outputs: Return structured execution results containing success, summary, failures, and timings.

📦 Requirements

  • Python: 3.10 or newer
  • Package Manager: uv
  • Node Package Manager: npm (only if the Bruno CLI is not already installed)

The installer checks whether the Bruno CLI command bru is available. If it is missing, the server fails with an explicit error instead of silently installing packages. To install the pinned version manually:

npm install -g @usebruno/cli@4.2.0

Runtime auto-install is available but opt-in: set BRUNOMCPAUTOINSTALLBRU=1 (or autoinstall = true under [bruno] in the config file) and the server installs exactly the pinned version from cliversion / BRUNOMCPBRU_VERSION.

🚀 Installation & Running

1. Installation

Install dependencies using uv:

uv sync

(If your configured package index does not mirror the MCP Python SDK, point uv at PyPI for the sync: UVDEFAULTINDEX=https://pypi.org/simple uv sync)

2. Running the Server

You can run the server directly using uv:

uv run bruno-mcp

Alternatively, run the module directly inside the uv environment: uv run python -m brunomcp*

⚙️ Configuration

MCP Configuration

Example MCP stdio configuration from this workspace root:

{
  "mcpServers": {
    "bruno-runner": {
      "command": "uv",
      "args": ["run", "bruno-mcp"]
    }
  }
}

Configuration File (bruno-mcp.toml)

Default roots and auth aliases can be configured in bruno-mcp.toml in the current working directory, or globally in ~/.config/bruno-mcp/config.toml.

See bruno-mcp.example.toml for a commented template:

[workspace]
roots = [
  "/home/user/project/bruno"
]

[bruno]
cli_version = "4.2.0"   # pinned Bruno CLI version
auto_install = false     # never install bru silently at runtime

[limits]
run_timeout_seconds = 300
max_output_bytes = 8388608
max_concurrent_runs = 2

[artifacts]
ttl_hours = 24           # raw reports are auto-deleted after this
max_files = 50

[security]
enforce_root_confinement = true   # reject collection paths outside workspace roots

[auth]
inherited_variables = [
  "BRUNO_AUTH_TOKEN",
  "BRUNO_API_KEY"
]

Shortened. The full README is on GitHub.

Nothing above is checked by us. What we check is on the safety report.

Bruno: common questions

Is Bruno MCP server safe?
Mostly: it is graded B (83/100). Read the Bruno safety report
How do I install Bruno?
It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
Does Bruno need an API key?
Yes. The registry entry asks for BRUNO_AUTH_TOKEN.
Is Bruno maintained?
The last commit was 35 days ago (2026-09-30). The latest release is v0.1.1.
How does Bruno compare with other MCP servers?
safety score 83/100 (higher than 65% of 48,255 servers); downloads a week 118 (more than 66% of 12,191 servers with a package). Full comparison.