Skip to main content
Glama
roclee2692

email-firewall

by roclee2692

Email Triage Agent

Hermes Agent向けの決定論的なメールトリアージ。メッセージをP0〜P3またはREVIEWに分類し、共有のpif.event.v1コントラクトを発行して、Hermesが既存のFeishuゲートウェイを通じて結果を配信できるようにします。

決定論的なHermesメールトリアージMCP:不確実な場合は保留し、V1は削除も送信も行わず、Feishuの認証情報は引き続きHermesが管理します。

なぜ / 設計理念

  • 情報を減らし、新たな情報を作り出さない。

  • P0は即時対応、P1はダイジェスト待ち、P2/P3は監査のみ。

  • 送信者認証の競合や信頼度の低いものはREVIEW/HOLDになる。

  • 人間のフィードバックは外部のJSONLルールトレイルを更新し、モデルの重みは決して更新しない。

  • オプションのアダプターは読み取り専用IMAPで実際のメールボックスに接続する。Delete、Send、Move、Seenの変更は決して実行しない。

Related MCP server: inbox-to-action-mcp

ローカル実行

npm ci
npm test
npm run demo

実際のメールボックスアダプターのコマンド:

node src/adapter-cli.js test --account qq-main
node src/adapter-cli.js poll --accounts qq-main

認証情報はmacOS Keychainの項目または環境変数への参照です。リテラルなパスワードやトークンは設定検証で拒否されます。読み取り専用メールボックスアダプターガイドを参照してください。

一回限りの分類:

node src/cli.js --json '{"sender":"no-reply@accounts.google.com","subject":"New login detected","auth":{"spf":"pass","dkim":"pass","dmarc":"pass"},"protectedSender":true}'

macOSでHermesに追加

Hermesは~/.hermes/config.yamlからstdio MCPツールを検出します。クローンしてインストールし、絶対パスを使用してください:

git clone https://github.com/roclee2692/email-triage-agent.git ~/Projects/email-triage-agent
cd ~/Projects/email-triage-agent && npm ci
hermes mcp add email-firewall --command node --args "$HOME/Projects/email-triage-agent/src/mcp.js"
hermes mcp test email-firewall

Hermesはmcp_email_firewall_triage_emailなどの名前でツールを登録します。サーバーはFeishuのシークレットを必要としません。HermesがすでにFeishuチャネルを所有しており、返されたメッセージを提示またはスケジュールします。

ツール

  • triage_email

  • render_feishu_email

  • record_email_feedback

  • get_email_policy

  • poll_email_accounts

  • test_email_account

  • acknowledge_email_events

関連リポジトリはcrypto-market-sentinelです。両方とも同じイベントエンベロープを返すため、1つのHermesプロンプトで同じ緊急/ダイジェスト/監査ポリシーを適用できます。

Hermes macOSセットアップと共有のPIFイベントコントラクトを参照してください。

ライセンス

MIT。LICENSEを参照してください。

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    One-pass agentic inbox triage as an MCP server: fetch unread Gmail → classify (action_needed/fyi/newsletter/noise) → summarize → extract tasks → draft replies as Gmail DRAFTS (never sends) → flag calendar → write a triage report. Four stdio tools (fetch_emails, save_gmail_draft, append_tasks, write_report); the host is the LLM, so it runs keyless in Claude Code. Gmail scopes: readonly + compose
    4
    59 PyPI
    2
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    Enables multi-channel inbox message priority classification and response SLA tracking through MCP-compliant clients, providing deterministic priority scoring and structured execution telemetry.
    8
    -