ASTRA——统一研究实验室+MCP服务器
自主感性思考推理代理
    ](https://nodejs.org) 
生产级 模型上下文协议 服务器将ASTRA生物混合神经形态模拟管道暴露给AI助手。与官方合作建造 @modelcontextprotocol/sdk,它集成了一个分层的SNN LIF+STDP引擎、意识代理评估、生物计算平台遥测和IRB伦理监测器——所有这些都可以作为MCP工具、资源和提示从 克劳德桌面, 光标, VS Code,以及任何兼容MCP的客户端。
FinalSpark (800K neurons) ──┐
Cortical Labs CL1 ──────────┼─→ Spike Encoders → SNN (LIF+STDP, 128 neurons) → ACM Proxies
Koniku Kore ────────────────┘ │ │
│ ┌─────┴─────┐
│ │ Φ̃ GW̃ PAD̃ │
│ └─────┬─────┘
├─→ Ethics IRB Monitor (mode-aware)
└─→ MCP Server (24 tools · 8 resources · 5 prompts)数据模式说明: 默认情况下sim模式下,所有生物平台数据都是综合生成的。该服务器旨在连接到以下实时平台live模式,但这需要硬件访问和适当的IRB批准。
______________________________________________________________________
v2中的新功能
- 分层SNN架构: 可配置的前馈+循环拓扑(默认值:32→64→16→16 = 128 神经元)取代平面随机网络
- 事件驱动的STDP: O(尖峰×扇出)而不是每时间步的O(N²)
- 环形缓冲器: O(1)尖峰历史驱逐取代O(n)
Array.shift() - 备用重量存储: 邻接列表代替密集的N×N矩阵
- 诚实的ACM命名: 代理人明确标记为
integrationProxy,broadcastProxy,arousalProxy具有方法论基础字符串——没有错误的IIT/GWT/PAD声明 - 边界检查参数:
set_parameter拒绝不可信的值(NaN、无穷大、超出范围) - 模式意识伦理: 报告通过明确的免责声明区分模拟数据和实时数据
- CI管道: 用于构建、测试和Docker冒烟测试的GitHub操作
- 回购卫生:
dist/排除在VCS之外,.gitignore已添加,部署脚本已删除
______________________________________________________________________
快速开始
git clone https://github.com/christophejlegros-lgtm/ASTRA-Unified-ResearchLab-MCP-v2.1.git
cd ASTRA-Unified-ResearchLab-MCP-v2.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运输
| 传输 | 命令 | 端口 | 客户端 |
|---|---|---|---|
| 标准 | node dist/index.js | -- | 克劳德桌面、光标、VS代码 |
| 上海证券交易所 | node dist/sse-server.js | 9002 | Web客户端、远程代理 |
| 可流式传输的HTTP | node dist/http-server.js | 9003 | 现代MCP客户端(规范2025-11-25) |
______________________________________________________________________
客户端配置
克劳德桌面
编辑 ~/Library/Application Support/Claude/claude_desktop_config.json (macOS)或 %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"astra": {
"command": "node",
"args": ["/absolute/path/to/dist/index.js"],
"env": { "ASTRA_LOG_LEVEL": "info" }
}
}
}光标
添加 .cursor/mcp.json (项目)或 ~/.cursor/mcp.json (全球):
{
"mcpServers": {
"astra": {
"command": "node",
"args": ["/absolute/path/to/dist/index.js"]
}
}
}VS Code
添加 .vscode/settings.json:
{
"mcp": {
"servers": {
"astra": {
"type": "stdio",
"command": "node",
"args": ["${workspaceFolder}/dist/index.js"]
}
}
}
}Docker(远程SSE+HTTP)
docker compose up -d
# SSE: http://host:9002/sse
# HTTP: http://host:9003/mcp______________________________________________________________________
MCP工具(24)
所有工具声明 MCP注释 (readOnlyHint、destructiveHint、幂等提示、openWorldHint)和人类可读的标题。
| 工具 | 标题 | 注释 |
|---|---|---|
get_system_status | ASTRA系统状态 | 📖 只读 |
get_metrics | 实时指标 | 📖 只读 |
get_snn_state | SNN发动机状态 | 📖 只读 |
snn_step | 高级SNN模拟 | ✏️ 变异 |
snn_reset | 重置SNN引擎 | ⚠️ 破坏性的 |
inject_spikes | 刺突注射 | ✏️ 变异 |
get_acm_score | 意识评估(代理) | 📖 只读 |
check_ethics | IRB神经福利检查📖 只读 | |
set_parameter | 修改状态参数 | ⚠️ 破坏性,边界已检查 |
get_platform_status | 生物计算平台 | 📖 只读·🌐 开放世界 |
export_snapshot | 完整状态快照 | 📖 只读 |
simulation_control | 模拟控制 | ✏️ 变异 |
MCP资源(8)
| URI | 描述 |
|---|---|
astra://metrics/realtime | 所有子系统的实时指标 |
astra://snn/topology | 实际 网络架构(反映引擎配置) |
astra://acm/state | 当前意识代理评估向量 |
astra://ethics/welfare | IRB合规和福利报告(模式感知) |
astra://snapshot/current | 完成状态转储 |
MCP提示(5)
编排多工具序列的预构建工作流模板:
| 提示 | 描述 |
|---|---|
system-health-report | 将5个工具整合为一份全面的系统报告 |
snn-experiment | 受控SNN实验:重置→ 刺激→ 遵守STDP→ 评估代理 |
ethics-stress-test | 渐进性生物标志物降解:正常→ 压力→ 痛苦→ 恢复 |
______________________________________________________________________
建筑
.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 (24 tools + 5 prompts + 8 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)
├── 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
│ └── 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
└── integration.test.ts # Client SDK integration: tools, resources, prompts, workflow
configs/ # Ready-to-use client configurations已提取到单独的存储库: v1 HTML仪表板(4669行)和遗留的Node.js桥配置已从该仓库中删除,以使其专注于MCP服务器。看 ASTRA统一研究实验室MCP- 对于原始仪表板。
SNN发动机
分层LIF+STDP --可配置的分层架构。默认值:32(输入)→ 64 (隐藏1)→ 16 (隐藏2)→ 16 (输出)= 128个神经元.
连通性:相邻层之间的前馈(30%)+层内稀疏递归(10%)。权重存储为稀疏邻接表,而不是密集矩阵。
生物物理参数:τ_m=20ms,V_th=-50mV,V_reset=-70mV,难治性=2ms。背景噪声范围\[10,22\]mV在稳态下产生约2个尖峰/步,所有神经元都处于活动状态。STDP:A+=0.01,A-=0.012,τ±=20ms,事件驱动(每个时间步仅处理尖峰神经元)。
SNN拓扑资源(astra://snn/topology)动态报告 实际的 引擎配置,包括层大小、突触计数、连接参数和权重存储类型(映射索引稀疏邻接列表)。
ACM——意识代理模块
⚠ 方法免责声明: 以下指标为 计算代理 受到参考理论的启发。他们是 不 忠实的执行。有关完整详细信息,请参阅源代码注释。
综合得分: ACM = α·Φ̃ + β·GW̃ + γ·PAD̃ (默认值:α=0.40,β=0.35,γ=0.25)
| 组件 | 基础 | 灵感来源 | 实际测量内容 |
|---|---|---|---|
integrationProxy (Φ̃) | 活性分数+平均放电率+突触异质性 | IIT(Tononi) | 网络参与和复杂性代理。真Φ是NP难以计算。 |
broadcastProxy (GW̃) | 跨层点火率同步性(基于CV) | GWT(Baars) | 层间均匀激活。不模拟竞争联盟或点火。 |
arousalProxy (PAD̃) | 尖峰速率+生物耦合+能量 | PAD(Mehrabian) | 仅唤醒维度。快乐和支配不是计算出来的。 |
伦理IRB监督员
IRB合规水平 N3 (100K–1M神经元)。四种生物标志物,具有三种状态分类。
模式感知: 在 sim 模式下,报告包括明确的免责声明,即数据是合成的 irbRequired 是 false.In live 模式下,DISTRESS触发强制IRB通知。
| 生物标志物 | 正常 | 压力 | 危急 |
|---|---|---|---|
| 细胞存活率 | ≥90% | 80-90% | \<80% |
| 射速 | 15-45Hz | 射程外 | ≤5或≥60Hz |
| ATP/ADP | ≥3.0 | 2.0-3.0 | \<2.0 |
| 钙 | \<100 nM | 100–200 nM | ≥200 nM |
参数边界
这 set_parameter 该工具根据边界注册表验证所有数字输入,以防止注入荒谬的值(负百分比、无穷大、NaN)。边界是按参数路径定义的——请参见 src/engine/state.ts 完整的注册表。
______________________________________________________________________
测试
# 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
# MCP Inspector
npm run inspect发展
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环境变量
| 变量 | 默认值 | 描述 |
|---|---|---|
ASTRA_LOG_LEVEL | info | 调试、信息、警告、错误 |
ASTRA_SSE_PORT | 9002 | SSE运输港 |
ASTRA_HTTP_PORT | 9003 | 流式HTTP端口 |
ASTRA_CORS_ORIGIN | * | CORS允许的来源 |
______________________________________________________________________
缩放注释
默认的128个神经元配置是为交互式演示而设计的。向理想的256级扩展→512→256→128 (1152个神经元)架构:
- 将自定义图层传递给
SNNEngine:new SNNEngine({ layers: [{ name: 'input', size: 256 }, ...] }) - 事件驱动的STDP缩放为O(峰值×平均扇出),而不是O(N²)
- 映射索引邻接列表为每个突触提供O(1)个权重查找
- 稀疏的存储使记忆与实际突触成比例(128个神经元时约为18 KB,而密度为64 KB)
- 考虑增加
intervalMs在大型网络的仿真循环中 - 对于大于10K的神经元,建议使用Rust/WASM或Lava SDK后端
______________________________________________________________________
许可证
麻省 理工 学院© 2026 Christophe Jean Legros, 日内瓦
援助多IA · Assistant-Multi-AI@proton.me
参考文献
- 模型上下文协议 · 规范2025-11-25
- MCP TypeScript SDK
- 最终Spark · 皮质实验室 · Koniku
- 英特尔Lava/Loihi 2
- Gerstner&Kistler(2002)“尖峰神经元模型”
- 托诺尼(2004)“意识的信息整合理论”-- *BMC神经科学*
- Baars(1988)《意识的认知理论》——剑桥大学出版社
- Mehrabian(1996)“愉悦唤起支配:一个总体框架”-- *当代心理学*
