Pimp My IDE / custody dispatch
Back to garage
Agent safety / personal messages / 18 Oct 2026

Read-only still moves the goods.

A tool that cannot send a message can still copy years of private conversation into a database and an AI model's context. Map that route before you connect it.

The important permission is not only "send." Ask who can search, where history rests, which model receives excerpts, and what deletion removes.
ONE OWNER
FOUR CUSTODY POINTS
PHONE / STORE / CLIENT / MODEL
SOURCE
COPY
READ
DELETE

READ-ONLY describes an action set. It does not describe retention, disclosure, or erasure.

The repository is candid. Read the candor.

A new project called whatsapp-mcp runs a personal WhatsApp reader in one Cloudflare account. Its README says the server links as a device, imports the history WhatsApp provides, stores messages and session credentials in a SQLite-backed Durable Object, and gives connected MCP clients tools to list, read, and search chats. It does not send messages.[1]

That last sentence is useful, but it is not the whole safety case. The tool can return up to 500 messages from one chat and up to 200 search results. Search snippets are clipped, while get_messages returns full stored text. The server can also save names against phone numbers. Those details are visible in the exact source revision inspected for this dispatch.[2]

A missing send button limits one kind of harm. It does not make the archive small.

Separate source, store, client, and model.

The phone remains the account's primary device. The deployed service becomes another holder of message history and live session credentials. An MCP client then requests selected records. The text that client places in model context can reach the company that runs the model, according to the project's own privacy page.[3]

Do not compress those steps into "my agent reads WhatsApp." Write the custody route. Name the account that hosts storage. Name each approved MCP client. Name the model provider used by that client. Record whether requests or responses are retained there.

Unlink and delete are different controls.

The repository says relinking removes the current WhatsApp session but keeps stored messages. Its privacy page gives a separate deletion path: delete the Worker and its Durable Object storage in the Cloudflare dashboard. That is a concrete difference between cutting future access and erasing the copy already made.[3]

Cloudflare's documentation also says a Durable Object can hold persistent storage and can be addressed as a single coordination point. Runtime hibernation resets in-memory state, but persisted storage is a separate concern.[4]

Authentication does not answer every custody question.

The inspected project supports an owner password or a configured login service. It mints bearer tokens for the pairing flow and uses a secure, HTTP-only, same-site browser cookie. That is source-observable behavior, not a security audit or a hosted-deployment test.

The MCP security guide asks servers to bind consent to the requesting client, display requested access, validate redirect URIs, and preserve token audience boundaries. The guide is broader than this project. Use it as a review list for any remote MCP endpoint that fronts sensitive data.[5]

Write the exit drill before the import.

MESSAGE_HISTORY_CUSTODY_PACKET
SOURCE_ACCOUNT=[REQUIRED]
HOSTING_ACCOUNT_OWNER=[REQUIRED]
STORED_DATA=[MESSAGES_SESSION_KEYS_NAMES]
APPROVED_MCP_CLIENTS=[REQUIRED]
MODEL_PROVIDER_PER_CLIENT=[REQUIRED]
MODEL_RETENTION_SETTING=[REQUIRED]
UNLINK_TEST=[REQUIRED]
STORED_COPY_DELETE_PATH=[REQUIRED]
DELETE_VERIFICATION=[REQUIRED]
REVISION_REVIEWED=[REQUIRED]

The custody locker below drafts this review packet. It does not connect to WhatsApp, inspect a deployed Worker, test authentication, or delete data.

Interactive makeover / custody locker

Message transfer locker

A single "read-only" badge hides several decisions. These breakers turn the review into a custody route and a copyable packet.

Set the review scope

Select the records your review packet will require. Selection marks structure, not completed evidence.

Required records
0 of 4 records selectedTemplate only
No review record selected.

Choose the records your packet must contain. Evidence fields remain blank until a person inspects the deployment.

Sources read / 18 Oct 2026

Source locker

Project documentation

whatsapp-mcp README

The README describes the linked-device design, stored data, tool list, setup, limitations, and deletion behavior.

Read the pinned README
Exact implementation

MCP tool registry

The inspected TypeScript defines message limits, full-text search, refresh behavior, contact-name writes, relinking, and tool annotations.

Inspect the pinned tool code
Project policy

Privacy page source

The project's privacy copy names stored data, infrastructure custody, model-provider disclosure, unlink behavior, and full deletion steps.

Inspect the pinned privacy copy
Platform documentation

Cloudflare Durable Objects

Cloudflare documents object lifecycle, persistent storage, WebSocket handling, hibernation, and in-memory state reset.

Read the platform guide
Protocol guidance

MCP security best practices

The MCP project documents client consent, redirect validation, token audience boundaries, session risks, and scope control.

Read the security guide
Discovery record

Hacker News item 50145715

The item surfaced the project. The discussion record is discovery evidence, not proof of the code's behavior.

Read the discussion

Sources and revision 64f1b3017931e4f6fe33eec4f95999a10f839b99 were inspected on 18 Oct 2026. The project was not deployed, linked to a phone, or exercised against real messages.