BCI-MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| port | No | The port for connecting to the EEG device (e.g. /dev/tty.usbmodem1101) |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_devicesA | List EEG devices/URIs you can connect to. |
| connectB | Connect to an EEG device and start streaming. Default is the synthetic brain. |
| disconnectA | Disconnect from the current EEG device. |
| get_brain_stateA | Get the current brain state: focus, calm, attention, band powers, signal quality. |
| get_band_powersB | Get absolute and relative EEG band powers (delta, theta, alpha, beta, gamma). |
| get_signal_qualityB | Get electrode signal quality and detected artifacts (blink, railing, …). |
| calibrateC | Capture a baseline so focus/calm/etc. are personalized to the wearer. |
| mark_eventC | Annotate the live stream with a labeled event marker. |
| stream_summaryB | Current brain-state snapshot. (The |
| recordB | Record the live stream for N seconds to a file (npz/csv/edf). |
| start_neurofeedbackC | Begin a neurofeedback session rewarding time spent above a metric target. |
| get_neurofeedback_scoreA | Sample the current neurofeedback score (in-zone now + cumulative %). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| interpret_brain_state | Prompt template: ask the model to interpret the current brain state. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| brain_state_resource | Live brain-state snapshot as text. |
| brain_device_resource | Information about the connected device. |
TDQS
Scored across 12 tools
Each tool has a distinct purpose: connection management, data retrieval, recording, neurofeedback control, and event marking. While get_brain_state and stream_summary both provide state snapshots, their descriptions clarify that get_brain_state is detailed and stream_summary is a rolling snapshot, ensuring clear differentiation.
All tool names follow a consistent pattern: lowercase with underscores, using verbs like 'get_', 'list_', 'start_', 'record', etc. There is no mixing of conventions, making it easy to predict tool names.
With 12 tools, the server covers the essential BCI operations—device connection, data streaming, recording, neurofeedback, and calibration—without being overwhelming or sparse. This is a well-scoped set for a BCI server.
The tool set covers core workflows: connect/disconnect, calibrate, retrieve various brain metrics, record, mark events, and start neurofeedback. However, it lacks explicit stop operations for recording and neurofeedback, which could be a minor gap. Overall, it is largely complete for the stated domain.