Skip to main content
Glama

Nominal MCP Server

一个用于 Nominal 硬件测试平台的 MCP 服务器。无需离开编辑器,即可从 Claude Code、Cursor 或任何 MCP 客户端拉取测试数据、检查遥测通道、运行分析并写回结果。

实现 MCP 2026-07-28(当前修订版),并向后兼容 2025-11-252025-06-182025-03-262024-11-05

10 tools  ·  467 API operations reachable  ·  2,992 tokens of tools/list  ·  OAuth 2.1

快速开始

目前还没有公共实例在运行。 大约两分钟即可部署你自己的实例—— 它在 Cloudflare 的免费套餐上运行得很轻松。

部署它

git clone https://github.com/elirapport1/nominal-mcp && cd nominal-mcp && npm ci
npx wrangler login
npx wrangler kv namespace create OAUTH_KV      # paste the id into wrangler.toml
openssl rand -base64 32 | npx wrangler secret put TOKEN_SECRET
openssl rand -base64 32 | npx wrangler secret put HANDLE_SECRET
npx wrangler deploy

连接到它

claude mcp add --transport http nominal https://<your-worker>.workers.dev/mcp

浏览器窗口会打开。粘贴你自己的 Nominal API 密钥(Nominal 应用 → 设置 → API 密钥)。 该密钥会被加密成一个限定于此服务器的访问令牌,并且永远不会以明文存储。 对 Nominal 的每个请求都使用你的凭据发出,因此连接所能看到的内容绝不会超过你账户本身所能看到的范围。

或者通过 stdio 运行它

NOMINAL_API_KEY=<key> \
NOMINAL_MCP_URL=https://<your-worker>.workers.dev/mcp \
npx github:elirapport1/nominal-mcp

(直接从仓库运行——没有发布到 npm,所以直接使用 npx nominal-mcp 无法解析。)

如果你的 Nominal 不是 GovCloud 部署,还需要设置 NOMINAL_BASE_URL—— 商业版是 https://api.nominal.io/api,并且接受 *.nominal.io 下的私有云和本地部署主机。

根据 MCP 认证规范,stdio 服务器从环境变量中读取凭据,而不是运行 OAuth 流程。不会向磁盘写入任何内容。


Related MCP server: Apollo Universal MCP Server

你可以要求什么

“找到发动机 A 上最近一次热试车运行,并告诉我燃烧室压力是否曾超过 900 psi。”

“比较第 14 次和第 15 次运行之间的阀门指令延迟。”

“在此次运行的 T+4.2s 处标记一个事件,并将其标注为 anomaly。”


工具

Tool

功能

nominal_search

搜索资产、运行、数据集、工作簿、检查清单、事件、视频

nominal_get

nominal:// URI、RID 或数据集 UUID 解析为完整详情

nominal_list_runs

按时间窗口列出某个资产的运行,最新的在前

nominal_describe_channels

运行/数据集上的通道,包含单位、类型、标签

nominal_query_channels

最多 10 个通道的统计信息 + 抽稀后的轨迹

nominal_compute

对某个通道计算一个聚合值,在服务端完成

nominal_export

全分辨率数据的预签名 URL

nominal_write

创建事件、评论或运行元数据

nominal_api_search

按关键字查找 467 个 API 操作中的任意一个

nominal_api_call

执行其中一个操作,并对照其真实签名进行验证

此外还有 nominal:// 下的资源,以及四个工作流提示词(investigate_anomalycompare_runssummarize_runpreflight_check)。


三个值得了解的设计决策

467 个操作,10 个工具。 Nominal 的 API 在 57 个服务中拥有 467 个端点。如果将它们作为工具模式暴露出来,在你输入任何内容之前,tools/list 就会消耗大约 163,000 个 token。相反,nominal_api_search 返回操作描述符nominal_api_call 执行它们,因此你每实际查找一个操作只需支付约 120 个 token。tools/list 保持固定在 2,992 个 token,并且可以公开缓存。

没有任何工具会返回数据集。 单次运行可能包含数 GB 的时间序列。nominal_query_channels 返回统计信息,以及一条抽稀为最多 200 个桶的最小/最大/均值轨迹,外加一个签名句柄。批量数据通过预签名 URL 传出,绝不会进入上下文窗口。

你的凭据,而不是我们的。 没有服务账户。OAuth 流程将你的 Nominal API 密钥绑定到一个加密的、绑定受众的、一小时内有效的访问令牌中。Nominal 自身的授权是唯一的执行层——MCP 服务器绝不会扩大访问范围,也绝不会实现并行的权限模型。


文档

  • SPEC.md — 实现规范:协议决策、工具设计、认证 模型、限制、威胁模型,以及有意省略的内容

  • docs/SPEC-original.md — 原始设计简报,留作 记录;SPEC.md §0 说明了测量在哪些地方改变了它


开发

npm ci
npm run typecheck
npm test              # 115 unit + conformance tests
npm run budget        # fails if tools/list exceeds 3,000 tokens
npm run test:fuzz     # adversarial suite
npm run dev           # wrangler dev

测试

Layer

覆盖内容

test/unit/

加密、时代检测、钳位、抽稀、句柄、目录策略

test/conformance/protocol.test.ts

该服务器拥有的每个 MCP MUST 对应一个测试

test/conformance/auth.test.ts

RFC 9728/8414/8707/9207/7636、PKCE、DCR、令牌伪造

test/fuzz/

六个生成器、七个不变量、可设定种子且可重放

验证边界: 协议、认证、限制和目录策略层已完全覆盖。tier-1 工具的 Nominal 侧请求编码是从生成的 nominal-api Conjure 客户端派生而来,并针对桩(stub)进行了测试,而不是针对真实的 Nominal 部署——参见 SPEC.md §9.3。如果你有密钥,一条命令即可弥补这一差距。

模糊测试器每 20 分钟针对真实部署运行一次(.github/workflows/fuzz.yml)。生成器覆盖 JSON-RPC 结构、协议/时代矩阵、工具参数、目录操作 ID、认证伪造以及提示注入/SSRF 载荷。不变量:绝不出现 5xx,始终是有效的 JSON-RPC,绝不反射秘密或堆栈跟踪,resultType 仅在现代协议中存在,延迟和大小有界,且任何内部操作都不会执行。失败时会使用种子提交一个问题,以便精确重放。

部署你自己的

npx wrangler kv namespace create OAUTH_KV     # put the id in wrangler.toml
npx wrangler secret put TOKEN_SECRET          # AES-GCM key material
npx wrangler secret put HANDLE_SECRET         # HMAC key for result handles
npx wrangler deploy

对于 CI 部署,请设置 CLOUDFLARE_API_TOKENCLOUDFLARE_ACCOUNT_ID 密钥,以及 DEPLOY_URL 仓库变量。


容量

对扩展至关重要的设计特性:一次工具调用不会写入任何存储。

访问令牌是自包含的加密信封,而不是指向会话存储的指针,因此验证一个令牌只需一次解密和几次比较——热路径上无需读取 KV。速率限制使用 Cloudflare 的边缘绑定,同样不会写入任何内容。唯一的 KV 写入发生在 OAuth 授权期间:每个用户每次登录大约三次,此后不再有。

这意味着请求量受你的 Workers 请求限制约束,而不是存储配额;一个部署可供使用的人数受每日新增登录数约束,而不是受使用强度约束。

第一个实现并非如此。速率限制器在 KV 中计数请求——每个请求一次读取和一次写入——在 Cloudflare 的免费套餐上,这会导致服务器在每天大约一千个请求后停止。请查看你套餐的当前限制,但大致情况是:现有用户的高强度使用几乎免费,只有新用户接入才会触及存储。

/health 会报告当前生效的是哪个速率限制器(binding 还是 isolate-fallback),如果部署静默回退,部署冒烟测试将失败。


端点

Path

POST /mcp

MCP 端点(Streamable HTTP)

GET /.well-known/oauth-protected-resource

RFC 9728

GET /.well-known/oauth-authorization-server

RFC 8414

GET|POST /authorize, POST /token, /register, /revoke

OAuth 2.1

GET /health

存活检查


许可证

MIT

A
license - permissive license
Not graded
quality - not tested
B
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

  • MCP server exposing the Backtest360 engine API as tools for AI agents.

  • Remote MCP for Gemini upgrade evals, prompt regressions, output diffs, and eval receipts.

  • Autopilot MCP server for GEO analyses, reports, content, audits, memories and agents.

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/elirapport1/nominal-mcp'

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