World Monitor
Real-time global intelligence on conflict, markets, energy, trade, shipping and cyber. 102 tools.
제작자가 쓴 설명(영어 원문)
Real-time EEG: BrainFlow streaming, wall-clock replay, online DSP, recording, and stimulation.
이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.
쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.
검사 3/3 통과 · 내 컴퓨터에서 실행돼요
먼저: 어떤 AI를 쓰시나요?
쓰는 앱을 고르면 아래에 단계가 나옵니다.
Claude에 연결할 수 있지만 먼저 준비가 필요해요
먼저 컴퓨터에 Python (uv)를 설치하세요 (한 번만) · 컴퓨터용 Claude 앱(Windows 또는 Mac)에서만 되고 웹이나 모바일은 안 돼요
SettingsDeveloperEdit Config
{
"mcpServers": {
"eeg": {
"command": "uvx",
"args": [
"eeg-mcp"
]
}
}
}Eeg MCP을 써서 나에게 무엇을 해 줄 수 있는지 알려 주고, 하나 해 봐✓ Claude가 Eeg MCP을 쓰고 있다고 하거나 답에 Eeg MCP 도구 이름이 나오면 연결된 거예요
메뉴 이름은 2026년 11월 11일에 Anthropic 도움말에서 확인 · 앱 버전에 따라 화면이 조금 다를 수 있어요
ChatGPT는 아직 Eeg MCP에 연결할 수 없어요
Eeg MCP는 내 컴퓨터에 설치해서 쓰지만 ChatGPT는 웹에서 도는 서버만 연결할 수 있어요
A · Eeg MCP에 연결되는 앱 쓰기
B · 기타에서 ChatGPT에 연결되는 다른 서버
같은 분류에서 많이 쓰는 것 중 키 없이 주소만으로 연결되는 것을 골랐어요
Claude Code에 연결할 수 있지만 먼저 준비가 필요해요
먼저 컴퓨터에 Python (uv)를 설치하세요 (한 번만)
Mac: Command+스페이스를 누르고 Terminal 입력 · Windows: PowerShell 열기
claude mcp add eeg -- uvx eeg-mcpEeg MCP이 목록에 있고 연결됨으로 보이면 돼요
Eeg MCP을 써서 나에게 무엇을 해 줄 수 있는지 알려 주고, 하나 해 봐✓ Claude Code가 Eeg MCP을 쓰고 있다고 하거나 답에 Eeg MCP 도구 이름이 나오면 연결된 거예요
메뉴 이름은 2026년 11월 11일에 Anthropic 도움말에서 확인 · 앱 버전에 따라 화면이 조금 다를 수 있어요
Cursor에 연결할 수 있지만 먼저 준비가 필요해요
먼저 컴퓨터에 Python (uv)를 설치하세요 (한 번만)
Eeg MCP을 써서 나에게 무엇을 해 줄 수 있는지 알려 주고, 하나 해 봐✓ Cursor가 Eeg MCP을 쓰고 있다고 하거나 답에 Eeg MCP 도구 이름이 나오면 연결된 거예요
메뉴 이름은 2026년 11월 11일에 Cursor 도움말에서 확인 · 앱 버전에 따라 화면이 조금 다를 수 있어요
VS Code에 연결할 수 있지만 먼저 준비가 필요해요
먼저 컴퓨터에 Python (uv)를 설치하세요 (한 번만)
Eeg MCP을 써서 나에게 무엇을 해 줄 수 있는지 알려 주고, 하나 해 봐✓ VS Code가 Eeg MCP을 쓰고 있다고 하거나 답에 Eeg MCP 도구 이름이 나오면 연결된 거예요
메뉴 이름은 2026년 11월 11일에 VS Code 도움말에서 확인 · 앱 버전에 따라 화면이 조금 다를 수 있어요
Windsurf, Zed, Gemini CLI 같은 다른 MCP 앱은 추가 방법이 저마다 달라요. 앱 목록에서 확인하세요
JSON 설정은 아래 “개발자용”에 있어요
Claude Code
claude mcp add eeg -- uvx eeg-mcpClaude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"eeg": {
"command": "uvx",
"args": [
"eeg-mcp"
]
}
}
}Cursor (~/.cursor/mcp.json)
{
"mcpServers": {
"eeg": {
"command": "uvx",
"args": [
"eeg-mcp"
]
}
}
}VS Code (mcp.json)
{
"servers": {
"eeg": {
"type": "stdio",
"command": "uvx",
"args": [
"eeg-mcp"
]
}
}
}이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.
이 서버의 연결 방식과 각 앱의 공식 문서를 바탕으로 했어요. 2026년 11월 10일 확인.
내 컴퓨터에서 실행하는 앱
ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast
내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 11일 점검
레지스트리 이름이 GitHub 계정 AImplifier 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요
코드 마지막 변경: 16일 전
BSD-3-Clause 사용
내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요
내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요
내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요
질문하고, 팁을 나누고, 안 되는 점을 알려 주세요. "도움이 됨"이 많은 순서예요.
아직 리뷰가 없어요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
해당하는 기본 점검 3개 중 3개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
레지스트리에 필수 키가 나와 있지 않아요. 다만 처음 쓸 때 로그인을 요구하는 서버도 있어요.
내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).
GitHub 저장소는 마지막으로 16일 전 변경됐고, 최신 버전(0.2.0)은 16일 전 레지스트리에 올라왔어요.
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. 내 컴퓨터에 Python (uv)도 있어야 해요.
같은 카테고리에는: World Monitor, Claude Flow, Tldraw
같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.
카드 보는 법:↓ 주간 다운로드i★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i
Real-time global intelligence on conflict, markets, energy, trade, shipping and cyber. 102 tools.
AI orchestration with hive-mind swarms, neural networks, and 87 MCP tools for enterprise dev.
제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.
[Documentation](https://aimplifier.github.io/eeg-mcp/) · [Tutorial](https://aimplifier.github.io/eeg-mcp/examples/tutorial-first-realtime-session/) · [Hardware](https://aimplifier.github.io/eeg-mcp/hardware/) · [Safety](https://aimplifier.github.io/eeg-mcp/safety/) · [Tool Reference](https://aimplifier.github.io/eeg-mcp/tools/)
A Model Context Protocol server that gives an AI agent one interface over the live EEG workflow: acquisition from ~66 BrainFlow boards, wall-clock replay of existing recordings, stateful online DSP, a live browser monitor, crash-safe recording, and gated stimulation output.
The offline counterpart is [neuro-mcp](https://github.com/AImplifier/neuro-mcp) (MNE processing, source imaging, BIDS/EHR storage). This is the real-time half — everything that has to happen while the signal is still arriving.
flowchart LR
Researcher(["🔬 BCI Researcher"]) Clinician(["🩺 Clinician"]) Agent[["🤖 AI Agent"]] Server(("eeg-mcp FastMCP · 47 tools"))
Clinician -- talks to --> Agent Researcher -- talks to --> Agent Agent -- MCP --> Server
Server --> Acquire["Acquire 66 boards · replay at true rate"] Server --> Process["Process stateful online DSP custom plugins"] Server --> Watch["Watch & Record live monitor · HTML crash-safe .fif"] Server --> Stim["Stimulate LSL · TTL · TMS/tES 3 safety gates"]
classDef acq fill:#14b8a6,stroke:#0d9488,color:#fff classDef proc fill:#4f8cff,stroke:#2f5fbf,color:#fff classDef viz fill:#b06fe0,stroke:#7c3fae,color:#fff classDef stim fill:#eb5757,stroke:#b93b3b,color:#fff class Acquire acq class Process proc class Watch viz class Stim stim
Nobody calls a tool by hand — you talk to an agent in plain English and it drives the 47 tools underneath. The [tutorial](https://aimplifier.github.io/eeg-mcp/examples/tutorial-first-realtime-session/) shows what that looks like end to end, with no hardware required.
📡 Stream
66 BrainFlow board identifiers — OpenBCI, Muse, ANT Neuro, g.tec, Mentalab and more — plus a synthetic board that needs no hardware. Samples land in a ring buffer filled by a background thread, so tool calls read a live view instead of blocking on a device. When BrainFlow itself can't reach a board — e.g. Muse on Windows, blocked by an upstream SimpleBLE bug — board="lsl" attaches to an existing LSL outlet instead.
⏪ Replay
Play an EDF/BDF/GDF/SET/FIF or BrainFlow CSV *at the rate it was recorded*, re-emitting annotations as events at their original timings. Adds speed, seek, pause and looping. A pipeline developed against a file runs unchanged against hardware.
👁 Visualize
A loopback-bound, token-gated live browser view: rolling traces, event markers, band power, per-electrode quality, and transport controls. Plus self-contained HTML reports — no CDN, no external assets, opens on an air-gapped machine.
💾 Record
Write continuously to MNE-native .fif with the event log attached as annotations, plus a metadata row in a store schema-compatible with neuro-mcp. Crash-safe: an interrupted session is recoverable.
🧩 Extend
Plug in your own real-time processor — feature extractor, classifier, artifact gate, or EEG tokenizer for sequence models — and it runs on the same footing as the built-ins, inside the acquisition loop. → Extending
⚡ Stimulate
One send_stim_event contract over pluggable backends: LSL for software, BrainFlow's marker channel for sample-aligned embedding, serial/TTL and templated ASCII for hardware including TMS and tES — behind three safety gates.
[!NOTE]
One event log. Board markers, replayed annotations, dispatched
stimulations and manual notes all land in the same table on the same clock, with
absolute sample indices. A closed-loop run reconstructs afterwards with no clock join.
conda create -n eeg-mcp python=3.11 -y && conda activate eeg-mcp
pip install eeg-mcp
Optional extras and MCP client registration
pip install "eeg-mcp[lsl]" # LSL marker outlets (PsychoPy, OpenViBE, ...)
pip install "eeg-mcp[serial]" # serial/TTL trigger delivery to hardware
Register with an MCP client using an absolute path to the env's interpreter:
{
"mcpServers": { "eeg-realtime": { "command": "/path/to/envs/eeg-mcp/bin/python", "args": ["-m", "eeg_mcp"] } } }
Or with the Claude Code CLI:
claude mcp add eeg-realtime -- /path/to/envs/eeg-mcp/bin/python -m eeg_mcp
→ Full guide: [Installation](https://aimplifier.github.io/eeg-mcp/installation/)
Ask your agent for the outcome; it picks the calls. No hardware required:
start_stream(session_id="s1", board="synthetic")
check_signal_quality(session_id="s1") # before trusting anything set_filters(session_id="s1", bandpass_low=1, bandpass_high=40, notch_freq=50) get_band_power(session_id="s1", seconds=2) start_monitor(session_id="s1") # → open the returned URL
Replay a real recording as if it were live, then keep the record:
inspect_recording(path="sub-04_rest.edf")
start_replay(session_id="r1", path="sub-04_rest.edf", speed=1.0) get_events(session_id="r1", origin="annotation") export_report(session_id="r1", notes="Routine review.")
flowchart LR
A["start_stream or start_replay"] --> B[check_signal_quality] B --> C[set_filters] C --> D["get_band_power get_psd"] C --> E[start_monitor] C --> P[attach_processor] A --> R[start_recording] D --> S[send_stim_event] P --> S R --> X[stop_recording] S --> X E --> X X --> Z[stop_stream]
classDef hot fill:#14b8a6,stroke:#0d9488,color:#fff class A,X hot
| Guide | |
|---|---|
| 🚀 [Installation](https://aimplifier.github.io/eeg-mcp/installation/) | Environment, client registration, troubleshooting |
| 📘 [Tutorial](https://aimplifier.github.io/eeg-mcp/examples/tutorial-first-realtime-session/) | End to end, no hardware needed |
| ⏪ Replay-Driven Development | Build against a recording, deploy live |
| 🔁 Closed-Loop Neurofeedback | Feature → trigger, with a measured latency budget |
| 🩺 Live Clinical Review | Visual review, annotation, reporting |
| ⚡ Stimulation Protocols | TMS and tES through the safety gates |
| 🧩 Extending | Write a custom processor or EEG tokenizer |
| 🔌 Supported Hardware | All 66 boards, formats, stimulation transports |
| ⚠️ Safety | Read before connecting a stimulator |
| 🛠 Tool Reference | All 47 tools |
[!IMPORTANT]
Filtering happens in the producer thread, not at query time.
A stateful IIR filter must see every sample exactly once, in order. The common shortcut — filtering each query window independently — restarts the filter at every window boundary and injects a transient each time. It is invisible in a band-power plot and fatal for anything phase-sensitive.
So the producer filters each chunk once as it arrives, carrying sosfilt delay-line state forward, and writes to a second ring buffer. Queries just read.
flowchart LR
BF[Board / Recording] -->|poll| PR{{Producer thread}} PR -->|raw chunk| RB[(Raw ring buffer)] PR -->|stateful sosfilt| FB[(Filtered ring buffer)] PR -->|markers & annotations| EL[(Event log)] PR -->|append| DISK[(.fif on disk)] PR -->|streaming| PL[Your processors] RB & FB & EL --> Q[MCP tools]
classDef hot fill:#14b8a6,stroke:#0d9488,color:#fff class PR hot
The test suite asserts chunked filtering matches whole-signal filtering to 1e-9, *and* asserts as a control that the naive approach does not.
| Consequence | |
|---|---|
| Filters are causal | No zero-phase option — that needs future samples. stream_status reports group_delay_sec |
| Both buffers are kept | read_window(filtered=false) always gets raw signal, to check whether a feature is real or an artifact |
| Indices are shared | An event's sample_index means the same thing in either buffer |
[!TIP]
Budget a closed loop as group delay + poll interval + dispatch latency —
measured at ~71 ms in the reference configuration. Good for neurofeedback;
not adequate for phase-locked stimulation.
[!CAUTION]
**This software is not a medical device and has not been validated for
clinical use. TMS and tES can cause harm, including seizure**. Use only
under a protocol approved by your ethics board, on a rig whose device-level
interlocks are intact, with a trained operator present.
Three gates apply to every hardware backend:
| # | Gate | Effect |
|---|---|---|
| 1 | Config | Hardware backends refuse to open unless the server was started with EEG_MCP_ALLOW_HARDWARE_STIM=1. An agent cannot set this. |
| 2 | Arming | arm_stim permits dispatch for a window that *expires*, so a stalled agent cannot resume and fire later |
| 3 | Limits | Intensity, duration and interval are clamped; violations raise rather than silently saturate |
None of this replaces the interlocks on the device itself.
[!WARNING]
**The hardware backends are generic transports driven by command templates you
supply from your device's manual — not vendor drivers, and none has been tested
against a physical stimulator.** A plausible-looking untested driver would be
worse than none: it would fail silently while connected to something pointed at
a person's head.
Start every protocol on
backend="log", which accepts everything and emits nothing.
python testing/verify.py # core correctness
python testing/verify_recording.py # recording + metadata store python testing/verify_processing.py # plugin processors python testing/persona_bci_researcher.py # engineer workflow python testing/persona_clinician.py # clinician workflow
All five drive the real server through FastMCP's in-memory client and assert against planted ground truth: