1. Conduid
  2. Developer Tools
  3. Bruno MCP
MCP server ยท Developer Tools

Bruno MCP

๐Ÿš€ MCP server for generating Bruno API testing files programmatically. Create collections, environments, requests, and test scripts using AI clients like Claude Desktop.

57Fair

Scored 3 months ago ยท breakdown

About Bruno MCP

Bruno MCP is an MCP server published by macarthy in the Developer Tools category: ๐Ÿš€ MCP server for generating Bruno API testing files programmatically. Create collections, environments, requests, and test scripts using AI clients like Claude Desktop. It has been installed 0 times through Conduid.

The repository has 10 stars and 3 forks, with the last commit a year ago. Six months or more without a commit doesn't mean the server is broken, but check the open issues (0) before depending on it in production.

Install

Install
npx bruno-mcp

This server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.

Ask AI

Ask AI about Bruno MCP

Powered by Claude · Grounded in docs

I know everything about Bruno MCP. Ask me about installation, configuration, usage, or troubleshooting.

Security checks

  • ยทREADME presentNot checked yet.
  • ยทLicense declaredNot checked yet.
  • ยทTests presentNot checked yet.
  • ยทDependencies pinnedNot checked yet.
  • ยทNo dynamic code executionNot checked yet.
  • !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.

README

Bruno MCP Server

A Model Context Protocol (MCP) server for generating Bruno API testing files programmatically.

Overview

Bruno MCP Server enables you to create, manage, and generate Bruno API testing collections, environments, and requests through standardized MCP tools. This allows for automated setup of API testing workflows and integration with Claude and other MCP-compatible clients.

Features

  • ๐Ÿ“ Collection Management: Create and organize Bruno collections
  • ๐ŸŒ Environment Configuration: Manage multiple environments (dev, staging, prod)
  • ๐Ÿ”ง Request Generation: Generate .bru files for all HTTP methods
  • ๐Ÿ” Authentication Support: Bearer tokens, Basic auth, OAuth 2.0, API keys
  • ๐Ÿ“ Test Scripts: Add pre/post request scripts and assertions
  • ๐Ÿ”„ CRUD Operations: Generate complete CRUD request sets
  • ๐Ÿ“Š Collection Statistics: Analyze existing collections

Installation

# Clone the repository
git clone https://github.com/macarthy/bruno-mcp.git
cd bruno-mcp

# Install dependencies
npm install

# Build the project
npm run build

Client Integration

The Bruno MCP Server can be integrated with various AI clients that support the Model Context Protocol:

Quick Setup for Claude Desktop

  1. Edit Claude Desktop config file:

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows: %APPDATA%/Claude/claude_desktop_config.json
    • Linux: ~/.config/Claude/claude_desktop_config.json
  2. Add Bruno MCP Server:

    {
      "mcpServers": {
        "bruno-mcp": {
          "command": "node",
          "args": ["/absolute/path/to/bruno-mcp/dist/index.js"],
          "env": {}
        }
      }
    }
    
  3. Restart Claude Desktop

Supported Clients

  • โœ… Claude Desktop App - Full support
  • โœ… Claude Code (VS Code) - Full support
  • โœ… Continue - Tools and resources
  • โœ… Cline - Tools and resources
  • โœ… LM Studio - Tools support
  • โœ… MCP Inspector - Development/testing
  • โœ… Custom MCP Clients - via SDK

๐Ÿ“– For detailed integration instructions with all clients, see INTEGRATION.md

Usage

With Claude Code or MCP Inspector

  1. Start the MCP server:
npm start
  1. Use the MCP Inspector to test tools:
npx @modelcontextprotocol/inspector

Available MCP Tools

create_collection

Create a new Bruno collection with configuration.

Parameters:

  • name (string): Collection name
  • description (string, optional): Collection description
  • baseUrl (string, optional): Default base URL
  • outputPath (string): Directory to create collection
  • ignore (array, optional): Files to ignore

Example:

{
  "name": "my-api-tests",
  "description": "API tests for my application", 
  "baseUrl": "https://api.example.com",
  "outputPath": "./collections"
}

create_environment

Create environment configuration files.

Parameters:

  • collectionPath (string): Path to Bruno collection
  • name (string): Environment name
  • variables (object): Environment variables

Example:

{
  "collectionPath": "./collections/my-api-tests",
  "name": "production",
  "variables": {
    "baseUrl": "https://api.example.com",
    "apiKey": "prod-key-123",
    "timeout": 30000
  }
}

create_request

Generate .bru request files.

Parameters:

  • collectionPath (string): Path to collection
  • name (string): Request name
  • method (string): HTTP method
  • url (string): Request URL
  • headers (object, optional): HTTP headers
  • body (object, optional): Request body
  • auth (object, optional): Authentication config
  • folder (string, optional): Folder organization

Example:

{
  "collectionPath": "./collections/my-api-tests",
  "name": "Get User Profile",
  "method": "GET",
  "url": "{{baseUrl}}/users/{{userId}}",
  "headers": {
    "Authorization": "Bearer {{token}}"
  },
  "folder": "users"
}

create_crud_requests

Generate complete CRUD operation sets.

Parameters:

  • collectionPath (string): Path to collection
  • entityName (string): Entity name (e.g., "Users")
  • baseUrl (string): API base URL
  • folder (string, optional): Folder name

Example:

{
  "collectionPath": "./collections/my-api-tests",
  "entityName": "Products",
  "baseUrl": "{{baseUrl}}/api/v1",
  "folder": "products"
}

add_test_script

Add test scripts to existing requests.

Parameters:

  • bruFilePath (string): Path to .bru file
  • scriptType (string): Script type (pre-request, post-response, tests)
  • script (string): JavaScript code

get_collection_stats

Get statistics about a collection.

Parameters:

  • collectionPath (string): Path to collection

Generated File Structure

my-collection/
โ”œโ”€โ”€ bruno.json              # Collection configuration
โ”œโ”€โ”€ environments/           # Environment files
โ”‚   โ”œโ”€โ”€ development.bru
โ”‚   โ”œโ”€โ”€ staging.bru
โ”‚   โ””โ”€โ”€ production.bru
โ”œโ”€โ”€ auth/                   # Authentication requests
โ”‚   โ”œโ”€โ”€ login.bru
โ”‚   โ””โ”€โ”€ get-profile.bru
โ””โ”€โ”€ users/                  # User management
    โ”œโ”€โ”€ get-all-users.bru
    โ”œโ”€โ”€ get-user-by-id.bru
    โ”œโ”€โ”€ create-user.bru
    โ”œโ”€โ”€ update-user.bru
    โ””โ”€โ”€ delete-user.bru

Bruno BRU File Format

Generated .bru files follow the Bruno markup language specification:

meta {
  name: Get Users
  type: http
  seq: 1
}

get {
  url: {{baseUrl}}/users
  body: none
  auth: none
}

headers {
  Content-Type: application/json
  Authorization: Bearer {{token}}
}

script:pre-request {
  bru.setVar("timestamp", Date.now());
}

script:post-response {
  if (res.status === 200) {
    bru.setVar("userId", res.body[0].id);
  }
}

tests {
  test("Status should be 200", function() {
    expect(res.status).to.equal(200);
  });
}

Testing

Run Unit Tests

npm test

Run Integration Tests

npm run test:integration

Test with Bruno CLI

# Generate a collection first
# Then run tests with Bruno CLI
bruno-cli run ./collections/my-api-tests/

Examples

See the examples/ directory for complete usage examples:

  • examples/jsonplaceholder/ - JSONPlaceholder API testing
  • examples/authentication/ - Authentication workflows
  • examples/complex-workflows/ - Multi-step API scenarios

Development

Project Structure

src/
โ”œโ”€โ”€ index.ts              # Main entry point
โ”œโ”€โ”€ server.ts             # MCP server implementation
โ”œโ”€โ”€ bruno/
โ”‚   โ”œโ”€โ”€ types.ts          # TypeScript interfaces
โ”‚   โ”œโ”€โ”€ generator.ts      # BRU file generator
โ”‚   โ”œโ”€โ”€ collection.ts     # Collection management
โ”‚   โ”œโ”€โ”€ environment.ts    # Environment management
โ”‚   โ””โ”€โ”€ request.ts        # Request builder
โ””โ”€โ”€ tools/                # Individual MCP tools

Building

npm run build      # Build TypeScript
npm run dev        # Development mode
npm run clean      # Clean build artifacts

Code Quality

npm run lint       # ESLint
npm run format     # Prettier

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests
  5. Submit a pull request

License

MIT License - see LICENSE file for details.

Links


Generated with Bruno MCP Server ๐Ÿš€

README mirrored from the source repository 3 months ago. The original is authoritative.

Questions

About Bruno MCP

How do I install Bruno MCP?

Run npx bruno-mcp, then add the server to your MCP client's configuration. Conduid has recorded 0 installs, so the command is known to work with current clients.

Is Bruno MCP safe to use with an AI agent?

Its trust score is 57 out of 100 (fair). It passes 0 of 1 static security checks; the failures are listed above. It has no ConduID identity yet, so agent calls to it are not receipted.

Is Bruno MCP still maintained?

The last commit was a year ago, with 0 open issues. That's long enough that you should check whether the maintainer is responding to issues before depending on it.