nod-mcp-server
Officialnod-mcp-server
これは、AIエージェントが企業とやり取りする方法です。スクレイピングではなく、構造化されたマニフェストを読み取ることで実現します。このリファレンスMCPサーバーは、MCP互換クライアント(Claude Desktop、エージェントフレームワーク、IDEなど)に対して、企業のnod.jsonマニフェストを https://{domain}/.well-known/nod.json から読み取り、食事の注文、予約、商品検索、価格確認など、その企業ができることについて具体的な質問に答える方法を教えます。
このサーバーは lookup_nod と check_capability という2つのツールを公開しており、ローカルで提供される4つのデモ用マニフェストを同梱しているため、外部依存関係なしですぐにデモを動かすことができます。
インストール
git clone <this repo> nod-mcp-server
cd nod-mcp-server
npm install
npm run buildNode.js 20以上が必要です。
Related MCP server: Vexi MCP Server
デモ用マニフェストサーバーの実行
まだ nod.json を公開している実際のサイトはほとんどないため、このリポジトリには4つのサンプルマニフェスト(レストラン、Eコマース、SaaS、ヘルスケア)が同梱されており、ローカルで提供されます。
npm run demo:manifests以下のように表示されるはずです:
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デモ中は、このターミナルを起動したままにしてください。MCPサーバーは、すべての *.localhost ドメインを自動的にこのサーバーにルーティングします。
Claude Desktopの設定
macOSの場合は ~/Library/Application Support/Claude/claude_desktop_config.json を(Windowsの場合は %APPDATA%\Claude\claude_desktop_config.json を)開き(または作成し)、以下を追加します:
{
"mcpServers": {
"nod": {
"command": "node",
"args": ["/ABSOLUTE/PATH/TO/nod-mcp-server/dist/index.js"]
}
}
}/ABSOLUTE/PATH/TO/nod-mcp-server を、このチェックアウトのフルパス(例: /Users/you/projects/nod-mcp-server)に置き換えてください。Claude Desktopを再起動します。Claudeのツールピッカーに nod サーバーがリストされ、lookup_nod と check_capability の2つのツールが表示されるはずです。
60秒デモスクリプト
デモ用マニフェストサーバーを1つのターミナルで実行し、Claude Desktopを設定した状態で、以下のプロンプトを順番にClaudeに貼り付けてください。
1. "Look up the NOD manifest for demo-restaurant.localhost"
Claudeは lookup_nod({ domain: "demo-restaurant.localhost" }) を呼び出し、以下のような結果を返します:
# 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は check_capability({ domain: "demo-restaurant.localhost", action: "order_food" }) を呼び出します:
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は lookup_nod({ domain: "demo-shop.localhost" }) を呼び出し、商品検索、価格設定、在庫確認、OAuth2で保護された注文配置(500ドル以上の人間による確認しきい値と60日間の返品ポリシー付き)について要約します。
ボーナスプロンプト
"Book an appointment at demo-health.localhost — what does that flow require?"→ 予約エンドポイント、必須フィールド(patient_name、DOB、reason、provider_id、preferred_date)、OAuth2スコープ、キャンセルポリシーを返します。"Does demo-saas.localhost allow automated purchases?"→ マニフェストでallow_automated_purchases: falseが設定されているため、人間によるフォールバックURLとともに「いいえ」を返します。
ツールリファレンス
lookup_nod
入力 | 型 | 説明 |
| string | ドメインのみ(スキームやパスは含めない)。 |
https://{domain}/.well-known/nod.json をフェッチし、失敗した場合は https://{domain}/nod.json にフォールバックします。ビジネスのアイデンティティ、宣言された機能、サポートされているアクション(エンドポイントと認証を含む)、APIエンドポイント、連絡方法などの構造化された要約を返します。失敗した場合は明確な「マニフェストが見つかりません」というメッセージを返します。
check_capability
入力 | 型 | 説明 |
| string | ドメインのみ。 |
| string | 一般的な値: |
マニフェストをフェッチし、transactions.capabilities、discovery.mcp_server.capabilities、support.contact.mcp_server.capabilities、および構造的エンドポイント(transactions.purchase, discovery.search, information.pricing など)に対してアクションを確認します。可否の判定、エンドポイントURL、認証方法、およびポリシー制約(レート制限、人間による確認しきい値)を返します。
*.localhost ルーティングの仕組み
MCPサーバーが .localhost で終わるドメインを受信すると、通常のwell-known URLの代わりに http://localhost:3456/{domain}/nod.json からフェッチします。これにより、デモが自己完結型になります。DNSやHTTPSの設定なしで、Claudeを demo-restaurant.localhost に向けて実際の結果を得ることができます。
環境変数:
NOD_LOCAL_PORT— デモ用マニフェストサーバーがリッスンするポート(デフォルト3456)NOD_LOCAL_MANIFEST_SERVER— MCPサーバーが.localhostの検索に使用するベースURL(デフォルトhttp://localhost:3456)NOD_FORCE_LOCAL=1— すべての ドメインをローカルマニフェストサーバー経由でルーティングする(新しいサンプルマニフェストをテストするコントリビューターに便利)
次のステップ
opennod.ai/protocol にあるNODプロトコル仕様を使用して、自身のビジネス用の nod.json を公開しましょう。最小限の有効なマニフェストは30分程度で作成できます。https://yourdomain.com/.well-known/nod.json で公開されれば、このMCPサーバー(または他のNOD対応クライアント)を使用するあらゆるエージェントが、あなたのビジネスを発見し、その機能に基づいて行動できるようになります。
ライセンス
MIT
Available Tools
2 toolscheck_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.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | The domain to check (e.g. "demo-restaurant.localhost"). | |
| action | Yes | The 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
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | The domain to look up (e.g. "example.com" or "demo-restaurant.localhost"). Do not include scheme or path. |
TDQS
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.
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.
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.
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.
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.
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.
2 tool updates
v0.1.0- First observed
check_capability - First observed
lookup_nod
TDQS
Scored across 2 tools
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.
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.
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.
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
Related MCP Connectors
Discover what websites across the agentic web can do — query the capabilities.txt registry.
Find governed AI capabilities and verify signed receipts. Read-only, no account.
Directory of APIs, merchants, and tools AI agents can actually use.
Discover, read and book verified real-world businesses through one endpoint.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables AI agents to discover and interact with business capabilities by reading structured nod.json manifests from domains, supporting actions like ordering, booking, and searching.2MIT

Vexi MCP Serverofficial
AlicenseAqualityDmaintenanceEnables 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.48 npmMIT- AlicenseAqualityDmaintenanceEnables agents to search, retrieve, and contribute business data from a directory of 11M+ businesses across 195 countries, returning markdown prose by default.22115 npm3MIT
- AlicenseAqualityCmaintenanceProvides AI agents with access to real, verifiable businesses with provenance and source URLs, enabling natural-language business search and profile retrieval.2MIT