Pidgeon について
Pidgeonは、AIエージェントにメールアドレスとメール・会話管理ツールを提供します。ホスト型OAuth接続とローカル設定に対応し、アクセス権は認証情報で制御します。
主な機能
- 01エージェント用アドレスの作成と管理
- 02メールの閲覧、検索、送信、返信
- 03認証コードとリンクの抽出
- 04添付ファイルと受信ルールの管理
- 05会話の担当者への割り当て
活用シーン
- 01登録メールを受信して認証コードを取得
- 02メールスレッドの返信を下書きまたは送信
- 03会話を人に引き継ぐ
- 04アクセス可能なアドレスのメールを検索
MCP 対応
Pidgeonは、ホスト型HTTPエンドポイントまたはローカル実行パッケージを通じて、メール操作をMCPサーバーとして提供します。クライアントがアクセスできるアドレスと操作は認証情報で決まります。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://pidgeon.ai/api/mcpclaude mcp add --transport http ai-pidgeon https://pidgeon.ai/api/mcp{"mcpServers":{"ai-pidgeon":{"type":"http","url":"https://pidgeon.ai/api/mcp"}}}Cursor で開く{"servers":{"ai-pidgeon":{"type":"http","url":"https://pidgeon.ai/api/mcp"}}}VS Code で開く{"mcpServers":{"ai-pidgeon":{"type":"http","url":"https://pidgeon.ai/api/mcp"}}}{"mcpServers":{"ai-pidgeon":{"serverUrl":"https://pidgeon.ai/api/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
https://pidgeon.ai/api/mcp認証が必要ツール
詳細
@pidgeon-ai/mcp
AI エージェント専用のメール受信箱を提供する MCP サーバーです。Pidgeon は AI エージェント向けのメール受信箱 API です。エージェントが人間と同じようにメールを扱えるよう、それぞれに専用の受信箱を提供します。
Model Context Protocol を通じて、エージェントはメールアドレスを作成し、メールを送信し、返信を待つことができます。返信に含まれる認証コードは自動で抽出され、スレッド内で回答したり、会話を人に引き継いだりすることもできます。利用方法は2つありますが、どちらも同じサーバーです。
ホスト型:URLを指定してサインイン
claude mcp add --transport http pidgeon https://pidgeon.ai/api/mcp
最初の呼び出しは 401 を返し、クライアントは OAuth でサインインするために Pidgeon へ移動します。許可する操作(読み取り、読み取りと送信、またはフルアクセス)と、アクセス可能なメールアドレスを選択します。Claude のカスタムコネクター、ChatGPT、Cursor、Codex、VS Code は、いずれも同じ URL を指定して同じ方法でサインインします。インストールは不要です。
サインインする人がいないエージェントには、代わりにキーを渡してください。
claude mcp add --transport http pidgeon https://pidgeon.ai/api/mcp \
--header "Authorization: Bearer $PIDGEON_API_KEY"
Claude Code、Codex、Cursor、Gemini CLI のプラグインは、エージェントに使い方を教えるスキルとともに、ホスト型サーバーをインストールします。 pidgeon-ai/pidgeon-plugins。
またはインストール型:このパッケージ
MCP サーバーをローカルプロセスとして実行するクライアント向けです。
PIDGEON_API_KEY=pgn_live_… npx -y @pidgeon-ai/mcp init
このコマンドは API に対してキーを検証し、アクセス可能なメールアドレスを表示します。これは JSON の設定だけでは分からず、そうしない場合は、モデルがエラーを返していることに気付かないまま表面化する唯一の問題です。その後、現在のディレクトリに .mcp.json を書き込み、書き込んだ内容を表示します。
書き込まずに設定を確認するには --print を指定します。クライアントが設定を別の場所に保存する場合に使います。既存のエントリーを置き換えるには --force を指定します。
キーはファイルに書き込まず、環境変数から参照するため、設定はコミットでき、認証情報はコミットされません。
{
"mcpServers": {
"pidgeon": {
"command": "npx",
"args": ["-y", "@pidgeon-ai/mcp"],
"env": { "PIDGEON_API_KEY": "${PIDGEON_API_KEY}" }
}
}
}
pgn_live_… キーは
pidgeon.ai/app/developers/keys で取得できます。まだアカウントがありませんか?エージェントは
pidgeon.ai/skill.md を読んで自分で登録できます。人にお願いする必要があるのは、6桁のコードだけです。
PIDGEON_BASE_URL を設定すると、別の場所を指定できます。これにより、ローカルのチェックアウトに対して実行できます。
ドキュメント:pidgeon.ai/docs/mcp。
ツール
| ツール | 内容 |
|---|---|
list_addresses | この認証情報でアクセスできるアドレスです。 |
create_address | エージェントが使用するアドレスを作成します。 |
get_address | IDで指定した1つのアドレスです。 |
list_threads | 1つのアドレスの会話を、新しい順に返します。 |
get_thread | IDで指定した1つの会話です。 |
list_messages | 1つの会話のメッセージを、古い順に返します。返信前に読むテキストです。 |
search_messages | この認証情報でアクセスできるすべてのアドレスを対象に全文検索し、関連度順に返します。 |
send_message | この認証情報で送信できるアドレスから送信します。 |
get_message | IDで指定した1つのメッセージです。本文、保持しているヘッダー、送信元ドメインの記録によって確認された内容(authentication.spf、.dkim、.dmarc)を返します。値がnullの場合は、失敗ではなく報告がなかったことを意味します。 |
await_message | アドレスにメッセージが届くまで待機します。たとえば、登録フォームを送信した後に使用すると、extracted.codesとextracted.links(確認コードと確認リンク)を、可能性の高い順に含むメッセージを返します。 |
reply_to_message | 返信先、件名、スレッドは返信対象のメッセージから読み取るため、入力するのは本文だけです。 |
create_draft | メッセージを送信せずに下書きとして作成し、人が確認して送信できるようにします。承認用の返信を準備するよう依頼された場合に使用します。 |
read_attachment | 1つの添付ファイルのテキストです。CSV、ログ、JSON、カレンダーファイルなどが対象です。 |
update_thread | 会話の担当者と進捗状況を更新します。 |
update_message | メッセージにスターを付けるか、archive、spam、trashに移動します。 |
list_send_rules | 1つのアドレスの許可リストとブロックリスト、およびそれらが従う送信ポリシーを返します。 |
list_receive_rules | 送信者またはドメインごとに、1つのアドレスに届くメールを拒否、迷惑メール、ゴミ箱、アーカイブ、受信トレイのどこに振り分けるかを決めるルールを返します。 |
list_folders | 1つのアドレスのすべてのフォルダーと、その件数を返します。 |
list_folder | 1つのアドレスの1つのフォルダーを、新しい順に返します。1行につき1つの会話です。list_threadsが存在する会話を示すのに対し、ここでは会話の保存先と一覧での表示内容がわかります。 |
list_changes | sync_cursor以降に1つのメールボックスで発生したすべての変更を、新着メールも含めて返します。長時間稼働するエージェントが、新着メッセージを見つけるためにフォルダーを再読み込みする必要がありません。 |
list_events | この認証情報でアクセスできるすべてのメールボックスの全イベント(受信、送信、配信、バウンス、振り分け)を返します。 |
list_labels | ラベルはワークスペースではなくアドレスに属します。そのため、3つのアドレスに同じ名前のラベルがある場合、それぞれ別のIDを持つ3つのラベルになります。 |
create_label | 1つのアドレスにラベルを作成します。 |
apply_label | ラベルは会話と同じアドレスに属している必要があります。そのアドレスのlist_labelsで正しいIDを確認できます。 |
remove_label | 1つの会話からラベルを削除します。 |
list_pods | Podは、自社の顧客1社分を格納するコンテナーです。アドレスとドメインを保持し、Podから送信したメールはそのPod独自の送信レピュテーションに反映されるため、ある顧客が別の顧客の配信に悪影響を与えることはありません。 |
create_pod | 独自の送信レピュテーションを持つ、顧客1社分のコンテナーを作成します。 |
get_metrics | daysで指定した期間の送信、配信、バウンス、拒否、苦情、受信、迷惑メールの件数です。イベントログから集計するため、プロバイダーから後で報告された結果も含まれます。 |
会話を担当者に引き継ぐ
get_message、reply_to_message、update_message、update_threadが
一連の流れを担います。メッセージを読み、返信し、整理して、誰が担当するかを指定します。
update_thread id=<thread_id> owner_type=human
ウェブの受信トレイに表示され、thread.updatedによって、会話を進めていた相手に担当が外れたことが伝わります。owner_type=agentにすると担当が戻り、statusは会話が入っているキュー、assignee_idは担当者を示します。
再試行した送信は一度だけ送信される
send_messageとreply_to_messageはidempotency_keyを受け取ります。同じ送信を再試行するときは同じキーを使えば、一度だけ送信されます。再試行時には、再送されなかったことを示す行の後に、最初の送信結果が返されます。キーがない場合、同じ1時間内に同一の呼び出し(引数と認証情報が同じ)が行われると、再試行として扱われます。その1時間内に同じ文面を意図的に2回送信するには、新しいキーを渡してください。
知っておきたい2つの設定
通常、エージェントのアドレスは**reply_only**で作成します。この設定では、メッセージを送ってきた相手には誰にでも返信できますが、誰にも会話を始められません。これは数量ではなく、構造上の制限です。create_addressで設定できます。
終了日を設定することもできます。チケットや請求書ごとにアドレスを用意すると、対象が終了した時点でメールの受信を停止できます。期限が切れるとアドレスは停止され、やり取りは保持されます。
認証情報がアクセス制御のすべて
この仕組みでは、認証情報をモデルに渡します。アクセス可能な範囲を決めるのは、このパッケージではありません。キー自体の権限上限と、付与されたアドレスによって、他の呼び出し元と同じく、サーバー側でアクセス範囲がすべて決まります。
そのため、エージェントに必要な範囲に限ってキーを付与してください。readアクセスで作成されたキーは、メールボックスへの権限をどれほど広く付与されても送信できません。また、トリアージだけを行うエージェントには、そのようなキーを割り当ててください。
これは何ではないか
これは、既存のAPIに対するプロトコルアダプターであり、それ以上のものではありません。ビジネスロジックも、データベースも、モデルも、状態もありません。
すべてのツールはエンドポイントそのものです。ディスパッチャーはツール名ではなく、各ツールが宣言するエンドポイントに基づいて動作します。そのため、APIにない振る舞いを追加する場所はありません。また、各エンドポイントが公開済みのOpenAPIドキュメントに存在することをテストで検証しています。ここにないものはAPIにもなく、構築する場所もAPIです。
コントリビューション
このパッケージは pidgeon-ai/pidgeon-jsから公開されています。このリポジトリはリリースのたびにPidgeonのメインリポジトリからコピーされるため、プルリクエストをそのままマージすることはできません。 Issueを作成して問題点をお知らせいただくか、 [email protected]までメールでご連絡ください。
MITライセンスです。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。