Nominal MCP Server
Nominal MCP Server
Un servidor MCP para la plataforma de pruebas de hardware Nominal. Obtén datos de prueba, inspecciona canales de telemetría, ejecuta análisis y escribe los resultados — desde Claude Code, Cursor o cualquier cliente MCP, sin salir de tu editor.
Implementa MCP 2026-07-28 (la revisión actual) con compatibilidad retroactiva con 2025-11-25, 2025-06-18, 2025-03-26 y 2024-11-05.
10 tools · 467 API operations reachable · 2,992 tokens of tools/list · OAuth 2.1Inicio rápido
Aún no hay ninguna instancia pública en funcionamiento. Despliega la tuya en unos dos minutos: funciona cómodamente en el plan gratuito de Cloudflare.
Despliégalo
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 deployConéctate a él
claude mcp add --transport http nominal https://<your-worker>.workers.dev/mcpSe abre una ventana del navegador. Pega tu propia clave de API de Nominal (aplicación Nominal → Configuración → Claves de API). La clave se cifra en un token de acceso limitado a este servidor y nunca se almacena en texto plano. Cada solicitud a Nominal se realiza con tu credencial, por lo que la conexión nunca puede ver más de lo que tu cuenta ya puede ver.
O ejecútalo sobre stdio
NOMINAL_API_KEY=<key> \
NOMINAL_MCP_URL=https://<your-worker>.workers.dev/mcp \
npx github:elirapport1/nominal-mcp(Se ejecuta directamente desde el repositorio: no hay nada publicado en npm, por lo que un simple npx nominal-mcp no se resolverá).
Si tu Nominal no es el despliegue de GovCloud, configura también NOMINAL_BASE_URL — el comercial es https://api.nominal.io/api, y se aceptan hosts de nube privada y on-prem bajo *.nominal.io.
Según la especificación de autenticación de MCP, los servidores stdio leen las credenciales del entorno en lugar de ejecutar un flujo OAuth. No se escribe nada en el disco.
Related MCP server: Apollo Universal MCP Server
Lo que puedes pedir
"Encuentra la última prueba de fuego en el Motor A y dime si la presión de la cámara superó alguna vez las 900 psi."
"Compara el retraso del comando de la válvula entre la prueba 14 y la prueba 15."
"Marca un evento en esta prueba en T+4.2s y etiquétalo como
anomaly."
Herramientas
Tool | Qué hace |
| Busca activos, pruebas, conjuntos de datos, libros de trabajo, listas de verificación, eventos y vídeos |
| Resuelve una uri |
| Pruebas de un activo, de la más reciente a la más antigua, con ventana de tiempo |
| Canales de una prueba/conjunto de datos con unidad, tipo y etiquetas |
| Estadísticas + traza diezmada para hasta 10 canales |
| Un agregado sobre un canal, calculado en el servidor |
| URL prefirmada para datos de resolución completa |
| Crea eventos, comentarios o metadatos de prueba |
| Encuentra cualquiera de las 467 operaciones de la API por palabra clave |
| Ejecuta una, validada contra su firma real |
Además, recursos bajo nominal:// y cuatro prompts de flujo de trabajo (investigate_anomaly, compare_runs, summarize_run, preflight_check).
Tres decisiones de diseño que merece la pena conocer
467 operaciones, 10 herramientas. La API de Nominal tiene 467 endpoints en 57 servicios. Exponerlos como esquemas de herramientas costaría aproximadamente 163.000 tokens de tools/list antes de que escribieras nada. En su lugar, nominal_api_search devuelve descriptores de operación y nominal_api_call los ejecuta, de modo que pagas ~120 tokens por cada operación que realmente consultas. tools/list se mantiene fijo en 2.992 tokens y se puede almacenar en caché públicamente.
Ninguna herramienta devuelve nunca un conjunto de datos. Una sola prueba puede ocupar gigabytes de series temporales. nominal_query_channels devuelve estadísticas más una traza mín/máx/media diezmada en un máximo de 200 buckets, y un identificador firmado. Los datos masivos salen a través de una URL prefirmada que nunca entra en la ventana de contexto.
Tu credencial, nunca la nuestra. No hay ninguna cuenta de servicio. El flujo OAuth vincula tu clave de API de Nominal a un token de acceso cifrado, limitado a una audiencia y con validez de una hora. La propia autorización de Nominal es la única capa de aplicación — el servidor MCP nunca amplía el acceso y nunca implementa un modelo de permisos paralelo.
Documentación
SPEC.md — la especificación de implementación: decisiones de protocolo, diseño de herramientas, modelo de autenticación, límites, modelo de amenazas y lo que se omitió deliberadamente
docs/SPEC-original.md — el documento de diseño original, conservado para el registro; SPEC.md §0 explica dónde la medición lo cambió
Desarrollo
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 devPruebas
Capa | Qué cubre |
| criptografía, detección de era, límites, diezmado, identificadores, política de catálogo |
| una prueba por cada |
| RFC 9728/8414/8707/9207/7636, PKCE, DCR, falsificación de tokens |
| seis generadores, siete invariantes, con semilla y reproducible |
Límite de verificación: las capas de protocolo, autenticación, límites y política de catálogo están completamente cubiertas. La codificación de solicitudes del lado de Nominal para las herramientas de nivel 1 se derivó del cliente Conjure generado de nominal-api y se probó contra un stub, no contra un despliegue real de Nominal — consulta SPEC.md §9.3. Si tienes una clave, un solo comando cierra esa brecha.
El fuzzer se ejecuta cada 20 minutos contra el despliegue real (.github/workflows/fuzz.yml). Los generadores cubren la estructura JSON-RPC, la matriz protocolo/era, los argumentos de las herramientas, los ids de operación del catálogo, la falsificación de autenticación y las cargas útiles de inyección de prompts/SSRF. Invariantes: nunca un 5xx, siempre JSON-RPC válido, nunca refleja un secreto o un stack trace, resultType presente si y solo si es moderno, latencia y tamaño acotados, y ninguna operación interna se ejecuta jamás. Un fallo abre un issue con la semilla para una reproducción exacta.
Desplegar el tuyo
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 deployPara despliegues de CI, configura los secretos CLOUDFLARE_API_TOKEN y CLOUDFLARE_ACCOUNT_ID y una variable de repositorio DEPLOY_URL.
Capacidad
La propiedad de diseño que importa para la escala: una llamada a una herramienta no escribe en almacenamiento.
Los tokens de acceso son sobres cifrados autocontenidos en lugar de punteros a un almacén de sesiones, por lo que validar uno es un descifrado y unas pocas comparaciones: no hay lectura de KV en la ruta crítica. La limitación de velocidad utiliza el binding de edge de Cloudflare, que tampoco escribe nada. Las únicas escrituras de KV ocurren durante una autorización OAuth: aproximadamente tres por usuario y por inicio de sesión, y ninguna después.
Eso significa que el volumen de solicitudes está limitado por el límite de solicitudes de Workers en lugar de por una cuota de almacenamiento, y el número de personas que pueden usar un despliegue está limitado por nuevos inicios de sesión por día, no por la intensidad con la que lo usen.
Esto no era cierto en la primera implementación. El limitador de velocidad contaba las solicitudes en KV — una lectura y una escritura por solicitud — lo que en el plan gratuito de Cloudflare habría detenido el servidor después de aproximadamente mil solicitudes al día. Consulta los límites actuales de tu plan, pero la forma es: el uso intensivo por parte de un usuario existente es casi gratuito, y solo la incorporación toca el almacenamiento.
/health informa de qué limitador de velocidad está activo (binding vs isolate-fallback), y la prueba de humo del despliegue falla si un despliegue retrocede silenciosamente.
Endpoints
Ruta | |
| endpoint MCP (Streamable HTTP) |
| RFC 9728 |
| RFC 8414 |
| OAuth 2.1 |
| comprobación de vida |
Licencia
MIT
This server cannot be installed
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
- AlicenseAqualityCmaintenanceEnables AI agents to programmatically inspect, test, and validate other MCP servers by exposing MCP Workbench capabilities as structured tools. It supports automated test spec generation, execution, and detailed failure analysis to ensure server reliability.410Apache 2.0
- AlicenseNot gradedqualityDmaintenanceEnables access to Apollo's tools and services through a standardized MCP interface, compatible with MCP-compliant clients.1MIT
- AlicenseCqualityBmaintenanceProvides an MCP-native operational interface for diagnostics, explainability, regression checks, and operational memory on data-system internals like PostgreSQL and Databricks toy engines.47MIT
- AlicenseAqualityDmaintenanceEnables test execution and management through MCP clients, allowing retrieval of projects, listing tests, executing tests with browser selection, and monitoring results.623MIT
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.
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/elirapport1/nominal-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server