コンテンツにスキップ

MCP サーバー

todoke は Model Context Protocol (MCP) に対応しており、Claude などの AI エージェントから直接 Push 通知の送信や統計取得、API キー管理ができます。

https://api.todoke.dev/mcp

Streamable HTTP トランスポートで提供します。認証は Authorization: Bearer <APIキー> ヘッダーで行い、キーには notify または full スコープが必要です(subscribe_only キーではエンドポイント自体を呼び出せません)。プロトコルバージョンは 2024-11-05 です。

プロジェクトの .mcp.json、またはユーザー設定に以下を追加します。

{
"mcpServers": {
"todoke": {
"type": "http",
"url": "https://api.todoke.dev/mcp",
"headers": {
"Authorization": "Bearer pk_your_notify_or_full_key"
}
}
}
}

設定後、Claude Code の /mcp コマンドでサーバーが認識されていることを確認できます。

claude.ai などその他の MCP クライアント

Section titled “claude.ai などその他の MCP クライアント”

Streamable HTTP に対応した MCP クライアントであれば同様に接続できます。接続 URL(https://api.todoke.dev/mcp)と Authorization: Bearer <APIキー> ヘッダーを、お使いのクライアントの MCP サーバー追加 UI・設定ファイルに設定してください。具体的な設定手順はクライアントごとに異なるため、それぞれの公式ドキュメントを参照してください。

tools/list で取得できる 5 つのツールです。

指定したアプリの購読者に Push 通知を送信します(notify / full スコープで利用可)。

引数必須説明
titlestring通知タイトル
bodystring通知本文
urlstringクリック時の遷移先(https:// のみ)
endpointstring指定時は特定の購読エンドポイントのみに送信

成功時は { type: "text", text: 'Notification queued: "<title>"' } を返します。

現在のアプリの統計を取得します(notify / full スコープで利用可)。引数はありません。

レスポンスは snake_case の JSON テキストです。

{
"active_subscribers": 42,
"total_sent": 1234,
"total_failed": 3,
"monthly_sent": 567
}

現在のアプリの API キー一覧を取得します。引数はありません。full スコープ必須です。

現在のアプリに新しい API キーを発行します。full スコープ必須です。

引数必須説明
namestringキーのラベル
scopestringsubscribe_only / notify / full。省略時は notify

レスポンスに発行された平文キー(key)が含まれます。表示されるのはこの応答のみです。

指定した API キーを削除します。full スコープ必須です。

引数必須説明
key_idstring削除する API キーの ID

list_api_keys / create_api_key / delete_api_key の 3 ツールは API キー自体を管理するため、full スコープのキーでの呼び出しが必須です。notify スコープのキーでこれらを呼び出すと、ツールは実行されずに次のエラーが返ります。

{
"content": [{ "type": "text", "text": "Error: This tool requires full scope" }],
"isError": true
}

send_notification / get_statsnotify スコープ以上(notify または full)で呼び出せます。

MCP のツール呼び出し(tools/call)でエラーが発生した場合、JSON-RPC 自体は成功(result あり)として返り、result.isError: true とともにエラー内容が content に文字列で入ります。主なメッセージは次のとおりです。

状況メッセージ
full スコープが必要なツールを notify キーで呼んだError: This tool requires full scope
月間送信上限(Free: 30,000通)を超過Error: Monthly limit exceeded
送信ペイロードが上限(3,072 バイト)を超過Error: Payload too large
urlhttps:// でないError: url must be an https:// URL
削除対象の API キーが存在しないError: API key not found
ツール実行中に予期しない例外が発生Error: Tool execution failed