Skip to main content
Glama
Bruno MCP Server

Bruno MCP Server

by kodlbegiko

Bruno MCP Server

A local-first, secure Model Context Protocol (MCP) server that enables AI coding assistants (like Cursor, Claude Desktop, and Aider) to discover, inspect, and run API requests in your Bruno collections entirely locally.

Bruno MCP Server self-healing demo


Key Features

  • Local-First & Private: Executes API calls locally on your machine using your own local Bruno files and environments. No credentials or source files are sent to a cloud service.

  • Universal Connection (MCP): Standardizes how AI coding agents query, analyze, and verify your back-end APIs.

  • Tolerant Parsing: Extracts metadata (URL, headers, body types, bearer tokens) from .bru files while preserving the exact raw contents.

  • Process Sandbox: Executes requests by calling your project-local @usebruno/cli directly with no shell interpolation, protecting against command injection.


Related MCP server: blackmount-mcp

Installation

Prerequisites

  • Node.js >= 20.0.0

  • A Bruno collection initialized in your workspace.

Running from source

The npm package name bruno-mcp-server is currently owned by another project. Clone this repository to ensure you run this implementation:

git clone https://github.com/kodlbegiko/bruno-mcp-server.git
cd bruno-mcp-server
npm ci
npm run build
node dist/index.js --project-path /absolute/path/to/your/bruno-collection

Client Configuration

1. Cursor

To configure the server in Cursor, open Settings -> Features -> MCP, click + Add New MCP Tool, and fill in the details:

  • Name: bruno

  • Type: stdio

  • Command: node /absolute/path/to/bruno-mcp-server/dist/index.js --project-path /absolute/path/to/your/bruno-collection

2. Claude Desktop

Add this to your claude_desktop_config.json:

{
  "mcpServers": {
    "bruno": {
      "command": "node",
      "args": [
        "/absolute/path/to/bruno-mcp-server/dist/index.js",
        "--project-path",
        "/absolute/path/to/your/bruno-collection"
      ]
    }
  }
}

Try the Self-Healing Demo

To see the AI agent automatically debug and heal code using this MCP server:

  1. Start the Mock Server:

    node fixtures/demo/server.js
  2. Introduce a Bug: Open fixtures/demo/server.js and change payload.email to payload.mail in the registration handler.

  3. Ask the AI: In Cursor or Claude, ask:

    "I just modified the register endpoint in fixtures/demo/server.js. Please use the Bruno MCP tool to run the 'Register' request in fixtures/demo/ to check if it passes."

  4. Watch it Heal: The AI agent will call the MCP tool, detect the 400 failure, inspect server.js, fix the typo back to payload.email, re-run the request, and confirm the test passes!


Tool Reference

1. list_bruno_requests

Discovers and lists all .bru request files inside the collection root.

  • Inputs:

    • project_path (string, optional)

  • Output:

    • A JSON array listing request names, paths, and detected HTTP methods.

2. get_bruno_request_detail

Extracts structured request details (URL, headers, body, auth parameters) and raw content.

  • Inputs:

    • request_name (string, required) - The name (relative path without extension, or unique basename) of the request.

    • project_path (string, optional)

3. run_bruno_request

Runs a request locally through the Bruno CLI and captures status and outputs.

  • Inputs:

    • request_name (string, required)

    • project_path (string, optional)

    • env (string, optional) - Target environment defined in your collection.

    • env_vars (object, optional) - Key-value overrides for environment variables.


Development & Contribution

See CONTRIBUTING.md for local setup, testing, and contribution protocols.

License

MIT License. See LICENSE for details.

Available Tools

3 tools
get_bruno_request_detailB

Get structured details and raw content of a specific Bruno request file.

Inputs: request_name (required), project_path.

list_bruno_requestsB

List all Bruno request files in the collection root. Optionally specify a project_path.

Inputs: project_path.

run_bruno_requestB

Execute a Bruno API request using the local Bruno CLI and get status and outputs.

Inputs: request_name (required), env, env_vars, project_path.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.7/5.0

    Scored across 3 tools

    Disambiguation5/5

    Each tool has a distinct purpose: listing files, getting details, and executing requests. There is no overlap in functionality.

    Naming Consistency5/5

    All tool names follow the same verb_bruno_request pattern, making the naming predictable and consistent.

    Tool Count5/5

    Three tools is a well-scoped, focused set for a Bruno request server. Each tool earns its place.

    Completeness4/5

    The server covers the core workflow of listing, inspecting, and running requests. Missing mutation operations (create/update/delete) are a minor gap but not critical for the server's apparent purpose.

    Maintenance

    ActivityInactive
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      A
      maintenance
      Enables AI assistants to access and search local browser history, bookmarks, open tabs, and downloads for personalized context.
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      Exposes Bruno CLI as tools for AI agents, allowing them to discover, inspect, and execute Bruno API collections through the MCP protocol.
      1
      MIT