MNE-Python neurophysiology analysis (EEG, MEG, sEEG, ECoG, fNIRS) via the Model Context Protocol
English | 简体中文
A Model Context Protocol (MCP) server that gives AI assistants direct, conversational access to MNE-Python for analyzing human neurophysiology data — EEG, MEG, sEEG, ECoG, and fNIRS.
Describe your analysis in plain language — MNE-MCP loads your recording, runs the MNE pipeline (filtering, ICA, epoching, ERP/ERF averaging, time-frequency, source-level work via code), saves the figures, and explains the results.
Works in Claude Code, Codex, PsyClaw and opencode. Pairs with bundled Agent Skills —
mne-analyst,mne-mcp-guard, plus a skeptical analysis suite (mne-methodology-critic+ per-category skills) for reliable, archived workflows.
MNE analysis is stateful and visual — unlike a one-shot statistics batch job:
Raw recording once, then filter → re-reference → fit ICA → epoch → average →
time-frequency, each step mutating large in-memory objects. MNE-MCP keeps one persistent
session so recordings never get re-loaded between steps.mne_run_code escape hatch that reaches the entire MNE API in the same live session.mne-mcp configure wizard.Cross-platform: unlike a closed engine, MNE-Python is pure Python, so analysis tools work on Windows, macOS, and Linux.
Looking for the separate native C++ preview? See MNE-CPP MCP installation and capabilities. It now includes explicit native-runtime setup and companion-skill registration; it is not a replacement for the MNE-Python analysis backend described here.
Send this to a coding agent with terminal access:
Follow https://github.com/Exekiel179/MNE-MCP/blob/v0.4.4/INSTALL_AGENT.md to install MNE-MCP and all companion skills in my existing MNE environment, configure my current client, and verify the result.
The agent checks the environment, installs missing MNE/core libraries when needed, installs the lightweight interface and all 14 skills, and registers the selected client. A client restart is required. See the installation guide for environment checks and verification.
Activate your existing Python 3.12+ MNE environment, then install the lightweight interface:
python -m pip install mne-mcp
mne-mcp setup
The installation creates the mne-mcp command (mne-mcp.exe on Windows).
python -m mne_mcp setup remains an equivalent diagnostic invocation.
Release downloads: latest release.
For a downloaded source archive, extract it and use python -m pip install . in that directory.
Setup defaults to all four clients, including their skills. To configure only PsyClaw,
use mne-mcp setup --clients psyclaw; claude, codex and opencode
are also supported (comma-separated). Restart clients after setup; PsyClaw supports /reload.
MNE and scientific libraries are user-managed; installing this package does not install them.
See installation instructions for dependencies and troubleshooting.
To update an existing installation, run python -m pip install --upgrade mne-mcp.
Run mne-mcp setup --clients codex in the same MNE environment.
Setup registers that exact interpreter and installs the bundled skills for the selected clients.
Existing configuration and skill files are backed up before updates.
PsyClaw registration writes ~/.psyclaw/mcp/mne.json; all 14 skills and references
go to ~/.psyclaw/skills. Setup checks a real MCP handshake, tool discovery and
mne_check_status, including a second check of the saved PsyClaw command.
mne-mcp verify --client psyclaw
This checks the saved command without modifying registration. connected and
mne_available are separate: the lightweight server can connect without MNE installed.
After /reload, ask PsyClaw to list tools for server mne and call mne_check_status.
Project .psyclaw/mcp/*.json entries with the same id override user configuration.
The setup check does not claim your already-running chat has reloaded.
.env)MNE_MCP_TIMEOUT=300 # per-operation timeout (s); raise for ICA / TFR / large files
MNE_MCP_RESULTS_DIR=... # where figures + exported objects are saved
MNE_MCP_DATA_DIR=... # default directory mne_list_files scans
Set the defaults the structured tools fall back to — mains line frequency (50/60 Hz), default montage, filter band, EEG rejection threshold, ICA method/components, epoch window, directories, and timeout:
mne-mcp configure # interactive prompts (Enter keeps current value)
mne-mcp configure --show # print current defaults
mne-mcp configure --reset # back to built-in defaults
mne-mcp configure --set line_freq=60 default_montage=biosemi64 reject_eeg_uv=120 # non-interactive
Defaults are saved to ~/.mne-mcp/config.json (override path with MNE_MCP_CONFIG). Precedence at
runtime: environment variable > config file > built-in. View the active config in-session with the
mne_get_config tool. Restart the MCP server for changes to take effect.
Setup installs all 14 skills into the selected client's skill directory, including their references. Claude also receives the methodology-review subagent. Other clients use the methodology-critic skill. Rerun setup after updating the package.
Just describe what you want:
加载 sub-01_raw.fif,看一下功率谱
对 raw 做 1–40 Hz 带通、50 Hz 陷波,然后跑 ICA 去眼电
Epoch around the 'target' trigger, -0.2 to 0.8 s, average it, and show the ERP topomaps at 100/200/300 ms
The assistant will:
mne_check_status)mne_result/Every plotting tool saves a PNG to the results dir and returns its path:
> Figure: `C:\...\mne-mcp\results\psd_01.png`
With the mne-analyst skill installed, results and the exact MNE code that produced them are
archived to mne_result/ in your working directory (sequence-numbered), so the analysis is
fully reproducible.
mne_check_status · mne_session_info · mne_describe · mne_get_info ·
mne_reset_session · mne_run_code · mne_get_config
mne_list_files · mne_load_raw
mne_filter · mne_resample · mne_crop · mne_set_montage ·
mne_set_reference · mne_mark_bad_channels · mne_interpolate_bads
mne_plot_psd · mne_plot_raw · mne_plot_sensors
mne_fit_ica · mne_plot_ica_components · mne_plot_ica_sources · mne_apply_ica
mne_find_events · mne_events_from_annotations · mne_make_epochs ·
mne_plot_epochs_image · mne_average_evoked · mne_plot_evoked · mne_plot_topomap
mne_compute_tfr (Morlet/multitaper, custom cycles, ITC, trial power, baseline) · mne_tfr_morlet
mne_decode (MVPA) · mne_connectivity · mne_compute_connectivity (bands, pairs, estimators) · mne_compute_noise_cov · mne_make_forward ·
mne_apply_inverse · mne_plot_source_estimate
mne_decoding_group_test provides participant-level max-T or cluster-corrected inference.
Decoding reports separate numerical evidence, methods, interpretation, limitations
and a results draft requiring scientific review. The code escape hatch is not
equivalent to validated structured coverage of every MNE API.
mne_save
Anything still not covered — BIDS, custom statistics, beamformers, autoreject — is reachable through
mne_run_code in the same live session. See TOOLS_REFERENCE.md for full
parameter details. Advanced dependencies are checked per feature and are not bundled.
# Compile check
python -m compileall src/mne_mcp
# Run tests
pytest
# CLI commands
mne-mcp status # Check environment
mne-mcp setup --clients codex # Register in Codex + install skills
MIT — see LICENSE
Source-derived launch command. Check the maintainer’s required arguments and credentials before running:
uvx mne-mcpMerge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"io-github-exekiel179-mne-mcp": {
"command": "uvx",
"args": [
"mne-mcp"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.
Claude Desktop setup referenceMNE-MCP works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.