mcpField
A
agentmailkit

agentmailkit

ローカル
ariaxhan.comコミュニケーション19 週間前に更新

agentmailkit について

agentmailkit は、ローカルファイルやフィードを基に、LLM が作成するメールダイジェストを定期実行し、設定済みの受信箱へ送信します。自律型エージェントではなく、設定に基づく予測可能なメール処理をローカルで行いたい人向けです。

主な機能

  1. 01JSON と Markdown プロンプトでジョブを定義
  2. 0210 種類の組み込みソースから情報を収集
  3. 03メールの生成、判定、テーマ適用、送信
  4. 04送信済み項目の重複を除去
  5. 05メールを送信せずにジョブをプレビュー
  6. 06cron などのスケジューラーでジョブを設定

活用シーン

  1. 01ローカルファイルとフィードから日次ダイジェストを作成
  2. 02git の情報からリポジトリの動きを要約
  3. 03送信前にメールダイジェストを確認
  4. 04コーディングエージェントで設定済みジョブを確認・実行

MCP 対応

MCP サーバーは、ジョブやプラグインの一覧表示、ジョブのプレビューと実行を行うツールを提供します。実行は dry-run が既定で、dry_run=false にすると設定済みの配信バックエンドからメールを送信します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"ariaxhan-agentmailkit": {
"command": "uvx",
"args": [
"agentmailkit"
]
}
}
}
起動コマンドuvx agentmailkit

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypiagentmailkit0.2.2

ツール

4

掲載時のツール一覧 · 2 週間前に更新

このツールにパラメーターはありません。

詳細

agentmailkit

PyPI Python 3.9+ License: MIT

エージェント向け

これを読んで、agentmailkitをインストールするか、どう呼び出すかを判断しているAIコーディングエージェントの方は、次を実行してください。

pip install 'agentmailkit[mcp]'
claude mcp add agentmailkit -- agentmailkit mcp

Gemini CLIの場合:gemini extensions install https://github.com/ariaxhan/agentmailkit。

引数なしでlist_jobsを呼び出してください。wheelに同梱されている5つのサンプルジョブが返されるため、設定がなくても動作します。preview_job(job_id=..., model="echo")を実行すると、APIキーなしでジョブを1つローカルファイルにレンダリングできます。run_job(job_id=...)はデフォルトでdry_run=trueです。実際にメールを送信するのはdry_run=falseの場合だけです。

ツールの完全なリファレンス、引数名、Codexの設定スニペットについては、llms.txtをご覧ください。

スケジュールに沿ってLLMが作成するメールダイジェストを、自分のマシンで実行し、自分のファイルを読み込み、自分の受信トレイから送信できます。

→ 実際に生成されるメールを見る

最初から最後まで生成されたライブサンプルです。手書きのものはありません。まずはこちらをご覧ください。READMEよりも簡潔に説明されています。

pip install agentmailkit
agentmailkit run morning-brief --dry-run   # five example jobs ship with it, so this works immediately
agentmailkit quickstart                    # render all five to a local HTML gallery; never sends
agentmailkit init                          # copy them into ./jobs to make them yours

MITライセンスです。アカウント、ベンダー、クラウドは不要です。


概要

メールは2つのファイルで構成されます。JSONジョブとMarkdownプロンプトです。

{
  "id": "morning-brief",
  "schedule": "0 7 * * *",
  "sources": ["papers=arxiv:cs.AI#6", "weather=weather:Brooklyn"],
  "render": "warm",
  "delivery": "gmail",
  "dedup": true
}

エンジンは1つの固定パイプラインを実行し、例外処理を増やすことはありません。

gather sources -> render prompt -> generate -> gate -> theme -> deliver -> post

組み込みスケジューラーを使わない理由

ChatGPT Tasks、Claude Routines、Gemini Scheduled Actions、Copilotは、いずれもベンダーのクラウド上で実行されるため、次の2つの制約があります。

  • コンピューター上のファイルを読み込めません。 ~/notesもローカルデータベースも、Gitの作業ツリーも読み込めません。
  • 受信トレイから実際のメールを送信できません。 出力はアプリ内にとどまります。

agentmailkitは、データがすでにある場所で実行されます。モデルに送信するよう選んだプロンプト以外はアップロードされず、ローカルモデルを使う場合はプロンプトもアップロードされません。

さらに、動作は決定的です。 自律型エージェントではありません。独自に判断したり、ファイルシステムを歩き回ったり、頼まれていない操作をしたりしません。モデルは文章を書き、エンジンがそれ以外のすべてを担当するため、同じジョブを実行すれば毎回同じ形式のメールが生成されます。ローカルのOSSエージェントでもファイルの読み込みやメールの送信はできますが、タスクごとに細かく設定する必要のある汎用的な自律システムです。agentmailkitは、予測可能な方法で、何年でも1つの仕事を実行します。

率直な反対意見も含む詳しい比較については、docs/comparison.mdをご覧ください。

コーディングエージェントにセットアップを任せる

このリンクをコーディングエージェントに渡せば、必要な質問をしながら、すべてをセットアップしてくれます。

https://github.com/ariaxhan/agentmailkit/blob/main/AGENTS.md

AGENTS.mdは、セットアップの完全な手順書です。確認すべき内容、インストール方法、最初のジョブの作成方法、メールを送信できる状態になる前の検証方法、スケジュール設定の方法を記載しています。CLAUDE.mdは同じファイルへのシンボリックリンクなので、内容が食い違うことはありません。

Claude Code からの使用

agentmailkit は MCP に対応しているため、コマンドを手入力する代わりに、コーディングエージェントからツールとして操作できます。

pip install 'agentmailkit[mcp]'
claude mcp add agentmailkit -- agentmailkit mcp

Codex の場合は、~/.codex/config.toml に設定します。

[mcp_servers.agentmailkit]
command = "agentmailkit"
args = ["mcp"]
ツール機能
list_jobs設定済みのすべてのジョブと、そのスケジュール、ソース、配信先を表示します
preview_job1 つのジョブがメールで送信する内容をローカルファイルにレンダリングします。送信はできません
run_job1 つのジョブを実行します。dry_run のデフォルト値は true です
list_plugins登録済みのすべてのソース、モデル、ゲート、配信バックエンド、テーマを表示します

または Docker で、ジョブをマウントしたボリュームに置いて実行します:docker run -i --rm -v /path/to/jobs:/data mcp/agentmailkit。

設定は、サーバーの起動場所を基準に、CLI とまったく同じ方法で検出されます。設定を固定するには、args に -C path/to/agentmailkit.json を渡してください。

dry_run=false で run_job を実行すると、設定済みの受信トレイから実際のメールが送信されます。 それ以外のすべてのツールと、デフォルトの dry_run=true は、配信前に処理を停止します。

Python 3.10 以降が必要です。これは agentmailkit ではなく、MCP SDK が要求する最低バージョンです。

同梱されるもの

ジョブ取得するもの特徴
morning-brief天気、3 つのニュース媒体、今日は何の日媒体名を表示するため、モデルが各媒体の論調を比較できます
curiosity考古学と天文学のフィード、歴史意図的に仕事に関する内容を一切含めていません
research-digestHugging Face、arXivモデルが捏造できない実際の ID、件数、リンクを取得します
repo-pulsegit log、diffstat、TODO マーカー作業ツリーを読み取ります。クラウドスケジューラーではできません
daily-briefローカルファイル、git logコピーして使える最小限の構成です

10 種類のソースを標準搭載: file、glob、recent、shell、hf、arxiv、rss、news、history、weather。フィードや API があるものなら、約 30 行で追加できます。

参考になるアイデア: お住まいの市の議会議事日程、実際に使っている依存関係に合わせたセキュリティ勧告、為替レート、友人のブログ、使用しているツールのリリースノート、潮汐表、ご自宅上空を ISS が通過する時刻。

同じ内容は繰り返しません。 既読台帳が送信済みの項目をモデルに渡す前に取り除くため、2 日目に 1 日目の内容が再掲されることはありません。

ドキュメント

クイックスタート5 分で実際のメールを送信
エージェント向けセットアップガイドコーディングエージェントに渡してください
ソース10 種類すべての引数と使用例
ジョブとプロンプトすべてのジョブフィールドとプロンプトの規約
テーマレンダラー、パレット、適用される統一スタイル
重複排除既読台帳の仕様
配信と設定Gmail、SMTP、ゲート、設定
モデルバックエンドと、テキスト専用である理由
スケジューリングcron、launchd、systemd、CI、クラウドを使う場合との比較
Taper の各種機能任意で追加できる計算詩の機能
プラグイン約 30 行でソースを作成
比較クラウドスケジューラーやローカルエージェントとの率直な比較

インストール

pip install agentmailkit            # core, standard library only
pip install agentmailkit[gmail]     # + Gmail delivery
pip install agentmailkit[all]       # + Anthropic and OpenAI backends
pip install agentmailkit[mcp]       # + the MCP server, to drive it from a coding agent

コアに必須の依存関係はありません。バックエンドは、有効にした場合にのみ各自のライブラリを取得します。

PyPI で公開されています:pypi.org/project/agentmailkit。Python 3.9 以降が必要です。

ステータス

アルファ版(0.2.2、PyPI で公開中)。エンジン、プラグイン、重複排除、テーマ、配信、スケジューラー用の出力機能はすべて動作し、実際の API を使ったエンドツーエンドのテストを実施済みです。quickstart は初回実行時に、キーもネットワーク通信も不要で、独自のデータから一式のサンプルをレンダリングします。また、設計上メールを送信できません。

既知の注意点:同梱されている 5 つのジョブにはサンプルのデフォルト値(weather:Brooklyn、固定のニュース 3 媒体)が設定されているため、agentmailkit init の後に編集してください。

貢献

Issue やプルリクエストを歓迎します。レビューの指針は、動作はコードではなく設定で決まることです。特定のメールのためにエンジンへ if を追加する変更は、おそらくプラグインにするべきです。

ライセンス

MIT。LICENSEをご覧ください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。