MCP.Market

Bruno MCP Studio MCP server

by Ostico·io.github.Ostico/bruno-mcp-studio·v2.5.0·11 stars

Author, edit and run Bruno collections as files: HTTP, WebSocket, gRPC, per-request pass/fail.

A88/100grade A
What users say
No reviews yet
Be the first
Safety scan
A88/100

full report

Adoption
Growing

11 stars538 downloads/wk

Reviews

Write one

Nobody has reviewed Bruno MCP Studio yet.

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

Bruno MCP Studio tools (18, 10 write)

write = sends, deletes, buys or posts

Read from the package source without running it. The installed server may list more.

  • add_test_script

    Add pre-request, post-response, or tests scripts to a Bruno request. Canonical scriptType values are pre-request/post-response/tests; the aliases before-request (\u2192 pre-request) and after-response (\u2192 post-response) are also accepted. Appends to any existing script of that type by default \u2014 pass scriptMode:"replace" to overwrite it, or use remove_script to clear it. Assertions must be

  • create_collectionwrite action

    Create a new Bruno API testing collection with configuration. outputPath is the PARENT directory and name is appended to it: outputPath "/work/apis" with name "Billing" creates the collection at /work/apis/Billing. Do not put the collection name in outputPath as well. The new collection is also added to the workspace registry that `list_collections` reads rather than the disk, so a collection miss

  • create_environmentwrite action

    Create an environment file for a Bruno collection. Writes the WHOLE file, so it REFUSES a name that already exists rather than overwriting it \u2014 the error names the existing variables and which ones a replace would delete, so you can merge with update_environment, pick another name, or retry with overwrite: true.

  • delete_collectionwrite action

    Permanently delete a Bruno collection: the collection directory and everything inside it is removed from disk, and its workspace registry entry with it. Nothing here can be recovered through this server. Only a directory that is itself a collection root \u2014 one holding opencollection.yml or bruno.json \u2014 can be deleted. To keep the files and only stop the collection being listed, use unregi

  • delete_requestwrite action

    Permanently delete request files from a Bruno collection. One confirm covers the whole list. Each file is unlinked and cannot be recovered through this server. Only .yml/.bru files inside a detected collection can be deleted. Every path is checked before the first unlink, so one unusable path deletes nothing. The result names each file's outcome. To clear a script and keep the request, use remove_

  • get_collection_stats
  • list_collections

    List the Bruno collections REGISTERED IN workspace.yml, with their names and paths. This is a registry listing, not a filesystem scan: a collection that exists on disk but is not registered will NOT appear, and registered entries that no longer exist are returned with "exists": false. A known absolute path works in the other tools without appearing here. Use the returned path as collectionPath in

  • list_requests

    List all request files (.yml/.bru) in a Bruno collection. Returns absolute file paths, each usable as an entry in the requests list of run_collection, or of one of its groups.

  • move_request

    Relocate a request file to another folder, or to another collection entirely. Pass copy:true to duplicate it instead of moving it. The bytes are moved verbatim, nothing is parsed and rewritten, so seq arrives unchanged and may tie with a request already there; that is reported, and Bruno breaks such a tie by filename. The file keeps its name: use write_request with filename to rename it. The new p

  • read_environment

    Read an environment back as structured JSON: every variable with its value, plus its disabled and secret flags. Omit "name" to list the collection's environments instead. Secret variables are returned by name only \u2014 no file format stores a secret's value, so there is none to return.

  • read_request

    Read a single request file back as structured JSON: method, url, headers, query and path params, body, auth mode, scripts, assertions, vars, settings and docs. Both .bru and .yml return the same shape, so the on-disk format stays invisible. Use this before write_request to see current state, and after it to confirm what was written. A websocket or grpc request also carries its stored messages in f

  • remove_environment_variablewrite action

    Remove a single variable from an existing Bruno environment. MERGES into the environment \u2014 all other variables are preserved.

  • remove_scriptwrite action

    Delete a pre-request, post-response, or tests script from a Bruno request, leaving the rest of the request intact, including duplicate blocks accumulated by appending. Canonical scriptType values are pre-request/post-response/tests; the aliases before-request and after-response are accepted. Removing all scripts also drops the now-empty script container.

  • run_collectionwrite action
  • set_environment_variable

    Set (add or update) a single variable in an existing Bruno environment. MERGES into the environment \u2014 all other variables are preserved.

  • unregister_collectionwrite action

    Remove a collection from the workspace registry, leaving every file on disk untouched. list_collections reads that registry, so this is how an entry stops being listed, including a stale entry whose directory is gone. To delete the collection itself, use delete_collection.

  • update_environmentwrite action

    Partially update an existing Bruno environment by MERGING the provided variables into the existing ones. Variables not listed are preserved, unlike create_environment, which replaces the whole file.

  • write_requestwrite action

Public scan report

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

no findings
  • Code scan7 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 qualitylocal package, no credentials required12/15
  • Maintenancelast push 39 days ago12/15
  • Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
Overall 88/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

How Bruno MCP Studio compares

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

Safety score
88/100
higher than 75% of 48,255 servers
Tools
18
the typical server has 7
Tools that change things
56%
typical: 0%. Fewer write tools means less an agent can break
GitHub stars
11
more than 88% of 28,688 servers
Downloads a week
538
more than 89% of 12,191 servers with a package

What its tools let an agent do: 5 read · 4 create · 4 change · 4 delete · 1 run or deploy

Install Bruno MCP Studio in Claude Code, Cursor or VS Code

Runs npx -y @ostico/bruno-mcp on your machine. Read the scan report first; the gateway never runs local packages.

claude mcp add bruno-mcp-studio -- npx -y @ostico/bruno-mcp
Add to Cursor

What the publisher says

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

Bruno MCP Studio — author, edit and run Bruno collections from an agent

Turns an agent's API testing into files you keep: it authors and edits Bruno collections in place, then runs them — HTTP, WebSocket and gRPC, one identity or many — and reports per-request pass/fail you can re-run in CI.

An independent Model Context Protocol server for Bruno collections. In August 2026 Bruno's own team announced an official one, usebruno/bruno-mcp, which wraps the bru CLI to discover and run requests. This server is aimed elsewhere: it writes collections as well as running them — non-destructively, at byte parity with Bruno's own writers — and its runner is in-process rather than a subprocess, which is what lets it offer caller-defined execution groups with their own variable store and cookie jar, concurrency inside a group, oauth2 and digest exchanged in memory, gRPC and WebSocket, and multi-identity authorization testing.

If what you need is "list my collections and run one", the official server does that and will be the one Bruno supports. If you want an agent to build and maintain the suite, that is what this is for.

It gives an AI agent in Claude Code, Claude Desktop, Cursor, Windsurf, VS Code or Codex CLI eighteen tools for API testing against a real Bruno collection: create and edit requests, read them back as structured JSON, manage environments and variables, write assertions and test scripts, then run the collection — auth, cookies, redirects, dependency ordering and all — and get the results back in the same turn. No Bruno GUI, no Bruno CLI, no shelling out. The collection it leaves on disk is a normal Bruno collection: your CI runs it with bru run, your teammates open it in the Bruno app.

Your agent already knows HTTP. It does not know your API, and it does not know Bruno's file format. So it guesses. It writes a .bru file from memory, the run fails, it rewrites the file, the run fails differently, and twenty minutes later you have a passing request and no idea which of the six edits mattered. You paid for every one of those turns, and none of that work is on disk in a form your CI or your team's Bruno GUI can use.

The usual escape is curl. Agents are not bad at curl — the problem is that a shell command holds no state. A login, a token, a created resource, a follow-up call that needs the ID from the last response: each of those is a new command, and the glue between them lives only in the agent's context, when the session ends, all is lost. Twenty endpoints tested by curl leave you with twenty strings in a transcript and no artifact your CI or your teammates can run. Twenty endpoints in a collection leave you with a suite.

I asked my agent about it

I asked the agent that helps me to maintain this server to explain how its experience with Bruno had been without the MCP server, and whether it could simply have tested all my APIs with curls instead. This is what it told me:

Shortened. The full README is on GitHub.

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

Bruno MCP Studio: common questions

Is Bruno MCP Studio MCP server safe?
Yes, by our scan: it is graded A (88/100). Read the Bruno MCP Studio safety report
How do I install Bruno MCP Studio?
It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
Does Bruno MCP Studio need an API key?
Not as far as the registry entry and our scan can tell: no credentials are declared or required.
Is Bruno MCP Studio maintained?
The last commit was 41 days ago (2026-09-24). The latest release is v2.5.0.
What can I use instead of Bruno MCP Studio?
Servers from other publishers that do the same job: Excel MCP Server.
How does Bruno MCP Studio compare with other MCP servers?
safety score 88/100 (higher than 75% of 48,255 servers); tools 18 (the typical server has 7); tools that change things 56% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.

Alternatives to Bruno MCP Studio

Same job from other publishers: the closest match first, then the best rated.

  • Excel MCP Server
    Create and edit Excel files with AI: charts, PivotTables, formulas. No Excel needed.
    A