MCP for NeuroAgents assisting clinicians: MNE processing, EHR store, NeuroII visualization.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent โ or use 1-click editor setup below.
๐ก Paste into ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows)
Documentation ยท PyPI ยท Tutorial ยท Tool Reference
It gives an AI agent one interface over the whole clinical/research EEG workflow: signal processing and source imaging (via MNE-Python), a persistent dataset + EHR store (Postgres + BIDS), and NeuroII web visualization.
A clinician or researcher never calls a tool directly โ they talk to an agent in plain English, and the agent drives neuro-mcp's 54 tools underneath. See the Tutorial for what that actually looks like end to end.
EHR records and annotations are versioned, never overwritten or hard-deleted:
amend_ehr_record / update_annotation
insert a new version; the prior one is retained with status amended. So a
clinician can modify the EHR โ the current view updates while the original
and its author are preserved.void_ehr_record / void_annotation set status
entered-in-error; the record stays in the history.audit_log: actor, action, before/after).actor so authorship is on the record.
(Auth/RBAC enforcement is planned for v0.2; the fields and trail are in place.)Each tool returns an outcome field for the operation (created/amended/voided/โฆ)
distinct from the record's clinical status, so the two never collide.
load_neuro, filter_neuro, resample_neuro, set_montage,
set_reference, detect_bad_channels, run_ica/apply_ica, find_events,
epoch_neuro, compute_psd, compute_erp, time_frequency, plot_*) and
source imaging / ESI (fetch_template_head โฆ extract_label_timecourses).register_subject, get_subject, add_ehr_record,
amend_ehr_record, get_ehr_history, void_ehr_record; import_recording,
register_dataset, query_datasets, list_recordings; add_annotation,
update_annotation, list_annotations, void_annotation; get_audit_log.neuroii_push_recording, neuroii_create_viz_session,
neuroii_pull_annotations.visualize_timeseries
(stacked multi-channel EEG with scroll + amplitude buttons), visualize_averaging
(ERP butterfly + scalp topomap scrubbed by a time slider), visualize_esi
(source-estimate ROI time courses + per-time activation bars).Working on neuro-mcp itself instead? Clone the repo and use
pip install -e . in place of the line above โ see
Installation for
the full zero-to-hero setup, including Claude Code/Codex CLI/Claude Desktop
registration.
| Variable | Default | Purpose |
|---|---|---|
DATABASE_URL | sqlite:///~/.neuro-mcp/neuro_mcp.db | Store. Prod: postgresql+psycopg://user:pass@host/db |
BIDS_ROOT | ~/.neuro-mcp/bids | Root of the BIDS-on-disk recording tree |
NEUROII_API_URL | (unset) | neuroii base URL; unset โ tools return the documented contract |
NEUROII_API_TOKEN | (unset) | Optional bearer token for neuroii |
NEURO_MCP_HOME | ~/.neuro-mcp | Base dir for the SQLite + BIDS defaults |
The default (SQLite + a scratch BIDS dir) runs with zero setup; point
DATABASE_URL at Postgres for a multi-user/clinical deployment.
Three tools port NEUROII's main views into self-contained interactive HTML
files (Plotly, embedded โ no server, works offline). Each returns the .html
path; interaction runs client-side:
visualize_timeseries (RawView) โ MNE-style stacked channels with page
navigation (โฎ โ โถ โญ), a page-length box, scroll-to-zoom amplitude, and a grid
toggle.visualize_averaging (EvokedView) โ the averaged ERP as stacked channels with
a green time cursor + a scalp topomap; a time slider scrubs both, plus a
summary sidebar (nave / peak / tmin / tmax).visualize_esi (EsiView) โ a volumetric source estimate (fsaverage
template) rendered to canvas on three orthogonal MRI slices
(sagittal/coronal/axial) with a black-blue-white-red activation overlay,
crosshair, L/R and MNI-coordinate labels; the cut planes recentre on each
frame's peak. Below, the ERP butterfly carries a red current-time cursor and a
blue half-peak marker. Controls: time slider, global/frame colormap-scale
toggle, and a mask-threshold slider. Faithful port of NEUROII's views; needs
epochs (epoch_neuro + set_montage).neuroii integration is not wired yet. The tools define and return the expected
REST contract (see neuro_mcp/neuroii/client.py); until NEUROII_API_URL is
set they respond {"status": "not_configured", "contract": {โฆ}} so the neuroii
app has a fixed target to implement (POST /api/v1/recordings,
POST /api/v1/viz-sessions, GET /api/v1/recordings/{id}/annotations).
Covers rename integrity, the processing core, the full clinician EHR/annotation
lifecycle (add โ amend โ history โ void, with audit), and the neuroii stub.
For a full-stack run against Postgres, use testing/docker-compose.yml.
neuro-mcp is BSD-3-Clause and bundles no third-party source. All required dependencies are permissive (BSD/MIT/Apache-2.0/PSF). Optional extras carry their own terms โ psycopg (LGPL-3.0), PySide6 (LGPL-3.0, chosen over GPL PyQt6). Full attribution and compliance notes are in NOTICE.
BSD-3-Clause โ see LICENSE.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/neuro-mcp)<a href="https://allmcps.com/mcp/neuro-mcp"><img src="https://allmcps.com/api/badge/neuro-mcp?style=directory" alt="Neuro Mcp on AllMCPs" /></a>