ASTRA Unified Research Lab MCP Server
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., "@ASTRA Unified Research Lab MCP Serverrun a layered SNN simulation with default parameters and show the consciousness metrics"
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.
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.
π 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
initializenow returns a JSON-RPC-32000(HTTP 400) instead of silently constructing an orphaned server instance.Version unified:
src/version.tsis the single source of truth. The MCP server previously announced2.2.0to clients, while/healthreported2.0.0(SSE) and2.9.0(HTTP).Bind address: both transports default to
127.0.0.1; containers set0.0.0.0explicitly. See Environment Variables.Lint restored: ESLint β₯ 9 requires a flat config, which the repo lacked β
npm run lintfailed outright and CI tolerated it viacontinue-on-error.eslint.config.jsis 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/functionalonly β 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 (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 (62 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 claimsBounds-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-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 devTransports
Transport | Command | Port | Clients |
stdio |
| β | Claude Desktop, Cursor, VS Code |
SSE |
| 9002 | Web clients, remote agents |
Streamable HTTP |
| 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/mcpMCP 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 |
| ASTRA System Status | π read-only |
| Real-time Metrics | π read-only |
| SNN Engine State | π read-only |
| Advance SNN Simulation | βοΈ mutating |
| Reset SNN Engine | β οΈ destructive |
| Spike Injection | βοΈ mutating |
| Consciousness Assessment (Proxy) | π read-only |
| IRB Neural Welfare Check | π read-only |
| Modify State Parameter | β οΈ destructive, bounds-checked |
| Bio-Computing Platforms | π read-only Β· π open-world |
| Full State Snapshot | π read-only |
| Simulation Control | βοΈ mutating |
Domain families (50)
Family | Count | Scope | Guide |
| 6 | JEPA World Model: encode, predict, plan (CEM), train, surprise | |
| 6 | V-JEPA 2 Β· A-JEPA Β· Koniku Kore Β· cross-modal fusion | β |
| 17 | ACM cycle, workspace, emotion, memory, self-model, metrics, second-order loop | |
| 9 | NeuroPlatform v2: status, stim config, triggers, spike queries, camera, closed loop | |
| 6 | OVOMIND affective exteroception bridge (sim by default; live adapter is a stub) | |
| 6 | Orch OR substrate criterion, decoherence budget, classical surrogate gate |
MCP Resources (11)
URI | Description |
| Live metrics from all subsystems |
| Actual network architecture (reflects engine config) |
| Current consciousness proxy assessment vector |
| IRB compliance and welfare report (mode-aware) |
| Complete state dump |
| World Model latent embedding (current) |
| World Model rollout predictions |
| Multimodal sensor pipeline state (visual Β· audio Β· olfactory Β· fusion) |
| TCAI/ACM workspace, emotion, self-model & metrics |
| Second-order self-evidencing loop telemetry (setpoint, model error) |
| NeuroPlatform bridge state (MEA activity, viability, coupling) |
MCP Prompts (8)
Pre-built workflow templates that orchestrate multi-tool sequences:
Prompt | Description |
| Orchestrates multiple tools into a comprehensive system report |
| Controlled SNN experiment: reset β stimulate β observe STDP β assess proxies |
| Progressive biomarker degradation: NORMAL β STRESS β DISTRESS β recovery |
| World Model experiment: encode β predict β compare β plan |
| Full multimodal sensor experiment: visual + audio + olfactory β fused β WM |
| Guided ACM cycle: specialists β binding β ignition β broadcast β qualia β metrics |
| Probe the second-order self-evidencing loop (setpoint regulation) |
| 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 configurationsExtracted 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 |
| Active fraction + mean firing rate + synaptic heterogeneity | IIT (Tononi) | Network participation and complexity proxy. True Ξ¦ is NP-hard to compute. |
| Cross-layer firing rate synchrony (CV-based) | GWT (Baars) | Uniform activation across layers. Does not model competitive coalitions or ignition. |
| 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 inspectFull 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 modeEnvironment Variables
Variable | Default | Description |
|
|
|
|
| SSE transport port |
|
| SSE bind address |
|
| Streamable HTTP port |
|
| Streamable HTTP bind address |
|
| CORS allowed origin |
Bind address defaults to loopback. Both HTTP transports bind
127.0.0.1so a local server is not exposed to the network by default (the permissive CORS default would otherwise widen the attack surface). The Dockerfile anddocker-compose.ymlsetASTRA_*_HOST=0.0.0.0explicitly, since a container must accept traffic from outside its own namespace. Set it yourself for any non-container remote deployment β and setASTRA_CORS_ORIGINto 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:
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 networksFor >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
FinalSpark Β· Cortical Labs Β· Koniku
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
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 Servers
- AlicenseCqualityCmaintenanceIntegrates a bio-hybrid neuromorphic simulation pipeline with SNN, consciousness proxies, and bio-computing platform telemetry as MCP tools, resources, and prompts for AI assistants.481MIT
- AlicenseCqualityCmaintenanceExposes a bio-hybrid neuromorphic simulation pipeline (SNN, consciousness proxies, FinalSpark NeuroPlatform) as MCP tools, resources, and prompts for AI assistants like Claude, Cursor, and VS Code.49MIT
- AlicenseCqualityCmaintenanceExposes a bio-hybrid neuromorphic simulation pipeline (SNN, consciousness proxies, wetware integration) as MCP tools, resources, and prompts for AI assistants.50MIT
- AlicenseCqualityCmaintenanceEnables 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.50MIT
Related MCP Connectors
Your memory, everywhere AI goes. Build knowledge once, access it via MCP anywhere.
Shared long-term memory vault for AI agents with 20 MCP tools.
65+ AI tools as MCP: research, write, code, scrape, translate, RAG, agent memory, workflows
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/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