nimbus-mcp
MCP server that lets AI agents (Claude Code, Cursor, Claude Desktop) build, validate, run, and analyze Nimbus BCI pipelines — and (explicitly confirmed) drive live EEG streaming sessions — through your local Nimbus backend.
Install
pip install nimbus-mcp # or: uvx nimbus-mcp
(Also installable from the repo: pip install -e nimbus-studio/mcp.)
Requirements
- A Nimbus backend running locally: the desktop app, or the dev server
(
cd nimbus-studio/backend-py && python -m nimbus_backend.server.app) withDEBUG=1. - The backend started with
MCP_LOCAL_KEY=<some-secret>(never set this on Fly — it is refused there).
Configure the backend
Desktop/dev env (e.g. backend-py/data/.env or the dev shell):
MCP_LOCAL_KEY=choose-a-long-random-string
DEBUG=1 # dev server only; the desktop app qualifies automatically
When enabling MCP_LOCAL_KEY on a machine connected to an untrusted network, also set
HOST=127.0.0.1 on the backend — the default bind is 0.0.0.0, so the key would
otherwise be accepted from the LAN.
Run the server
cd nimbus-studio/mcp
python -m venv .venv && source .venv/bin/activate
pip install -e ".[test]"
NIMBUS_MCP_KEY=choose-a-long-random-string python -m nimbus_mcp
Env vars: NIMBUS_API_URL (default http://127.0.0.1:8080), NIMBUS_MCP_KEY
(must match MCP_LOCAL_KEY), NIMBUS_EXPORT_DIR (default ~/nimbus-exports).
Claude Code
claude mcp add nimbus -- <path-to-mcp-venv>/bin/python -m nimbus_mcp \
--env NIMBUS_MCP_KEY=choose-a-long-random-string
Cursor / Claude Desktop (stdio)
{
"mcpServers": {
"nimbus": {
"command": "<path-to-mcp-venv>/bin/python",
"args": ["-m", "nimbus_mcp"],
"env": { "NIMBUS_MCP_KEY": "choose-a-long-random-string" }
}
}
}
Tools (20)
Discovery: list_nodes, get_node_schema, list_templates, get_template, list_datasets
Build: validate_pipeline, validate_node_config
Run: run_pipeline (non-blocking), get_execution, list_executions, get_results, cancel_execution
Artifacts: list_artifacts, download_artifact, export_python
Live: list_devices, test_device, start_stream (needs confirm=true),
stream_status, stop_stream
Safety
start_stream refuses to run without confirm=true — it connects an EEG device and
starts a live session on a human. The X-MCP-Key path is machine-local only
(never accepted on Fly deployments).
Metadata
Release files for nimbus-mcp 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| nimbus_mcp-0.1.0.tar.gz | 14.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| nimbus_mcp-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 28.3 kB
Release files / nimbus_mcp-0.1.0.tar.gz
| Download URL | nimbus_mcp-0.1.0.tar.gz |
|---|---|
| Size | 14.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
42a746f97eb3a3aef3e4ef891d093dcc867651e9a05dc17c9bccc12d72da5751
|
|
BLAKE2b-256 checksum How to use checksums |
0626d2fa5400ae64e43b9bc3747473e6215bf078da066aaa2b4dfe54430567e3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.2
|
Release files / nimbus_mcp-0.1.0-py3-none-any.whl
| Download URL | nimbus_mcp-0.1.0-py3-none-any.whl |
|---|---|
| Size | 13.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e8ca1805685f12c48ad5369578107a4cac57c3752dc7079c598d5b412e50f526
|
|
BLAKE2b-256 checksum How to use checksums |
e86a6ada5a4a8833f1e80ab346e336b1be8bac89d0ef0c0838a404184f0e67ca
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.2
|