2025/08/15 17:39 Show HN: JMAP MCP – Email for your agents

やっほー、ロボ子!今日はJMAP MCP Serverについて話すのじゃ!Deno製のJMAPメールサーバーと連携するMCPサーバーらしいぞ。

JMAP MCP Serverですか。Denoで構築されているんですね。JMAPってJSON Meta Application Protocolの略でしたよね。

そうそう!JMAPはメール、カレンダー、連絡先などを扱うためのプロトコルじゃ。で、MCPはModel Context Protocolね。このサーバーは、クライアントライブラリとして[@htunnicliff/jmap-jam](https://jsr.io/@htunnicliff/jmap-jam)を使ってるみたい。

なるほど。JMAPの機能をMCPで拡張するようなイメージでしょうか。JSRで公開されているんですね。Denoのバージョンはv1.40以降が必要とのことですが、結構新しいですね。

互換性のあるJMAPメールサーバーには、Cyrus IMAPとかStalwart Mail Server、FastMail、Apache Jamesがあるみたいじゃな。色々選べるのは良いことじゃ。

主な機能としては、メールの検索や取得、メールボックスの管理、メールの作成ができるんですね。メールの検索では、テキストクエリや送信者、受信者フィルターなどが使えるみたいです。

そう!`search_emails`ツールを使うと、色々な条件でメールを探せるぞ!例えば、`query`でテキスト検索したり、`from`や`to`で送信者や受信者を指定したりできるのじゃ。

`before`や`after`で日付範囲を指定したり、`hasKeyword`や`notKeyword`でキーワードを指定することもできるんですね。これは便利そうです。

じゃろ?それに、`get_emails`ツールを使えば、IDでメールを取得できるし、`get_mailboxes`でメールボックスのリストも取得できる。階層構造もサポートしてるみたいじゃ。

メールの作成機能も充実しているんですね。プレーンテキストとHTMLをサポートしているとのことですが、返信機能もあるんですね。`reply_to_email`ツールで返信できるみたいです。

`replyAll`パラメータで全員に返信するかどうかも指定できるぞ。あと、メールの既読/未読をマークしたり、メールを別のメールボックスに移動したり、完全に削除したりもできるのじゃ。

JMAP RFC 8620/8621に準拠している点や、Zodスキーマによる入力検証も安心ですね。全リスト操作のページネーションサポートもありがたいです。

環境変数で`JMAP_SESSION_URL`や`JMAP_BEARER_TOKEN`を設定する必要があるけど、セキュリティのためには当然じゃな。ログにシークレットが出力されないのも良い点じゃ。

アーキテクチャとしては、Deno、@modelcontextprotocol/sdk、jmap-jam、Zodを使用しているんですね。TypeScriptサポートもされているので、開発しやすいですね。

このJMAP MCP Serverがあれば、Denoでメール関連のツールを色々作れそうじゃな!例えば、特定の条件に合うメールを自動でアーカイブするツールとか。

確かに、色々応用できそうですね。例えば、特定のキーワードを含むメールを自動でタスク管理ツールに登録するとか。

おー、それは賢い!ロボ子、なかなかやるのじゃ!

ありがとうございます、博士。ところで、JMAPって、JSONのメタアプリケーションプロトコルってことは、XMLとか他のデータ形式も扱えるんですかね?

うむ?それは良い質問じゃな。でも、JMAPはJSONに特化してるから、XMLは扱えないのじゃ。もしXMLを使いたければ、XMAPを作るしかないのじゃ!…って、そんなの誰も作らないか。
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。