MCP server for Bruno API collections
Project description
Bruno MCP
MCP server for Bruno API collections that executes requests via the Bruno CLI tool.
Prerequisites
1. Install Bruno CLI
The Bruno CLI tool (bru) must be installed and available in your PATH.
- Install Bruno CLI following the official Bruno documentation
- Verify installation:
bru --version
2. Install uv (recommended)
uv is the recommended way to install and run bruno-mcp. It includes uvx, which handles package installation and execution automatically.
curl -LsSf https://astral.sh/uv/install.sh | sh
Setup
MCP Configuration (uvx)
Configure the MCP server by adding an entry to your IDE. For Cursor, create or edit the configuration file at ~/.cursor/mcp.json:
{
"mcpServers": {
"bruno-mcp": {
"command": "uvx",
"args": ["bruno-mcp"],
"env": {
"BRUNO_COLLECTION_PATH": "/path/to/your/bruno/collection"
}
}
}
}
The only configuration required is BRUNO_COLLECTION_PATH, which should point to your Bruno collection directory.
Alternative: Run Server Manually
If you prefer not to use uvx, you can clone the repository and run the server directly:
git clone https://github.com/jackmulligan-ire/bruno-mcp.git
cd bruno-mcp
uv sync
Then configure your MCP client with the full paths:
{
"mcpServers": {
"bruno-mcp": {
"command": "/path/to/bruno-mcp/.venv/bin/python",
"args": ["-m", "bruno_mcp"],
"cwd": "/path/to/bruno-mcp",
"env": {
"BRUNO_COLLECTION_PATH": "/path/to/your/bruno/collection",
"PYTHONPATH": "/path/to/bruno-mcp/src"
}
}
}
}
After updating the configuration file, enable the server in your IDE's MCP settings.
Usage Notes
Variable Overrides
The run_request_by_id tool accepts a variable_overrides parameter that maps to the Bruno CLI's --env-var flag. This allows you to substitute {{variable}} placeholders in your .bru files at runtime.
Important limitation: --env-var can only override variables that are already defined in a Bruno environment. It cannot introduce new variables, or replace the values of pre-request and post-request variables. If a variable is not defined in any environment, the override will be silently ignored and the placeholder will resolve to an empty string.
To use variable overrides:
- Define the variable in a Bruno environment file (even as an empty string):
vars { postId: } - Pass
variable_overrideswhen calling the tool. For example, if you have a.brufile with the URLhttps://api.example.com/posts/{{postId}}and an environment calleddevthat definespostId, you would call:variable_overrides:{"postId": "42"}
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file bruno_mcp-0.1.1.tar.gz.
File metadata
- Download URL: bruno_mcp-0.1.1.tar.gz
- Upload date:
- Size: 14.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
50ad0fa646baccb96fd54fe8c3dd2744fb257a01fd353bfe73ba69870292bc4e
|
|
| MD5 |
d1a234e05cc4d729ec7692d67184c769
|
|
| BLAKE2b-256 |
d0f71225a838937bf643c9e70e33ad1066db4077a2346f8aba143e21c64e81a1
|
File details
Details for the file bruno_mcp-0.1.1-py3-none-any.whl.
File metadata
- Download URL: bruno_mcp-0.1.1-py3-none-any.whl
- Upload date:
- Size: 19.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7532be08fddebc62811b37e991332c33f62a0f0374ff11fc3fc6f359432601a6
|
|
| MD5 |
82c212399c552b42b8eb86abbf403c93
|
|
| BLAKE2b-256 |
948f095b9671ec6700974369d2b234d7f36b846838e1c8d591550172fa9aacc7
|