Skip to main content
Glama
christophejlegros-lgtm

ASTRA Unified Research Lab MCP Server

ASTRA β€” Unified Research Lab + MCP Server

Autonomous Sentient Thoughtful Reasoning Agent

License: MIT CI MCP Spec MCP SDK Node.js TypeScript

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.

πŸ†• v3.0.1 β€” Transport-layer audit: blocking fix + integration suite

A code audit of the v3.0 tree found that both HTTP transports were inoperative at runtime despite a fully green test suite. express.json() consumes the request stream, and the MCP SDK requires the already-parsed body to be handed back (handleRequest(req, res, req.body) / handlePostMessage(req, res, req.body)); without it the SDK re-read an empty stream and every client→server POST hung until timeout. The 229 tests never exercised the transports, so the defect survived them.

  • Fix: parsed body forwarded at all four call sites (http-server.ts Γ—3, sse-server.ts Γ—1). Verified end-to-end: initialize β†’ tools/list (62) β†’ DELETE.

  • Session-leak guard: a POST without a session that is not a valid initialize now returns a JSON-RPC -32000 (HTTP 400) instead of silently constructing an orphaned server instance.

  • Version unified: src/version.ts is the single source of truth. The MCP server previously announced 2.2.0 to clients, while /health reported 2.0.0 (SSE) and 2.9.0 (HTTP).

  • Bind address: both transports default to 127.0.0.1; containers set 0.0.0.0 explicitly. See Environment Variables.

  • Lint restored: ESLint β‰₯ 9 requires a flat config, which the repo lacked β€” npm run lint failed outright and CI tolerated it via continue-on-error. eslint.config.js is now wired and lint is a blocking CI gate.

  • New suite: tests/transports.test.ts β€” 12 integration tests over both HTTP transports (session lifecycle, tool-count contract, CORS preflight, guards, and named regression tests under a hard timeout so a re-introduced hang fails loudly rather than freezing the run). Total: 241 tests.

Testability required a small refactor: createHttpApp() and createSseApp() are now exported factories bound to ephemeral ports by the tests, while an import.meta.url entry-point guard preserves direct node dist/*-server.js execution.

Related MCP server: ASTRA MCP Server

πŸ†• v3.0 β€” Unified release: OVOMIND bridge + Orch OR criterion layer + CI fix

v3.0 = the full v2.9 core (unchanged) plus the affective exteroception bridge and the Orch OR substrate-criterion layer, wired and passing:

  • src/engine/ovomind.ts β€” OVOMIND adapter (sim by default; the live adapter is a deliberate stub pending a vendor API contract), Russellβ†’PAD lift (dominance is never estimated from peripheral physiology), gated closed-loop controller (ships disarmed; refuses to arm without a protocol reference).

  • src/engine/tcai/phenomenal-guard.ts β€” epistemic tiers (access/functional only β€” no constructor for a phenomenal claim), Argonov ledger, Metzinger gate, claim linter. All 12 new tools route their output through it.

  • src/engine/tcai/orch-or.ts β€” Penrose criterion Ο„=ℏ/E_G with the displacement scale exposed as the free parameter it is, decoherence budget (verdict: UNRESOLVED), per-substrate verdicts, and a classical surrogate gate (temporal signature only β€” explicitly NOT an implementation of Orch OR).

  • MCP surface: 50 β†’ 62 tools (ovo_* Γ—6, orch_* Γ—6); resources and prompts unchanged (11 Β· 8). The stdio smoke test asserts the new count.

Docs: OVOMIND-INTEGRATION.md (FR) Β· ORCH-OR-INTEGRATION.fr.md / .en.md.

CI fix shipped in this release. The previous lockfile pinned safe-stable-stringify@2.9.0 β€” a version that does not exist on the npm registry (both matrix jobs failed at npm ci with E404 in ~17 s). The lockfile now pins 2.5.0, which satisfies pino's ^2.3.1. ci.yml also gains the Python + numpy setup that golden:check silently required, bumps actions to v5 (ends the Node 20 deprecation warnings), and updates the tool-count assertion to 62.

Note: the separate ASTRA-3.0- repository (CL1 ↔ Unreal Engine UDP bridge, Python) is a companion system, not a version of this MCP server, and is not merged here.

πŸ†• v2.9 β€” Setpoint regulation + real production loop

ASTRA v2.9 makes the continuous controller non-degenerate: instead of ramping the substrate to maximum, it regulates toward a configurable setpoint (homeostatic drive cost β‡’ interior optimum; the realised feature tracks the setpoint). The closed loop can now run through the shared production SNN (read + write) via setProductionLoop, genuinely closing on the deployed network β€” off by default to avoid contention with snn_step. The two active-inference roles are made explicit (discrete core = perception/F; continuous controller = control), with controllerSetpoint/controllerModelError surfaced in telemetry and setpoint/productionLoop exposed on tcai_cycle. Still a linear forward model over a synthetic SNN-firing proxy. 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 (StimParam with charge-balance checking, IntanController, TriggerController, DatabaseController, CameraController) backed by a seeded OrganoidMEA model β€” 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 genuine neuroplatformv2 SDK, streaming couplings to ASTRA over JSON-RPC.

  • Standalone dashboard (dashboard/ASTRA-NeuroPlatform-Dashboard.html): live MEA raster, spike scope, StimParam editor 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 (62 tools Β· 11 resources Β· 8 prompts)

Note on data mode: In the default sim mode, all bio-platform data is synthetically generated. The server is designed to connect to live platforms in live mode, 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, arousalProxy with methodological basis strings β€” no false IIT/GWT/PAD claims

  • Bounds-checked parameters: set_parameter rejects 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, .gitignore added, deployment script removed


Quick Start

git clone https://github.com/christophejlegros-lgtm/ASTRA-Unified-ResearchLab-MCP-v3.0.1.git
cd ASTRA-Unified-ResearchLab-MCP-v3.0.1

# 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 (62)

All tools declare MCP annotations (readOnlyHint, destructiveHint, idempotentHint, openWorldHint) and human-readable titles. Counts below are asserted by the CI stdio smoke test, not maintained by hand.

Core (12)

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

Domain families (50)

Family

Count

Scope

Guide

wm_*

6

JEPA World Model: encode, predict, plan (CEM), train, surprise

WORLD-MODEL.md

sensor_*

6

V-JEPA 2 Β· A-JEPA Β· Koniku Kore Β· cross-modal fusion

β€”

tcai_*

17

ACM cycle, workspace, emotion, memory, self-model, metrics, second-order loop

TCAI-INTEGRATION.md Β· SECOND-ORDER-LOOP-INTEGRATION.md

np_*

9

NeuroPlatform v2: status, stim config, triggers, spike queries, camera, closed loop

NEUROPLATFORM-INTEGRATION.md

ovo_*

6

OVOMIND affective exteroception bridge (sim by default; live adapter is a stub)

OVOMIND-INTEGRATION.md

orch_*

6

Orch OR substrate criterion, decoherence budget, classical surrogate gate

ORCH-OR-INTEGRATION.en.md Β· .fr.md

MCP Resources (11)

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://wm/latent

World Model latent embedding (current)

astra://wm/predictions

World Model rollout predictions

astra://sensors/state

Multimodal sensor pipeline state (visual Β· audio Β· olfactory Β· fusion)

astra://tcai/state

TCAI/ACM workspace, emotion, self-model & metrics

astra://tcai/second-order

Second-order self-evidencing loop telemetry (setpoint, model error)

astra://neuroplatform/state

NeuroPlatform bridge state (MEA activity, viability, coupling)

MCP Prompts (8)

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

wm-experiment

World Model experiment: encode β†’ predict β†’ compare β†’ plan

multimodal-experiment

Full multimodal sensor experiment: visual + audio + olfactory β†’ fused β†’ WM

tcai-consciousness-cycle

Guided ACM cycle: specialists β†’ binding β†’ ignition β†’ broadcast β†’ qualia β†’ metrics

tcai-second-order-loop

Probe the second-order self-evidencing loop (setpoint regulation)

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) β€” exports createSseApp() for tests
β”œβ”€β”€ http-server.ts        # Streamable HTTP transport (Express) β€” exports createHttpApp()
β”œβ”€β”€ version.ts            # ASTRA_VERSION β€” single source of truth, consumed by all transports
β”œβ”€β”€ server.ts             # MCP server factory (62 tools + 8 prompts + 11 resources)
β”‚   β”œβ”€β”€ server-wm-tools.ts            # World Model JEPA (6 tools + 2 resources + 1 prompt)
β”‚   β”œβ”€β”€ server-sensor-tools.ts        # Multimodal sensors (6 tools + 1 resource + 1 prompt)
β”‚   β”œβ”€β”€ server-tcai-tools.ts          # TCAI/ACM (17 tools + 2 resources + 2 prompts, incl. closed-loop active inference)
β”‚   β”œβ”€β”€ server-neuroplatform-tools.ts # NeuroPlatform v2 (9 tools + 1 resource + 1 prompt)
β”‚   β”œβ”€β”€ server-ovomind-tools.ts       # OVOMIND affective bridge (6 tools)
β”‚   └── server-orch-tools.ts          # Orch OR criterion layer (6 tools)
β”œβ”€β”€ 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
β”‚   β”œβ”€β”€ ovomind.ts        # OVOMIND adapter (sim default; live adapter is a declared stub)
β”‚   β”œβ”€β”€ simulation.ts     # Background tick loop
β”‚   └── tcai/             # ACM native port: global-workspace, oscillatory-binding, emotion,
β”‚                         #   emotional-memory, self-model, second-order, active-inference,
β”‚                         #   metrics, acm-bridge, orch-or, phenomenal-guard, types
└── utils/
    └── logger.ts         # Structured logging (pino β†’ stderr)

tests/                    # 241 tests Β· 52 suites
β”œβ”€β”€ astra.test.ts             # Unit: 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
β”œβ”€β”€ second-order.test.ts      # Second-order loop: setpoint regulation, production loop
β”œβ”€β”€ aif-equivalence.test.ts   # TS↔NumPy active-inference golden equivalence
β”œβ”€β”€ integration.test.ts       # Client SDK: tools, resources, prompts, workflow
└── transports.test.ts        # HTTP/SSE transport layer: session lifecycle, guards, regressions

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

# Targeted suites
npm run test:tcai          # TCAI/ACM
npm run test:np            # NeuroPlatform v2
npm run test:so            # second-order loop
npm run test:wm            # World Model
npm run test:sensors       # multimodal sensors
npm run test:transports    # HTTP + SSE transport layer

# Static gates
npm run build              # tsc strict (Node16 ESM)
npm run lint               # ESLint 9 flat config
npm run golden:check       # TS↔NumPy active-inference golden (requires python3 + numpy)

# MCP Inspector
npm run inspect

Full suite: 241/241 passing (229 engine/integration + 12 transport-layer), 0 TypeScript errors (strict, Node16 ESM), 0 ESLint errors. Verified on Node 20 and Node 22 in CI.

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, silent

ASTRA_SSE_PORT

9002

SSE transport port

ASTRA_SSE_HOST

127.0.0.1

SSE bind address

ASTRA_HTTP_PORT

9003

Streamable HTTP port

ASTRA_HTTP_HOST

127.0.0.1

Streamable HTTP bind address

ASTRA_CORS_ORIGIN

*

CORS allowed origin

Bind address defaults to loopback. Both HTTP transports bind 127.0.0.1 so a local server is not exposed to the network by default (the permissive CORS default would otherwise widen the attack surface). The Dockerfile and docker-compose.yml set ASTRA_*_HOST=0.0.0.0 explicitly, since a container must accept traffic from outside its own namespace. Set it yourself for any non-container remote deployment β€” and set ASTRA_CORS_ORIGIN to a concrete origin when you do.


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:

  1. Pass custom layers to SNNEngine: new SNNEngine({ layers: [{ name: 'input', size: 256 }, ...] })

  2. Event-driven STDP scales as O(spikes Γ— average fan-out), not O(NΒ²)

  3. Map-indexed adjacency lists provide O(1) weight lookup per synapse

  4. Sparse storage keeps memory proportional to actual synapses (~18 KB at 128 neurons vs 64 KB dense)

  5. Consider increasing intervalMs in the simulation loop for larger networks

  6. 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

Install Server
A
license - permissive license
C
quality
C
maintenance

Maintenance

–Maintainers
–Response time
–Release cycle
–Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

View all MCP Connectors

Latest Blog Posts

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/christophejlegros-lgtm/ASTRA-Unified-ResearchLab-MCP-v3.0.1'

If you have feedback or need assistance with the MCP directory API, please join our Discord server