mcpField
F
FoundryNet — Industrial Machine Intelligence

FoundryNet — Industrial Machine Intelligence

远程服务
foundrynet.io商业与营销0今天更新

关于 FoundryNet — Industrial Machine Intelligence

FoundryNet 是面向工业运营人员和 Agent 的托管 MCP 服务,支持跨制造商机器数据处理。它可规范化遥测数据、管理自动化与预测,并为状态变更操作生成防篡改记录。

主要功能

  1. 01规范化跨制造商遥测数据
  2. 02管理机器身份与历史记录
  3. 03创建并启用自动化
  4. 04预测故障并评估设备群健康度
  5. 05验证防篡改工作记录

适用场景

  1. 01比较不同 OEM 机器的遥测数据
  2. 02查看运行历史与设备群健康度
  3. 03将自然语言指令转为自动化
  4. 04验证已完成机器作业的记录

MCP 相关

通过 Streamable HTTP 向 MCP 客户端提供 32 个工具,也支持旧版 SSE 端点。工具涵盖机器数据、自动化、预测、运营及工作记录验证。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://foundrynet-mcp-production.up.railway.app/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

详细介绍

Forge by Foundry Labs — 工业机器智能

跨制造商工业 MCP 服务。使用自然语言与任何 CNC、机器人或工业机器交谈——机器身份、覆盖 20 个垂直领域的 46 个供应商包中的遥测数据规范化、通俗易懂的自动化,以及防篡改工作记录。

通过 Streamable HTTP 提供托管 MCP。32 个工具封装 Forge v1 API:配置稳定的机器身份,将原始 OEM 遥测数据规范化为规范架构,查询运行历史,解析并激活通俗易懂的自动化,预测故障(TimesFM),评估设备群健康状况,并将每项改变状态的操作记录为可验证、防篡改的工作记录。

功能介绍

它会将来自 18 个制造商系列的原始 OEM 遥测数据规范化为统一的规范词汇,其中包含数千条已确认的字段映射——因此无论机器是 Fanuc CNC、KUKA 机械臂还是 Universal Robots 协作机器人,Agent 都只需针对同一组字段名称编写代码。此外,它还会将通俗易懂的指令转换为结构化自动化(先审核再激活),并将每项改变状态的操作记录为防篡改工作记录。

架构

纯 HTTP 代理。每个工具都是对 https://forge.foundrynet.io/v1/* 的轻量封装。无状态,不与 forge-prod 共享导入项——使用独立的 Railway 服务和独立的依赖项(fastmcp + httpx)。

Claude Desktop / agent
        │ Streamable HTTP (/mcp) — or legacy SSE (/sse)
        │ Authorization: Bearer <the CALLER's Forge API key>
        ▼
  foundrynet-mcp on Railway
        │ gate: validate key → tier → cap → bind caller
        │ HTTPS, Authorization: Bearer <the SAME caller's key>
        │        X-Forge-Caller-Key-Id: <their forge_api_keys.id>
        ▼
  forge.foundrynet.io/v1/*  — scopes every row to that caller

租户隔离。 上游调用以调用者身份发起,而不是以本服务身份发起。过去,每个调用者的请求都会使用服务自己的 FOUNDRYNET_API_KEY 发起,且不会标识调用者:forge-prod 会将数据行限定在已认证密钥的所有者范围内,因此每个 MCP 租户都在同一个共享 Forge 账户中读取和写入数据;而 fleet_oee、shift_report、list_agents 和 prediction_accuracy 不接受机器参数,因此会返回该账户中的全部数据。现在,如果无法标识调用者,上游请求就会被拒绝:没有后备方案,因为唯一的后备方案就是共享密钥。OAuth 访问令牌包含密钥 ID,但不包含密钥,因此无法提交给上游,在调用工具时会因 tenant_context_unavailable 而被拒绝。

POST /a2a/tasks 和 GET /a2a/agents 会根据技能→工具映射,经过与 tools/call 相同的门控函数(gating.enforce_call)。此前,这两个路由会先对调用者进行身份验证,然后不检查层级、不设上限,也不经过付费门控就进行分发,导致 A2A 路由可绕过付费门控,免费使用推理工具。

测试与发布门禁

python3 -m venv .venv && .venv/bin/pip install -r requirements.txt pytest pytest-asyncio
.venv/bin/python -m pytest tests/ -q        # 229 checks
scripts/release_gate.sh                     # tree, deps, import, suite, version

测试套件会通过真实的 Streamable HTTP 和真实的门控层驱动实际 ASGI 应用;只有 Supabase 和上游请求会被替换,而且上游替代项会记录请求,因为最值得断言的正是本服务向 forge-prod 声明了什么身份。tests/test_rest_mcp_parity.py 会从 forge-prod 自身的 _endpoint_to_billing_meter 测量免费层级的对等性;测试时会直接读取其源代码,而不是复制代码。

CI 会在每次推送和拉取请求时运行整个代码树(.github/workflows/release-gate.yml,固定使用 ubuntu-24.04):实测结果为 223 passed, 6 skipped, 229 collected,耗时 2m04s。6 个跳过项是读取本地磁盘上 forge-prod 的 api.py 的检查——5 项对等性检查和 1 项成本账本单写入者检查。它们会明确跳过并打印原因,因为 forge-prod 属于独立的私有仓库,不在运行器上。明确显示跳过,胜过对一个被悄然移除的检查打出绿色勾号。

部署

cd ~/forge-mcp && git checkout main && git pull --ff-only && ./deploy.sh

切勿手动运行 railway up。deploy.sh 会依次执行七项操作,其中五项是为了应对曾经发生过的特定部署故障:

  1. 如果工作区不干净或当前分支不是 main,则拒绝部署——railway up 上传的是工作区,因此存在未提交更改时,没有任何提交能说明实际部署的内容;
  2. 运行 scripts/release_gate.sh,如果检查未通过则拒绝部署。我们特意不提供覆盖此检查的标志;
  3. 获取部署锁(~/.forge-mcp-deploy.lock,通过原子 mkdir 实现),避免两个并发部署在上传和验证时发生冲突;
  4. 如果 railway up 会归档错误的目录,则拒绝部署。它会从 ~/.railway/config.json 中选择最近的已关联项目目录,向上逐级查找——而不是使用 $PWD。这个目录曾继承 $HOME 的关联配置,而该配置指向的是另一个服务;
  5. 运行 stamp_build.py,写入 build_info.json(包含提交、脏状态、上传文件集的 content_hash 和构建时间);
  6. 运行 railway up --service 162115b7-…——明确指定 ID,因为单独运行 railway up 会根据同一祖先目录中的关联配置解析服务;
  7. 轮询 https://mcp.foundrynet.io/health,直到 build.commit_short 和 build.content_hash 均与刚写入的版本标记一致,然后断言状态。Railway 报告 SUCCESS 只表示上传和构建成功——如果新容器陷入崩溃循环,旧容器仍会继续提供服务,看起来就像部署成功了一样。除了提交外还要检查 content_hash,因为 railway up 上传的是一个文件树:相同的提交搭配不同的文件树,就是不同的部署。

/health 包含一个 build 块,其键名与 forge-prod 的相同,因此同一个验证器可以检查这两个服务。如果缺少 build_info.json,它会用文字明确说明:build_info.json absent — deploy did not run stamp_build.py,并将 commit、content_hash 和 built_at 设为 null——因为看起来像字段缺失的 null,无法与已写入版本标记的构建区分开来。

工具(32 个)

身份与数据:identify_machine、normalize_telemetry、query_machine_history、get_coverage、correct_mapping。自动化:create_automation、activate_automation、list_automations、disable_automation、delete_automation、restore_automation、query_webhook_history。预测(TimesFM):predict、predict_breach、remaining_life、predict_batch、fleet_health、detect_anomalies、machine_intelligence、prediction_accuracy。运维:calculate_oee、fleet_oee、energy_consumption、shift_report、diagnose_machine、health_index。防护机制:check_guardrail、list_guardrails。内核上的 Agent:get_agent_card、list_agents。工作记录:verify_record。演示:fire_sandbox(完整的观察 → 开火 → 结算流程,无卡片)。

get_agent_card 和 list_agents 仅针对连接到你内核实例的 Agent(包括其能力、信任评分和机器访问权限),并已包含在你的订阅中——每次调用不另行收费。它们是用于协调你自有设备上 Agent 的运维工具,并非用于跨平台发现。如需了解适用于任何框架的跨平台 Agent 信任机制,请访问 Assay(assay.foundrynet.io)。verify_record 会为已完成的工作创建防篡改且经过哈希验证的记录。

免费套餐提供只读工具;按用量付费可解锁高级预测和诊断工具(参见 https://forge.foundrynet.io/pricing?utm_source=github&utm_medium=readme&utm_campaign=forge-mcp-readme)。

连接(Claude Desktop、Cursor、任意 MCP 客户端)

claude mcp add --transport http foundrynet-forge \
  https://mcp.foundrynet.io/mcp \
  --header "Authorization: Bearer fnet_YOUR_KEY"

也可以通过 mcp-remote 桥接程序,在 claude_desktop_config.json 中配置:

{
  "mcpServers": {
    "foundrynet-forge": {
      "command": "npx",
      "args": ["-y", "mcp-remote",
               "https://mcp.foundrynet.io/mcp",
               "--header", "Authorization:Bearer ${FNET_KEY}"],
      "env": { "FNET_KEY": "fnet_…  (get a free key at foundrynet.io/signup)" }
    }
  }
}

我们仍支持旧版 SSE(针对 https://mcp.foundrynet.io/sse 使用 --transport sse),以兼容现有配置,但新的集成应使用上述 Streamable HTTP /mcp 端点。

在 https://foundrynet.io/signup?utm_source=github&utm_medium=readme&utm_campaign=forge-mcp-readme 免费获取 fnet_ 密钥(可调用 50 次 normalize,无需绑定卡片)。

必需环境(服务端)

变量必需默认值
FOUNDRYNET_API_KEY工具调用路径不再使用仅用于启动时的配置报告;工具调用使用调用者自己的密钥
SUPABASE_URL / SUPABASE_SERVICE_KEY门控功能必需未设置 = 禁用门控,默认放行
MCP_JWT_SECRET否未设置 = 禁用 OAuth 令牌签发(503),密钥认证不受影响
FORGE_BASE_URL否https://forge.foundrynet.io
PORT否8080(Railway 会自动设置)
REQUEST_TIMEOUT否120(秒)

文件

  • mcp_server.py — 服务端(32 个工具 + /health + /.well-known/mcp 路由)
  • gating.py — 按客户端分级的门控(强制执行 Free 与 Pro 工具/配额限制)
  • server.json — MCP 注册表元数据(名称、描述、关键词、远程端点)
  • smithery.yaml — Smithery 列表元数据
  • requirements.txt — fastmcp>=3.4.5,<4、httpx>=0.27、PyJWT>=2.14.0、supabase、stripe
  • tests/ — 行为测试套件(认证、租户隔离、对等性、幂等性、缓存范围)
  • scripts/release_gate.sh — 部署前必须在确切的提交上通过
  • deploy.sh — 唯一的生产部署途径;需通过门控、加锁、盖章并验证
  • stamp_build.py — 写入 build_info.json;/health 的 build 区块报告此信息
  • Procfile — Railway 启动命令(先盖章,再运行 python mcp_server.py)
  • .github/workflows/release-gate.yml — CI;在推送和 PR 时运行完整测试套件

许可证

专有(商业)。© Foundry Labs LLC。联系邮箱:[email protected]

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。