Bruno MCP
[](https://mseep.ai/app/hungthai1401-bruno-mcp)
# Bruno MCP Server
<a href="https://glama.ai/mcp/servers/@hungthai1401/bruno-mcp">
<img width="380" height="200" src="https://glama.ai/mcp/servers/@hungthai1401/bruno-mcp/badge" alt="Bruno MCP server" />
</a>
[](https://archestra.ai/mcp-catalog/hungthai1401__bruno-mcp)
[](https://smithery.ai/server/@hungthai1401/bruno-mcp)
An MCP (Model Context Protocol) server that enables running Bruno collections. This server allows LLMs to execute API tests using Bruno and get detailed results through a standardized interface.
## Features
* Run Bruno collections using the Bruno CLI
* Support for environment files
* Support for environment variables
* Detailed test results including:
* Overall success/failure status
* Test summary (total, passed, failed)
* Detailed failure information
* Execution timings
## Installation
### Installing via Smithery
To install Bruno MCP Server for Claude Desktop automatically via [Smithery](https://smithery.ai/server/@hungthai1401/bruno-mcp):
```bash
npx -y @smithery/cli install @hungthai1401/bruno-mcp --client claude
```
### Manual Installation
```bash
# Install dependencies
npm install
# Build the project
npm run build
```
## Configuration
Add the server to your Claude desktop configuration file at `~/Library/Application Support/Claude/claude_desktop_config.json`:
```json
{
"mcpServers": {
"bruno-runner": {
"command": "npx",
"args": ["-y", "bruno-mcp"],
}
}
}
```
## Available Tools
### run-collection
Runs a Bruno collection and returns the test results.
**Parameters:**
* `collection` (required): Path to the Bruno collection
* `environment` (optional): Path to environment file
* `variables` (optional): Environment variables as key-value pairs
**Example Response:**
```json
{
"success": true,
"summary": {
"total": 5,
"failed": 0,
"passed": 5
},
"failures": [],
"timings": {
"started": "2024-03-14T10:00:00.000Z",
"completed": "2024-03-14T10:00:01.000Z",
"duration": 1000
}
}
```
### Example Usage in Claude
You can use the server in Claude by asking it to run a Bruno collection:
"Run the Bruno collection at /path/to/collection.bru and tell me if all tests passed"
Claude will:
1. Use the run-collection tool
2. Analyze the test results
3. Provide a human-friendly summary of the execution
## Development
### Project Structure
```
src/
├── index.ts # Entry point
├── server.ts # MCP Server implementation
├── runner.ts # Bruno runner implementation
└── types.ts # Type definitions
```
### Running Tests
```bash
# Run tests
npm test
# Run tests with coverage
npm test:coverage
```
### Building
```bash
# Build the project
npm run build
# Clean build artifacts
npm run clean
```
## License
MIT TDQS
Scored across 1 tool
With only one tool, there is no possibility of confusion or overlap between tools. The tool 'run-collection' has a single, clearly defined purpose that cannot be misselected against other tools.
Since there is only one tool, naming consistency is inherently perfect. The tool name 'run-collection' follows a verb-noun pattern, and there are no other tools to compare it against for inconsistency.
A single tool is generally too few for most server purposes, as it limits functionality and may indicate an incomplete or overly narrow scope. While it could be appropriate for a very specific task, it often feels thin and lacks the breadth needed for typical agent workflows.
With only one tool, the surface is severely incomplete. There are obvious gaps, such as the inability to create, list, update, or delete collections, which are typical operations in a collection management domain. This will likely cause agent failures when trying to perform basic tasks beyond running a collection.