MNE-MCP
An MCP server that gives AI assistants conversational access to MNE-Python for analyzing neurophysiology data (EEG, MEG, sEEG, ECoG, fNIRS). Enables plain-language analysis pipelines, from loading recordings to generating figures and explanations.
README
<!-- mcp-name: io.github.Exekiel179/mne-mcp -->
MNE-MCP
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 and opencode (any MCP-capable client). 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.
Why an MCP for MNE-Python?
MNE analysis is stateful and visual — unlike a one-shot statistics batch job:
- You load a
Rawrecording 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. - Every decision is driven by looking (PSD, sensor maps, ICA components, ERPs). Every plotting tool saves a PNG the assistant can read and interpret.
- MNE is a huge pure-Python API. MNE-MCP gives you 38 structured tools spanning the common
pipeline and advanced analysis (source localization, connectivity, decoding), plus an
mne_run_codeescape hatch that reaches the entire MNE API in the same live session. - Defaults (line frequency, montage, filter band, rejection threshold, ICA settings, epoch window,
dirs, timeout) are user-configurable via an interactive
mne-mcp configurewizard.
Requirements
- Python 3.10+
- MNE-Python ≥ 1.6 — provisioned on demand (see Lightweight by default); install it up front with
mne-mcp[analysis]if you prefer scikit-learnfor ICA (in theica/fullextras, ormne-mcp install-backend)- Claude Code (or any MCP client) with MCP support
Cross-platform: unlike a closed engine, MNE-Python is pure Python, so analysis tools work on Windows, macOS, and Linux.
Quick Install
git clone https://github.com/Exekiel179/MNE-MCP.git
cd MNE-MCP
# 1. Install (pulls in mne, numpy, scipy, matplotlib, scikit-learn for ICA)
pip install -e ".[ica]"
# 2. Register in your MCP client(s) — Claude Code, Codex, opencode — and install skills
mne-mcp setup
# 3. Restart your client
Or run the one-shot installer (creates the venv, installs, verifies, registers, installs skills):
pwsh -File scripts\install.ps1 # Windows
bash scripts/install.sh # macOS / Linux
See QUICK_START.md for a guided first session, or docs/INSTALL.md for the full guide.
One command does everything:
mne-mcp setupregisters themneserver in Claude Code, Codex, and opencode (whichever you use) and installs the companion skills. Narrow it with--clients claude,codex. Themne_*tools require one client restart afterwards (MCP servers load at startup).
Run via uvx / pipx (standard MCP — recommended)
mne-mcp is published on PyPI, so the most portable path is the
standard MCP launcher — no clone, no setup. Add this to your client config (~/.claude.json for
Claude Code, claude_desktop_config.json for Claude Desktop):
{ "mcpServers": { "mne": { "command": "uvx", "args": ["--from", "mne-mcp[ica]", "mne-mcp", "serve", "--transport", "stdio"] } } }
uvx (from uv) fetches and runs mne-mcp on demand. The [ica] extra
pulls in scikit-learn so ICA works out of the box; swap it for mne-mcp[full] to also get the
advanced tools (source localization, connectivity, decoding, BIDS). Because MNE pulls in a large
scientific stack, a persistent install is usually snappier than re-resolving each run:
pipx install "mne-mcp[ica]" # or: uv tool install "mne-mcp[ica]" (use [full] for advanced tools)
then set the config command to mne-mcp with args: ["serve", "--transport", "stdio"]. The source
install above remains the path for development.
No uv? Bootstrap pipx with plain Python, then install and register in one go:
python -m pip install --user pipx
python -m pipx ensurepath # reopen your terminal so `pipx` lands on PATH
pipx install mne-mcp # lightweight; provision the backend on demand
mne-mcp setup # register in clients + install skills
mne-mcp install-backend # add MNE + ICA (or let the mne_install_backend tool do it)
Skills are bundled in the package (since 0.2.2). A PyPI install carries the skill suite and the
mne-methodology-criticagent, so one extra command installs them —mne-mcp setup(afterpipx/uv tool install) oruvx mne-mcp setup. No clone required.
Lightweight by default — on-demand backend
Since 0.3.0 the package itself is tiny: a bare pip install mne-mcp / pipx install mne-mcp
pulls in only the MCP protocol layer (mcp, fastmcp, pydantic, python-dotenv), so it installs
in seconds. The heavy scientific stack (MNE-Python + numpy/scipy/matplotlib/pandas, and scikit-learn
for ICA) is provisioned the first time an analysis needs it:
- In a session, just ask — when a tool reports the backend is missing, call the
mne_install_backendtool (or it is offered bymne_check_status). Itpip installs into the server's own environment and becomes usable without a client restart. - From a terminal:
mne-mcp install-backend(add--profile fullfor source localization / connectivity / decoding / BIDS).
pipx install mne-mcp # tiny, instant
mne-mcp install-backend # add MNE + ICA when you're ready (or let the tool do it)
Prefer everything up front? Install an extra instead: mne-mcp[analysis] (MNE core), [ica]
(+ scikit-learn), or [full] (+ advanced tools). For ephemeral uvx runs, pin the extra in the
config (--from mne-mcp[ica], as above) since an uvx environment is discarded between runs, so an
on-demand install would not persist.
Configuration
Auto-configure (recommended)
mne-mcp setup # Claude Code + Codex + opencode, plus skills
mne-mcp setup --clients claude,codex # only specific clients
mne-mcp configure-claude # Claude Code only (subset of setup)
setup registers the mne server in each client and installs the skills, writing a timestamped
backup of any file it touches:
| Client | Config file | Key |
|---|---|---|
| Claude Code | ~/.claude.json |
mcpServers.mne |
| OpenAI Codex CLI | ~/.codex/config.toml |
[mcp_servers.mne] |
| opencode | ~/.config/opencode/opencode.json |
mcp.mne |
Manual setup
Point command at the Python where you installed the package (or mne-mcp if it is on PATH).
Claude Code — ~/.claude.json:
{ "mcpServers": { "mne": { "type": "stdio", "command": "mne-mcp", "args": ["serve", "--transport", "stdio"] } } }
Codex CLI — ~/.codex/config.toml:
[mcp_servers.mne]
command = "mne-mcp"
args = ["serve", "--transport", "stdio"]
enabled = true
opencode — ~/.config/opencode/opencode.json:
{ "mcp": { "mne": { "type": "local", "command": ["mne-mcp", "serve", "--transport", "stdio"], "enabled": true } } }
Environment variables (optional .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
Configure analysis defaults (interactive wizard)
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.
Install the Skills
mne-mcp setup installs all bundled skills automatically. To do it by hand, copy every folder under
skills/ into your skills dir — the suite is mne-analyst, mne-mcp-guard, mne-methodology-critic,
plus the per-category analysis skills (mne-preprocess, mne-artifacts, mne-erp, mne-spectral,
mne-timefreq, mne-connectivity, mne-source, mne-decoding, mne-stats, mne-advanced) and the
write-up skill (mne-writeup):
set SKILLS_DIR=%USERPROFILE%\.claude\skills
for %S in (mne-analyst mne-mcp-guard mne-methodology-critic mne-preprocess mne-artifacts mne-erp mne-spectral mne-timefreq mne-connectivity mne-source mne-decoding mne-stats mne-advanced mne-writeup) do xcopy /E /I skills\%S "%SKILLS_DIR%\%S"
mne-mcp setupalso installs themne-methodology-criticsubagent to~/.claude/agents/(the skills' Phase 3 dispatches it in an isolated context). Copyagents\mne-methodology-critic.mdthere by hand if installing manually.
Restart your client after installation. (Skills are a Claude Code feature; Codex / opencode use the MCP server directly.)
Usage
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:
- Check capabilities (
mne_check_status) - Load your recording into the persistent session
- Run the pipeline step by step, showing figures as PNGs
- Interpret each result in plain language
- Archive figures + the equivalent MNE code to
mne_result/
Output
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.
Available Tools (38)
Status & Session (7)
mne_check_status · mne_session_info · mne_describe · mne_get_info ·
mne_reset_session · mne_run_code · mne_get_config
Data IO (2)
mne_list_files · mne_load_raw
Preprocessing (7)
mne_filter · mne_resample · mne_crop · mne_set_montage ·
mne_set_reference · mne_mark_bad_channels · mne_interpolate_bads
Visualization (3)
mne_plot_psd · mne_plot_raw · mne_plot_sensors
ICA (4)
mne_fit_ica · mne_plot_ica_components · mne_plot_ica_sources · mne_apply_ica
Events / Epochs / ERP (7)
mne_find_events · mne_events_from_annotations · mne_make_epochs ·
mne_plot_epochs_image · mne_average_evoked · mne_plot_evoked · mne_plot_topomap
Time-frequency (1)
mne_tfr_morlet
Advanced analysis (6)
mne_decode (MVPA) · mne_connectivity · mne_compute_noise_cov · mne_make_forward ·
mne_apply_inverse · mne_plot_source_estimate
Export (1)
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 tools need the [full] extra (pip install -e ".[full]").
Development
# Compile check
python -m compileall src/mne_mcp
# Run tests
pytest
# CLI commands
mne-mcp status # Check environment
mne-mcp setup # Register in Claude Code / Codex / opencode + install skills
mne-mcp configure-claude # Claude Code only
License
MIT — see LICENSE
Documentation
- 项目介绍 / Introduction: docs/INTRODUCTION.md · .docx
- 安装说明 / Install guide: docs/INSTALL.md · .docx
- 使用介绍 / Usage guide: docs/USAGE.md · .docx
- Quick start: QUICK_START.md
- Tool reference: TOOLS_REFERENCE.md
Links
- MNE-Python: https://mne.tools/
- MCP Protocol: https://modelcontextprotocol.io
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。