Skip to main content
Glama
nod-protocol

nod-mcp-server

Official
by nod-protocol

nod-mcp-server

So werden KI-Agenten mit Unternehmen interagieren — nicht durch Scraping, sondern durch das Lesen strukturierter Manifeste. Dieser Referenz-MCP-Server bringt jedem MCP-kompatiblen Client (Claude Desktop, Agent-Frameworks, IDEs) bei, das nod.json-Manifest eines Unternehmens unter https://{domain}/.well-known/nod.json zu lesen und echte Fragen darüber zu beantworten, was das Unternehmen tun kann: Essen bestellen, Termine buchen, Produkte suchen, Preise prüfen und mehr.

Er stellt zwei Tools bereit — lookup_nod und check_capability — und bündelt vier Demo-Manifeste, die lokal gehostet werden, sodass die Demo sofort ohne externe Abhängigkeiten funktioniert.

Installation

git clone <this repo> nod-mcp-server
cd nod-mcp-server
npm install
npm run build

Erfordert Node.js 20+.

Related MCP server: Vexi MCP Server

Ausführen des Demo-Manifest-Servers

Da bisher kaum echte Websites nod.json veröffentlichen, bündelt dieses Repository vier Beispiel-Manifeste (Restaurant, E-Commerce, SaaS, Gesundheitswesen) und stellt sie lokal bereit.

npm run demo:manifests

Sie sollten Folgendes sehen:

NOD demo manifest server listening on http://localhost:3456
  http://localhost:3456/demo-restaurant.localhost/nod.json
  http://localhost:3456/demo-shop.localhost/nod.json
  http://localhost:3456/demo-saas.localhost/nod.json
  http://localhost:3456/demo-health.localhost/nod.json

Lassen Sie dieses Terminal während der Demo geöffnet. Der MCP-Server leitet automatisch jede *.localhost-Domain an diesen Server weiter.

Konfiguration von Claude Desktop

Öffnen (oder erstellen) Sie ~/Library/Application Support/Claude/claude_desktop_config.json unter macOS (oder %APPDATA%\Claude\claude_desktop_config.json unter Windows) und fügen Sie Folgendes hinzu:

{
  "mcpServers": {
    "nod": {
      "command": "node",
      "args": ["/ABSOLUTE/PATH/TO/nod-mcp-server/dist/index.js"]
    }
  }
}

Ersetzen Sie /ABSOLUTE/PATH/TO/nod-mcp-server durch den vollständigen Pfad zu diesem Checkout (z. B. /Users/you/projects/nod-mcp-server). Starten Sie Claude Desktop neu. Sie sollten nun den nod-Server in Claudes Tool-Auswahl mit zwei Tools sehen: lookup_nod und check_capability.

60-Sekunden-Demo-Skript

Wenn der Demo-Manifest-Server in einem Terminal läuft und Claude Desktop konfiguriert ist, fügen Sie diese Prompts nacheinander in Claude ein.

1. "Look up the NOD manifest for demo-restaurant.localhost"

Claude ruft lookup_nod({ domain: "demo-restaurant.localhost" }) auf und gibt etwa Folgendes zurück:

# Pike Place Noodle House  (restaurant)
Hand-pulled noodles, dumplings, and regional Chinese classics...

- URL: https://demo-restaurant.localhost
- Manifest: http://localhost:3456/demo-restaurant.localhost/nod.json

## Declared capabilities
  - purchase
  - booking
  - view_menu
  - order_food
  - book_table

## Supported actions
  - purchase → https://demo-restaurant.localhost/api/orders [auth: api_key]
  - booking  → https://demo-restaurant.localhost/api/reservations [auth: api_key]
  - search   → https://demo-restaurant.localhost/api/menu/search [auth: none]

2. "Can I order food from demo-restaurant.localhost?"

Claude ruft check_capability({ domain: "demo-restaurant.localhost", action: "order_food" }) auf:

YES — demo-restaurant.localhost supports "order_food".
Manifest declares "order_food" under discovery.mcp_server.capabilities.

Endpoint: POST https://demo-restaurant.localhost/api/orders
Authentication: api_key
Matched via: discovery.mcp_server.capabilities

Constraints:
{ "require_human_confirmation": { "purchases_above": 150, ... },
  "rate_limits": { "transactions": { "requests": 10, "period": "minute" } },
  "allow_automated_purchases": true }

3. "What actions does demo-shop.localhost support?"

Claude ruft lookup_nod({ domain: "demo-shop.localhost" }) auf und fasst zusammen: Produktsuche, Preisgestaltung, Bestandsprüfungen und OAuth2-geschützte Bestellaufgabe — mit einer Schwelle für menschliche Bestätigung bei 500 $ und einer 60-tägigen Rückgaberichtlinie.

Bonus-Prompts

  • "Book an appointment at demo-health.localhost — what does that flow require?" → gibt den Buchungs-Endpunkt, erforderliche Felder (patient_name, DOB, reason, provider_id, preferred_date), OAuth2-Scopes und die Stornierungsrichtlinie zurück.

  • "Does demo-saas.localhost allow automated purchases?" → gibt NEIN mit der URL für menschliche Unterstützung zurück, da das Manifest allow_automated_purchases: false setzt.

Tool-Referenz

lookup_nod

Eingabe

Typ

Beschreibung

domain

string

Nur Domain (kein Schema, kein Pfad). *.localhost-Domains werden an den gebündelten Demo-Server weitergeleitet.

Ruft https://{domain}/.well-known/nod.json ab, mit Fallback auf https://{domain}/nod.json. Gibt eine strukturierte Zusammenfassung zurück: Unternehmensidentität, erklärte Fähigkeiten, unterstützte Aktionen (mit Endpunkten + Authentifizierung), API-Endpunkte und Kontaktmethoden. Gibt bei Fehler eine klare Meldung "no manifest found" zurück.

check_capability

Eingabe

Typ

Beschreibung

domain

string

Nur Domain.

action

string

Gängige Werte: order_food, place_order, view_menu, book_table, book_appointment, search_products, find_provider, get_pricing, check_inventory, check_status, create_account, get_docs, contact_support.

Ruft das Manifest ab und prüft die Aktion gegen transactions.capabilities, discovery.mcp_server.capabilities, support.contact.mcp_server.capabilities und die strukturellen Endpunkte (transactions.purchase, discovery.search, information.pricing usw.). Gibt ein Ja/Nein-Urteil, die Endpunkt-URL, die Authentifizierungsmethode und Richtlinienbeschränkungen (Ratenbegrenzungen, Schwellenwerte für menschliche Bestätigung) zurück.

Wie das *.localhost-Routing funktioniert

Wenn der MCP-Server eine Domain erhält, die auf .localhost endet, ruft er diese von http://localhost:3456/{domain}/nod.json ab, anstatt von der normalen Well-Known-URL. Dies macht die Demo in sich geschlossen — Sie können Claude auf demo-restaurant.localhost verweisen und echte Ergebnisse erhalten, ohne DNS- oder HTTPS-Einrichtung.

Umgebungsvariablen:

  • NOD_LOCAL_PORT — Port, auf dem der Demo-Manifest-Server lauscht (Standard 3456)

  • NOD_LOCAL_MANIFEST_SERVER — Basis-URL, die der MCP-Server für .localhost-Lookups verwendet (Standard http://localhost:3456)

  • NOD_FORCE_LOCAL=1 — leitet jede Domain durch den lokalen Manifest-Server (nützlich für Mitwirkende, die neue Beispiel-Manifeste testen)

Wie geht es weiter?

Veröffentlichen Sie ein nod.json für Ihr eigenes Unternehmen unter Verwendung der NOD-Protokollspezifikation unter opennod.ai/protocol. Ein minimales, gültiges Manifest zu schreiben dauert etwa 30 Minuten — und sobald es unter https://yourdomain.com/.well-known/nod.json live ist, kann jeder Agent, der diesen MCP-Server (oder einen anderen NOD-fähigen Client) verwendet, Ihr Unternehmen entdecken und auf dessen Fähigkeiten zugreifen.

Lizenz

MIT

Available Tools

2 tools
check_capabilityCheck a NOD capabilityA

Given a domain and an action (e.g. order_food, book_appointment, search_products, get_pricing, view_menu, book_table, check_status, create_account), fetches the business's NOD manifest and reports whether the action is supported, the endpoint URL, authentication requirements, and any policy constraints.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesThe domain to check (e.g. "demo-restaurant.localhost").
actionYesThe action to check. Common values: order_food, place_order, view_menu, book_table, book_appointment, search_products, find_provider, get_pricing, check_inventory, check_status, create_account, get_docs, contact_support.

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full behavioral disclosure. It explains what the tool does and returns, but does not mention side effects, prerequisites (e.g., domain validity), or that it is read-only.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence covering purpose, input, and output. Very concise with no wasted words, though slightly dense; could be broken into two sentences for readability, but still effective.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, but description adequately covers return fields (supported status, endpoint, auth, policies). Input is fully described. Missing error handling and sibling differentiation, but sufficient for the tool's simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds value by listing common actions, providing concrete examples that aid selection beyond the schema's generic string type.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool checks if an action is supported for a given domain, listing output details. It differentiates from the sibling 'lookup_nod' by focusing on a specific action check.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus 'lookup_nod' or when not to use it. The description only implies usage through examples, lacking explicit context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lookup_nodLook up NOD manifestA

Fetches a business's NOD Protocol manifest from https://{domain}/.well-known/nod.json (or the local demo server for *.localhost domains) and returns a structured summary: business identity, declared capabilities, supported actions, API endpoints, and contact methods.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesThe domain to look up (e.g. "example.com" or "demo-restaurant.localhost"). Do not include scheme or path.

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry full behavioral transparency. It discloses the fetch action and return summary but does not address potential failure modes (e.g., domain not found, malformed manifest), rate limits, or authentication requirements. The description is adequate but incomplete for a safe agent invocation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that efficiently conveys the main purpose and key details (URL pattern, return contents). It is front-loaded and includes relevant information without excess words. However, it is somewhat dense and could be split into two sentences for improved readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the low complexity (single parameter, no output schema), the description provides sufficient context: it specifies the source URL, the domain format, and the contents of the returned summary. It does not cover error handling or exact output structure, but for a simple lookup tool it is reasonably complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage for the single 'domain' parameter. The description adds context about the URL pattern but reiterates the format constraint already present in the schema. Since schema coverage is high, the baseline of 3 is appropriate; the description does not significantly add meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it fetches a NOD Protocol manifest from a well-known URL and returns a structured summary including business identity, capabilities, actions, endpoints, and contact methods. It uses a specific verb-resource combination and distinguishes itself from the sibling tool 'check_capability' by focusing on the full manifest.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains what the tool does but provides no guidance on when to use it versus the sibling 'check_capability', nor does it mention prerequisites or exclusions. The usage context is implied (looking up a domain's manifest) but lacks explicit alternative differentiation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 2 tool updatesv0.1.0
    • First observedcheck_capability
    • First observedlookup_nod

TDQS

A3.9/5.0

Scored across 2 tools

Disambiguation5/5

The two tools have clearly distinct purposes: check_capability validates a specific action against a business's manifest, while lookup_nod retrieves and summarizes the entire manifest. There is no overlap or ambiguity between them, as one is for targeted validation and the other for general information retrieval.

Naming Consistency5/5

Both tools follow a consistent verb_noun pattern with snake_case naming: check_capability and lookup_nod. The verbs 'check' and 'lookup' are semantically appropriate and distinct, and the naming style is uniform throughout the set.

Tool Count2/5

With only two tools, the server feels under-scoped for its apparent purpose of interacting with NOD Protocol manifests. While the tools cover basic retrieval and validation, the lack of tools for actions like updating manifests, managing policies, or executing supported actions suggests a thin surface that may limit agent functionality.

Completeness2/5

The tool set is significantly incomplete for the NOD Protocol domain. It provides read-only access to manifests but lacks tools for creating, updating, or deleting manifests, or for actually executing the supported actions (e.g., order_food, book_appointment). This creates dead ends where agents can inspect but not interact with the business capabilities.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Enables AI agents to discover and interact with business capabilities by reading structured nod.json manifests from domains, supporting actions like ordering, booking, and searching.
    2
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Enables MCP clients to search and retrieve structured business data from the Vexi API, allowing AI agents to get clean, typed business objects with identity, offerings, and trust signals.
    4
    8 npm
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Enables agents to search, retrieve, and contribute business data from a directory of 11M+ businesses across 195 countries, returning markdown prose by default.
    22
    115 npm
    3
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Provides AI agents with access to real, verifiable businesses with provenance and source URLs, enabling natural-language business search and profile retrieval.
    2
    MIT