openbci-mcp
The openbci-mcp server provides a comprehensive platform for interfacing with OpenBCI EEG/BCI hardware via BrainFlow. It enables hardware management, real-time data streaming, signal processing, data export, neurofeedback via OSC triggers, a web dashboard, agentic workflow automation, and built-in help.
Hardware Management: Connect, disconnect, and monitor OpenBCI boards (Cyton via serial/USB, Ganglion via BLE, Galea, synthetic, or streaming modes). List available serial ports and board types, check connection status.
Data Streaming: Start/stop EEG streaming into a ring buffer, take snapshots of latest samples per channel, and insert timestamped event markers (e.g., for P300/speller experiments).
Signal Processing: Compute real-time band powers (delta, theta, alpha, beta, gamma) per channel. Apply filters: bandpass, lowpass, highpass, or notch (including 60 Hz).
Data Export: Record live EEG to CSV files via BrainFlow's file streamer, or forward data to multicast addresses for OpenBCI GUI or custom applications. Supports custom BrainFlow streamer configurations.
OSC Triggers & Neurofeedback: Send one-shot OSC messages to targets like VRChat, Reaper, or osc-mcp. Create persistent threshold-based rules that automatically fire OSC messages when band power conditions are met. Manage rules (list, remove, evaluate) and review firing history.
Web Dashboard: Access a live web dashboard showing EEG traces and band power visualizations, along with integrated help documentation.
Agentic Workflows: Define multi-step BCI workflows in natural language; the server automatically chains available tools using FastMCP sampling to perform complex tasks (e.g., connect board, start stream, compute band power).
Help & Discovery: Built-in tool provides an overview of all tools, quickstart guides, fleet port assignments (frontend: 10758, backend: 10759), and hardware setup instructions.
Integration with VRChat via OSC protocol for sending trigger rules based on EEG data, allowing real-time avatar control or interactions driven by brain signals.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@openbci-mcpconnect to Cyton on COM3 and start streaming"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
openbci-mcp
FastMCP 3.2 MCP server and web dashboard for OpenBCI hardware via BrainFlow.
Features
Portmanteau MCP tools: board connect, stream, signal processing, export
REST + WebSocket dashboard with live EEG trace and band power
Cyton (serial), Ganglion (BLE), Galea, synthetic, and GUI streaming board modes
Fleet ports: frontend 10758, backend 10759
Related MCP server: Buddy MCP Server
Quick start
cd D:\Dev\repos\openbci-mcp
.\start.batOr stdio for Claude Desktop:
uv sync
uv run openbci-mcp --stdioHardware (Cyton)
Plug in USB dongle, note COM port (Device Manager or
openbci_board(operation='list_ports'))Close OpenBCI GUI if it holds the serial port
Connect:
openbci_board(operation='connect', board_key='cyton', serial_port='COM3')openbci_stream(operation='start')
Environment
Variable | Default | Description |
| 10759 | Backend port |
| (empty) | Default COM port |
| 0 | BrainFlow board id hint |
| 0 | Run synthetic probe at startup |
| 127.0.0.1 | Default OSC trigger target |
| 9000 | Default OSC UDP port (osc-mcp / VRChat) |
| ~/.openbci-mcp/triggers.json | Persisted trigger rules |
Documentation
Guide | Topic |
Master index — pick your path | |
Helmet, cap, superbike look, cable routing | |
Alpha, zen, focus meters | |
Mouse, P300, motor imagery, AI reality check | |
OSC, Resonite, streaming, stage | |
Wristbands, clench gating, fusion | |
osc-mcp pairing |
Webapp Help page (http://127.0.0.1:10758/help) loads these via /api/help.
Links
OSC integration (osc-mcp pairing)
Available Tools
7 toolsagentic_openbci_workflowA
Multi-step OpenBCI workflows via FastMCP sampling (SEP-1577).
Example: agentic_openbci_workflow( workflow_prompt="Connect synthetic board, start stream, compute band power", available_tools=["openbci_board", "openbci_stream", "openbci_signal"], )
| Name | Required | Description | Default |
|---|---|---|---|
| max_iterations | No | Max sample_step rounds. | |
| available_tools | No | openbci_* tool names to expose to the sampler. | |
| workflow_prompt | Yes | Goal in natural language, e.g. 'Connect Cyton on COM3, stream, report beta power'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry full weight. It mentions internal mechanism (FastMCP sampling) and exposes max_iterations and available_tools, but does not disclose safety, authentication, or failure behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise: two sentences and an example. It is front-loaded with the core purpose and wastes no words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex orchestrator with no output schema, the description lacks details on return value, error handling, and edge cases. It covers the high-level purpose but is incomplete for an agent to fully understand its behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds no extra meaning beyond what the schema already provides for each parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it's a multi-step workflow orchestrator via FastMCP sampling, with an example that distinguishes it from sibling individual tools like openbci_board or openbci_stream.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The example implicitly shows when to use it (for multi-step tasks), but it lacks explicit when-not-to-use or alternative guidance. The sibling relationship helps.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
openbci_boardB
Manage OpenBCI hardware connections via BrainFlow.
OPERATIONS:
connect: Open session to Cyton, Ganglion, Galea, synthetic, or streaming board.
disconnect: Release session and stop streams.
status: Current connection and channel metadata.
list_ports: Enumerate serial COM ports (Windows/macOS/Linux).
list_boards: Supported board keys and BrainFlow IDs.
probe: Quick synthetic-board smoke test.
| Name | Required | Description | Default |
|---|---|---|---|
| ip_port | No | Multicast port for streaming board | |
| board_key | No | Board type: cyton, ganglion, cyton_daisy, galea, synthetic, streaming | |
| operation | Yes | Board lifecycle operation. | |
| ip_address | No | Multicast IP for streaming board | |
| mac_address | No | BLE MAC for Ganglion | |
| serial_port | No | Serial port for Cyton/Galea, e.g. COM3 | |
| master_board_key | No | Master board when using streaming mode |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It does not disclose behavioral traits such as blocking nature, connection limits, or side effects of operations like disconnect, which is insufficient for a hardware management tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise with a clear front-loaded purpose and a bulleted list of operations, no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 7 parameters, no output schema, and no annotations, the description omits crucial details about return values, error handling, and prerequisites, making it incomplete for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds minimal extra meaning beyond listing operations; it does not elaborate on parameter interactions or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it manages OpenBCI hardware connections via BrainFlow and lists specific operations (connect, disconnect, etc.), distinguishing it from sibling tools like openbci_signal or openbci_stream which handle other aspects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage through listed operations but does not explicitly state when to use this tool vs alternatives (e.g., openbci_stream for streaming data), lacking exclusions or contextual guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
openbci_exportA
Route live EEG to external consumers via BrainFlow streamers.
OPERATIONS:
streamer_add: Pass raw BrainFlow streamer params (see BrainFlow docs).
streamer_file: Record to CSV via file:// streamer.
streamer_multicast: Forward to multicast for OpenBCI GUI / custom listeners.
Examples (BrainFlow streamer syntax):
file://C:/recordings/session.csv
streaming_board://225.1.1.1:6677
| Name | Required | Description | Default |
|---|---|---|---|
| ip_port | No | Multicast port | |
| file_path | No | Local CSV path for file streamer | |
| operation | Yes | Export/stream routing operation. | |
| ip_address | No | Multicast or LSL target address | 225.1.1.1 |
| streamer_params | No | Raw BrainFlow streamer string (advanced) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must disclose behavioral traits. It describes operations but omits side effects (e.g., file overwrites, network multicast behavior), permissions needed, or error states (e.g., invalid streamer params). The lack of detail on what 'route' entails (does it start/stop streams? is it persistent?) reduces transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with a header, bulleted operations, and examples. Every sentence adds value: the header states purpose, operations list modes, examples clarify syntax. No fluff or redundancy. Efficiently communicates necessary info in minimal space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 5 parameters and no output schema, the description covers operations and gives examples but lacks info on return values, error behavior, prerequisites (e.g., board must be streaming), and lifecycle (e.g., does streamer_add start immediately?). Agent may need to infer details from sibling tools like openbci_board.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, baseline 3. The description adds meaning beyond schema by explaining each operation's role and providing BrainFlow streamer syntax examples for streamer_params. It contextualizes ip_address and ip_port for multicast, and file_path for file export, enriching the schema's basic descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Route live EEG to external consumers via BrainFlow streamers', specifying the verb (route/export) and resource (EEG stream). Lists three distinct operations (streamer_add, streamer_file, streamer_multicast), differentiating from sibling tools like openbci_board or openbci_signal which handle other aspects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool over siblings. While operations are described, there's no mention of prerequisites, alternatives (e.g., using openbci_stream instead), or when not to use. The description assumes the agent already knows to choose export for streaming.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
openbci_helpA
Discovery and usage guide for openbci-mcp.
OPERATIONS:
overview: Tool catalog and board keys.
quickstart: Typical Cyton USB workflow.
ports: Fleet port assignments.
| Name | Required | Description | Default |
|---|---|---|---|
| operation | No | Help section to display. | overview |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. The description is straightforward and indicates a read-only help operation. It does not mention any side effects or constraints, but for a help tool, the behavior is adequately transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise, using a brief introduction and three bullet points. It is well-structured and to the point, with no unnecessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple help tool with one parameter and no output schema, the description is largely complete. It explains the available operations and their high-level content. However, it could be slightly improved by mentioning that the output is text or a list of information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides enum descriptions for the 'operation' parameter, and the description adds context by briefly explaining each operation's content (e.g., 'Tool catalog and board keys' for overview). This adds value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it is a 'Discovery and usage guide' for openbci-mcp and lists three specific operations (overview, quickstart, ports). This provides a clear purpose and distinguishes it from sibling tools that perform actual operations. However, it could be more explicit about the scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide any guidance on when to use this tool versus sibling tools like openbci_board or openbci_stream. It is implied that this is for help and documentation, but no explicit when-to-use or when-not-to-use information is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
openbci_signalA
Real-time EEG signal analysis via BrainFlow DataFilter.
OPERATIONS:
band_power: Delta/theta/alpha/beta/gamma per channel from latest buffer.
filter: Apply bandpass, lowpass, highpass, or 60Hz notch to one channel.
| Name | Required | Description | Default |
|---|---|---|---|
| operation | Yes | Signal processing operation. | |
| stop_freq | No | Low-pass / bandpass stop Hz | |
| start_freq | No | High-pass / bandpass start Hz | |
| filter_type | No | Filter type for filter operation | bandpass |
| max_samples | No | ||
| channel_name | No | EEG channel name for filter op |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must carry full burden. It mentions 'real-time' and 'from latest buffer' for band_power, but doesn't clarify if filter modifies data in place or returns filtered output, nor does it specify return format. Adequate but not thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two succinct sentences with bullet points for operations. Front-loaded with overall purpose, no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, description omits what the tool returns (e.g., computed powers or filtered signals). It assumes board is already streaming but doesn't explicitly state prerequisites. Adequate for a tool with 6 parameters but incomplete on returns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is high (83%), so baseline is 3. Description adds minimal extra: it summarizes operations and mentions 60Hz notch, but schema already enumerates filter types and parameters with descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Real-time EEG signal analysis via BrainFlow DataFilter' and enumerates two specific operations (band_power, filter). Distinguishes from sibling tools (board, stream, export, etc.) which handle different aspects of OpenBCI.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus siblings. Implicitly, it's for signal processing, but lacks when-not-to-use or alternative suggestions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
openbci_streamA
Control EEG data streaming from a connected OpenBCI board.
OPERATIONS:
start: Begin streaming samples into BrainFlow buffer.
stop: Stop streaming (session stays connected).
snapshot: Return latest EEG samples per channel (requires active stream).
marker: Insert timestamped marker into stream (P300/speller experiments).
| Name | Required | Description | Default |
|---|---|---|---|
| marker | No | Event marker string for marker operation | |
| operation | Yes | Stream control operation. | |
| buffer_size | No | BrainFlow ring buffer size | |
| max_samples | No | Max samples for snapshot |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must cover behavioral traits. It discloses that snapshot requires active stream and that stop leaves the session connected. However, it does not mention error conditions, rate limits, or side effects (e.g., data loss when restarting). This is adequate but incomplete for full transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with a heading and bulleted list of operations. Each operation is described in one line. The structure is clear and front-loaded, but the 'marker' description uses an internal jargon ('P300/speller') that may require external knowledge.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 4 parameters, no output schema, and moderate complexity, the description adequately covers operations but lacks return value details for start/stop/marker (e.g., confirmation or error messages). Snapshot mentions 'latest EEG samples per channel' but no format. This is sufficient for basic use but could be more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds context by linking 'marker' parameter to 'marker operation' and mentioning 'buffer_size' and 'max_samples' relate to start and snapshot respectively. However, it does not significantly enrich the schema definitions, such as clarifying default values or constraints beyond what's in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly defines the tool's purpose: 'Control EEG data streaming from a connected OpenBCI board.' It lists four distinct operations (start, stop, snapshot, marker) with specific behaviors, distinguishing it from siblings like openbci_board (board management) and openbci_export (data export).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context for when to use each operation (e.g., 'marker' is for 'P300/speller experiments', 'snapshot' requires active stream, 'stop' keeps session connected). It does not explicitly state when not to use the tool or compare directly to sibling tools, but the structure implies clear usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
openbci_triggerC
OSC triggers for BCI neurofeedback and osc-mcp downstream apps.
OPERATIONS:
send_osc: Fire a one-shot OSC message (VRChat, Reaper, osc-mcp listener).
list_rules: List persisted threshold rules.
add_rule: Create band-power rule that emits OSC when matched.
remove_rule: Delete rule by id.
evaluate: Run rules against current stream band power.
history: Recent trigger firings.
fire_test: Test OSC path for a rule or custom address.
Default target: 127.0.0.1:9000 (configure osc-mcp or app listener).
| Name | Required | Description | Default |
|---|---|---|---|
| band | No | Frequency band for threshold rule | |
| name | No | Human-readable rule name | |
| channel | No | EEG channel or * for average | |
| rule_id | No | Rule UUID for remove/fire_test | |
| operator | No | Comparison operator | |
| osc_host | No | OSC target host (default from OPENBCI_OSC_HOST) | |
| osc_port | No | OSC target port (default OPENBCI_OSC_PORT=9000) | |
| operation | Yes | OSC trigger operation. | |
| osc_value | No | Primary OSC payload when rule fires | |
| threshold | No | Band power threshold | |
| osc_values | No | OSC argument list | |
| osc_address | No | OSC address e.g. /bci/focus | |
| hold_seconds | No | Seconds condition must hold before firing |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It lists operations but does not mention side effects (e.g., remove_rule is destructive), persistence of rules, authorization needs, error conditions, or rate limits. The default target hint is helpful but insufficient for a multi-operation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with an introductory sentence, a bullet list of operations, and a concluding sentence on default target. It is front-loaded and concise, though the bullet list could be slightly more compact.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 13 parameters, 7 operations, and no output schema, the description lacks detail on operation flows, relationship between operations (e.g., how rules are evaluated), expected outputs, and error handling. It is incomplete for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds contextual overview (e.g., default target) but does not clarify which parameters apply to each operation (e.g., add_rule requires band, channel, operator, threshold). Thus, it adds minimal value beyond the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'OSC triggers for BCI neurofeedback and osc-mcp downstream apps' and lists specific operations, effectively conveying the tool's function. However, it does not explicitly differentiate from sibling tools like openbci_signal or openbci_stream, though context implies a focus on OSC triggering.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, no prerequisites, and no when-not-to-use scenarios. Siblings like openbci_board or openbci_signal exist but are not compared, leaving the agent without clear decision criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
7 tool updates
v0.1.0- First observed
agentic_openbci_workflow - First observed
openbci_board - First observed
openbci_export - First observed
openbci_help - First observed
openbci_signal - First observed
openbci_stream - First observed
openbci_trigger
TDQS
Each tool targets a distinct aspect of OpenBCI operation: board management, streaming, signal analysis, export, triggers, help, and high-level workflow orchestration. No two tools have overlapping primary purposes.
Most tools follow the pattern 'openbci_<function>', all lowercase with underscores. However, 'agentic_openbci_workflow' deviates with the prefix 'agentic', and 'openbci_help' is a noun instead of a verb, slightly breaking consistency.
With 7 tools, the server covers the essential functions for BCI data acquisition and processing without being bloated. Each tool has a clear role, and the count feels well-scoped for the domain.
The core workflow (connect, stream, analyze, export, trigger) is fully covered. Minor gaps exist, such as lacking advanced signal processing (e.g., artifact removal, epoch extraction) and hardware configuration details, but the set is sufficient for typical use cases.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
The official MCP Server for the Mux API
QuLab MCP remote server (Streamable HTTP) for computational science and lab tools.
MCP server for progressive tool usage at any scale (see https://klavis.ai)
MCP server for secureFlows (secure-flows.com). Alias of io.github.michal-lefler/secureflows-mcp.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol (MCP) server for seamless integration with peripheral devices connected to your computer. Control, monitor, and manage hardware devices through a unified API.5MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for controlling compatible boards over Bluetooth serial, including DC motors, servos, IO, and sensors.MIT
- AlicenseAqualityBmaintenanceA Model Context Protocol server that provides AI agents with a unified interface for real-time EEG acquisition, replay, processing, visualization, recording, and stimulation from over 66 BrainFlow boards.47BSD 3-Clause
- AlicenseAqualityBmaintenanceAn 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.397MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/sandraschi/openbci-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server