Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

io.github.kta41/mcp-bruno

PYPI · MCP-BRUNO

Python MCP server for running and inspecting Bruno API collections.

Available components

−17 this week 68 Trust /100

Last scanned (6 hours ago)

Scores higher than 64% of PyPI servers

Category Testing and QA

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security50
  • Malware scan not yet available for this package.Unverified
  • No known CVEs affecting this package version or its production dependencies.Pass
  • Runs setuptools.build_meta at install time, a recognised build step with no custom scripting around it. View diagnostics → Pass
  • 1 of 28 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency45
Schema Quality & AI Usability80
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 920 tokens (~131/item across 7 items; 7 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management80
  • Stability observed for 24 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 7 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 7 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a current MCP spec version (2026-07-28).Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 5 Nov 26 −17
    • Malware scan: pass → unverified ▼ security
    • Stability: pass → 0.80 functional
  • 30 Oct 26 0
    • Stability: 0.97 → pass security
  • 29 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.

  • 26 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.

  • 25 Oct 26 +15
    • Malware scan: unverified → pass ▲ security
  • 24 Oct 26 −14
    • Malware scan: pass → unverified ▼ security
  • 23 Oct 26 +15
    • Malware scan: unverified → pass ▲ security
  • 22 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 70 to 73. That category is still filling its 30-day observation window: 21 days of observed history at the previous scan, 22 at this one. The score rises as the window fills, whether or not the server changes.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 5 Nov 2026 · Analysed pypi/mcp-bruno@0.1.1

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem pypi
Reason No attestation published

Background: How many MCP packages publish verified provenance →

Install scripts 1 script
Hook Tier Command
build_backend allowlisted setuptools.build_meta

Background: Why install scripts are a supply-chain risk →

Dependencies 28 packages
Packages resolved 28
No linked repository 1
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 7 exposed · ~920 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
discover-environments ~68

Inspect the folder structure around a Bruno collection and return the sibling environments directory, available environment names, and variable names. Secret values are not returned.

NameTypeReqDescription
collectionstringyesPath to a Bruno collection under a bruno/collections-style tree. The server will look for a sibling environments directory.

No output schema declared.

No examples provided.

list-collections ~87

List Bruno collections below a root directory or configured roots. Use this when the user gives a partial collection name instead of a full path.

NameTypeReqDescription
query––Optional case-insensitive text used to filter collection names and paths.
root––Optional Bruno root directory. When omitted, the server uses roots from bruno-mcp.toml or ~/.config/bruno-mcp/config.toml.

No output schema declared.

No examples provided.

list-request-filters ~61

Inspect OpenCollection YAML requests and return enabled and disabled query params that can be used as filter scenarios. Secret values are not returned.

NameTypeReqDescription
collectionstringyesPath to the Bruno collection directory or opencollection.yml file to inspect for query filters.

No output schema declared.

No examples provided.

read-result-artifact ~89

Read a bounded, redacted summary from a raw Bruno JSON artifact path returned by run-collection or run-filter-scenarios. Use this when response data is too large to include directly in a tool result.

NameTypeReqDescription
max_itemsinteger–Maximum response items to sample per request.
pathstringyesPath returned by run-collection or run-filter-scenarios as artifact_path.

No output schema declared.

No examples provided.

run-collection ~219

Run a Bruno collection with the local `bru` CLI and return normalized JSON with success, request summary, per-request details, failures, and execution timings. Provide `collection` as the collection path; optionally pass `environment` and non-secret `variables` as KEY=value strings. For secrets, pass only names through `inherited_variables`; values are read from the MCP server process.

NameTypeReqDescription
collectionstringyesPath to the Bruno collection directory, a .bru/.vru request file, or an opencollection.yml file. When opencollection.yml is provided, the server runs its parent collection directory.
environment––Optional Bruno environment name or environment file accepted by `bru run --env`.
inherited_variables––Optional names of environment variables to read from the MCP server process and pass to Bruno as `--env-var`. Use this for secrets so the LLM only provides variable names, never values.
variables––Optional Bruno environment variables passed as repeated `--env-var` values. Use KEY=value strings.

No output schema declared.

No examples provided.

run-filter-scenarios ~188

Run temporary Bruno request variants with selected disabled query params enabled, then validate HTTP status and response payload consistency. Each request is also run once without filters (baseline) to distinguish an ignored filter (response identical to baseline) from a filter that legitimately returns zero matches. Infrastructure failures (auth, routing, timeout, connectivity) are reported as inconclusive, never as filter defects. Source collection files are not modified.

NameTypeReqDescription
collectionstringyesPath to the Bruno collection directory or opencollection.yml file.
environment––Optional Bruno environment name.
inherited_variables––Optional secret variable names to inherit from the MCP server process.
max_scenariosinteger–Maximum number of generated scenarios when scenarios are omitted.
scenarios––Optional explicit filter scenarios. When omitted, scenarios are generated from disabled query params.
variables––Optional non-secret KEY=value variables.

No output schema declared.

No examples provided.

run-full-validation ~208

Two-phase validation. Phase 1 runs the collection once and checks every endpoint is reachable (HTTP status, no request errors). Phase 2 only runs if phase 1 passes: it tests every documented disabled query filter across every endpoint in temporary request copies, without modifying source files. Each scenario is compared against an unfiltered baseline to distinguish ignored filters from legitimate zero-match results, and infrastructure failures are marked inconclusive instead of failed. Returns a consolidated result stating which phase ran, per-endpoint baseline status, and per-endpoint per-filter pass/fail/skip with the reason.

NameTypeReqDescription
collectionstringyesPath to the Bruno collection directory or opencollection.yml file.
environment––Optional Bruno environment name.
inherited_variables––Optional secret variable names to inherit from the MCP server process.
max_scenariosinteger–Maximum number of filter scenarios to run in phase 2, across all endpoints combined.
variables––Optional non-secret KEY=value variables.

No output schema declared.

No examples provided.

Install

How do I install the io.github.kta41/mcp-bruno server?

io.github.kta41/mcp-bruno runs locally as a PyPI package, launched with uvx mcp-bruno. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

pypi · mcp-bruno

# add to Claude Code
claude mcp add kta41-mcp-bruno -- uvx mcp-bruno
Common questions

What is the io.github.kta41/mcp-bruno server?

io.github.kta41/mcp-bruno is listed in the public MCP registry as io.github.kta41/mcp-bruno. Python MCP server for running and inspecting Bruno API collections. This page covers its PyPI package (mcp-bruno).

Is the io.github.kta41/mcp-bruno server safe to use?

io.github.kta41/mcp-bruno scores 68 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 5 November 2026. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the io.github.kta41/mcp-bruno server expose?

io.github.kta41/mcp-bruno exposes 7 tools: run-collection, list-collections, discover-environments, list-request-filters, run-filter-scenarios, and 2 more. Their descriptions and schemas cost roughly 920 tokens of context every time the server is loaded.

Is the io.github.kta41/mcp-bruno server still maintained?

io.github.kta41/mcp-bruno is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the io.github.kta41/mcp-bruno server under?

io.github.kta41/mcp-bruno declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.