MCP server that wraps the Dagster GraphQL API — manage runs, assets, schedules, sensors, and backfills from any MCP client
Nimbus BCI is installed from its publisher's own source and answers where it runs, so this marketplace is not in the path of a single call. There is no address here to send one to, and a panel that pretended otherwise would be showing you an answer we made up. Install it and call it from your own client — the Installation tab has the entry for each one.
What it does
AI agents build, train, and analyze BCI/EEG pipelines: data, models, experiments, live sessions.
Quickstart
# 1 — add it to Claude Code
claude mcp add --scope user nimbus-bci-mcp '--' uvx nimbus-mcp
# 2 — ask your agent for something these tools do
# execution.artifacts, execution.download_artifact, pipeline.export and 46 more
Nimbus BCI costs nothing on mcprush: there is no plan to choose here, no cap to set and nothing mcprush can bill you for.
Where are you running it?
Every route below installs the same thing and ends at the same approval screen. This one can run either way — at an address its publisher runs, or as a process under your own user, with your files and your network — and this marketplace is in the path of neither.
This is a public server: you run it yourself and this marketplace is not in the path. You need uv (docs.astral.sh/uv): uvx comes with it. Claude Code registers it in one command; --scope user makes it available in every project. The '--' is in quotes so that PowerShell passes it on.
claude mcp add --scope user nimbus-bci-mcp '--' uvx nimbus-mcpReconnect, or start a new session, and the tools appear in the model’s tool list.
Its publisher also runs it at https://nimbus-mcp.fly.dev/mcp: nothing to start on your machine, and this marketplace is not in the path.
claude mcp add --scope user --transport http nimbus-bci-mcp https://nimbus-mcp.fly.dev/mcpNothing is required, but it can take NIMBUS_API_URL (Nimbus backend URL. Defaults to the hosted Nimbus Studio (https://nimbus-studio.fly.dev); use http://127.0.0.1:8080 for a local backend or the desktop app.), NIMBUS_TOKEN (Hosted API token (nimb_…) minted in Nimbus Studio → Account → API tokens. Not needed if you already ran `nimbus-mcp login`.), NIMBUS_TOKEN_FILE (Path to a 0600 JSON file {"token": "…"} holding a hosted API token (keeps secrets out of MCP configs).), NIMBUS_MCP_KEY (Local-backend key; must match MCP_LOCAL_KEY on your Nimbus backend (dev server) or the desktop app's key.), NIMBUS_MCP_KEY_FILE (Path to a local-backend key file. The desktop app's mcp-key.json is auto-discovered without this.) if you want to set them.
One config entry your client uses to start the process locally. A local server runs with your file system and your network, which is why it is priced without metering.
49 tools, with what each one reads, writes and reaches shown before you agree — the same list on every route above. Read the tool surface.
Tool surface
What the model actually sees. Descriptions are diffed on every release — see version history.
Trained artifacts (models/filters, e.g. *.pkl) saved by an execution.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| execution_id | string | yes | Run whose artifacts to list. |
Download one artifact file to NIMBUS_EXPORT_DIR/executions/<id>/ and return its path.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| execution_id | string | yes | Run that produced the artifact. |
| artifact_name | string | yes | File name from execution.artifacts (e.g. "nimbus_lda.pkl"). |
Export the pipeline as a standalone runnable Python bundle (zip saved locally).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| train_graph | object | yes | Pipeline graph {nodes, connections} to export. |
| name | string | no | Optional name recorded inside the bundle. |
Export a Nimbus dataset as a BIDS-layout zip saved to NIMBUS_EXPORT_DIR/bids/.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| dataset | string | yes | Dataset id — a MOABB pack id (e.g. "BNCI2014_001"), an upload path (as returned by data.upload), or a recording name. Auto-detected. |
| subjects | array | no | Pack exports only — subject filter (e.g. ["S01", "S03"]) to bound zip size; default exports all installed subjects. |
| kind | string | no | Optional explicit source kind: pack|upload|recording (default auto). |
Export an execution's results as a BIDS-derivative zip (metrics.json, per-subject participants.tsv, protocol.json, full pipeline_snapshot.json, predictions.tsv when stored, provenance/execution.json) saved to NIMBUS_EXPORT_DIR/bids/.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| execution_id | string | yes | Run whose results to export (from execution.run). |
Validate a pipeline graph before running.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| train_graph | object | yes | The graph to validate ({nodes, connections}). |
Validate one node's config object against its schema (catalog.node_schema).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| node_type | string | yes | Node type id from catalog.nodes (e.g. "csp", "nimbus_lda"). |
| config | object | yes | The node's config object to check. |
Start a guided subject calibration session (NON-BLOCKING; confirm-gated — the device goes on a human's head). The Nimbus Studio app shows the cues on its calibration dashboard automatically; poll calibration.status.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| paradigm | string | no | mi | p300 | sart | target_hit. |
| confirm | boolean | no | MUST be true — explicit user go-ahead for a session on their head. |
| trials_per_class | integer | no | Override the template's trial count (minimum 5). |
| classes | array | no | Override class list [{id,label,cue}] (MI default: left/right hand). |
| name | string | no | Display name recorded on the execution. |
| device_type | string | no | Device id from device.list (omit → template default synthetic). |
| connection_type | string | no | Device selector when several exist (e.g. serial vs wifi). |
| port | string | no | Serial/COM port for wired devices. |
| ip_address | string | no | Device IP for network/wifi devices. |
| ip_port | integer | no | Port for network devices. |
| stream_name | string | no | LSL stream name (LSL devices). |
| source_id | string | no | LSL source id. |
| mac_address | string | no | Bluetooth MAC (BT devices). |
| serial_number | string | no | Device serial (some BLE stacks). |
Live snapshot of a calibration session (phase, current trial, progress, paused). Once complete, carries the recorded upload — call
| Parameter | Type | Required | Notes |
|---|---|---|---|
| execution_id | string | yes | The calibration run to inspect (from calibration.start). |
Pause a running calibration between trials (cues hold; resume anytime).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| execution_id | string | yes | The calibration run to pause. |
Resume a paused calibration session.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| execution_id | string | yes | The calibration run to resume. |
Train the subject's own classifier from a COMPLETED calibration session (NON-BLOCKING). Fetches the recorded upload, wires it into a train pipeline as a custom_data source, and starts the run. Requires a Pro plan (custom_data training is freemium-gated). The calibrate→train handoff requires a…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| execution_id | string | yes | The COMPLETED calibration run (from calibration.start). |
| paradigm | string | no | Paradigm of the recording (mi | p300 | sart | target_hit); only mi has a default train template. |
| template_id | string | no | Train template to use (e.g. from catalog.templates); required for non-mi paradigms (mi defaults to mi_headband_csp_lda). |
| train_graph | object | no | Explicit train graph instead of a template; its first data node (custom_data/public_data) is rewired onto the recording. |
| name | string | no | Display name recorded on the training run. |
Run 1-25 pipelines as ONE paced experiment (NON-BLOCKING). Returns an experimentId immediately; a background thread submits at most 2 runs at a time (min(max_concurrent, 2)), retries queue-full up to 3 times per run, and polls each execution to completion. Poll experiment.get() for per-run status…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| runs | array | yes | 1-25 entries, each {name: str, train_graph: {nodes, connections}} (same graph shape as execution.run's train_graph). |
| max_concurrent | integer | no | Parallel submissions cap, clamped to 1-2 (default 2). |
Experiment snapshot: status (running/completed/failed), per-run rows ({name, executionId, status, error?, metrics?}) and, once finished, aggregates {metric: {mean, std, best: {name, value}}} over completed runs only (std = population; None below 2 values).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| experiment_id | string | yes | The experiment to inspect (from experiment.run). |
Upload an EEG file (.edf/.bdf/.mat/.csv/.txt/.tsv/.h5/.hdf5, <=500MB) to the backend and get the registered path for a custom_data node.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| file_path | string | yes | Local file to upload (.edf/.bdf/.mat/.csv/.txt/.tsv/.h5/.hdf5, <=500MB). |
| dataset_name | string | no | Optional label for the uploaded dataset. |
| sampling_rate | number | no | Hz for headerless CSV/TSV/TXT (REQUIRED there, e.g. 250.0). |
| format | string | no | Override extension-based detection (auto|mat|csv|tsv|txt|edf|bdf|h5|hdf5). |
List Nimbus pipeline node types (data, preprocessing, features, models...).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| category | string | no | Optional filter — e.g. "data", "preprocessing", "features", "models" (exact category ids from the unfiltered list). |
Full config JSON schema + input/output ports for one node type.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| node_type | string | yes | Node id from catalog.nodes (e.g. "csp", "nimbus_lda"). |
List built-in starter pipelines (MI/P300/SSVEP...).
No parameter schema on file.
Full template incl. the 'train' execGraph needed by execution.run/pipeline.validate.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| template_id | string | yes | Template id from catalog.templates (e.g. "mi_csp_lda"). |
Curated public EEG datasets (MOABB packs) available to pipelines.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| only_on_disk | boolean | no | Only return datasets whose data packs are present on this backend (True by default; False also lists known-but-missing sets). |
Exploratory summary of a public EEG dataset (MOABB pack): channels, sampling rate, trial/class balance, per-channel µV stats, band powers and a PSD overview.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| dataset | string | yes | Dataset id from catalog.datasets (e.g. "BNCI2014_001"). |
| subject | string | no | REQUIRED subject code ("S01") or comma-list cohort ("S01,S03"). |
| mode | string | no | Which split to summarize — training | evaluation | all. |
Exploratory summary of an EEG file (.edf/.bdf/.mat/.csv/.tsv/.txt/.h5):
| Parameter | Type | Required | Notes |
|---|---|---|---|
| path | string | yes | ABSOLUTE filesystem path (~ is expanded; local backends only) or the RELATIVE upload path returned by data.upload (works on any backend). |
Public benchmark leaderboard: pipeline rankings per dataset.
No parameter schema on file.
Submit a BYO python_model to a leaderboard track for server-side scoring.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| dataset_id | string | yes | Open dataset id (see catalog.leaderboard crossSubject datasets, e.g. "BNCI2014_001"). |
| name | string | yes | Display name on the board (<=100 chars). |
| code | string | yes | Python source defining a class with fit(X, y, info) and predict(X) (<=256KB; validate first with python.validate). |
| class_name | string | no | Contract class to instantiate; omit to auto-detect. |
| requirements | array | no | Optional PyPI requirements (e.g. ["sklearn>=1.4"]). |
| track | string | no | "cross_subject" (default — full-data leave-one-subject-out, seed 42) or "pretrained_few_trial" (efficiency track: LOSO with a protocol-fixed 100-trials-per-subject cap; code that imports torch must de |
Fetch one of your leaderboard submissions (owner-only).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| submission_id | string | yes | The submissionId returned by leaderboard.submit. |
List your leaderboard submissions (newest first), all datasets.
No parameter schema on file.
EEG devices supported by this backend (OpenBCI, Muse, BrainBit, LSL, PiEEG...).
No parameter schema on file.
Test a device connection WITHOUT starting a stream (safe, no confirm needed).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| device_type | string | yes | Device id from device.list (e.g. "brainbit", "muse"). |
| connection_type | string | no | Device-specific selector when several exist (e.g. serial vs wifi). |
| port | string | no | Serial/COM port for wired devices. |
| ip_address | string | no | Device IP for network/wifi devices. |
| ip_port | integer | no | Port for network devices. |
| stream_name | string | no | LSL stream name (LSL devices). |
| source_id | string | no | LSL source id. |
| mac_address | string | no | Bluetooth MAC (BT devices). |
| serial_number | string | no | Device serial (some BLE stacks). |
Connect an EEG device and START a live streaming session on the user's head.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| device_type | string | yes | Device id from device.list (e.g. "brainbit"). |
| confirm | boolean | no | MUST be true to start — the explicit user go-ahead for a live session on their head; anything else is refused with zero requests. |
| session_id | string | no | Optional existing session to resume/reuse. |
| chunk_size | integer | no | Samples per streamed chunk (default 125). |
| n_channels | integer | no | Channel count to open (default 8). |
| connection_type | string | no | Device-specific selector (e.g. serial vs wifi). |
| port | string | no | Serial/COM port for wired devices. |
| ip_address | string | no | Device IP for network/wifi devices. |
| ip_port | integer | no | Port for network devices. |
| stream_name | string | no | LSL stream name (LSL devices). |
| source_id | string | no | LSL source id. |
| mac_address | string | no | Bluetooth MAC (BT devices). |
| serial_number | string | no | Device serial (some BLE stacks). |
| idle_timeout_sec | integer | no | Watchdog: stop+disconnect after this many seconds without a status poll (default 900; 0 disables). |
Live snapshot of a streaming session (running, deviceConnected).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| session_id | string | yes | The streaming session to inspect. |
Stop a streaming session and disconnect the device (always safe to call).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| session_id | string | yes | The streaming session to stop. |
Confusion-matrix figure for one execution: heatmap with trial counts + per-class accuracy bars, rendered as a PNG the assistant can see. Use it right after execution.results to eyeball WHICH classes are confused, not just the accuracy number.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| execution_id | string | yes | Run to plot (from execution.run / execution.results). |
| matrix | string | no | "eval" (held-out, default) or "train" (fit-set sanity check). |
| save | boolean | no | Also write the PNG to NIMBUS_EXPORT_DIR/plots/ and return its path. |
Figure over an EEG data source — the visual companion to
| Parameter | Type | Required | Notes |
|---|---|---|---|
| kind | string | yes | Figure type: psd | topomap | bandpower | spectrogram. |
| source | string | yes | "dataset" (MOABB pack), "upload" (path from data.upload), or "local" (absolute path, local backend only). |
| dataset | string | no | MOABB dataset id, e.g. "BNCI2014_001" (source=dataset). |
| subject | string | no | Subject id, e.g. "S01" (source=dataset). |
| mode | string | no | Pack split to load: training | evaluation | all (source=dataset). |
| path | string | no | Upload path (source=upload) or absolute local path (source=local). |
| band | string | no | Band for kind=topomap: delta|theta|alpha|beta|gamma (default alpha). |
| channel_idx | integer | no | 0-based channel for kind=spectrogram (default 0). |
| save | boolean | no | Also write the PNG to NIMBUS_EXPORT_DIR/plots/ and return its path. |
ERP butterfly figure from epoched data: one subplot per class, all channel means (thin) + across-channel mean (bold), time-locked to the trial event. Shows whether class-conditioned evoked structure exists BEFORE training anything.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| source | string | yes | "dataset" (MOABB pack), "upload" (path from data.upload), or "local" (absolute path, local backend only). |
| dataset | string | no | MOABB dataset id, e.g. "BNCI2014_001" (source=dataset). |
| subject | string | no | Subject id, e.g. "S01" (source=dataset). |
| mode | string | no | Pack split to load: training | evaluation | all (source=dataset). |
| path | string | no | Upload path (source=upload) or absolute local path (source=local). |
| max_channels | integer | no | Channels drawn per class subplot (default 16, max 64). |
| save | boolean | no | Also write the PNG to NIMBUS_EXPORT_DIR/plots/ and return its path. |
Leaderboard bar chart for one dataset: accuracy with 95% CI
| Parameter | Type | Required | Notes |
|---|---|---|---|
| dataset_id | string | yes | Dataset to chart, e.g. "BNCI2014_001" (see catalog.leaderboard). |
| track | string | no | "within_session" (curated 5-fold), "crossSubject" (LOSO, curated + BYO submissions), or "pretrained_few_trial" (the efficiency track: LOSO at the protocol's fixed per-subject trial budget — the figure |
| save | boolean | no | Also write the PNG to NIMBUS_EXPORT_DIR/plots/ and return its path. |
Create a project (container for one pipeline document). Returns projectId.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | Project display name (e.g. "MI CSP-LDA sweep"). |
| description | string | no | Optional longer description shown in the studio. |
List projects owned by the current principal (agent work included).
No parameter schema on file.
Save a pipeline graph into a project (visible on the studio canvas).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| project_id | string | yes | Target project (from project.create/project.list). |
| train_graph | object | yes | Pipeline graph {nodes, connections} to persist. |
| name | string | no | Optional pipeline name stored on the document. |
| subject | string | no | Optional dataset subject code (e.g. "S01") for this pipeline. |
Load a project's saved pipeline (train graph + meta) for editing/re-running.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| project_id | string | yes | Project whose pipeline document to load. |
Statically check a python_model script (BYO model class) without running it.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| code | string | yes | Python source of the model class (<=256KB UTF-8). |
| class_name | string | no | Contract class to instantiate; omit to auto-detect the first class defining fit+predict. |
Start a pipeline run (NON-BLOCKING). Returns executionId — poll with execution.get() until status is completed/failed, then execution.results().
| Parameter | Type | Required | Notes |
|---|---|---|---|
| train_graph | object | yes | Pipeline graph {nodes: [{id, type, config}], connections: [{from, to}]} as built by catalog.template/pipeline.validate. |
| name | string | no | Display name for the run (shown in the Runs list). |
| description | string | no | Optional longer description of the experiment. |
| subject | string | no | Optional dataset subject code (e.g. "S01") recorded with the run. |
| layout | object | no | Optional canvas positions {nodes: {id: {x, y}}}; a deterministic grid is synthesized when omitted. |
Cancel a running execution.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| execution_id | string | yes | The run to terminate (from execution.run/execution.list). |
Execution status summary (status: running/completed/failed/cancelled).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| execution_id | string | yes | The run to check (from execution.run/execution.list). |
Recent executions. Optional status filter (running/completed/failed/cancelled).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| limit | integer | no | Maximum number of runs to return (default 20). |
| status | string | no | Filter by run status: running/completed/failed/cancelled. |
Metrics for a completed run. Trimmed by default (accuracy, kappa, ITR, confusion matrix, per-class); full=True returns the complete result object.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| execution_id | string | yes | The completed run to fetch metrics for. |
| full | boolean | no | Return the backend's complete result object (all fields). |
Cluster-aware group statistics across executions: pools the
| Parameter | Type | Required | Notes |
|---|---|---|---|
| execution_ids | array | yes | 1–25 executions (from execution.run) to pool. Runs without stored group stats (fewer than 3 groups) are reported with nulls but do not fail the request. |
| chance | number | no | Chance level in [0, 1]; default 1/nClasses per execution. |
Live snapshot of a streaming session: latest prediction + recent window, signal quality (meanChannelQuality, snrDb, artifactProbability), indicators, running stats. Poll this while a session runs. Works with OR without a deployed model: modelless hardware streams (no classifier) report live signal…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| session_id | string | yes | The streaming session to read telemetry for. |
| window | integer | no | How many recent predictions/chunks to include (default 50). |
Who you are authenticated as: account email, plan (isPro / pioneer), this month's free-run quota, and — with a hosted token — the token name and days until it expires. Call this first when setup guidance appears or to check which credential a session uses.
No parameter schema on file.
No parameter schema on file.
- Every tool, no call limit
- No card, and mcprush charges nothing for it
- Source is public; its licence metadata reads NOASSERTION rather than naming a licence
- Runs on your machine — nothing of it reaches our gateway
- Nothing to cap, because mcprush bills nothing
What counts against your monthly calls
| Tool | Unit | Calls used | Out of the allowance |
|---|
Nothing here is billable: mcprush charges nothing to install Nimbus BCI or to call it, at any volume.
Two independent axes, because powerful and malicious are different questions. The grade is threat only. The capability level is blast radius, and it is never a penalty on the grade — it is priced as one subtract-only term in the score, where you can see it.
| Term | Level | What it prices | Points |
|---|---|---|---|
| capability-exposure | high | capability blast radius (high) — client exposure if the model is manipulated | −6 |
| verification-discount | repo | publisher verification (public source) — no provenance, but the source is public and inspectable | −1 |
| coverage-honesty | source | inspection depth (source) — how much of the target the scan could see | −0 |
What the scan could actually read
A grade is only as meaningful as its coverage, so the scanner publishes its own depth before it publishes its result.
Tools were statically extracted from the published source (49 recovered), not enumerated from a running server. Tool-poisoning, Unicode-smuggling, capability and toxic-flow analysis ran on this inferred surface, but a mis-parsed registration could be missed or mis-attributed, so tool-derived findings are capped below “confirmed”. To grade the real runtime surface, scan the running server: --command "npx -y <package>".
Capability — what it could do if the model were manipulated
Tags derived from each tool’s schema and the implementation, not from what the tool calls itself. high is the level these add up to.
| Tool | Capability tags | Why the tag was assigned |
|---|---|---|
| execution.artifacts | no tags | |
| execution.download_artifact | untrusted-input | untrusted-input: keyword "download" |
| pipeline.export | no tags | |
| bids.export_dataset | sensitive-source | sensitive-source: keyword "export_data" |
| bids.export_execution | no tags | |
| pipeline.validate | external-sink | external-sink: handler sends an HTTP POST ( client.post("/api/validate-pipeline") at src/nimbus_mcp/tools/build.py:23 |
| pipeline.validate_node | external-sink | external-sink: handler sends an HTTP POST ( client.post("/api/validate-node-config") at src/nimbus_mcp/tools/build.py:33 |
| calibration.start | external-sink | external-sink: handler sends an HTTP POST ( client.post("/api/execute") at src/nimbus_mcp/tools/calibration.py:229 |
| calibration.status | no tags | |
| calibration.pause | external-sink | external-sink: handler sends an HTTP POST ( client.post("/api/pause-calibration") at src/nimbus_mcp/tools/calibration.py:277 |
| calibration.resume | external-sink | external-sink: handler sends an HTTP POST ( client.post("/api/resume-calibration") at src/nimbus_mcp/tools/calibration.py:287 |
| calibration.train | external-sink | external-sink: handler sends an HTTP POST ( client.post("/api/execute") at src/nimbus_mcp/tools/calibration.py:399 |
| experiment.run | no tags | |
| experiment.get | no tags | |
| data.upload | no tags | |
| catalog.nodes | no tags | |
| catalog.node_schema | no tags | |
| catalog.templates | no tags | |
| catalog.template | no tags | |
| catalog.datasets | no tags | |
| foundation.compare | external-sink | external-sink: handler sends an HTTP POST ( client.post("/api/foundation/compare") at src/nimbus_mcp/tools/foundation.py:51 |
| data.inspect_dataset | no tags | |
| data.inspect_file | no tags | |
| catalog.leaderboard | no tags | |
| leaderboard.submit | external-sink | external-sink: handler sends an HTTP POST ( client.post("/api/leaderboard/submissions") at src/nimbus_mcp/tools/leaderboard.py:76 |
| leaderboard.status | untrusted-input | untrusted-input: keyword "fetch" |
| leaderboard.mine | no tags | |
| device.list | no tags | |
| device.test | external-sink | external-sink: handler sends an HTTP POST ( client.post("/api/deployment/test-device") at src/nimbus_mcp/tools/live.py:121 |
| stream.start | external-sink | external-sink: handler sends an HTTP POST ( client.post("/api/hardware/connect") at src/nimbus_mcp/tools/live.py:189, handler sends an HTTP POST ( client.post("/api/hardware/start-stream") at src/nimbus_mcp/tools/live.py:192, handler sends an HTTP POST ( client.post("/api/hardware/disconnect") at src/nimbus_mcp/tools/live.py:205 |
| stream.status | no tags | |
| stream.stop | no tags | |
| plots.confusion | external-sink | external-sink: handler sends an HTTP POST ( client.post("/api/plots/confusion") at src/nimbus_mcp/tools/plots.py:91 |
| plots.dataset | external-sink | external-sink: handler sends an HTTP POST ( client.post("/api/plots/dataset") at src/nimbus_mcp/tools/plots.py:131 |
| plots.erp | external-sink | external-sink: handler sends an HTTP POST ( client.post("/api/plots/erp") at src/nimbus_mcp/tools/plots.py:172 |
| plots.leaderboard | external-sink | external-sink: handler sends an HTTP POST ( client.post("/api/plots/leaderboard") at src/nimbus_mcp/tools/plots.py:209 |
| project.create | external-sink | external-sink: handler sends an HTTP POST ( client.post("/api/projects") at src/nimbus_mcp/tools/projects.py:27 |
| project.list | no tags | |
| project.save | no tags | |
| project.load | no tags | |
| python.validate | external-sink | external-sink: handler sends an HTTP POST ( client.post("/api/python-model/validate") at src/nimbus_mcp/tools/python.py:64 |
| execution.run | external-sink | external-sink: handler sends an HTTP POST ( client.post("/api/execute") at src/nimbus_mcp/tools/run.py:103 |
| execution.cancel | external-sink | external-sink: handler sends an HTTP POST ( client.post("/api/cancel") at src/nimbus_mcp/tools/run.py:119 |
| execution.get | no tags | |
| execution.list | no tags | |
| execution.results | untrusted-input | untrusted-input: keyword "fetch" |
| stats.grouped | external-sink | external-sink: handler sends an HTTP POST ( client.post("/api/stats/grouped") at src/nimbus_mcp/tools/stats.py:49 |
| stream.telemetry | no tags | |
| account.whoami | no tags |
Toxic-flow graph
The lethal trifecta, checked as a graph rather than as a checklist: untrusted input, a sensitive source and an external sink have to meet before there is a path worth worrying about.
Supply chain and provenance
This is the first scan of this surface here, so there is nothing yet to compare it against.
Every result on this tab comes from one deterministic pass over the published package — offline, rule by rule, and auditable line by line above. Same methodology version, same bytes, same score.
Release history
Always latest — the install command names no version, so it installs the newest release when it runs; the current release on file is 0.13.2. Pin a release below and the command asks for exactly that one.
No release note was published with this version.
No release note was published with this version.
No release note was published with this version.
No release note was published with this version.
No release note was published with this version.
No release note was published with this version.
No release note was published with this version.
- The version this listing was on when mcprush began following its releases. The registry was not asked when it shipped, so this row carries no date.
One review per account, from a signed-in account that does not publish this listing. Nothing else is asked — you can say what you think before you install it. Publishers can reply once per review, and a review can be edited or deleted by whoever wrote it.
Any signed-in account that does not publish Nimbus BCI can review it, once — before installing it or after. A review from an account that has installed it is marked as one.
Nobody has reviewed this listing. The rating on the card is the mean of the reviews written here and nothing else, so there is no rating until somebody writes the first — which takes a signed-in account that does not publish it, and nothing else.