Nodaro ドキュメント
ドキュメントノードリファレンスモデルAI エージェント(MCP)開発者向けセルフホスティングリサーチ
クライアントを接続

独自のクライアント

任意の MCP クライアントを Streamable HTTP で Nodaro に接続します。OAuth サーバーを検出し、クライアントか開発者アプリを登録して、PKCE でログインします。

独自のクライアントでも、Streamable HTTP で標準の MCP 通信を行い、OAuth でログインできれば、Nodaro に接続できます。クライアントの接続先を https://mcp.nodaro.ai/mcp にし、OAuth サーバーを検出させ、クライアントを登録して、ユーザーに同意画面を通ってもらいます。このページでは、エンドポイント、登録のルール、トークンの有効期間を説明します。

クライアントに必要なもの

  • Streamable HTTP での MCP:接続先は https://mcp.nodaro.ai/mcp です。
  • PKCE を使った OAuth 2.0 の認可コードフロー:コードチャレンジの方式は、S256 だけを受け付けます。
  • OAuth のディスカバリー:保護されたリソースのメタデータ(RFC 9728)と、認可サーバーのメタデータ(RFC 8414)を使います。
  • クライアントの登録:動的クライアント登録(Dynamic Client Registration、RFC 7591)を使うか、開発者アプリとして一度だけ登録します。

エンドポイント

項目場所
MCP エンドポイントhttps://mcp.nodaro.ai/mcp
保護されたリソースのメタデータhttps://mcp.nodaro.ai/.well-known/oauth-protected-resource
認可サーバーのメタデータhttps://app.nodaro.ai/.well-known/oauth-authorization-server
動的クライアント登録POST https://app.nodaro.ai/v1/oauth/register
トークンの交換POST https://app.nodaro.ai/v1/oauth/token
トークンの取り消しPOST https://app.nodaro.ai/v1/oauth/revoke

どちらのメタデータドキュメントも、app.nodaro.ai と mcp.nodaro.ai の両方のホストで提供されています。各ドキュメントは、/.well-known/oauth-protected-resource/mcp のように、末尾に /mcp を付けた形式でも提供されています。一部のクライアントが、この形式を最初に確認するためです。認可サーバーのメタデータには、認可、トークン、登録、取り消しの各エンドポイント、レスポンスタイプ code、グラント authorization_code、S256 の PKCE、client_secret_post 認証、サポートするスコープが示されています。

接続の流れ

認可サーバーを検出する

MCP ホストから、保護されたリソースのメタデータを読み取ります。このメタデータは、リソース https://mcp.nodaro.ai/mcp を、その認可サーバー https://app.nodaro.ai に結び付けています。次に、認可サーバーのメタデータを読み取って、各エンドポイントを取得します。

クライアントを登録する

client_name とリダイレクト URI を、登録エンドポイントに送ります。Nodaro は、ndr_dcr_ で始まる client_id と、client_secret を返します。このエンドポイントが受け付けるのは、1 つの IP アドレスから 1 分あたり 10 リクエストまでです。

client_id、redirect_uri、response_type=code、scope のリスト、ランダムな state、PKCE の code_challenge と code_challenge_method=S256 を付けて、ブラウザーで認可エンドポイントを開きます。ユーザーがログインし、権限を確認して、許可をクリックします。

コードを交換する

Nodaro は、code と、あなたが送った state を付けて、redirect_uri にリダイレクトします。state を確認してから、code_verifier を使って、トークンエンドポイントでコードを交換します。コードは 1 回だけ使え、発行から 10 分で期限切れになります。

MCP エンドポイントを呼び出す

https://mcp.nodaro.ai/mcp へのすべてのリクエストで、ndr_app_ で始まるアクセストークンを Authorization: Bearer <token> として送ります。ツールの一覧は、tools/list で取得します。

登録できるクライアント名

デフォルトでは、動的クライアント登録が受け付けるのは、既知のクライアント名だけです。対象は、Claude、Claude Code、Cursor、Cline、Continue、Goose、ChatGPT、OpenAI、Lovable、Gemini、Gemini CLI、Codex、MCP Inspector、mcp-inspector です。それ以外の名前のクライアントには、403 client_not_allowed が返されます。

クライアントの名前がこれ以外の場合は、代わりに開発者アプリとして一度だけ登録します。

  1. app.nodaro.ai/settings/developer-apps を開き、アプリを作成をクリックします。
  2. 名前、リダイレクト URI、クライアントが要求できるスコープを入力します。
  3. client_id と client_secret をコピーします。シークレットが表示されるのは 1 回だけです。シークレットに有効期限はなく、アプリのページで再発行できます。

1 つのアカウントで手動登録できる開発者アプリは、最大 5 個です。自身を登録したクライアントも同じ一覧に表示されますが、この上限には含まれません。

自分の Nodaro インスタンスでは、管理者が MCP_DYNAMIC_REGISTRATION(デフォルトの allowlist、open、off のいずれか)と MCP_DCR_ALLOWLIST で登録を制御します。open モードでは、クライアント名とリダイレクト URI の 1 つの組み合わせが 24 時間に保持できる未使用の登録は、最大 5 件です。それを超えると、429 too_many_open_registrations が返されます。off モードでは、登録すると 403 dcr_disabled が返されます。セルフホスティング環境での MCP を参照してください。

トークン

  • 有効期間:アクセストークンの有効期間は 90 日です。リフレッシュトークンはありません。呼び出しが 401 を返したら、ユーザーにもう一度同意画面を通ってもらいます。
  • 取り消し:クライアントは、取り消しエンドポイントでトークンを取り消せます。このエンドポイントは、常に 200 を返します。ユーザーも、設定 › 接続済みアプリ(app.nodaro.ai/settings/connected-apps)で、あなたのクライアントのアクセスを取り消せます。取り消すと、そのユーザーに対してクライアントに発行されたすべてのトークンがすぐに無効になり、次の呼び出しは 401 を返します。
  • 同意画面:動的に登録されたクライアントは名前を自分で決めているため、同意画面では、Nodaro がその名前を検証していないことがユーザーに警告されます。

同じ OAuth サーバーが、REST API にも使われています。詳しくは開発者向け OAuth を参照してください。

ツールの結果を扱う

  • ジョブ:生成ツールはジョブを開始し、すぐにその ID を返します。ジョブが completed か failed になるまで、5〜10 秒ごとに get_job をポーリングするか、wait_for_job を呼び出します。ジョブツールを参照してください。
  • 構造化コンテンツ:多くのツールは、テキストの応答と並べて、データを structuredContent として返します。たとえば、get_job のジョブエンベロープがそうです。コードでは、この構造化データを読み取ってください。
  • カードへの対応は必須ではありません。MCP Apps を表示できるホストでは、ジョブの進行状況やアップロードピッカーなど、操作できるカードが表示されます。カードを表示できないクライアントは、同じ結果をテキストと構造化データとして読み取ります。
  • タスク:MCP の tasks API に対応したクライアントは、その API を通じてジョブの進行状況を受け取ります。
  • 表示されないツール:ユーザーがスコープを許可していないツールは、tools/list に含まれません。見つからないツールを探す前に、許可されたスコープを確認してください。

よくある間違い

  • https://app.nodaro.ai/mcp を使う:このアドレスは Web ページです。このアドレスに POST すると、エラーコード wrong_mcp_host とともに 405 が返されます。このエラーには、正しい URL が示されています。
  • https://api.nodaro.ai/mcp を使う:このドメインは存在しません。
  • 末尾にスラッシュを付ける:https://mcp.nodaro.ai/mcp を、正確にそのまま使ってください。

参考資料

よくある質問

最終更新

目次