Skip to main content
Glama

Nominal MCP Server

Ein MCP-Server für die Nominal-Hardwaretestplattform. Testdaten abrufen, Telemetriekanäle inspizieren, Analysen ausführen und Ergebnisse zurückschreiben – von Claude Code, Cursor oder einem beliebigen MCP-Client, ohne den Editor zu verlassen.

Implementiert MCP 2026-07-28 (die aktuelle Revision) mit Abwärtskompatibilität zu 2025-11-25, 2025-06-18, 2025-03-26 und 2024-11-05.

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

Schnellstart

Es läuft noch keine öffentliche Instanz. Stellen Sie Ihre eigene in etwa zwei Minuten bereit – sie läuft problemlos im kostenlosen Plan von Cloudflare.

Bereitstellen

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

Verbinden

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

Ein Browserfenster öffnet sich. Fügen Sie Ihren eigenen Nominal-API-Schlüssel ein (Nominal-App → Einstellungen → API-Schlüssel). Der Schlüssel wird in ein Zugriffstoken verschlüsselt, das auf diesen Server beschränkt ist, und wird niemals im Klartext gespeichert. Jede Anfrage an Nominal erfolgt mit Ihrer Anmeldeinformation, sodass die Verbindung niemals mehr sehen kann, als Ihr Konto bereits sehen kann.

Oder über stdio ausführen

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

(Läuft direkt aus dem Repository – es ist nichts auf npm veröffentlicht, daher wird ein einfaches npx nominal-mcp nicht aufgelöst.)

Wenn Ihre Nominal-Instanz nicht das GovCloud-Deployment ist, setzen Sie auch NOMINAL_BASE_URL – kommerziell ist https://api.nominal.io/api, und Private-Cloud- sowie On-Premises-Hosts unter *.nominal.io werden akzeptiert.

Gemäß der MCP-Auth-Spezifikation lesen stdio-Server Anmeldeinformationen aus der Umgebung, anstatt einen OAuth-Flow auszuführen. Es wird nichts auf die Festplatte geschrieben.


Related MCP server: Apollo Universal MCP Server

Was Sie anfragen können

"Finde den letzten Heißfeuerlauf an Triebwerk A und sag mir, ob der Kammerdruck jemals 900 psi überschritten hat."

"Vergleiche die Ventilbefehl-Verzögerung zwischen Lauf 14 und Lauf 15."

"Markiere ein Ereignis bei diesem Lauf bei T+4.2s und beschrifte es mit anomaly."


Werkzeuge

Werkzeug

Funktion

nominal_search

Durchsuche Assets, Läufe, Datensätze, Arbeitsmappen, Checklisten, Ereignisse und Videos

nominal_get

Löse eine nominal://-URI, RID oder Dataset-UUID in vollständige Details auf

nominal_list_runs

Läufe für ein Asset, neueste zuerst, mit Zeitfenster

nominal_describe_channels

Kanäle eines Laufs/Datasets mit Einheit, Typ und Tags

nominal_query_channels

Statistiken + dezimierte Spur für bis zu 10 Kanäle

nominal_compute

Ein Aggregat über einen Kanal, serverseitig berechnet

nominal_export

Vorsignierte URL für Daten in voller Auflösung

nominal_write

Ereignisse, Kommentare oder Lauf-Metadaten erstellen

nominal_api_search

Finde eine der 467 API-Operationen per Stichwort

nominal_api_call

Führe eine aus, validiert gegen ihre echte Signatur

Plus Ressourcen unter nominal:// und vier Workflow-Prompts (investigate_anomaly, compare_runs, summarize_run, preflight_check).


Drei Designentscheidungen, die Sie kennen sollten

467 Operationen, 10 Tools. Die API von Nominal hat 467 Endpunkte in 57 Diensten. Würde man sie als Tool-Schemas offenlegen, kostete das etwa 163,000 Tokens für tools/list, bevor Sie irgendetwas eingegeben haben. Stattdessen gibt nominal_api_search Operations-Deskriptoren zurück und nominal_api_call führt sie aus, sodass Sie nur ~120 Tokens pro tatsächlich nachgeschlagener Operation zahlen. tools/list bleibt fest bei 2,992 Tokens und ist öffentlich cachebar.

Kein Tool gibt jemals ein Dataset zurück. Ein einzelner Lauf kann Gigabytes an Zeitreihen umfassen. nominal_query_channels liefert Statistiken plus eine Min/Max/Mittelwert-Spur, die in höchstens 200 Buckets dezimiert ist, sowie einen signierten Handle. Massendaten verlassen das System über eine vorsignierte URL, die niemals in das Kontextfenster gelangt.

Ihre Anmeldeinformation, niemals unsere. Es gibt kein Dienstkonto. Der OAuth-Flow bindet Ihren Nominal-API-Schlüssel in ein verschlüsseltes, zielgruppengebundenes Ein-Stunden-Zugriffstoken. Die eigene Autorisierung von Nominal ist die einzige Durchsetzungsebene – der MCP-Server erweitert niemals den Zugriff und implementiert kein paralleles Berechtigungsmodell.


Dokumentation

  • SPEC.md — die Implementierungsspezifikation: Protokollentscheidungen, Tool-Design, Auth- Modell, Grenzen, Bedrohungsmodell und was bewusst weggelassen wurde

  • docs/SPEC-original.md — der ursprüngliche Design-Brief, zur Dokumentation aufbewahrt; SPEC.md §0 erklärt, wo Messungen ihn verändert haben


Entwicklung

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

Testen

Ebene

Was abgedeckt wird

test/unit/

Krypto, Epochenerkennung, Begrenzungen, Dezimation, Handles, Katalogrichtlinie

test/conformance/protocol.test.ts

ein Test pro MCP-MUST, für den dieser Server zuständig ist

test/conformance/auth.test.ts

RFC 9728/8414/8707/9207/7636, PKCE, DCR, Token-Fälschung

test/fuzz/

sechs Generatoren, sieben Invarianten, mit Seed und reproduzierbar

Verifikationsgrenze: Die Ebenen Protokoll, Auth, Grenzen und Katalogrichtlinie sind vollständig abgedeckt. Die Nominal-seitige Anfragekodierung für die Tier-1-Tools wurde aus dem generierten nominal-api-Conjure-Client abgeleitet und gegen einen Stub getestet, nicht gegen eine Live-Nominal-Bereitstellung – siehe SPEC.md §9.3. Wenn Sie einen Schlüssel haben, schließt ein einziger Befehl diese Lücke.

Der Fuzzer läuft alle 20 Minuten gegen die Live-Bereitstellung (.github/workflows/fuzz.yml). Die Generatoren decken JSON-RPC-Struktur, die Protokoll/Epochen-Matrix, Tool-Argumente, Katalog-Operations-IDs, Auth-Fälschung und Prompt-Injection-/SSRF-Payloads ab. Invarianten: niemals ein 5xx, immer gültiges JSON-RPC, niemals Widerspiegelung eines Geheimnisses oder Stack-Traces, resultType genau dann vorhanden, wenn modern, begrenzte Latenz und Größe, und keine interne Operation wird jemals ausgeführt. Ein Fehler meldet ein Issue mit dem Seed für exakte Reproduktion.

Eigene Bereitstellung

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

Für CI-Bereitstellungen setzen Sie die Secrets CLOUDFLARE_API_TOKEN und CLOUDFLARE_ACCOUNT_ID sowie eine Repository-Variable DEPLOY_URL.


Kapazität

Die Design-Eigenschaft, die für die Skalierung entscheidend ist: ein Tool-Aufruf schreibt nichts in den Speicher.

Zugriffstokens sind eigenständige verschlüsselte Umschläge und keine Zeiger auf einen Session-Store. Ihre Validierung ist also eine Entschlüsselung und ein paar Vergleiche – kein KV-Read auf dem heißen Pfad. Das Rate-Limiting nutzt Cloudflares Edge-Binding, das ebenfalls nichts schreibt. Die einzigen KV-Schreibvorgänge passieren während einer OAuth-Autorisierung: ungefähr drei pro Benutzer und Login, danach keine.

Das bedeutet, dass das Anfragevolumen durch Ihr Workers-Anfragelimit begrenzt ist und nicht durch ein Speicherkontingent, und dass die Anzahl der Personen, die eine Bereitstellung nutzen können, durch neue Logins pro Tag begrenzt ist, nicht durch die Intensität der Nutzung.

Das galt für die erste Implementierung nicht. Der Rate-Limiter zählte Anfragen in KV – ein Read und ein Write pro Anfrage – was im kostenlosen Plan von Cloudflare den Server nach etwa tausend Anfragen pro Tag gestoppt hätte. Prüfen Sie die aktuellen Limits Ihres Plans, aber das Muster ist: intensive Nutzung durch einen bestehenden Benutzer ist nahezu kostenlos, und nur das Onboarding greift auf Speicher zu.

/health meldet, welcher Rate-Limiter aktiv ist (binding vs. isolate-fallback), und der Deployment-Smoke-Test schlägt fehl, wenn eine Bereitstellung stillschweigend zurückfällt.


Endpunkte

Pfad

POST /mcp

MCP-Endpunkt (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

Liveness


Lizenz

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