work-assistant
Work Assistant
メールは、人またはインテリジェントエージェントが利用できるローカルアーカイブになります。
プロバイダー非依存 · 複数メールボックス · CLI · MCP · 人によるレビュー
デモを始める · エージェントを接続する · セキュリティを理解する · プロジェクトの状態
Work Assistantとは
Work Assistantは、インテリジェントなツールを使ってメールを整理し活用するためのローカルシステムです。
このシステムは、1つまたは複数のメールボックスからメッセージを取得し、それらを正規化してローカルなSQLiteアーカイブに保存します。このアーカイブから、連絡先とやり取りのビューを再構築します。人はコマンドラインからシステムを利用できます。CodexやClaudeのようなエージェントは、MCPプロトコルを通じて利用できます。
Work Assistantは、従来のメールクライアントではなく、単純なスキルでもありません。
core は、アカウント、アーカイブ、検証、提案されたコンテンツを管理します。
CLI は、モデルなしで人がコアを使用できるようにします。
MCPサーバー は、エージェントに構造化されたツールを提供します。
skill は、エージェントに、許可された範囲内でこれらのツールを使う方法を教えます。
adapter は、特定のメールサービスをコアに接続します。
公開コアはメールを送信しません。準備された返信は、別途承認されたアクションが行われるまで、ローカルの候補のままです。
機能 | 意味 |
ローカルメモリ | 正規化されたメッセージはコンピューター上に残り、完全性のハッシュを保持します。 |
エージェント用サーフェス | MCP は型付けされたコマンドを公開し、ゲートウェイにアーカイブへの直接アクセスを渡しません。 |
人間による管理 | 公開コアはローカルコンテンツを準備しますが、送信コマンドを公開しません。 |
Related MCP server: Mailing Manager MCP
存在する理由
メールボックスには、単なる個々のメッセージ以上のものが含まれています。会話、人、添付ファイル、決定、そして未完了のタスクが含まれています。一般的なクライアントは現在のメールをよく表示しますが、この履歴を実践的な知識として再利用することは困難です。
Work Assistantは、3つのレベルを分離しています。
ローカルアーカイブ:取得したものを保存し、その整合性を検証します。
ナレッジビュー:アーカイブから連絡先と関係性を再構築します。派生的なもので、再生成できます。
エージェント用サーフェス:モデルが、制御された操作を通じてコンテンツを検索・読み取り・準備できるようにします。
ナレッジビューは元の情報源ではなく、それだけでは検証済みのバックアップにはなりません。真のバックアップには、コピー、保存、検証、復元の確認も必要です。
仕組み
flowchart LR
Persona[Persona] --> Agente[Agente intelligente]
Agente -->|strumenti MCP| Gateway[Gateway MCP]
Gateway -->|IPC locale autenticato| Broker[Broker locale]
Broker --> Archivio[(Archivio locale)]
Broker --> Vista[Vista di conoscenza]
Broker --> Candidati[Candidati di risposta]
Adapter[Adapter del provider] --> Broker
classDef paper fill:#f7f2e7,stroke:#294b37,color:#172019;
classDef sage fill:#dce8d8,stroke:#294b37,color:#172019;
classDef accent fill:#aa593e,stroke:#aa593e,color:#f7f2e7;
class Persona,Archivio,Vista,Candidati paper;
class Gateway,Broker,Adapter sage;
class Agente accent;ブローカーは信頼の境界です。平文データを読み、疑似匿名化ルールを適用し、宣言されたスキーマだけをゲートウェイに返します。プロバイダーの識別子は不透明な参照になります。認識できないメタデータは、この境界を超えません。
デモを試す
このデモは、合成のIDとメッセージのみを使用します。認証情報や実際のメールボックスは必要ありません。
前提条件
Python 3.11以降;
Git;
macOS、Linux、Windows。
1. プロジェクトをインストールする
git clone https://github.com/Wulfgardr/work-assistant.git
cd work-assistant
python3 -m venv .venvmacOSまたはLinuxで環境をアクティベートします:
source .venv/bin/activateWindows PowerShell の場合:
.venv\Scripts\Activate.ps1Work Assistantをインストールする:
python -m pip install .2. 設定を作成する
work-assistant --config work-assistant.toml initこのコマンドは、OS固有のデータフォルダを作成します。アーカイブ、キー、IDレジストリは、リポジトリ内には配置されません。
3. 合成メールボックスを読み込む
work-assistant --config work-assistant.toml sync --account personal
work-assistant --config work-assistant.toml sync --account team
work-assistant --config work-assistant.toml list
work-assistant --config work-assistant.toml knowledge
work-assistant --config work-assistant.toml verifyverify コマンドは、SQLiteの整合性とメッセージのハッシュを検証します。バックアップが復元可能であることを示すものではありません。
Work Assistantをエージェントと一緒に使う
Codex、Claude、その他のMCPクライアントは、同じサーフェスを使用します。モデルはCLIに組み込まれていません。
MCPサポートをインストールする:
python -m pip install '.[mcp]'1. ローカルブローカーを起動する
信頼できるローカルターミナルを開いて、起動します:
work-assistant --config work-assistant.toml brokerブローカーは起動したままである必要があります。利用できない場合、MCPゲートウェイはアーカイブを直接読み取らずに停止します。
別のターミナルで、必要な2つのパスを取得します:
work-assistant --config work-assistant.toml broker-info2. Codex にサーバーを登録する
broker-info の値で2つのプレースホルダーを置き換えます:
codex mcp add work-assistant -- \
"$PWD/.venv/bin/work-assistant" \
mcp \
--broker-address '<BROKER_ADDRESS>' \
--broker-auth-file '<BROKER_AUTH_FILE>'Windowsでは .venv\Scripts\work-assistant.exe を使用します。
リクエストの例:
Work Assistantを利用します。秘匿モードを確認し、
personalメールボックスを同期し、最新のメッセージを表示し、返信候補を準備してください。何も送信しないでください。
任意のスキルは skills/work-assistant にあります。スキルは運用ルールを追加しますが、MCPサーバーには代わりません。
3. Claude Codeにサーバーを登録する
claude mcp add work-assistant -- \
"$PWD/.venv/bin/work-assistant" \
mcp \
--broker-address '<BROKER_ADDRESS>' \
--broker-auth-file '<BROKER_AUTH_FILE>'Claude Desktopの場合は、同等の stdio サーバーを設定します:
{
"mcpServers": {
"work-assistant": {
"command": "/percorso/assoluto/work-assistant/.venv/bin/work-assistant",
"args": [
"mcp",
"--broker-address",
"<BROKER_ADDRESS>",
"--broker-auth-file",
"<BROKER_AUTH_FILE>"
]
}
}
}エージェントなしでCLIを使う
CLIは決定的です。モデルを含まず、自然なリクエストを解釈しません。
work-assistant --config work-assistant.toml list --account personal --limit 10
work-assistant --config work-assistant.toml show --account personal --id p-001ローカルの返信候補を保存するには:
printf 'Grazie. Verifico il documento entro venerdì.\n' > risposta.txt
work-assistant --config work-assistant.toml draft-candidate \
--account personal \
--to sam@example.test \
--subject 'Re: Revisione del progetto' \
--in-reply-to p-001 \
--body-file risposta.txt応答には sent: false が含まれます。プロバイダーには何も書き込まれません。
ターミナルにアクセスできるエージェントはMCPを使用する必要があります。SQLiteを直接読んだり、CLIの平文出力を直接読んではいけません。
複数のメールボックスを設定する
[accounts] セクションの各テーブルが、独立したメールボックスを表します:
schema_version = 1
data_dir = "/percorso/esterno/al/repository"
[privacy]
mode = "all"
default_action = "pseudonymize"
[accounts.personal]
provider = "demo"
source = "./examples/demo-mailbox.jsonl"
address = "alex@example.test"
[accounts.team]
provider = "demo"
source = "./examples/team-mailbox.jsonl"
address = "team@example.test"リポジトリには、デモ用のアダプターのみが含まれています。実際のアダプターは、docs/PROVIDER_ADAPTERS.md に記述された契約を実装する必要があります。
Zimbra と Carbonio
公開バージョンには、HARファイルからZimbraまたはCarbonioのセッションを準備するためのローカルオンボーディングが含まれています。実際に動作するZimbraアダプターは含まれていません。
sequenceDiagram
participant A as Agente
participant P as Persona
participant B as Browser
participant C as CLI locale
A->>P: Spiega i passaggi e controlla lo stato
P->>B: Esegue login e autenticazione a due fattori
P->>C: Importa localmente il file HAR
C-->>P: Conferma solo nomi dei cookie e stato
Note over A,C: Password, OTP, HAR e valori dei cookie non entrano nel modelloローカルコマンドは次のとおりです:
work-assistant --config work-assistant.toml import-zimbra-har \
--account work \
--har /percorso/locale/session.harこのコマンドはHARファイルを削除しません。検証後は、その機密性の高い内容に適した手順でエクスポートを移動または削除してください。
データの保護方法
Work Assistantには、次の3つのモデルが用意されています:
モード | 動作 |
| 変換はありません。 エージェントに見えるコンテンツはモデルプロバイダーに届く可能性があります。 |
| 構造化された識別子と認識されたテキストを疑似匿名化します。これは設定例の値です。 |
| 送信者ごとに順序付けされたルールを適用します。最初に一致したルールが優先されます。 |
選択的ルールの例:
[privacy]
mode = "selective"
default_action = "pseudonymize"
[[privacy.sender_rules]]
pattern = "newsletter@example.test"
action = "allow_raw"
[[privacy.sender_rules]]
pattern = "*@sensitive.example"
action = "pseudonymize"エージェントの応答には、ルールのリテラル値ではなく、不透明なIDのみが含まれます。
任意のIDレジストリは、デフォルトで <data_dir>/privacy/entities.json にあります。POSIXシステムでは、ユーザーが所有し、パーミッション 0600 である必要があります。
疑似匿名化は可逆であり、匿名性を保証するものではありません。まれな事実、文脈、文体、認識できない用語が、人物を特定する可能性があります。
ブローカーが本当の境界となるためには、データフォルダはエージェントが読み取れるワークスペースの外でなければなりません。ブローカーは、管理されたデモのみを対象とした明示的かつ安全でないオーバーライドがない限り、この設定を拒否します。
実際のメッセージを使用する前に SECURITY.md をお読みください。
Daybreak セキュリティレビュー
2026年8月24日、Daybreakレビューは、ブローカー、疑似匿名化、IPC、MCPサーフェスを分析しました。このレビューでは、中程度の重要度が1件、低重要度が6件の、計7件の問題が発見されました。
バージョン 0.3.0 では、次の修正が適用されています。
データとキーをデフォルトでリポジトリの外に配置;
保護されたストアがエージェントのワークスペースにある場合、ブローカーが拒否;
外部IDレジストリとパーミッションの確認;
クローズドリストのMCPスキーマ、不透明な参照、プロバイダーのメタデータを除外;
選択的ルール用の不透明な識別子;
固定ワーカー数とアイドル接続のタイムアウト;
接続、認証、リクエスト、レスポンス全体のタイムアウト。
報告書、証拠、残された制限は、docs/security/DAYBREAK-REVIEW.md にあります。
バックアップと復元
Work Assistantは、正規化されたメッセージとそのハッシュを保持します。これにより、アーカイブを検証可能になりますが、自動的に堅牢なバックアップになるわけではありません。
検証済みバックアップを宣言するには、以下を定義し実証する必要があります。
含めるメッセージと添付ファイル;
暗号化と鍵の管理;
頻度、保持、バージョン管理;
ハッシュの検証;
隔離された環境での復元手順;
期待されるコンテンツと復元されたコンテンツの比較。
verify 関数は、現在のアーカイブを検査します。復元を実行しません。
プロジェクトの状態
Work Assistantは アルファ プロジェクトです。
利用可能:
プロバイダーに依存しないコア;
複数メールボックスの設定;
合成デモアダプター;
ハッシュ付きSQLiteアーカイブ;
連絡先とやり取りのローカルビュー;
CLI;
MCPゲートウェイとローカルブローカー;
可逆的な疑似匿名化;
エージェント用スキル;
ZimbraとCarbonioの準備オンボーディング。
利用不可:
実際のプロバイダー向けの本番アダプター;
メールの送信;
バックアップと復元の完全な証明;
添付ファイルのバイナリコンテンツの疑似匿名化;
匿名性の保証。
開発とコントリビューション
python -m pip install '.[dev,mcp]'
pytest
python scripts/privacy_check.py
work-assistant benchmark-privacy --iterations 50コード、テスト、スクリーンショット、issue、プルリクエストでは、合成データのみを使用してください。プロジェクトのルールは CONTRIBUTING.md を読んでください。
ライセンス
Work Assistant は MIT ライセンスの下で配布されています。
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceEnables AI-powered email management for Microsoft Outlook, allowing users to search, compose, organize, and batch forward emails using natural language commands with 100% local processing.30MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to manage multiple email accounts with secure credentials, local full-text search, thread-aware replies, and automation.11MIT
- AlicenseAqualityDmaintenanceEnables LLM clients to read and search email via IMAP with tools for listing folders, searching messages, and fetching message content. It supports pagination, snippets, and thread context, and is designed for local AI workflows.10MIT
- AlicenseNot gradedqualityAmaintenanceEnables AI agents to query and recall your entire Gmail inbox locally, providing fast summarization and semantic search without relying on Gmail's search API.1054MIT
Related MCP Connectors
Authenticated email gateway for AI agents — per-agent inboxes, HITL approval, SPF/DKIM verified.
Authenticated email gateway for AI agents — per-agent inboxes, HITL approval, SPF/DKIM verified.
Email for AI agents — send, receive as a webhook, manage domains, templates, routing.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Wulfgardr/work-assistant'
If you have feedback or need assistance with the MCP directory API, please join our Discord server