WhatsApp MCP by TimelinesAI
Run your team's WhatsApp inbox from Claude, ChatGPT, Cursor or any AI assistant.
Connect your TimelinesAI WhatsApp inbox to Claude, ChatGPT, Cursor, Codex, Grok or any MCP client. Ask what needs a reply, then reply, react, label and assign chats from a prompt. 34 tools, all running as you, for both regular WhatsApp numbers and WhatsApp Business API (WABA) numbers.
Included in every TimelinesAI plan at no extra charge. Website · Setup guide · MCP Academy
What is this?
The TimelinesAI MCP server is a remote control for your real WhatsApp inbox inside TimelinesAI. Connect once with your TimelinesAI login, then your AI assistant gains 34 tools across chat discovery, messaging, triage (labels + assignments) and workspace introspection, for both regular WhatsApp numbers (connected by QR code) and WhatsApp Business API (WABA) numbers.
It's a hosted server: nothing to install, no API keys. Your assistant connects to https://mcp.services.timelines.ai/mcp and you sign in once.
No sandbox. Writes are real and visible to your contacts. Recipients cannot tell whether a message came from the UI or from an AI assistant: it's all just you.
Requirements
- A TimelinesAI account with at least one connected WhatsApp number in your workspace. Without a connected number, most tools return empty results or errors. The MCP is a remote control for your real inbox, not a sandbox.
- An AI assistant that supports remote MCP servers (all the clients below do).
Don't have a TimelinesAI account yet? Start a 10-day free trial →
Quick setup (~1 min)
Server URL for every client: https://mcp.services.timelines.ai/mcp
ChatGPT
Open the TimelinesAI plugin in ChatGPT, click Connect and sign in with your TimelinesAI account. Then ask: "@TimelinesAI what needs me today?"
Claude (claude.ai and Claude Desktop)
In Claude, open Customize → Connectors → Add custom connector, paste the server URL and sign in with your TimelinesAI account.
Claude Code
claude mcp add --transport http timelinesai https://mcp.services.timelines.ai/mcp
Claude Code opens a browser tab the first time a tool is used. Sign in with your TimelinesAI account.
Prefer a plugin? /plugin marketplace add InitechSoftware/whatsapp-mcp-by-timelinesai, then /plugin install timelinesai-whatsapp@timelinesai. The plugin launches a local proxy, so it needs Node.js 18+; the command above doesn't.
Cursor
Add to Cursor (one click), or add this to ~/.cursor/mcp.json:
{
"mcpServers": {
"timelinesai": {
"url": "https://mcp.services.timelines.ai/mcp"
}
}
}
The sign-in window opens on the first tool call.
Codex
Add to ~/.codex/config.toml:
[mcp_servers.timelinesai]
url = "https://mcp.services.timelines.ai/mcp"
Then run codex mcp login timelinesai once and approve in the browser. Codex doesn't start the sign-in on its own.
Grok Build
grok mcp add timelinesai https://mcp.services.timelines.ai/mcp
Then type /mcps, select timelinesai and press i to sign in. Grok Build doesn't start the sign-in on its own.
Any other MCP client
Add https://mcp.services.timelines.ai/mcp as a remote server (Streamable HTTP) and sign in when prompted.
See
examples/for ready-to-copy config files.
First thing to try
After connecting, ask your assistant:
"What needs me today?"
or, for a tour:
"What tools does the timelinesai MCP server expose? Group them by purpose and give me one example prompt per group."
Tool catalog (34 tools)
Two parallel sets of tools (one for regular WhatsApp numbers connected by QR code, one for WhatsApp Business API (WABA) numbers) plus three workspace tools shared by both. Use the set that matches the number: workspace_whatsapp_accounts lists QR numbers, waba_accounts lists WABA numbers.
| Group | Tools |
|---|---|
| Workspace (shared) | 3 |
| WhatsApp: QR-connected numbers | 14 |
| WhatsApp Business API (WABA) | 17 |
| Total | 34 |
Workspace: 3 tools
Read-only introspection. Cheap to call. Shared by both sets.
| Tool | Purpose |
|---|---|
workspace_quotas | Current plan, seats, messaging + API call quotas, billing period |
workspace_whatsapp_accounts | Connected QR WhatsApp accounts (id, phone, owner, status) |
workspace_team | Teammates, roles, invitation status, account bindings. Use for assign emails in both sets |
WhatsApp (QR-connected numbers): 14 tools
Chat discovery + inspection: 4 tools
Browse and read. No writes.
| Tool | Purpose |
|---|---|
list_chats | Filter chats by status, labels, assignee, group/direct, phone, name, dates, WA account. Paginated 50/page |
chat_details | Full metadata for a single chat |
chat_history | List messages in a chat. Filter by date and direction, page with message-UID cursors |
message_details | Inspect a single message |
Messaging writes: 4 tools
Quota-consuming. Same monthly messaging budget as the TimelinesAI UI.
| Tool | Purpose |
|---|---|
chat_send_message | Send a message (text, attachment, or reply) in an existing chat |
whatsapp_account_send_message | Send a message to any phone via a specific WA account (creates the chat if none exists: a cold send) |
message_reply | Threaded reply to a specific message |
message_react | Set or clear an emoji reaction on a message |
Chat mutations: 6 tools
State + triage operations on chats. Idempotent label and assign ops.
| Tool | Purpose |
|---|---|
chat_open | Reopen a closed chat |
chat_close | Close a chat |
chat_assign | Assign chat to a teammate by email (use workspace_team to discover emails) |
chat_unassign | Unassign current responsible teammate |
chat_set_label | Add a label to a chat |
chat_remove_label | Remove a label from a chat |
WhatsApp Business API (WABA): 17 tools
Accounts + chat discovery: 5 tools
Browse and read. No writes.
| Tool | Purpose |
|---|---|
waba_accounts | WABA numbers you can send from. Use id as waba_account_id |
waba_list_chats | WABA chats you can see. Filter by open/closed, assignee, WABA account, phone; 50/page. Check service_window_is_open before sending |
waba_chat_details | One WABA chat: service window, assignment, labels, WABA account |
waba_chat_history | Messages in a WABA chat, newest first. Filter by date and direction, page with message-UID cursors |
waba_message_details | Inspect one WABA message; failed sends include failure_reason |
Templates: 2 tools
| Tool | Purpose |
|---|---|
waba_templates | Message templates you can use, 50/page. Only APPROVED templates can be sent |
waba_template_details | One template's components, status, and the WABA accounts it can be sent from. Call before any template send |
Messaging writes: 4 tools
Template sends incur a Meta charge. Free text only works while the chat's service window is open.
| Tool | Purpose |
|---|---|
waba_start_chat | Start a new chat with a phone number using an approved template. Meta charge |
waba_chat_send_message | Free-text message in an existing WABA chat, only while service_window_is_open is true |
waba_chat_send_template | Send an approved template in an existing WABA chat: the way to message when the service window is closed. Meta charge |
waba_message_react | Set or clear an emoji reaction on a WABA message |
Chat mutations: 6 tools
State + triage operations on WABA chats. After any mutation, waba_chat_details returns the authoritative state.
| Tool | Purpose |
|---|---|
waba_chat_open | Reopen a closed WABA chat |
waba_chat_close | Close a WABA chat |
waba_chat_assign | Assign a WABA chat to a teammate by email (from workspace_team) |
waba_chat_unassign | Clear the WABA chat's assignee |
waba_chat_set_label | Add a label, keeping existing labels |
waba_chat_remove_label | Remove one label, keeping the others; no-op if the label isn't on the chat |
→ Full schemas and example prompts: docs/tools.md
How sign-in works
The server uses OAuth. The first time your assistant connects, a browser window opens on TimelinesAI. Sign in to your TimelinesAI account and approve access. Your assistant keeps the sign-in, so later sessions reconnect without asking.
If you're already signed in to TimelinesAI in your browser, approval can take a single click.
Every action runs as you: your role's permissions in TimelinesAI apply to MCP calls exactly as they apply to UI actions.
Safety + production behavior
⚠️ This MCP server controls a real WhatsApp inbox. Read this section before sending writes.
- Messages sent via MCP are indistinguishable from messages sent in the UI. Recipients cannot tell.
- Writes are real and immediate. No undo. Confirm before bulk actions.
- Quota is shared with UI usage: MCP messages draw from the same monthly messaging budget. Call
workspace_quotasto see headroom. - WABA template messages are charged by Meta.
waba_start_chatandwaba_chat_send_templatesend approved templates, which Meta bills for. Free-textwaba_chat_send_messageonly works while the chat's service window is open. - No sandbox mode. Practice on your own number first if you're unsure.
- Without a connected WhatsApp number, most tools return empty results or errors. Connect a number in TimelinesAI first.
Get started
- Start a 10-day free trial of TimelinesAI →
- Connect a WhatsApp number in the TimelinesAI dashboard.
- Pick your assistant above and connect it.
- Sign in, then ask: "What needs me today?"
Links
- WhatsApp MCP page: timelines.ai/whatsapp-mcp
- Setup guide: timelines.ai/whatsapp-mcp-guide
- MCP Academy (short lessons, no signup): timelines.ai/academy/mcp
- Sign up: app.timelines.ai/register
- MCP server endpoint:
https://mcp.services.timelines.ai/mcp - Model Context Protocol: modelcontextprotocol.io
- Issues / feedback: open an issue in this repo
License
MIT © 2026 Initech Software / TimelinesAI