独自のクライアント
任意の 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 が返されます。
クライアントの名前がこれ以外の場合は、代わりに開発者アプリとして一度だけ登録します。
- app.nodaro.ai/settings/developer-apps を開き、アプリを作成をクリックします。
- 名前、リダイレクト URI、クライアントが要求できるスコープを入力します。
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 の
tasksAPI に対応したクライアントは、その 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を、正確にそのまま使ってください。
参考資料
よくある質問
関連ページ
クライアントを接続
OAuth アプリ
MCP ツールリファレンス
セルフホスティング環境での MCP
トラブルシューティング
最終更新