WeChat Archive for DeepSeek Harness
English | 简体中文
macOS向けの、ローカルファーストでフェイルクローズ方式のWeChatアーカイブプラグインです。診断、ステータス検査、同期、検証という4つの限定された操作をDeepSeek Harnessに接続し、Agent Skillと、無人実行のためのオプションのmacOS LaunchAgentを含みます。
バージョン0.1.0は、静止状態かつチェックポイント取得済みのMac WeChatデータベーススナップショットから、検出されたすべてのmessage_N.dbシャード内のすべてのMsg_*テーブルをスキャンできます。リプレイ可能で検証可能なJSONLデルタを保存し、ローカルで利用可能な画像コンテナ、MP4ファイル、音声BLOBを、プライベートなコンテンツアドレス型オブジェクトとして保持します。
リリースステータス: 実装と合成安全テストは完了していますが、このリリースを作成する際に実際のチャット同期は実行されていません(
NOT_RUN)。同期はデフォルトで無効のままであり、LaunchAgentは自動的にインストールされません。
Mac WeChat source
|
v
deterministic Python core ----> private state + JSONL deltas + media objects
| |
+---- stdio MCP ---- DeepSeek Harness +---- replay/hash verification
|
+---- one-shot scheduler ---- optional macOS LaunchAgent提供される機能
種別 | 操作 | アーカイブデータを書き込むか? |
MCP |
| いいえ—アプリ、ソース、WAL、シークレット、権限をチェックします |
MCP |
| いいえ—限定された運用メタデータを報告します |
MCP |
| はい—サーバーのオプトインと |
MCP |
| いいえ—メッセージ履歴を再生し、ハッシュとカバレッジを検証します |
Agent Skill |
| モデルを必要な安全ワークフローへ導きます |
スケジューラー |
| 人間がLaunchAgentをインストールした後にのみ |
MCPの結果は、ステータス、件数、カバレッジ、整合性の情報を公開します。連絡先名、アカウント識別子、メッセージ本文、シークレット、プライベートなデータベースパスは公開しません。
Related MCP server: WeChat MCP Server
整合性とプライバシーの境界
ツールの引数は、アカウント、ファイルシステムパス、SQLステートメント、実行可能ファイル、シークレットを選択できません。
プラグインは、キーを取得したり、LLDBをアタッチしたり、WeChatの再署名や置換を行ったり、アプリを終了させたり、WALを無視したりすることは決してありません。
WeChatが実行中である場合、WALにトランザクションフレームが含まれているか短いヘッダーが不正な形式である場合、アプリに固定された公式署名がない場合、シークレットが無効である場合、または取得中にソースが変更された場合、同期は新しいスナップショットを公開せずに失敗します。
暗号化されたすべてのデータベースは、独立して鍵導出され、HMAC検証されます。復号化されたステージングファイルはプライベートであり、SQLiteの
quick_checkでチェックされ、実行後に削除されます。不変のJSONLデルタは、インデックストランザクションがコミットされる前にfsyncされます。検証は完全な履歴を再生し、過去のオブジェクトを含む登録済みのすべてのメディアオブジェクトをハッシュ化します。
シークレットはmacOSキーチェーンに属します。ツールのパラメータ、コマンド引数、環境変数、ログ、Gitにコミットされた設定、リリースファイルに含めるべきではありません。
SOURCE_FAITHFUL_V1の意味
画像は常に生の.datバイトを保持します。デコードされた画像バリアントは、強いファイルシグネチャまたは曖昧さのない単一バイトXOR変換によって検証された場合にのみ書き込まれます。ビデオはMP4のftypシグネチャを持つ必要があります。音声BLOBは、文字起こしや再生互換性を主張することなく保存されます。
絵文字の抽出、一般的な添付ファイル、このMacにダウンロードされていないメディア、一部のプライベートコンテナは未解決のままです。そのため、公開結果は意図的にmedia_complete=falseになります。SOURCE_FAITHFUL_V1は、ローカルで利用可能なソースバイトが保存され、検証されたことを意味します。完全にデコードされた、または再生可能なマルチモーダルエクスポートを意味するものではありません。
同様に、「complete」は検証済みの静止したMacデータベーススナップショット1つのみを表せます。削除された履歴、クラウドのみまたは電話のみの履歴、WeChatがローカルに保存したことのないコンテンツは決して含まれません。
要件
macOS
Python 3.10以降
Node.js 24以降
pnpm 11
uvlibzstd— zstd圧縮されたメッセージペイロードのデコード用。これがない場合、元の圧縮バイトはbase64として保存されたままになります。公式のWeChatインストールと、自分自身のローカルアカウントデータへのアクセス
このプロジェクトは、アーカイブすることを許可されたデータに対してのみ使用してください。チャットアーカイブには、自分のアカウントのものであっても他人のプライベート情報が含まれます。アーカイブはローカルに保ち、アクセス制御し、Gitの管理外に置いてください。
コアとMCPサーバーのインストール
このリポジトリのチェックアウトコピーから:
cd /path/to/wechat-archive
PROJECT_DIR="$(pwd -P)"
CONFIG_PATH="${HOME}/Library/Application Support/WeChatArchive/config.json"
uv venv
uv pip install -e '.[test]'
pnpm --dir mcp-server install --frozen-lockfile
mkdir -p "$(dirname "$CONFIG_PATH")"
chmod 700 "$(dirname "$CONFIG_PATH")"
cp config.example.json "$CONFIG_PATH"
chmod 600 "$CONFIG_PATH"config.example.jsonをスキーマとして、プライベート設定を編集します。source.rootとarchive.rootはどちらも絶対パスであり、正規化された別々のパスでなければなりません。アーカイブルートはソースツリーの内側にあってはなりません。本番設定ではKeychainプロバイダーを使用する必要があります。fileプロバイダーは、既存のユーザー所有のmode-0600の通常ファイルからの移行専用に存在します。シンボリックリンクは拒否されます。
キーの取得とアプリケーションの修復は、意図的にこのプラグインの範囲外です。シェル履歴にキーを残したり、エージェントにWeChatを変更させたりするのではなく、docs/BOOTSTRAP.mdの監督下の境界に従ってください。
まず読み取り専用の事前チェックを実行します:
.venv/bin/wechat-archive --config "$CONFIG_PATH" doctorこのコマンドは、wechat-archive.command/v1 JSONオブジェクトを1つだけstdoutに書き出します。個別に確認された同期を許可するのはREADYのみです。状態モデルについてはArchitecture and integrityを参照してください。
DeepSeek Harnessへのインストール
インストーラーは、--installが指定されない限りドライランです:
python3 scripts/install_dsh.py
python3 scripts/install_dsh.py --installこのインストーラーは、Harnessプロファイル内の1つのマークされたブロックと、このチェックアウトへの1つの~/.dsh/skills/wechat-archiveシンボリックリンクのみを管理します。DeepSeek Harnessのソースチェックアウトを変更したり、無関係なスキルを上書きしたりすることはありません。実際のプロファイル編集の前に、mode-0600のバックアップを1つ作成します。
Harnessは以下の名前を公開します:
mcp__wechat__wechat_doctormcp__wechat__wechat_statusmcp__wechat__wechat_syncmcp__wechat__wechat_verify
バンドルされている安全なオーバーレイはWECHAT_ARCHIVE_ALLOW_SYNC=0を設定します。したがって、インストールによって有効になるのは読み取り専用の診断とステータス検査であり、同期ではありません。すべての実機ゲートを通過した後、オペレーターはサーバーのオプトインを明示的に1に設定し、MCPプロセスを再起動し、それでもconfirm=trueを指定してwechat_syncを呼び出す必要があります。
削除もデフォルトではドライランです:
python3 scripts/uninstall_dsh.py
python3 scripts/uninstall_dsh.py --uninstallオプションの定期同期
スケジュールされた取得は、決定論的コアを直接呼び出します。ブラウザのタブ、言語モデル、実行中のHarness会話には依存しません。次のコマンドは、毎日03:15のLaunchAgentをレンダリングして検査するだけです。インストールは行いません:
REVIEW_DIR="${TMPDIR:-/tmp}/wechat-archive-review"
REVIEW_PLIST="${REVIEW_DIR}/local.wechat-archive.sync.plist"
mkdir -p "$REVIEW_DIR"
python3 scripts/render_launchagent.py \
--project-root "$PROJECT_DIR" \
--python "$PROJECT_DIR/.venv/bin/python" \
--config "$CONFIG_PATH" \
--hour 3 --minute 15 \
--sync-timeout-seconds 1800 \
--verify-timeout-seconds 7200 \
--output "$REVIEW_PLIST"
plutil -lint "$REVIEW_PLIST"
python3 scripts/install_launchagent.py --plist "$REVIEW_PLIST"最後のコマンドも依然としてドライランです。ジョブをインストールしてブートストラップするのは、次の明示的な操作のみです:
python3 scripts/install_launchagent.py --plist "$REVIEW_PLIST" --installdoctorがREADYを報告し、手動で確認されたsyncとそれに続くverifyが成功するまで、インストールしないでください。各スケジュール実行は、最初に同期を実行し、次に完全な検証を実行します。WeChatがアクティブであるか、WALが空でない場合、実行は安全に終了し、次のスケジュール時刻に再試行される場合があります。
同期と完全な検証には、それぞれ別の上限付きタイムアウトがあります。デフォルトは30分と2時間で、最大8時間まで設定できます。完全な検証はすべての過去のメディアオブジェクトを読み取るため、アーカイブのサイズに基づいてタイムアウトを選択してください。
検証とリリースチェック
リポジトリのすべてのテストは合成フィクスチャを使用します。実際のチャットデータを代わりに使用しないでください。
.venv/bin/python -m pytest -q
pnpm --dir mcp-server test
python3 scripts/check_manifest.py --scan-content
python3 scripts/build_release.py \
--output "${TMPDIR:-/tmp}/wechat-archive-0.1.0.tar.gz"プロセスの正常終了は、実際のアーカイブの十分な証拠にはなりません。受理条件は、期待されるソースカバレッジを伴って、SYNCEDまたはNO_CHANGEの直後にVERIFIEDが続くことです。完全な受理ゲートを参照してください。
ライセンスとサードパーティ成果物
プロジェクトコードはMIT Licenseの下で公開されています。監査済みまたは参照されたアップストリームプロジェクトとそのライセンスは、THIRD_PARTY_NOTICES.mdに記載されています。実際のチャット、データベース、キー、メディア、ログ、ローカル設定、過去の引き継ぎアーカイブは、リリースの一部になることは決してありません。
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
- FlicenseNot gradedqualityDmaintenanceProvides read-only access to local Beeper message history on macOS, enabling users to search conversations, read messages, and list recent chats through natural language queries. Supports both SQLite and IndexedDB storage formats with privacy-focused local-only operation.1
- AlicenseAqualityFmaintenanceEnables Claude Code to read encrypted WeChat chat history from local database, search messages, view sessions and contacts.418Do What The F*ck You Want To Public
- AlicenseNot gradedqualityCmaintenanceEnables Claude to access and search local messages and contacts across multiple platforms (iMessage, Discord, Gmail, Slack) via a local-first datastore, ensuring data never leaves the Mac.MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to read, search, and send iMessages, manage contacts, and access attachments on macOS.16MIT
Related MCP Connectors
Let ChatGPT, Claude & Cursor use your Mac: email, calendar, iMessage, Teams, files. Local, free.
Private-by-default, local-first memory/context/task orchestrator for MCP apps and agents.
Permission boundary receipts for ChatGPT agents.
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/BENZEMA216/wechat-archive-harness'
If you have feedback or need assistance with the MCP directory API, please join our Discord server