Eos MCP
Eos MCP 是一个生产就绪的网关,可将您的EOS ETC灯光控制台转换为可由AI助手和自动化工具控制的服务。通过模型上下文协议(MCP)和强大的开放声音控制(OSC)网络集成,您可以从对话界面或低代码工作流协调提示、预设和例程,保持对安全和监控的精细控制。
归属公约
为免生疑问,本文件中保留的身份协议为: Florian Ribes (NairolfConcept). 该表格必须在法律通知、文件标题和项目文件中以相同的方式使用。
许可证标题(仅AGPL-3.0)
存储库现在在每个源文件中应用一个短标题。该公约对所有人都是强制性的 新文件 以确保未来的一致性。
- 版权持有人:
Florian Ribes (NairolfConcept) - 年份:
2026 - 许可证ID:
SPDX-License-Identifier: AGPL-3.0-only
根据语言使用的格式:
- Types/JavaScript(
.ts,.js,.d.ts)
/*
* Copyright 2026 Florian Ribes (NairolfConcept)
* SPDX-License-Identifier: AGPL-3.0-only
*/- 壳牌(
.sh)
# Copyright 2026 Florian Ribes (NairolfConcept)
# SPDX-License-Identifier: AGPL-3.0-only- 批处理窗口(
.cmd,.bat)
@REM Copyright 2026 Florian Ribes (NairolfConcept)
@REM SPDX-License-Identifier: AGPL-3.0-only为什么选择EOS MCP?
- 可实现自动化 :一个弹性服务器,能够连续运行,为您的舞台和广播流程供电。
- 统一操作员体验 :将您的EOS工具公开给ChatGPT、Claude、N8N或任何支持MCP的平台,而无需重写脚本。
- 综合安全 :API密钥、MCP令牌和网络过滤,可配置以框架对控制台的访问。
- 生成的文档 :每个MCP工具都有详细的数据表
docs/tools.md以加快团队的入职。
关键用例
- 从AI助手触发提示灯以平滑重复。
- 将EOS集成到N8N工作流中,以同步控制、时间码和自动化。
- 监控和审核通过可选HTTP/WS网关远程发送的命令。
补充文件
- 自动化食谱:用于触发提示、操作预设和调整强度级别的现成场景。
- 导游代理LLM:人工智能助手的行为规则、干运行/确认示例和每个用户意图的工具方向表。
- 建筑技术:MCP→OSC流程图、内部组件和“在哪里修改什么”指南。
docs/tools.md:为每个MCP工具自动生成详尽的参考。- 添加MCP工具:创建工具系列、声明OSC映射、编写ZOD模式、测试和重新生成引用的贡献者过程。
- 指南许可(社区与商业) :简单的双向视图、常见问题解答和实际案例。
基本MCP工具
| 工具 | 说明 | 详细信息 |
|---|---|---|
eos_readiness_check | 第一步强制只读:ping、握手、版本、命令行、显示名称、计数和可选补丁读取。 | docs/tools.md#eos就绪检查 |
eos_cue_go | 转到活动提示列表。 | docs/tools.md#eos提示 |
eos_cue_stop_back | 停止或返回列表。 | docs/tools.md#eos提示停止返回 |
eos_preset_fire | 立即提醒预设。 | docs/tools.md#eos预设火 |
eos_channel_set_level | 设置通道的强度(0–100%)。 | docs/tools.md#eos通道设置级别 |
第一步:准备
在任何业务阅读、干运行或实际操作之前,LLM助理必须致电 eos_readiness_check.工具返回 structuredContent.overall_status, transport_status, handshake_mode, json_read_supported, failed_checks 和 operator_actions;如果不支持JSON读取,向导不得发明补丁、提示或显示状态,必须请求OSC重新配置或显式源。提供 patchChannel 当您还想验证已知通道上的只读补丁读取时。
安全模式
Plan → 干跑→ 确认→ 性行为。 对于显示的任何更改(提示、补丁、调色板、文本命令或实时触发),向导必须宣布其行动计划,提供命令预览的干运行,然后只有在操作员明确确认后才能实际执行。
CUE修改示例:
- 宣布的计划:“我将更新频道列表1中的提示12
1 Thru 10,应用强度因子0.7然后准备更新而不发送。» - 建议干跑:呼叫
eos_workflow_update_cue_look与dry_run=true用于预览Chan 1 Thru 10 At * 0.7然后Update Cue 1 / 12在structuredContent.commands_preview. - 明确确认:等待明确的响应,例如“确认,执行CUE 12更新”
- 实际执行:使用相同的业务参数重新启动相同的工作流,
dry_run=false(无dry_run)etrequire_confirmation: true仅在明确确认后,然后检查structuredContent.command_log和structuredContent.commandsSent.
莱斯 敏感的低级工具 (eos_cue_record, eos_cue_update, eos_patch_*, eos_command, eos_new_command,触发 fire等)针对的是确切知道要发送和依赖哪个EOS命令的集成。 require_confirmation, safety_level 以及严格的方案。 eos_new_command 还拒绝由CUE编程组成的命令(例如 At + Record + Label)的。对于一系列提示,Claude必须优先考虑 eos_workflow_create_cue_series 与 looks[].intensity (ou looks[].level)以便工作流发出 Chan 1 Thru 10 At Full,然后 Record Cue 3,然后 Cue 3 Label "Reggae" 作为单独的命令,不连接 At, Record 或 Label 在 channels莱斯 引导高级别工作流 (eos_workflow_*)协调多个业务命令,接受未知的客户端元数据而不执行它们,并通过 dry_run=true它们的实际执行被拒绝,只要 require_confirmation 不值得 true,Claude只能在显式用户验证后通过重新启动相同的工作流来添加此字段 structuredContent.commands_preview.
先决条件
- Node.js 20+(使用当前LTS进行测试)。
- NPM9+。
- EOS ETC控制台(或软件 游牧者 离线模式)可在同一网络上访问。
- 访问MCP集成的目标工具(ChatGPT、Claude、N8N)。
检查您的Node.js版本:
node --version安装MCP服务器
- 克隆存储库并安装依赖项:
git clone https://github.com/Nairolf138/Eos_MCP.git
cd Eos_MCP
npm install- (可选)文件
.env.example反映服务器验证的默认值:复制到.env然后根据需要调整网络端口/设置。运行时,服务器现在会自动加载文件.env从项目的根源;不需要额外的步骤。
脚本npm-utiles
npm run build:编译TypeScript版本dist/.npm run tsc:仅运行TypeScript编译(在Windows上用于隔离TS错误而不复制工件)。npm run lint:使用ESLint检查代码样式。npm run lint:manifest:通过AJV验证MCP清单的结构。npm run check:agent-ready:执行推荐的CI字符串以准备代理干预(lint,tsc,docs:check,lint:manifest,然后test).npm run check:agent-ready:e2e:运行相同的字符串,然后在需要完全验证时显式启动E2E HTTP/OSC套件。npm test:运行测试套件(JEST)。npm start:启动以stdio模式编译的MCP服务器。npm run start:dev:直接启动MCP服务器ts-node.npm run docs:generate:重新生成MCP工具的完整文档和JSDOC注释。npm run docs:check:检查docs/tools.md与源代码同步。npm run package:在中生成独立二进制文件dist/bin/eos-mcp(默认为Linux x64)通过pkg.
在Windows上,使用 npm run tsc 要运行完全相同的TypeScript编译: npm run build,没有复制工件的步骤。
每个工具的详细说明可在 docs/tools.md.该文件是从中声明的ZOD模式自动生成的 src/tools/**.
回退显示文件 .esf3d 霍尔斯直播
工具 eos_showfile_* 可以导入显示文件 .esf3d 仅在明确操作员授权后作为实时回退(operator_authorized=true)的。导入接受本地路径,限制为 allowedRoot或者是受控的Base64上传;在这两种情况下,文件必须保持扩展名 .esf3d该文件被视为临时隔离目录中的zip存档,具有大小限制、zip滑动控制和系统清理。答案总是 source: "showfile" 和 live: false 以避免与控制台混淆。此回退不会取代OSC实时播放,也不应显示为控制台的实时状态。
所有已发布的更改都记录在 CHANGELOG.md.服务器版本更新过程记录在 部署说明(systemd、nssm)可在 docs/deployment.md.
命令行选项
乐模块负责人(src/server/index.ts)公开多个实用程序,无需启动服务器即可访问。下面的命令也适用于 ts-node 使用编译的构建(dist/server/index.js).
# Afficher l'aide intégrée
npx ts-node src/server/index.ts --help
# Afficher la version du serveur MCP
npx ts-node src/server/index.ts --version
# Lister les outils MCP embarqués
npx ts-node src/server/index.ts --list-tools
# Vérifier la configuration (retourne un code de sortie non nul en cas d'erreur)
npx ts-node src/server/index.ts --check-config这些命令也可以在编译版本上运行 node dist/server/index.js .使用 --list-tools 快速检查可用工具,以及 --check-config 为了验证您的文件 .env 或部署前的环境变量。如果通过启用HTTP/WS MCP网关 MCP_TCP_PORT,验证现在失败,当 MCP_HTTP_MCP_TOKENS 为空或保持为默认值 change-me.
当您实际启动服务器时(不结合上面的实用程序选项),有几个修改器可用:
--verbose启用OSC(传入/传出)消息的详细日志记录。--json-logs强制所有配置的目标使用JSON格式,并替换任何输出stdout段落stderr以保护MCP协议的STDOUT信道。--stats-interval定期发布来自的Rx/Tx计数器OscService.getDiagnostics()在日志中(接受值10s,5s,5000ms等等)。
示例:
npx ts-node src/server/index.ts --verbose --json-logs --stats-interval 30s日志记录和分离stdout/stderr
MCP协议仅使用stdout与客户端交换。为了避免干扰,所有应用程序日志现在都路由到stderr(或配置的文件/传输)。即使目的地继承 stdout 由于兼容性原因,环境变量中仍然接受它,服务器会自动将其重定向到stderr。通过stderr或配置查看日志 LOG_DESTINATIONS=file/transport 根据你的需要。
EOS控制台和网络配置
| 协议 | 端口 | 描述 |
|---|---|---|
| TCP | 3032 | 可传递HTTP/WS MCP(GET /health,得到 /tools,POST /tools/:name,websocket /ws)可通过激活 MCP_TCP_PORT. |
| UDP | 8000 | OSC本地端口d’écoute(入站)。 |
| UDP | 8001 | 默认OSC输出端口(输出)。 |
相关环境变量:
MCP_TCP_PORT启用可选的HTTP/WS网关(例如3032).MCP_HTTP_TRUST_PROXY至true为了信任标题X-Forwarded-*由反向代理或隧道公开。OSC_UDP_IN_PORT用于本地监听端口。OSC_UDP_OUT_PORT和OSC_REMOTE_ADDRESS对于输出UDP目标。OSC_TCP_NO_DELAY激活TCP_NODELAY在TCP套接字上(默认情况下)true).OSC_TCP_KEEP_ALIVE_MS对于以毫秒为单位的TCP保持活动间隔(默认)5000).OSC_UDP_RECV_BUFFER_SIZE和OSC_UDP_SEND_BUFFER_SIZE调整UDP缓冲区(默认)262144/524288根据OS限制的字节)。
EOS控制台侧步骤
- 在控制台(或Nomad)上,打开 设置→ 系统→ 显示控制→ OSC.
- 启用 OSC RX 和 OSC TX.
- 在中输入MCP服务器的IP地址 OSC TX IP地址.
- 配置端口:
OSC RX Port=OSC_UDP_OUT_PORT(默认为8001)和OSC TX Port=OSC_UDP_IN_PORT(默认为8000)。 - 如有必要,验证并重新启动显示。
启动MCP服务器
开发模式(动态TypeScript)
npm run start:dev生产模式(构建+运行Node.js)
npm run build
npm start服务器监听MCP客户端的stdio,并使用先前的配置初始化OSC服务。启动日志显示受监控的端口。专用消息现在确认加载的工具数量、HTTP/WS网关的状态以及STDIO传输的可用性:
{"toolCount":5,"httpGateway":{"address":"0.0.0.0","family":"IPv4","port":3032},"stdioTransport":"listening"} Serveur MCP demarre : 5 outil(s) disponibles. Passerelle HTTP/WS active sur le port 3032. Transport STDIO en ecoute.如果HTTP/WS网关未配置或无法启动,则消息指定只有STDIO通信处于活动状态,允许运营商在服务启动时快速识别实际配置。
发布清单
在发布新版本之前:
- 更新
CHANGELOG.md随着变化和修正。 - 应用 `npm version
` 以生成提交和相应的标记。
- 启动推荐的验证链(
npm run check:agent-ready)如果还没有这样做;使用npm run check:agent-ready:e2e明确包括E2E HTTP/OSC套件。 - 推送分支和关联标记:
git push --follow-tags- 检查生成的文档是否保持最新(
npm run docs:check).
可选HTTP/WS网关
设置环境变量 MCP_TCP_PORT 要公开HTTP REST API(GET /tools, POST /tools/:name)和WebSocket(/ws)位于MCP工具注册表上方。例如:
MCP_TCP_PORT=3032 npm run start:dev检查网关的健康状况
公开了一个简短的JSON状态,用于监控探测或警报系统。端点返回已注册MCP工具的状态、运行时间和数量。
curl -X GET "http://localhost:3032/health"预期答案:
{
"status": "ok",
"uptimeMs": 1234,
"toolCount": 5,
"transportActive": true,
"mcp": {
"http": {
"status": "listening",
"startedAt": 1715080000000,
"uptimeMs": 1234,
"websocketClients": 0,
"address": {
"address": "0.0.0.0",
"family": "IPv4",
"port": 3032
}
},
"stdio": {
"status": "listening",
"clients": 1,
"startedAt": 1715079999000,
"uptimeMs": 1200
}
},
"osc": {
"status": "online",
"updatedAt": 1715080000500,
"transports": {
"tcp": {
"type": "tcp",
"state": "connected",
"lastHeartbeatSentAt": 1715080000400,
"lastHeartbeatAckAt": 1715080000400,
"consecutiveFailures": 0
},
"udp": {
"type": "udp",
"state": "connected",
"lastHeartbeatSentAt": null,
"lastHeartbeatAckAt": null,
"consecutiveFailures": 0
}
},
"diagnostics": {
"config": {
"localAddress": "0.0.0.0",
"localPort": 8000,
"remoteAddress": "127.0.0.1",
"remotePort": 8001
},
"logging": { "incoming": false, "outgoing": false },
"stats": {
"incoming": { "count": 12, "bytes": 2048, "lastTimestamp": 1715080000300, "lastMessage": null, "addresses": [] },
"outgoing": { "count": 18, "bytes": 4096, "lastTimestamp": 1715080000350, "lastMessage": null, "addresses": [] }
},
"listeners": { "active": 1 },
"startedAt": 1715079900000,
"uptimeMs": 100000
}
}
}通过隧道或反向代理发布网关
L终点 /manifest.json 宣布MCP客户端的绝对URL。嵌入式清单现在提供显式占位符 http://{HOST}:{PORT} :在HTTP响应时,它被检测到的地址替换(Host, X-Forwarded-Host, X-Forwarded-Proto)或通过值 MCP_HTTP_PUBLIC_URL.当您暴露隧道后面的服务器时(ngrok, Cloudflare Tunnel等)或反向代理(nginx、traefik、caddy),您可以通过环境变量强制发布URL MCP_HTTP_PUBLIC_URL :
MCP_TCP_PORT=3032 \
MCP_HTTP_PUBLIC_URL="https://eos-mcp.example.com" \
npm run start:dev- 如果代理重写路径(例如:。
https://example.com/mcp),包括在MCP_HTTP_PUBLIC_URL以便MCP客户端正确解析端点(/manifest.json,/health,/tools,/ws). - 保留标题
X-Forwarded-*上游终止TLS时:服务器可以自动检测模式https并生成一致的清单,即使没有专用变量。 - 对于动态隧道(更改地址),自动更新
MCP_HTTP_PUBLIC_URL或者检查工具是否正确传播原始标题。如果未定义变量,占位符http://{HOST}:{PORT}每个请求都得到解决。 - 当应用程序在反向代理或TLS隧道后面发布时,设置
MCP_HTTP_TRUST_PROXY=true以便HTTP网关尊重头X-Forwarded-For/X-Forwarded-Proto对于IP AllowList、速率限制和URL解析。
正确配置的公共URL确保IA助手和MCP协调器可以建立WebSocket和HTTP连接,而无需依赖静态占位符。
乐集团 mcp 现在包括HTTP服务器状态(链接地址、WebSocket客户端、运行时间)和STDIO传输状态(客户端数量和正常运行时间)。 osc.transports 显示TCP/UDP链路的详细信息(最新心跳、连续故障),同时 osc.diagnostics 收集Rx/Tx计数器、应用的网络配置和日志记录状态。
在Claude中记录MCP清单
服务器自动公开claude兼容清单 GET /manifest.json.此文件引用工具列表(/tools),每个工具的JSON模式(/schemas/tools/{toolName}.json)以及目录(/schemas/tools/index.json).
- 在本地检查清单的有效性:
npm run lint:manifest- 确保您的HTTP/WS网关可公开访问(反向代理、隧道等),并注意清单的完整URL(例如:
https://mcp.example.com/manifest.json).
- 通过官方工具在Claude注册服务:
npx @anthropic-ai/anthropic-cli mcp register --manifest-url https://mcp.example.com/manifest.json- 您可以通过以下方式在本地模式下测试MCP集成:
npx @anthropic-ai/anthropic-cli mcp test --manifest-url http://localhost:3032/manifest.json清单也会自动复制到 dist/manifest.json 在 npm run build,确保其在部署工件中的存在(二进制) pkg、档案等)。
列出可用的工具
curl -X GET "http://localhost:3032/tools"预期答案:
{
"tools": [
{
"name": "ping",
"config": {
"title": "Ping tool",
"description": "Retourne un message de confirmation."
},
"metadata": {
"hasInputSchema": true,
"inputSchemaResourceUri": "schema://tools/ping",
"hasOutputSchema": false,
"hasMiddlewares": true,
"middlewareCount": 1
}
}
]
}具有ZOD模式的工具在中公开相应的MCP指针 metadata.inputSchemaResourceUri (schema://tools/).
Appel JSON-RPC(传输HTTP MCP)
入口点 /mcp 实现 MCP协议的HTTP流规范.每个会话都以请求开始 initialize 协商协议版本并在报头中返回会话标识符 Mcp-Session-Id.
curl -X POST "http://localhost:3032/mcp" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{
"jsonrpc": "2.0",
"id": "init-1",
"method": "initialize",
"params": {
"protocolVersion": "2025-06-18",
"capabilities": {},
"clientInfo": { "name": "curl", "version": "0.1" }
}
}'响应包含服务器功能和头 Mcp-Session-Id.要调用工具,请返回此ID 和 标题 Mcp-Protocol-Version (初始化时协商的值):
curl -X POST "http://localhost:3032/mcp" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "Mcp-Session-Id: " \
-H "Mcp-Protocol-Version: 2025-06-18" \
-d '{
"jsonrpc": "2.0",
"id": "call-1",
"method": "tools/call",
"params": {
"name": "ping",
"arguments": { "message": "Bonjour" }
}
}'预期答案:
{
"jsonrpc": "2.0",
"id": "call-1",
"result": {
"content": [
{
"type": "text",
"text": "pong: Bonjour"
}
]
}
}要干净地关闭会话,请发送 DELETE /mcp 具有相同的标题 Mcp-Session-Id 和 Mcp-Protocol-Version.
保护HTTP MCP传输
功能 createHttpGateway 接受一个对象 security 在HTTP MCP端应用简单的防御策略。
| 选项 | 描述 |
|---|---|
apiKeys | 允许的API密钥数组。在报头中传输 X-API-Key. |
mcpTokens | 用于身份验证的MCP令牌列表(标题 X-MCP-Token 或 Authorization: Bearer )的。突变请求也需要这些令牌来限制CSRF攻击。 |
ipAllowlist | 允许的IP地址列表("*" 倾吐接受者)。 |
allowedOrigins | CORS允许的HTTP源("*" 倾吐接受者)。 |
rateLimit | 内存流量限制器 { windowMs, max } 按IP地址应用。 |
express | 使Express中间件过载(authentication, csrf, cors, throttling). |
示例:
createHttpGateway(registry, {
port: 3032,
security: {
apiKeys: ['test-key'],
mcpTokens: ['token-123'],
ipAllowlist: ['127.0.0.1'],
allowedOrigins: ['http://localhost'],
rateLimit: { windowMs: 60000, max: 30 }
}
});客户端必须包括标题 X-API-Key, X-MCP-Token, Origin 并且一旦会话打开, Mcp-Session-Id / Mcp-Protocol-Version如果内置中间件不合适,您可以通过以下方式注入自己的Express中间件: security.express (例如,使用 helmet, cors ou un代理外部)。
例子 .env
MCP_TCP_PORT=3032
MCP_HTTP_MCP_TOKENS=change-me
MCP_HTTP_IP_ALLOWLIST=
MCP_HTTP_ALLOWED_ORIGINS=
MCP_HTTP_RATE_LIMIT_WINDOW=60000
MCP_HTTP_RATE_LIMIT_MAX=60此配置使HTTP/WS网关处于启用状态,但处于锁定状态:只要列表为空,就不允许IP地址或源,并且每个请求都需要MCP令牌。
⚠️ 当MCP_TCP_PORT已定义,服务器现在拒绝启动生产,如果MCP_HTTP_MCP_TOKENS为空或设置为change-me.正在开发中(NODE_ENV !== "production"),启动继续,但记录警告以提示更改。
| 参数 | 严格模式(默认) | LAN模式(示例) |
|---|---|---|
MCP_HTTP_IP_ALLOWLIST | 维德⇒ 否认一切 | 192.168.1.10,192.168.1.15 |
MCP_HTTP_ALLOWED_ORIGINS | 维德⇒ 否认一切 | http://192.168.1.10,http://192.168.1.15 |
MCP_HTTP_MCP_TOKENS | change-me (待替换) | lan-secret-123 |
MCP_HTTP_API_KEYS | 空(禁用) | lan-key |
MCP_HTTP_RATE_LIMIT_WINDOW | 60000 ms | 60000 ms |
MCP_HTTP_RATE_LIMIT_MAX | 60 请求 | 120 请求 |
MCP_HTTP_TRUST_PROXY | false | true |
在网络上公开网关之前,请记住用稳健的值替换令牌和密钥。
使用MCP CLI进行本地验证
启动服务器后,使用官方客户端调用工具:
npx @modelcontextprotocol/cli call --tool ping --args '{"message":"Bonjour"}'参考 docs/tools.md 有关工具和预期有效载荷的完整列表。
与IA助手集成
以下三种集成基于MCP协议。每个工具将调用stdio中的服务器;确保它在专用终端中运行。
ChatGPT(GPTS平台)
- 打开 https://chat.openai.com/ 并创建自定义GPT。
- 在选项卡中 行动,点击 添加操作 然后选择 模型上下文协议.
- 通知:
- 名字 : Eos MCP (或类似)。 - 断开连接类型 : Commande locale. - 命令 : npm run start:dev (发展)或 node dist/server/index.js (生产)。 - 工作目录 :文件夹的绝对路径 Eos_MCP.
- 保存GPT。第一次启动时,ChatGPT将要求您授权执行命令;接受打开服务器。
- 在对话中,请求采取行动(例如,“触发提示5”)。ChatGPT将请求转换为MCP工具调用;监控终端以验证命令是否触发。
克劳德桌面/Claude.ai
- 确保您使用的是MCP兼容版本(Claude Desktop≥1.3或具有MCP访问权限的Claude.ai)。
- 创建或修改配置文件:
- macOS: ~/Library/Application Support/Claude/claude_desktop_config.json - 窗户: %APPDATA%/Claude/claude_desktop_config.json - Linux: ~/.config/Claude/claude_desktop_config.json
- 添加以下配置:
{
"mcpServers": {
"eos-mcp": {
"command": "npm",
"args": ["run", "start:dev"],
"workingDirectory": "/chemin/vers/Eos_MCP"
}
}
}对于生产构建,替换为 "command": "node", "args": ["dist/server/index.js"].
- 重新启动Claude桌面并打开聊天。键入与EOS相关的指令;如果相关,Claude将自动选择MCP服务器。
- 检查响应是否包括正在使用的MCP工具的跟踪,以及EOS控制台是否接收OSC消息。
Claude用户指南
为了限制驾驶中的歧义并保持决策的清晰记录,请Claude在采取任何EOS行动之前遵循以下流程:
- 连接 :呼叫
eos_connect如果OSC会话尚未建立或需要确认网络目标。 - 能力审计 :呼叫
eos_capabilities_get在提出计划之前,检查可用工具、安全模式和网关状态。明确阅读structuredContent.context.osc_limitations(或eos_connect):sican_read_queries=false,Claude必须宣布EOS播放不保证,并且在没有明确播放响应的情况下,不得发明补丁、提示列表、提示或节目状态。 - 抽象级别的选择 :当意图符合需求时,优先考虑高级工作流:
- eos_workflow_autopatch_band 快速准备组/带补丁; - eos_workflow_create_look 从频道、调色板或组构建一致的外观; - eos_workflow_create_cue_series 以生成结构化提示序列;对于一个级别,请输入 looks[].intensity 或 looks[].level (Full, Out, 0-100,安全EOS值),而不是添加 At 在 channels.
- 重复 :利用者
eos_workflow_rehearsal_go_safe对于重复的顶部,而不是GO低直接级别,以保持提示列表、提示目标和验证的保障措施。 - 强制预览 :劳工需求者
dry_run: true在支持它的工作流或工具上,请阅读structuredContent.commands_preview使用用户,然后仅在使用相同的业务参数显式验证后重新启动,dry_run: false(你没有冠军dry_run)etrequire_confirmation: true当工作流更改显示时。 - 降级模式 :si
eos_connect返回handshake_mode=degraded或者限制“降级模式:可能发送,不保证读取”,Claude可以在确认后提供谨慎的发送,但必须将任何补丁/提示列表读取视为未知,直到读取工具成功响应。
用户确认规则 :Claude必须在对节目进行任何破坏性操作或修改之前获得用户的明确确认,包括补丁、记录、更新、删除、实时火灾、影响场景的调色板/预设提醒或提示触发。当工具暴露时 require_confirmation,实际呼叫必须包括: require_confirmation: true 在确认之后。
小型对话示例:
| 用户意图 | 建议Claude使用工作流 |
|---|---|
“准备宇宙2上我的鼓组补丁,但首先告诉我将发送什么。» eos_connect → eos_capabilities_get → eos_workflow_autopatch_band 与 dry_run: true然后在实际执行之前进行用户确认。 | |
“为场景3的正面和背面创建柔和的蓝色外观。» eos_capabilities_get → eos_workflow_create_look 英语 dry_run: true,查看预期渲染,然后在显示更改时确认执行。 | |
“在重复中,如果一切就绪,则发送列表1中的下一个提示。» eos_capabilities_get → eos_workflow_rehearsal_go_safe 具有用户确认和防护装置,而不是 eos_cue_go 直接。 |
N8N(工作流自动化)
您有两个选项:通过stdio(节点)直接调用服务器 执行命令)或通过MCP CLI。
选项A–执行命令
- 添加节点 执行命令 在您的工作流程中。
- 配置命令:
npx @modelcontextprotocol/cli call --cwd /chemin/vers/Eos_MCP --tool --args ''- 启动ping的示例:
npx @modelcontextprotocol/cli call --cwd /chemin/vers/Eos_MCP --tool ping --args '{"message":"Bonjour"}'- 解析节点的JSON输出以继续执行其他N8n操作。
选项B–持久MCP服务器
- 在外部服务(systemd、pm2等)中启动MCP服务器。
- 使用节点 HTTP请求 或 网络钩子 要对事件做出反应,请使用节点 执行命令 通过发送预期OSC消息的最小值
oscsend或连接到的内部Node.js脚本OSC_REMOTE_ADDRESS. - 结合这两种方法,根据您的触发器(电子邮件、外部API、日历等)自动触发MCP工具。
直接OSC呼叫
每个工具还公开OSC路径。复制示例 ping 通过OSC:
oscsend 127.0.0.1 8001 /eos/ping s:'{"message":"Bonjour"}'根据工具文档调整路径和有效载荷。
版本社区vs商业许可
La版本 社区 发表于 GNU AGPLv3 (AGPL-3.0-only).
社区版本允许什么
- 在内部和生产中使用EOS MCP;
- 修改代码并重新分发衍生版本;
- 在网络服务中操作软件 条件 遵守AGPLv3义务(包括提供与所涵盖变更相对应的源代码)。
何时切换到商业许可证
一 商业许可证 当组织希望在不执行AGPLv3义务的情况下运行EOS MCP时(例如,将未发布的专有开发集成到分发或提供给第三方的服务中),就有必要这样做。
许可证选择快速指南可在 docs/licensing/README.md以及常见问题解答和具体示例。详细的政策仍记录在 docs/licensing/strategy.md.
贡献
查看 CONTRIBUTING.md 对于贡献过程和迷你清单 许可证合规性 在任何PR之前进行验证。
许可证
本项目是根据许可证分发的 GNU AGPLv3 (AGPL-3.0-only). 查看中的完整文本 ./LICENSE.
维护者
- 作者 :弗洛里安·里贝斯
- 组织 :Nairolf概念
- 网站网址 : https://nairolfconcept.fr
