IMAP mailbox について
任意の IMAP メールボックスを扱う MCP サーバーで、メールの閲覧、検索、整理、添付ファイルの保存、返信の下書きに使えます。書き込みツールは既定で無効で、メールは信頼できない内容として扱い、送信機能はありません。
主な機能
- 01メールボックスの一覧と検索
- 02セキュリティ評価付きのメール閲覧
- 03添付ファイルの保存とテキスト抽出
- 04メールとフォルダーの整理
- 05返信を下書きとして保存
活用シーン
- 01差出人、件名、日付でメールを検索
- 02新着メールとセキュリティ警告を確認
- 03添付ファイルからテキストを抽出
- 04メールを整理して返信を下書き
MCP 対応
MCP クライアントに IMAP メールボックスのツールと添付ファイルのリソースを提供します。書き込みツールは既定で未登録で、削除や移動などでは人の確認を求められます。メール送信には対応しません。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y @ni-c/imap-mcpIMAP_HOSTHostname of the IMAP server, e.g. imap.example.netIMAP_USERMailbox user nameIMAP_PASSWORDシークレットMailbox password or app passwordIMAP_PORTDefaults to 993 with implicit TLS, 143 otherwiseIMAP_TLSimplicit (default), starttls or noneIMAP_MAILBOXDefault mailbox to work in (default: INBOX)IMAP_SEEN_KEYWORDシークレットIMAP keyword marking what the assistant has already seen (default: AiSeen)IMAP_READ_ONLYSet to false to register the mailbox write tools; defaults to trueIMAP_ALLOW_TOOLSComma-separated tool names or list_* prefixes to register; 'essential' selects a curated preset (default: all tools)IMAP_DENY_TOOLSComma-separated tool names or list_* prefixes to remove from whatever IMAP_ALLOW_TOOLS leftIMAP_DOWNLOAD_DIRDirectory attachments may be written to; unset means the server never touches the filesystemIMAP_INSECURE_TLSSet to true to accept self-signed certificates, scoped to this connectionIMAP_DRAFTS_MAILBOXDrafts folder to save into; by default the one flagged \Drafts is usedIMAP_MAX_MESSAGESDefault number of messages a listing returns (default: 100)IMAP_MAX_ATTACHMENT_BYTESCeiling for returning an attachment inline (default: 1048576)IMAP_MAX_DOWNLOAD_BYTESCeiling for writing an attachment to disk (default: 26214400)IMAP_MAX_EXTRACT_BYTESCeiling for reading a document's text with mode=text (default: 10485760, maximum: 67108864)IMAP_ATTACHMENT_TYPESComma-separated content-type allowlist for attachmentsIMAP_TRUSTED_AUTHSERV_IDシークレットauthserv-id your provider stamps into Authentication-Results; without it every verdict is reported as forgeableローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
imap-mcp
あらゆる IMAP メールボックスに対応するModel Context Protocol(MCP)サーバーです。特定ベンダーの API ではなく IMAP を使用するため、すでにご利用のプロバイダーで動作します。
Claude Code、Claude Desktop、Codex などの MCP クライアントから、メールの閲覧や検索、フォルダーへの整理、添付ファイルの保存、返信の下書き作成ができます。すべてのメッセージは信頼できないコンテンツとして囲まれ、書き込みツールは有効にしない限り無効です。
ツールは50個ではなく11個です。メールアカウントはワークフローであり、API の機能一覧ではないため、関連する操作を多数のツールに分割せず、モードを持つ1つのツールにまとめています。11個は最低数ではなく上限です。IMAP_ALLOW_TOOLS=essential を指定すると、厳選された6個だけが登録され、読み取り専用の既定設定では4個に絞られます。読み込むツールの選択をご覧ください。
## 特長
メールを送信できません。それがこのサーバーの機能です。 プライベートデータにアクセスでき、信頼できないコンテンツにさらされ、外部と通信する手段を持つエージェントは、受信トレイにメッセージを入れられる人なら誰でも悪用できます。これは、
EchoLeakを引き起こしたパターンです。細工されたメール1通によって、ユーザーが何もしなくても Microsoft 365 Copilot から内部データが流出しました。このサーバーは最初の2つを備えていますが、3つ目は意図的に備えていません。save_draftは返信を「下書き」フォルダーに保存します。送信はご自身のメールクライアントから行います。メッセージ内にどれほど巧妙な文章が書かれていても、このサーバーに何かをどこかへ投稿させることはできません。
書き込みは、明示的に有効にするまでオフです。 IMAP_HOST、IMAP_USER、IMAP_PASSWORDのみを設定すると、サーバーは読み取りツールを6つだけ登録します。メールボックス用ツールはIMAP_READ_ONLY=falseで表示されます。このファミリーの他のサーバーとは逆で、デフォルト値はtrueです。このサーバーはメールボックスにアクセスするためです。オフのツールは一切登録されません。モデルに見えない機能を、使うように言いくるめることはできません。
メールは敵対的な入力として扱われます。実際にそうだからです。 世界中の誰でも受信トレイにテキストを入れられます。メッセージ本文は、呼び出しごとにランダムなノンスを含むマーカーで囲まれます。さらに、本文内のすべての行にそのノンスを付けるため、長い転送スレッドの途中でも「これはデータ」という合図が途切れません。ブロックの後には注意書きが続きます。そうしないと、モデルのコンテキストにある最後の命令のような文が、攻撃者のものになってしまうからです。ゼロ幅文字と方向上書き文字はモデルに渡す前に取り除かれ、非表示のHTML要素もベストエフォートで除去されます(重要なのは除去ではなく、囲み込みです)。また、インライン形式と参照形式の両方でMarkdownの画像構文を無効化し、表示クライアントがトラッキングURLを取得させられるのを防ぎます。
フォルダー名も同様に扱います。フォルダー名は作成者が決めるため、共有メールボックスでは必ずしもあなたが付けた名前とは限りません。list_mailboxesは名前を2つ返します。pathにはサーバーが指定した名前をそのまま返します。これは他のすべてのツールが使う識別子です。display_nameには読みやすいように整えた名前を返し、両者が異なる場合はエントリーに警告を付けます。
メッセージに加えて、サーバー側での評価も取得できます。SPF/DKIM/DMARCの判定と、それらの取得元であるauthserv-id、どのようなプロンプトインジェクションのパターンに一致したか、そしてラテン文字とキリル文字またはギリシャ文字が混在する単語が示されます。一致があった場合、警告はJSON内に埋もれたフィールドではなく、結果の先頭に表示されます。
これらの判定にはforgeableフラグがあり、デフォルトでは常にtrueです。送信者は独自のAuthentication-Resultsヘッダーを記述できます。また、プロバイダーがヘッダーを追加しない場合、そこにあるのは送信者が書いたものだけで、メッセージの内容から両者を見分けることはできません。IMAP_TRUSTED_AUTHSERV_IDに、プロバイダーが付与するIDを設定してください(すでに受信済みのメールで、ヘッダーの最初のトークンを確認できます)。そのIDだけが本物として扱われます。設定するまでは、spf=passはその実態どおり、誰でも書けるヘッダーからの主張として報告されます。
実際に機能する「新着メール」。 サーバーは、処理したメッセージにカスタムIMAPキーワード(デフォルトはAiSeen)を付けるため、list_new_messagesは各メッセージを1回だけ返します。人間向けの\Seen状態には一切触れず、すべてBODY.PEEKで読み取ります。
削除や移動には人の承認を求めます。 クライアントがMCPエリシテーションに対応している場合、delete_messages、move_messages、フォルダーの削除では、モデルに代わりに回答できない本物のダイアログが表示されます。対応していない場合は、2回の呼び出しによるトークン方式に切り替わります。その際は、誰かが承認したかのように装うのではなく、その旨を伝えます。ELICITATION=falseを設定すると、この代替方式を意図的に使用しますが、ガードが外れることはありません。人に承認を求めるをご覧ください。
要件
- Node.js 22 以降
- IMAP アカウント。2 要素認証を使用するプロバイダーでは、通常、アプリ固有のパスワードが必要です。
設定
| 変数 | 必須 | デフォルト | 説明 |
|---|---|---|---|
IMAP_HOST | はい | — | IMAP サーバーのホスト名。例:imap.example.net |
IMAP_USER | はい | — | アカウントのユーザー名。通常はメールアドレス |
IMAP_PASSWORD | はい | — | パスワードまたはアプリ固有のパスワード |
IMAP_PORT | いいえ | 993 / 143 | TLS モードに応じてデフォルト値が決まります |
IMAP_TLS | いいえ | implicit | implicit、starttls、または none |
IMAP_MAILBOX | いいえ | INBOX | メッセージツールがデフォルトで使用するメールボックス |
IMAP_READ_ONLY | いいえ | true | false を指定すると、5 つのメールボックスツールが登録されます |
IMAP_ALLOW_TOOLS | いいえ | — | ツール名、list_* プレフィックス、または essential |
IMAP_DENY_TOOLS | いいえ | — | 同じ構文。許可リストから除外されます |
IMAP_SEEN_KEYWORD | いいえ | AiSeen | 新着メール追跡用のキーワード。空にすると無効になります |
IMAP_TRUSTED_AUTHSERV_ID | いいえ | — | プロバイダーが付与する authserv-id。下記を参照してください |
IMAP_DRAFTS_MAILBOX | いいえ | 自動 | \Drafts フラグから見つかったフォルダーを上書きします |
IMAP_MAX_MESSAGES | いいえ | 100 | デフォルトのページサイズ |
IMAP_MAX_ATTACHMENT_BYTES | いいえ | 1048576 | 添付ファイルをインラインで返す際の上限 |
IMAP_MAX_DOWNLOAD_BYTES | いいえ | 26214400 | 添付ファイルをディスクに書き込む際の上限 |
IMAP_MAX_EXTRACT_BYTES | いいえ | 10485760 | ドキュメントのテキストを読み取る際の上限。最大値は 67108864 |
IMAP_ATTACHMENT_TYPES | いいえ | 下記を参照 | カンマ区切りのコンテンツタイプ許可リスト |
IMAP_DOWNLOAD_DIR | いいえ | — | 設定すると、添付ファイルをこのディレクトリに保存できます |
IMAP_INSECURE_TLS | いいえ | false | true を指定すると、自己署名証明書を受け入れます |
ELICITATION | いいえ | true | false にすると、ダイアログの代わりにトークンを使用します。プレフィックスは付きません |
ブール値は文字列 true と完全に一致するかどうかで判定されます。1、yes、True は true として扱われません。
IMAP_READ_ONLY は逆の動作です。文字列 false と完全に一致する場合にのみ無効になるため、入力を誤ると書き込みツールは登録されないままです。
読み込むツールの選択
IMAP_ALLOW_TOOLS と IMAP_DENY_TOOLS には、ツール名をカンマ区切りで指定します。末尾の *
はファミリー全体に一致します。essential は、list_mailboxes、
list_new_messages、list_messages、get_message、set_message_flags、move_messages の6つを厳選したプリセットです。
そのうち4つは読み取りツールなので、デフォルトの読み取り専用設定でも役立ちます。
IMAP_ALLOW_TOOLS=essential
IMAP_ALLOW_TOOLS=list_new_messages,get_message,move_messages
IMAP_DENY_TOOLS=delete_messages
このリストで区別できない点が1つあります。move_messages は移動だけでなくコピーも行い(mode: "copy")、
この2つは1つのツールです。move_messages を拒否すると、両方が使えなくなります。移動は許可して
コピーは禁止する、あるいはその逆にする方法はありません。どちらのモードでも確認が求められます。
どのツールにも一致しない項目があると、その名前を示して起動が中止されるため、誤入力によって
ツールがひそかに非表示になることはありません。ツールが見当たらなくても、環境変数が原因だと
誰も気づかない、ということにはなりません。フィルタリングされたツールは登録されないため、
tools/list にも tools/call にも現れません。これは IMAP_READ_ONLY 設定時の書き込みツールと
同じです。
対象となるのはツールです。このサーバーが公開する添付ファイルのリソースは、フィルタリングされません。
このサーバーを複数同時に実行する場合は、もう1つの選択肢として mcp-hub があります。
その /hub エンドポイントは、すべてのサーバーのツールを6つのメタツールに置き換えます。
パスワードは読み取り後すぐにプロセス環境から削除されるため、子プロセスや /proc/<pid>/environ からは
確認できません。
IMAP_DOWNLOAD_DIR を設定しない場合、このサーバーがファイルシステムに書き込むことはありません。3つのサイズ上限を
個別に設定するのは、それぞれ異なる用途があるためです。
IMAP_MAX_ATTACHMENT_BYTES はモデルのコンテキストウィンドウを保護し、
IMAP_MAX_DOWNLOAD_BYTES はディスクを保護し、IMAP_MAX_EXTRACT_BYTES は
1つのパーサーに渡される悪意のある入力の量を制限します。いずれか1つの上限を引き上げても、
ほかの上限を引き上げることにはなりません。
このサーバーは意図的に認証情報なしで起動します。ハンドシェイクを完了してツールを一覧表示し、 その後のすべての呼び出しはサーバーに接続するのではなく、セットアップ手順を示して失敗します。
インストール
Claude Code
claude mcp add imap-mcp \
-e IMAP_HOST=imap.example.net -e [email protected] -e IMAP_PASSWORD=… \
-- npx -y @ni-c/imap-mcp
Claude Desktop
{
"mcpServers": {
"imap-mcp": {
"command": "npx",
"args": ["-y", "@ni-c/imap-mcp"],
"env": {
"IMAP_HOST": "imap.example.net",
"IMAP_USER": "[email protected]",
"IMAP_PASSWORD": "…"
}
}
}
}
Codex
[mcp_servers.imap-mcp]
command = "npx"
args = ["-y", "@ni-c/imap-mcp"]
env = { IMAP_HOST = "imap.example.net", IMAP_USER = "[email protected]", IMAP_PASSWORD = "…" }
Docker
docker run --rm -i \
-e IMAP_HOST=imap.example.net \
-e [email protected] \
-e IMAP_PASSWORD=… \
ghcr.io/ni-c/imap-mcp
添付ファイルの保存には書き込み可能なディレクトリが必要です。また、イメージは uid 1000 で実行されるため、
バインドマウントの所有者をホスト側で uid 1000 にする必要があります。chown 1000:1000 attachments を実行し、
-e IMAP_DOWNLOAD_DIR=/data -v "$PWD/attachments:/data" を指定してください。
IMAP_DOWNLOAD_DIR を設定しない場合、コンテナは何も書き込みません。
mcp-hub 経由
ローカルプロセスを起動できないクライアント(ChatGPT コネクター、Web 版 Claude、
Cursor、LibreChat)からは、mcp-hub 経由で imap-mcp に接続できます。1つの
コンテナで多数の stdio MCP サーバーを Streamable HTTP 経由で提供し、単一のパスワードによる
OAuth 2.1 ログインを備えています。また、OAuth を利用できないクライアント向けに、有効期間の長いトークンも
提供します。/hub エンドポイントはすべてのサーバーを6つのメタツールの背後に配置するため、モデルの
コンテキストに N×個のツールスキーマを含めずに、1つのコネクターからすべてのサーバーにアクセスできます。
さらに、両方のプロトコルリビジョンに対応しているため、このサーバーが質問を行うと、
経由して接続先の相手に届きます。
/config/mcp.json は Claude Code の形式を使用しているため、エントリーにはすでにお持ちのものを使えます。
{
"mcpServers": {
"imap-mcp": {
"command": "npx",
"args": ["-y", "@ni-c/imap-mcp"],
"env": {
"IMAP_HOST": "imap.example.net",
"IMAP_USER": "[email protected]",
"IMAP_PASSWORD": "…",
"IMAP_ALLOW_TOOLS": "essential"
},
"denyTools": ["delete_messages"]
}
}
}
ここでの allowTools と denyTools は、サーバーごとに設定する hub 独自のフィルタです。env 内の
*_ALLOW_TOOLS とは異なります。その違いと、混同によって起こりうる問題については、
クライアントガイドをご覧ください。
ツール
読み取り — 常に登録されます
| ツール | 機能 |
|---|---|
get_server_info | 機能、永続フラグ、キーワードを保存可能かどうか、有効になっているツールグループ |
list_mailboxes | メッセージ数、未読数、特殊用途の役割を含むすべてのフォルダー |
list_messages | 送信者、受信者、件名、本文、日付範囲、フラグによる一覧表示と検索 |
list_new_messages | まだ引き渡されていないメッセージ。処理後にマークし、プレビューには dry_run を指定 |
get_message | ヘッダーと本文を信頼できない内容としてフェンスで囲み、セキュリティ評価も返します。include_thread |
get_attachments | part_id を指定しない場合は一覧表示し、指定した場合は取得、抽出、または保存 |
メールボックス — IMAP_READ_ONLY=false が必要です
| ツール | 確認 |
|---|---|
set_message_flags | 不要 — フラグは元に戻せますが、\Deleted は拒否されます |
move_messages | move と copy の両方で 👤、クライアントが対応できない場合は 🔒 |
delete_messages | ユーザーに確認する 👤、クライアントが対応できない場合は 🔒 |
manage_mailbox | delete では 👤、rename では 🔒、create では不要 |
save_draft | 不要 — 下書きはメールボックスの外に出ません |
👤 はモデルが応答できないダイアログを表示します · 🔒 には確認トークンが必要です。最初に一度呼び出してトークンを受け取り、次にそのトークンを指定して呼び出します。
copy も move と同様に確認が必要です。取り消せないのは削除ではなく、情報開示だからです。移動先は自由形式のフォルダー名です。共有アカウントやパブリック名前空間では、1 回の呼び出しで、メッセージを読めるすべての人にすべてのメッセージが渡され、送信元フォルダーにはそのまま残ります。同じ理由から、set_message_flags は \Deleted の追加を拒否します。これは削除の途中段階であり、次にメールボックスを閉じるクライアントが削除を完了させる可能性があります。確認を求める delete_messages を使用してください。
確認やダイアログの文には、メールボックス名が引用されません。フォルダー名はアカウントに由来し、共有メールボックスの場合は同僚がその名前を選んでいるためです。
構造化出力
すべてのツールは outputSchema を宣言し、テキストブロックとともに structuredContent を返します。これにより、クライアントは文章を解析せずに結果を利用できます。
{
"untrusted": true,
"source": "imap",
"mailbox": "INBOX",
"total_matching": 214,
"offset": 0,
"returned": 25,
"next_offset": 25,
"messages": [{ "uid": 4711, "subject": "…", "from": "…", "seen": false }],
}
メールボックスから何らかの情報を報告するすべてのツールには、フィールドとして untrusted: true と source: "imap" が含まれます。送信者の表示名、同僚が選んだフォルダー名、添付ファイル名はすべて攻撃者が制御でき、誰かがメッセージを開くよりずっと前に、一覧表示ツールを通じてモデルに届きます。これらを含まないのは get_server_info と 5 つの書き込みツールだけです。これらはサーバー自身の設定、または渡された uid に対して実行した処理を報告します。
get_message とテキスト添付ファイルは、テキストブロック内に呼び出しごとのノンスフェンスを保持します。構造化データ側にも同じフィールドがあるため、クライアントがフィールドを見つけるためにフェンスを解析する必要はありません。画像添付ファイルのバイト列は、クライアントが描画するコンテンツブロックに保持され、base64 が重複して含まれることはありません。
拒否は、現在では エラー結果 になります。ポリシーで拒否された添付ファイル、申告内容にかかわらず実行可能ファイルであることがバイト列から判明した添付ファイル、インライン表示するには大きすぎる添付ファイルが該当します。以前は、これらは回答のように読める通常の結果でした。
添付ファイルは MCP リソース imap://message/{uid}/part/{partId} としても利用できます。これは、サーバーに有用なファイルシステムがない場合に役立ちます。リソースのパスにも、ツールと同じ許可リスト、サイズ制限、マジックバイトチェックが適用されます。これは別の無防備な入口ではありません。
意図的に公開していない機能
送信、SMTP、IMAP の生のパススルー、任意の MIME の APPEND、HTML の作成、OAuth2、そしてOCRはありません。スキャンした PDF には抽出できるテキストがなく、推測するのではなく、その旨を伝えます。最初の項目がセキュリティ上の論拠全体です(SECURITY.md を参照してください)。2 つ目を実装すると、ここにあるすべてのガードが任意になってしまいます。最後の項目は計画中ですが、リリース前にテスト用アカウントが必要です。
また、ツールフィルターでは対象にならないものがあります。添付ファイルのリソースです。IMAP_ALLOW_TOOLS が絞り込むのは tools/list であり、resources/list ではないため、許可リストを絞り込んだサーバーでもそれらは提供されます。添付ファイルを制限するのは IMAP_DOWNLOAD_DIR とコンテンツタイプの許可リストです。フィルターを適用したインストールではメールボックスに届く範囲が実際より狭い、と判断する前に知っておく価値があります。
安全性
- メールボックスの内容を含むすべての結果には、信頼できないデータであることを示すマークが付きます。メッセージ本文はさらに、呼び出しごとのノンスで囲まれ、行ごとにマークされます。
- 添付ファイルには、独立した 2 つのチェックを適用します。 宣言された内容をコンテンツタイプの許可リスト、実行可能ファイルの拡張子拒否リスト、サイズ上限と照合し、その後、バイト列をマジックナンバーでチェックします。
.pdfに名前を変えられ、application/pdfと宣言された実行可能ファイルは、宣言に関するすべてのチェックを通過しても、バイト列のチェックで拒否されます。より危険になることはあっても、安全になることはないディスクへの保存時も同様です。 part_idは一覧取得の呼び出しから取得しなければなりません。そのため、添付ファイル用ツールを使って本文を取り出し、囲い込みを回避することはできません。- ドキュメントは強制終了できるプロセス内で解析されます。
mode: "text"は、同梱の PDF.js と ZIP リーダーを使って PDF または Office ファイルを読み取ります。これは、見知らぬ相手から送られたバイナリをこのサーバーが解析する唯一の場所です。ヒープ上限とタイムアウトを設定した子プロセス内で実行し、その標準出力は JSON-RPC トランスポートと共有せずに破棄します。PDF.js のevalサポートは無効にし、圧縮ストリームは PDF.js が展開する前に上限と照合し、バッファーのサイズを確認する前に、展開対象を決めるエントリー許可リストを適用します。この処理経路は、ネットワークにもファイルシステムにも一切触れません。 - 抽出されたテキストには、その性質が明記されます。 抽出処理は、1 ポイント未満のサイズで設定されたテキストや、紙と同じ色で描画されたテキストも含め、ファイル内のすべてのテキスト描画命令を返します。一方、画像として描画されたものは何も返しません。結果には囲いの上にその旨を記載します。そうしないと、「このドキュメントには X と書かれている」という主張をユーザーが確認する方法がありません。
- ダウンロードが指定ディレクトリの外に出ることはありません。 保存先は環境変数からのみ取得し、ファイル名をサニタイズしてから、解決済みのパスを再確認します。ファイルは
wxとモード0600で開くため、既存ファイルを上書きせず、仕込まれたシンボリックリンクをたどることもありません。 - 改行を含むメールボックス名、フラグ、アドレスは拒否されます。 IMAP は行ベースのプロトコルであり、下書きはメールヘッダーです。CR はタイプミスではなく、インジェクションの手段です。
- TLS がグローバルに無効化されることはありません。
IMAP_INSECURE_TLSは、指定された接続にのみ適用されます。NODE_TLS_REJECT_UNAUTHORIZEDはどこにも登場しません。 - メールボックスへの変更はすべて、UID とフォルダーを含めて stderr に記録されます。件名は記録されません。stderr は、モデルが読み取らない唯一のチャネルです。
- 応答サイズには上限があります。 JSON を途中で切り詰めるのではなく、項目全体を削除します。切り詰めの通知を先頭に置くため、復旧のヒントが残ります。
SECURITY.md には、信頼モデル、これらの対策でカバーされない範囲、脆弱性の報告方法が記載されています。
ドキュメント
完全なガイド、ツールリファレンス、セキュリティに関する注記は、imap-mcp.ni-c.de にあります(ソースは docs/ にあります)。
開発
npm install
npm test
npm run build
テストスイートはメモリー上の IMAP フェイクを使うため、サーバーもネットワークも必要ありません。実際のサーバーを接続する方法については、CONTRIBUTING.md を参照してください。コンテナー内に使い捨てのメールボックスを起動します。
リリース
- CHANGELOG のエントリーを追加し、
package.jsonのバージョンを上げます。 npm run lint && npm run build && npm run test:coverage- コミット後、署名付きタグをプッシュします:
git tag -s vX.Y.Z -m "vX.Y.Z" && git push origin main vX.Y.Z
リリースワークフローでは、npm(Trusted Publishing、provenance 付き)への公開、CHANGELOG のセクションからの GitHub リリースの作成、MCP Registry エントリーの更新が行われます。
コントリビュート
Issue、ディスカッション、プルリクエストを歓迎します。CONTRIBUTING.md をご覧ください。脆弱性については、公開 Issue ではなく非公開の報告をご利用ください。ポリシーは SECURITY.md に記載されています。
ライセンス
MIT © Willi Thiel
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。