Skip to content
MCP server

Nimbus BCI

By nimbusbciAll Nimbusbci servers

AI agents build, train, and analyze BCI/EEG pipelines: data, models, experiments, live sessions.

Listed on

First seen 4 Oct 2026. One server, whatever directories list it: each directory listing keeps its own page and history.

3
Directories
1 via MCP Toplist
37
Tools
From an anonymous probe
-
ToolBench grade
Not graded by Arcade
1
GitHub stars
From MCP Toplist

Tools

ToolDescriptionBehaviour
account.whoamiWho 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.Read-only
calibration.pausePause a running calibration between trials (cues hold; resume anytime).Changes data
calibration.resumeResume a paused calibration session.Changes data
calibration.startStart 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. Requires a Pro plan (hosted token or Pro session): calibration nodes and custom-data training are gated by the freemium node policy; local X-MCP-Key principals pass only when the desktop app flags the signed-in Pro session (MCP_LOCAL_IS_PRO).Changes data
calibration.statusLive snapshot of a calibration session (phase, current trial, progress, paused). Once complete, carries the recorded upload — call calibration.train to turn it into the subject's own classifier.Read-only
calibration.trainTrain 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 Postgres-backed backend (hosted or local dev); a desktop-local session completes and records, but its upload can't be resolved by MCP train today.Changes data
catalog.datasetsCurated public EEG datasets (MOABB packs) available to pipelines.Read-only
catalog.leaderboardPublic benchmark leaderboard: pipeline rankings per dataset. Rankings are per-dataset under the canonical ``within_session`` protocol (see ``protocol``). Within each dataset, ``rows`` are sorted desc by ``meanAccuracyPct`` (95% CI in ``ciLoPct``/``ciHiPct``). Use ``pipelineId`` as the template id hint for ``catalog.template`` when building a pipeline. ``updated`` marks each dataset's most recent run; ``packFingerprint`` identifies the exact dataset pack the scores came from.Read-only
catalog.node_schemaFull config JSON schema + input/output ports for one node type.Read-only
catalog.nodesList Nimbus pipeline node types (data, preprocessing, features, models...). Use catalog.node_schema(node_type) for one node's full config schema and ports.Read-only
catalog.templateFull template incl. the 'train' execGraph needed by execution.run/pipeline.validate.Read-only
catalog.templatesList built-in starter pipelines (MI/P300/SSVEP...). catalog.template(id) returns the graph.Read-only
data.inspect_datasetExploratory summary of a public EEG dataset (MOABB pack): channels, sampling rate, trial/class balance, per-channel µV stats, band powers and a PSD overview. Look at the data BEFORE building pipelines: class balance drives stratification choices (imbalanced classes skew accuracy), and flatlined channels mean a montage/reference problem worth fixing first. subject is REQUIRED (the backend 400s without it) — get the subject list via catalog.datasets, e.g. "S01"; a comma-list like "S01,S03" loads a cohort. mode: training | evaluation | all. Units note: values are ASSUMED volts by the loader — a µV-native file reads 1e6x too large; set unitsScale in a pipeline's custom_data config when needed.Read-only
data.inspect_fileExploratory summary of an EEG file (.edf/.bdf/.mat/.csv/.tsv/.txt/.h5): channels, sampling rate, trial/class balance, per-channel µV stats, band powers and a PSD overview. The path shape picks the source: ABSOLUTE path → read the file from disk (only on a LOCAL backend: desktop app / MCP local mode — no upload needed); RELATIVE path (the one data.upload returns) → describe the uploaded file, which works on ANY backend (hosted or local). Look at the data BEFORE building pipelines: class balance drives stratification choices, and flatlined channels mean a montage/reference problem worth fixing first. Units note: values are ASSUMED volts by the loader — a µV-native CSV reads 1e6x too large; set unitsScale in a pipeline's custom_data config when needed. On a hosted backend absolute paths are refused and this returns guidance (upload the file first or switch to a local backend).Read-only
data.uploadUpload 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. sampling_rate (Hz, e.g. 250.0) is REQUIRED for plain CSV/TSV/TXT files without embedded metadata — the backend silently assumes 250 Hz otherwise, which mis-times epochs, filters and spectral features. format overrides extension-based detection (auto, mat, csv, tsv, txt, edf, bdf, h5, hdf5).Changes data
device.listEEG devices supported by this backend (OpenBCI, Muse, BrainBit, LSL, PiEEG...).Read-only
device.testTest a device connection WITHOUT starting a stream (safe, no confirm needed).Read-only
execution.artifactsTrained artifacts (models/filters, e.g. *.pkl) saved by an execution.Read-only
execution.cancelCancel a running execution.Destructive
execution.download_artifactDownload one artifact file to NIMBUS_EXPORT_DIR/executions/<id>/ and return its path.Read-only
execution.getExecution status summary (status: running/completed/failed/cancelled).Read-only
execution.listRecent executions. Optional status filter (running/completed/failed/cancelled).Read-only
execution.resultsMetrics for a completed run. Trimmed by default (accuracy, kappa, ITR, confusion matrix, per-class); full=True returns the complete result object.Read-only
execution.runStart a pipeline run (NON-BLOCKING). Returns executionId — poll with execution.get() until status is completed/failed, then execution.results().Changes data
experiment.getExperiment 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).Read-only
experiment.runRun 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 and, once finished, aggregated metrics.Changes data
pipeline.exportExport the pipeline as a standalone runnable Python bundle (zip saved locally).Read-only
pipeline.validateValidate a pipeline graph before running. ExecGraphSnapshot: {nodes: [{id, type, config}], connections: [{from, to}]}. Build it from catalog.template(id).train or from scratch using catalog.nodes().Read-only
pipeline.validate_nodeValidate one node's config object against its schema (catalog.node_schema).Read-only
project.createCreate a project (container for one pipeline document). Returns projectId.Changes data
project.listList projects owned by the current principal (agent work included).Read-only
project.loadLoad a project's saved pipeline (train graph + meta) for editing/re-running.Read-only
project.saveSave a pipeline graph into a project (visible on the studio canvas). Handles revision conflicts automatically (one retry).Changes data
stream.startConnect an EEG device and START a live streaming session on the user's head. Requires confirm=True; call device.test first. Track with stream.status(). Idle watchdog: if no stream.status()/stream.telemetry() poll happens for idle_timeout_sec (default 900), the session is stopped and the device disconnected automatically — an abandoned stream never keeps running on the user's head. Any poll resets the timer; idle_timeout_sec=0 disables the watchdog.Changes data
stream.statusLive snapshot of a streaming session (running, deviceConnected). Polling this also feeds the idle watchdog: each call resets the session's idle timer (see stream.start's idle_timeout_sec).Read-only
stream.stopStop a streaming session and disconnect the device (always safe to call). Also removes the session from the idle watchdog so it cannot fire after an explicit stop.Destructive
stream.telemetryLive snapshot of a streaming session: latest prediction + recent window, signal quality (meanChannelQuality, snrDb, artifactProbability), indicators, running stats. Poll this while a session runs. Live telemetry requires a DEPLOYED model session (hub deploy / playback with a classifier); modelless hardware streams have no telemetry — use stream.status for those. Expect low confidence during filter/ASR warm-up (first seconds); quality < 0.5 or high artifactProbability means the signal is poor. 404 => session not active in this backend. Each poll also feeds the idle watchdog (see stream.start's idle_timeout_sec), keeping an actively watched session alive.Read-only

Directory listings

DirectoryListingTierFirst seen
Official MCP RegistryNimbus BCI-4 Oct 2026
SmitheryNimbus BCI-5 Oct 2026
GlamaListed there according to MCP Toplist’s dataset; not collected by InvokeRank.