Zipppo Zipppo

Bring your own source

Push messages from anything you can script into your own private index.

Zipppo pulls email itself (Gmail, Outlook, IMAP). For everything else — WhatsApp, Signal, Discord, SMS, exported chat archives, anything — Zipppo's MCP server has a write side: the index_message tool. You run a reader on your own machine (a community bridge, a ten-line script, an export parser), and it pushes each message into your index with your personal zpo_ token. Pushed messages are encrypted at rest, entity-extracted, embedded, and show up on your board, in search, and in chat exactly like indexed email.

Read this first. Zipppo does not connect to WhatsApp or any messaging service. If you choose to pipe messages in using a third-party tool, that's your account and your responsibility, including any risk to it under that service's terms. Some services (notably WhatsApp) prohibit unofficial clients and may suspend accounts that use them. Zipppo never holds your messaging session, never talks to those services, and ships no code for them — what you run on your own machine, on your own account, is your choice.

Quickest: one-liner from the app

If you're using a source tool that follows the connect convention (the community wa-archive tool does), go to Integrations → Add a source → Generate my connect command in the app. It gives you a copy-paste one-liner with your token baked in — run it in the tool's folder and it hooks up forwarding. Everything below is the manual version of that.

Push a message with one HTTP call

Mint a token on the MCP page, then:

curl -s https://mcp.zipppo.com/v1/ingest \
  -H "Authorization: Bearer zpo_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "source":    "whatsapp",
    "sender":    "Ana <+5511999990000@s.whatsapp.net>",
    "text":      "See you at 7!",
    "timestamp": "2026-07-08T14:03:00Z",
    "thread_id": "family-chat"
  }'

Or, from any MCP-capable agent, call the index_message tool on https://mcp.zipppo.com/mcp — same fields, same token.

Fields

FieldMeaning
source (required) A short slug naming the kind of source: whatsapp, discord, sms-archive… lowercase letters, digits, ._-.
sender (required) Who sent it — "Name <address>" or a bare name.
text (required) The message text (up to 50,000 characters).
timestamp (required) When it was sent — ISO 8601 (2026-07-08T14:03:00Z) or unix epoch seconds.
thread_id The conversation it belongs to, so the board can group a chat's messages together.
subject A title, if the source has one (chat name, topic).
account Which of your source accounts it came from (e.g. your own number or handle) — a display label, defaults to source.
external_id The source's own id for this message. Pass it so re-runs of your script dedupe cleanly; without it one is derived from sender + timestamp + text.

Semantics & safety

Community readers

Zipppo doesn't build or bundle readers for closed messaging platforms — see the notice above for why. The community has built open-source bridges you can run yourself; for WhatsApp, search GitHub for “whatsapp mcp” (local Baileys-based readers that keep your session on your machine). Anything that can make an HTTP request — Python, a shell script, Zapier, an old laptop cron job — can be a Zipppo source.

Questions? Email schwartzidavid@gmail.com.