ASTRA MCP Server
Enables AI assistants to query and control a bio-hybrid neuromorphic simulation pipeline, including SNN engine, consciousness proxies, and neuroplatform telemetry, via the Model Context Protocol.
README
ASTRA โ Unified Research Lab + MCP Server
Autonomous Sentient Thoughtful Reasoning Agent
Production-grade Model Context Protocol server exposing the ASTRA bio-hybrid neuromorphic simulation pipeline to AI assistants. Built with the official @modelcontextprotocol/sdk, it integrates a layered SNN LIF+STDP engine, consciousness proxy assessment, bio-computing platform telemetry, and an IRB ethics monitor โ all queryable as MCP tools, resources, and prompts from Claude Desktop, Cursor, VS Code, and any MCP-compatible client.
๐ v2.7 โ Closed loop on a real LIF SNN
ASTRA v2.7 closes the active-inference actuation loop through a real spiking network: the chosen action injects sustained current into an SNNEngine whose firing rate (verified to respond monotonically to injection) becomes the grounded observation via adaptive normalisation. A temporal credit-assignment fix (B credits the action that caused each transition โ corrected identically in TS and the NumPy reference, golden regenerated, equivalence preserved) plus annealed exploration let the controller learn to raise the substrate above the open-loop baseline (verified aggregate test). golden:check is now git-independent. Closed loop is functional-but-experimental: modest, noisy margin; actuation current[] not yet wired to the production SNN. See SECOND-ORDER-LOOP-INTEGRATION.md.
๐ v2.2 โ the_consciousness_ai (ACM) Integration
ASTRA v2.2 integrates tlcdv/the_consciousness_ai โ the Artificial Consciousness Module research codebase โ at two levels:
- Native TypeScript port (
src/engine/tcai/): Global Neuronal Workspace with sigmoid ignition & reverberation, Kuramoto/AKOrN oscillatory binding, PAD emotional processing & reward shaping, attention-gated emotional memory, self-representation core + attention schema, and a metrics suite (GNW ยท Effective Information ยท ฮฆฬ-RIIU) โ all fed live from the SNN/world-model state and exposed as 8 new MCP tools (tcai_cycle,tcai_workspace_state,tcai_emotion_appraise,tcai_memory_store,tcai_memory_retrieve,tcai_self_model,tcai_metrics,tcai_reset). - Full vendored Python codebase (
python/the_consciousness_ai/, 215 files): the complete upstream ACM project for reference and PyTorch-based reproduction.
See TCAI-INTEGRATION.md for the complete Python โ TypeScript mapping and architecture coupling. All consciousness-related metrics remain computational proxies, not measurements.
๐ v2.2 โ FinalSpark NeuroPlatform v2 Integration
ASTRA v2.2 also integrates the FinalSpark NeuroPlatform v2 wetware control API โ the closed-loop interface to living neural organoids on a 128-electrode MEA โ at two levels:
- Native TypeScript port + biophysical simulator (
src/engine/neuroplatform.ts): faithful port of the NeuroPlatform controller surface (StimParamwith charge-balance checking,IntanController,TriggerController,DatabaseController,CameraController) backed by a seededOrganoidMEAmodel โ exposed as 9 new MCP tools (np_status,np_configure_stim,np_send_trigger,np_count_spikes,np_query_spike_count,np_query_spike_events,np_query_triggers,np_camera_capture,np_closed_loop). The MEA's 128 electrodes couple one-to-one with the ASTRA SNN's 128 neurons. - Live Python bridge (
python/neuroplatform/astra_np_bridge.py): runs a homeostatic closed loop against the physical platform via the genuineneuroplatformv2SDK, streaming couplings to ASTRA over JSON-RPC. - Standalone dashboard (
dashboard/ASTRA-NeuroPlatform-Dashboard.html): live MEA raster, spike scope,StimParameditor with charge-balance readout, trigger generator and closed-loop telemetry.
See NEUROPLATFORM-INTEGRATION.md for the complete API โ TypeScript mapping. With no hardware attached the server runs in simulate mode (deterministic biophysical model), not living-tissue measurements.
FinalSpark (800K neurons) โโโ
Cortical Labs CL1 โโโโโโโโโโโผโโ Spike Encoders โ SNN (LIF+STDP, 128 neurons) โ ACM Proxies
Koniku Kore โโโโโโโโโโโโโโโโโ โ โ
โ โโโโโโโดโโโโโโ
โ โ ฮฆฬ GWฬ PADฬ โ
โ โโโโโโโฌโโโโโโ
โโโ TCAI/ACM Layer (GNW ยท AKOrN ยท PAD ยท ฮฆฬ-RIIU ยท EI)
โโโ NeuroPlatform v2 Bridge (MEA โ SNN ยท StimParam ยท closed loop)
โโโ Ethics IRB Monitor (mode-aware)
โโโ MCP Server (50 tools ยท 11 resources ยท 8 prompts)
Note on data mode: In the default
simmode, all bio-platform data is synthetically generated. The server is designed to connect to live platforms inlivemode, but this requires hardware access and appropriate IRB approval.
What's New in v2
- Layered SNN architecture: Configurable feed-forward + recurrent topology (default: 32โ64โ16โ16 = 128 neurons) replacing the flat random network
- Event-driven STDP: O(spikes ร fan-out) instead of O(Nยฒ) per timestep
- Ring buffer: O(1) spike history eviction replacing O(n)
Array.shift() - Sparse weight storage: Adjacency lists instead of dense NรN matrix
- Honest ACM naming: Proxies clearly labelled as
integrationProxy,broadcastProxy,arousalProxywith methodological basis strings โ no false IIT/GWT/PAD claims - Bounds-checked parameters:
set_parameterrejects implausible values (NaN, Infinity, out-of-range) - Mode-aware ethics: Reports distinguish simulated vs live data with explicit disclaimers
- CI pipeline: GitHub Actions for build, test, and Docker smoke-test
- Repo hygiene:
dist/excluded from VCS,.gitignoreadded, deployment script removed
Quick Start
git clone https://github.com/christophejlegros-lgtm/ASTRA-Unified-ResearchLab-MCP-v2.7.git
cd ASTRA-Unified-ResearchLab-MCP-v2.7
# Install & build
npm install
npm run build
# Run (stdio โ for Claude Desktop / Cursor)
node dist/index.js
# Or dev mode (no build needed)
npm run dev
Transports
| Transport | Command | Port | Clients |
|---|---|---|---|
| stdio | node dist/index.js |
โ | Claude Desktop, Cursor, VS Code |
| SSE | node dist/sse-server.js |
9002 | Web clients, remote agents |
| Streamable HTTP | node dist/http-server.js |
9003 | Modern MCP clients (spec 2025-11-25) |
Client Configuration
Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"astra": {
"command": "node",
"args": ["/absolute/path/to/dist/index.js"],
"env": { "ASTRA_LOG_LEVEL": "info" }
}
}
}
Cursor
Add to .cursor/mcp.json (project) or ~/.cursor/mcp.json (global):
{
"mcpServers": {
"astra": {
"command": "node",
"args": ["/absolute/path/to/dist/index.js"]
}
}
}
VS Code
Add to .vscode/settings.json:
{
"mcp": {
"servers": {
"astra": {
"type": "stdio",
"command": "node",
"args": ["${workspaceFolder}/dist/index.js"]
}
}
}
}
Docker (remote SSE + HTTP)
docker compose up -d
# SSE: http://host:9002/sse
# HTTP: http://host:9003/mcp
MCP Tools (41)
All tools declare MCP annotations (readOnlyHint, destructiveHint, idempotentHint, openWorldHint) and human-readable titles. Core tools below; see TCAI-INTEGRATION.md for the 8 tcai_* tools and NEUROPLATFORM-INTEGRATION.md for the 9 np_* tools.
| Tool | Title | Annotations |
|---|---|---|
get_system_status |
ASTRA System Status | ๐ read-only |
get_metrics |
Real-time Metrics | ๐ read-only |
get_snn_state |
SNN Engine State | ๐ read-only |
snn_step |
Advance SNN Simulation | โ๏ธ mutating |
snn_reset |
Reset SNN Engine | โ ๏ธ destructive |
inject_spikes |
Spike Injection | โ๏ธ mutating |
get_acm_score |
Consciousness Assessment (Proxy) | ๐ read-only |
check_ethics |
IRB Neural Welfare Check | ๐ read-only |
set_parameter |
Modify State Parameter | โ ๏ธ destructive, bounds-checked |
get_platform_status |
Bio-Computing Platforms | ๐ read-only ยท ๐ open-world |
export_snapshot |
Full State Snapshot | ๐ read-only |
simulation_control |
Simulation Control | โ๏ธ mutating |
tcai_* (8) |
ACM consciousness cycle, workspace, emotion, memory, self-model, metrics, reset | mixed โ see TCAI guide |
np_* (9) |
NeuroPlatform v2: status, stim config, triggers, spike queries, camera, closed loop | mixed โ see NeuroPlatform guide |
MCP Resources (10)
| URI | Description |
|---|---|
astra://metrics/realtime |
Live metrics from all subsystems |
astra://snn/topology |
Actual network architecture (reflects engine config) |
astra://acm/state |
Current consciousness proxy assessment vector |
astra://ethics/welfare |
IRB compliance and welfare report (mode-aware) |
astra://snapshot/current |
Complete state dump |
astra://tcai/state |
TCAI/ACM workspace, emotion, self-model & metrics |
astra://neuroplatform/state |
NeuroPlatform bridge state (MEA activity, viability, coupling) |
MCP Prompts (7)
Pre-built workflow templates that orchestrate multi-tool sequences:
| Prompt | Description |
|---|---|
system-health-report |
Orchestrates multiple tools into a comprehensive system report |
snn-experiment |
Controlled SNN experiment: reset โ stimulate โ observe STDP โ assess proxies |
ethics-stress-test |
Progressive biomarker degradation: NORMAL โ STRESS โ DISTRESS โ recovery |
tcai-consciousness-cycle |
Guided ACM cycle: specialists โ binding โ ignition โ broadcast โ qualia โ metrics |
neuroplatform-experiment |
Guided closed-loop protocol: read MEA โ configure charge-balanced stim โ trigger โ observe |
Architecture
.github/workflows/
โโโ ci.yml # GitHub Actions: build, test, Docker smoke-test
src/
โโโ index.ts # stdio transport entry point
โโโ sse-server.ts # SSE transport (Express)
โโโ http-server.ts # Streamable HTTP transport (Express)
โโโ server.ts # MCP server factory (50 tools + 8 prompts + 11 resources)
โ โโโ server-wm-tools.ts # World Model JEPA tools (6 tools + 2 resources + 1 prompt)
โ โโโ server-sensor-tools.ts # Multimodal sensor tools (6 tools + 1 resource + 1 prompt)
โ โโโ server-tcai-tools.ts # TCAI/ACM tools (17 tools + 2 resources + 2 prompts incl. substrate-grounded closed-loop active inference)
โ โโโ server-neuroplatform-tools.ts # NeuroPlatform v2 tools (9 tools + 1 resource + 1 prompt)
โโโ engine/
โ โโโ state.ts # Reactive state store + parameter bounds registry
โ โโโ snn.ts # Layered SNN LIF+STDP engine (Map-indexed sparse weights, event-driven)
โ โโโ acm.ts # Consciousness proxy module (ฮฆฬ + GWฬ + PADฬ)
โ โโโ ethics.ts # IRB ethics monitor (mode-aware, biomarker thresholds)
โ โโโ world-model.ts # JEPA World Model engine (LeWM adapted)
โ โโโ wm-simulation.ts # WM simulation manager (replay buffer, auto-train)
โ โโโ multimodal-sensors.ts # V-JEPA 2 + A-JEPA + Koniku + fusion
โ โโโ neuroplatform.ts # FinalSpark NeuroPlatform v2 port + OrganoidMEA simulator
โ โโโ simulation.ts # Background tick loop
โโโ utils/
โโโ logger.ts # Structured logging (pino โ stderr)
tests/
โโโ astra.test.ts # Unit tests: state, bounds, SNN, ACM, ethics, security
โโโ world-model.test.ts # World Model: encoder, predictor, SIGReg, CEM, surprise
โโโ wm-simulation.test.ts # WM simulation: buffer, training, planning, lifecycle
โโโ multimodal-sensors.test.ts # Sensors: V-JEPA, A-JEPA, Koniku, fusion, pipeline
โโโ tcai.test.ts # TCAI/ACM: binding, GNW, memory, emotion, self-model, metrics
โโโ neuroplatform.test.ts # NeuroPlatform: StimParam, OrganoidMEA, controllers, bridge
โโโ integration.test.ts # Client SDK integration: tools, resources, prompts, workflow
configs/ # Ready-to-use client configurations
Extracted to separate repositories: The v1 HTML dashboard (4 669 lines) and the legacy Node.js bridge config have been removed from this repo to keep it focused on the MCP server. See ASTRA-Unified-ResearchLab-MCP- for the original dashboard.
SNN Engine
Layered LIF+STDP โ Configurable layered architecture. Default: 32 (input) โ 64 (hidden_1) โ 16 (hidden_2) โ 16 (output) = 128 neurons.
Connectivity: feed-forward between adjacent layers (30%) + sparse recurrent within layers (10%). Weights stored as sparse adjacency lists, not dense matrices.
Biophysical parameters: ฯ_m = 20ms, V_th = โ50mV, V_reset = โ70mV, refractory = 2ms. Background noise range [10, 22] mV produces ~2 spikes/step at steady state with all neurons active. STDP: A+ = 0.01, Aโ = 0.012, ฯยฑ = 20ms, event-driven (processes only spiking neurons per timestep).
The SNN topology resource (astra://snn/topology) dynamically reports the actual engine configuration, including layer sizes, synapse count, connectivity parameters, and weight storage type (Map-indexed sparse adjacency lists).
ACM โ Consciousness Proxy Module
โ Methodological disclaimer: The metrics below are computational proxies inspired by the referenced theories. They are not faithful implementations. See source code comments for full details.
Composite score: ACM = ฮฑยทฮฆฬ + ฮฒยทGWฬ + ฮณยทPADฬ (default: ฮฑ=0.40, ฮฒ=0.35, ฮณ=0.25)
| Component | Basis | Inspired by | What it actually measures |
|---|---|---|---|
integrationProxy (ฮฆฬ) |
Active fraction + mean firing rate + synaptic heterogeneity | IIT (Tononi) | Network participation and complexity proxy. True ฮฆ is NP-hard to compute. |
broadcastProxy (GWฬ) |
Cross-layer firing rate synchrony (CV-based) | GWT (Baars) | Uniform activation across layers. Does not model competitive coalitions or ignition. |
arousalProxy (PADฬ) |
Spike rate + bio coupling + energy | PAD (Mehrabian) | Arousal dimension only. Pleasure and Dominance are not computed. |
Ethics IRB Monitor
IRB compliance level N3 (100Kโ1M neurons). Four biomarkers with three-state classification.
Mode-aware: In sim mode, reports include explicit disclaimers that data is synthetic and irbRequired is false. In live mode, DISTRESS triggers mandatory IRB notification.
| Biomarker | Normal | Stress | Critical |
|---|---|---|---|
| Cell viability | โฅ 90% | 80โ90% | < 80% |
| Firing rate | 15โ45 Hz | outside range | โค 5 or โฅ 60 Hz |
| ATP/ADP | โฅ 3.0 | 2.0โ3.0 | < 2.0 |
| Calcium | < 100 nM | 100โ200 nM | โฅ 200 nM |
Parameter Bounds
The set_parameter tool validates all numeric inputs against a bounds registry to prevent injection of absurd values (negative percentages, Infinity, NaN). Bounds are defined per parameter path โ see src/engine/state.ts for the complete registry.
Testing
# Full suite
npm test
# Unit tests only
node --import tsx --test tests/astra.test.ts
# Integration tests only (Client SDK)
node --import tsx --test tests/integration.test.ts
# TCAI / NeuroPlatform suites only
npm run test:tcai
npm run test:np
# MCP Inspector
npm run inspect
Full suite: 224/224 passing (188 prior + 28 second-order loop / active-inference), 0 TypeScript errors (strict, Node16 ESM).
Development
npm run dev # stdio (no build)
npm run dev:sse # SSE on :9002
npm run dev:http # HTTP on :9003
npm run watch # TypeScript watch mode
Environment Variables
| Variable | Default | Description |
|---|---|---|
ASTRA_LOG_LEVEL |
info |
debug, info, warn, error |
ASTRA_SSE_PORT |
9002 |
SSE transport port |
ASTRA_HTTP_PORT |
9003 |
Streamable HTTP port |
ASTRA_CORS_ORIGIN |
* |
CORS allowed origin |
Scaling Notes
The default 128-neuron configuration is designed for interactive demonstration. To scale toward the aspirational 256โ512โ256โ128 (1 152 neurons) architecture:
- Pass custom layers to
SNNEngine:new SNNEngine({ layers: [{ name: 'input', size: 256 }, ...] }) - Event-driven STDP scales as O(spikes ร average fan-out), not O(Nยฒ)
- Map-indexed adjacency lists provide O(1) weight lookup per synapse
- Sparse storage keeps memory proportional to actual synapses (~18 KB at 128 neurons vs 64 KB dense)
- Consider increasing
intervalMsin the simulation loop for larger networks - For >10K neurons, a Rust/WASM or Lava SDK backend is recommended
License
MIT โ ยฉ 2026 Christophe Jean Legros, Geneva
Assistance Multi IA ยท Assistant-Multi-AI@proton.me
References
- Model Context Protocol ยท Spec 2025-11-25
- MCP TypeScript SDK
- FinalSpark ยท Cortical Labs ยท Koniku
- Intel Lava / Loihi 2
- Gerstner & Kistler (2002) "Spiking Neuron Models"
- Tononi (2004) "An information integration theory of consciousness" โ BMC Neuroscience
- Baars (1988) "A Cognitive Theory of Consciousness" โ Cambridge University Press
- Mehrabian (1996) "Pleasure-Arousal-Dominance: A General Framework" โ Current Psychology
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.