Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,070Paid calls: 1,528Letters: 13Defects: 1,322counted 2 min ago
teppi

Server definition

Hash
sha256:e0f330422565aedc5791e0c7fc7f2ccbe772e60abba12aa0d8ae11754cb370d7
What it is
What a remote MCP server returned when asked what it offers: 47 tools

The blob, as servednamed by its sha256

{ "instructions": "MCP.AI platform v0.9.358 | Adapters: whatsapp vunknown. When the user asks about the version (e.g. \"qual a versão\", \"which version\"), call the show_version tool. NEW MCPs/tools/integrations (capabilities not already in this toolkit) come from the official mcp.ai catalog: the `marketplace` tool (action=search) finds and runs them. You are not authenticated yet. Call the authenticate tool first — it will give the user a browser link to log in and copy a token. No other tools will work until authenticated.", "tools": [ { "description": "MCP.AI for IDE agents (Cursor, etc.): log in in the browser, copy the access token. Best: add it to this server's config as a header `Authorization: Bearer <token>` for a permanent, non-expiring connection. Or paste it here for a session-only login: call with { token: \"<jwt>\" } after the user pastes, or with no args to get the link.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "token": { "type": "string" } }, "type": "object" }, "name": "authenticate", "outputSchema": null }, { "description": "Returns connection status and URLs. When all providers are connected, returns authenticated:true and empty pending[]. When credentials are missing, returns connect_url for the toolkit and per-install URLs.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": {}, "type": "object" }, "name": "connect", "outputSchema": null }, { "description": "The official mcp.ai marketplace — the in-platform catalog of every MCP/tool, AND the way to run them. Covers capability requests like \"find an MCP that does X\", \"consulta um CPF\", \"is there a tool for Y\". Core flow: action=search discovers MCPs by intent → describe returns one MCP's full profile (every tool with its id + params, pricing, auth) so you pick the right tool_id → invoke RUNS that tool. KEY: invoke works even when the MCP is NOT installed — it runs the tool pontualmente (one-off), without adding the MCP to the toolkit and without bloating the tool list. If the MCP needs a credential/login, invoke returns a connect link; if it is paid and the wallet is empty, invoke returns a checkout/top-up link (the user opens it, then you retry). Use install only to make an MCP PERMANENT in the active toolkit (its tools then show up natively in future sessions); prefer invoke for a single/occasional use. list_tools lists what is callable right now. subscribe/cancel handle per-MCP billing; report_bug sends feedback; request_mcp asks us to build a NEW MCP when nothing fits. Search/describe flag installed_in_toolkit vs installed_in_workspace. Writes (install/uninstall/subscribe/cancel and the one-off install behind invoke) require workspace owner/admin. It also carries the mcp.ai PROMPT LIBRARY, which is about ready-made prompt TEXT rather than MCPs: search_prompts finds one, get_prompt returns its full text with {{variables}} filled, and publish_prompt saves a prompt and returns a shareable mcp.ai/p/<slug> link that opens without login.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "action": { "default": "search", "enum": [ "search", "describe", "install", "uninstall", "subscribe", "cancel", "resume", "report_bug", "request_mcp", "list_tools", "invoke", "search_prompts", "get_prompt", "publish_prompt" ], "type": "string" }, "arguments": { "default": "{}", "type": "string" }, "cancel_comment": { "default": "", "type": "string" }, "cancel_reason": { "enum": [ "too_expensive", "missing_features", "switched_service", "unused", "customer_service", "too_complex", "low_quality", "other" ], "type": "string" }, "conversation": { "default": "[]", "type": "string" }, "immediate": { "default": false, "type": "boolean" }, "limit": { "default": 10, "type": "number" }, "mcp_id": { "default": "", "type": "string" }, "message": { "default": "", "type": "string" }, "prompt_body": { "default": "", "type": "string" }, "prompt_category": { "default": "", "type": "string" }, "prompt_description": { "default": "", "type": "string" }, "prompt_slug": { "default": "", "type": "string" }, "prompt_targets": { "default": [], "items": { "enum": [ "claude", "chatgpt", "cursor", "lovable" ], "type": "string" }, "type": "array" }, "prompt_title": { "default": "", "type": "string" }, "prompt_tool": { "default": "", "type": "string" }, "prompt_vars": { "default": "{}", "type": "string" }, "query": { "default": "", "type": "string" }, "report_context": { "default": "", "type": "string" }, "request_details": { "default": "", "type": "string" }, "request_name": { "default": "", "type": "string" }, "tier_slug": { "default": "", "type": "string" }, "tool_id": { "default": "", "type": "string" } }, "type": "object" }, "name": "marketplace", "outputSchema": null }, { "description": "Report a bug, missing feature, or send feedback. Include the conversation array with recent messages for reproduction.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "context": { "default": "", "type": "string" }, "conversation": { "default": "[]", "type": "string" }, "message": { "type": "string" } }, "required": [ "message" ], "type": "object" }, "name": "report_bug", "outputSchema": null }, { "description": "Show the current MCP platform and adapter versions.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": {}, "type": "object" }, "name": "show_version", "outputSchema": null }, { "description": "Returns the current toolkit state: installed MCPs, their connection status, the accounts connected to each one, and how many catalog tools each exposes.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": {}, "type": "object" }, "name": "toolkit_info", "outputSchema": null }, { "description": "Change a chat's state. action: archive/unarchive, pin/unpin, mute/unmute. Requires chat_jid.\n\n[Flattened action: archive]", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "account": { "type": "string" }, "chat_jid": { "type": "string" }, "duration_secs": { "type": "number" } }, "required": [ "chat_jid" ], "type": "object" }, "name": "whatsapp_chat_archive", "outputSchema": null }, { "description": "Get metadata for a single chat (subject/name, archived/pinned/muted state, unread count, timestamps). Requires chat_jid.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "account": { "type": "string" }, "chat_jid": { "type": "string" } }, "required": [ "chat_jid" ], "type": "object" }, "name": "whatsapp_chat_metadata", "outputSchema": null }, { "description": "Change a chat's state. action: archive/unarchive, pin/unpin, mute/unmute. Requires chat_jid.\n\n[Flattened action: mute]", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "account": { "type": "string" }, "chat_jid": { "type": "string" }, "duration_secs": { "type": "number" } }, "required": [ "chat_jid" ], "type": "object" }, "name": "whatsapp_chat_mute", "outputSchema": null }, { "description": "Change a chat's state. action: archive/unarchive, pin/unpin, mute/unmute. Requires chat_jid.\n\n[Flattened action: pin]", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "account": { "type": "string" }, "chat_jid": { "type": "string" }, "duration_secs": { "type": "number" } }, "required": [ "chat_jid" ], "type": "object" }, "name": "whatsapp_chat_pin", "outputSchema": null }, { "description": "Change a chat's state. action: archive/unarchive, pin/unpin, mute/unmute. Requires chat_jid.\n\n[Flattened action: unarchive]", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "account": { "type": "string" }, "chat_jid": { "type": "string" }, "duration_secs": { "type": "number" } }, "required": [ "chat_jid" ], "type": "object" }, "name": "whatsapp_chat_unarchive", "outputSchema": null }, { "description": "Change a chat's state. action: archive/unarchive, pin/unpin, mute/unmute. Requires chat_jid.\n\n[Flattened action: unmute]", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "account": { "type": "string" }, "chat_jid": { "type": "string" }, "duration_secs": { "type": "number" } }, "required": [ "chat_jid" ], "type": "object" }, "name": "whatsapp_chat_unmute", "outputSchema": null }, { "description": "Change a chat's state. action: archive/unarchive, pin/unpin, mute/unmute. Requires chat_jid.\n\n[Flattened action: unpin]", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "account": { "type": "string" }, "chat_jid": { "type": "string" }, "duration_secs": { "type": "number" } }, "required": [ "chat_jid" ], "type": "object" }, "name": "whatsapp_chat_unpin", "outputSchema": null }, { "description": "List WhatsApp chats (individual + group). Sorted by most recent activity.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "account": { "type": "string" }, "archived": { "type": "boolean" }, "limit": { "default": 50, "type": "number" } }, "type": "object" }, "name": "whatsapp_chats", "outputSchema": null }, { "description": "Show this install's editable-after-connect settings per connected number — currently the proxy (proxy_url): whether it's set and a masked preview (the raw value is never returned). Owner/admin or the connection owner.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": {}, "type": "object" }, "name": "whatsapp_config_get", "outputSchema": null }, { "description": "Change an editable-after-connect setting on a connected number WITHOUT re-pairing. Today the only field is `proxy_url` — the SOCKS5/HTTPS proxy WhatsApp connects through (recommended to avoid IP bans). Owner/admin or the connection owner.\n- `account`: which number (id/wa_jid, phone, or label; omit if only one is connected).\n- `values`: e.g. { \"proxy_url\": \"socks5://user:pass@host:port\" }. An empty string CLEARS the field (e.g. { \"proxy_url\": \"\" } connects with no proxy); omit the key to keep the current value.\nThe new value applies on the next (re)connection; the live session cache is invalidated so the next tool call uses it.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "account": { "type": "string" }, "values": { "additionalProperties": { "type": "string" }, "propertyNames": { "type": "string" }, "type": "object" } }, "required": [ "values" ], "type": "object" }, "name": "whatsapp_config_set", "outputSchema": null }, { "description": "Read WhatsApp contacts.\nActions:\n- list: search across contacts (query optional — substring on name/phone). Default limit 50.\n- get: full contact info by JID.\n\n[Flattened action: get]", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "account": { "type": "string" }, "jid": { "type": "string" }, "limit": { "default": 50, "type": "number" }, "query": { "type": "string" } }, "type": "object" }, "name": "whatsapp_contacts_get", "outputSchema": null }, { "description": "Read WhatsApp contacts.\nActions:\n- list: search across contacts (query optional — substring on name/phone). Default limit 50.\n- get: full contact info by JID.\n\n[Flattened action: list]", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "account": { "type": "string" }, "jid": { "type": "string" }, "limit": { "default": 50, "type": "number" }, "query": { "type": "string" } }, "type": "object" }, "name": "whatsapp_contacts_list", "outputSchema": null }, { "description": "Group lifecycle/admin (the connected account must be a group admin for most actions).\nActions:\n- create: { name, participants[] }\n- leave: { group_jid }\n- update: { group_jid, name?, description? }\n- invite_link: { group_jid, link_action: 'get'|'revoke' }\n- join: { invite } (invite code or full invite link)\n- requests: { group_jid, req_action: 'list'|'approve'|'reject', users? }\n\n[Flattened action: create]", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "account": { "type": "string" }, "description": { "type": "string" }, "group_jid": { "type": "string" }, "invite": { "type": "string" }, "link_action": { "enum": [ "get", "revoke" ], "type": "string" }, "name": { "type": "string" }, "participants": { "items": { "type": "string" }, "type": "array" }, "req_action": { "enum": [ "list", "approve", "reject" ], "type": "string" }, "users": { "items": { "type": "string" }, "type": "array" } }, "type": "object" }, "name": "whatsapp_group_manage_create", "outputSchema": null }, { "description": "Group lifecycle/admin (the connected account must be a group admin for most actions).\nActions:\n- create: { name, participants[] }\n- leave: { group_jid }\n- update: { group_jid, name?, description? }\n- invite_link: { group_jid, link_action: 'get'|'revoke' }\n- join: { invite } (invite code or full invite link)\n- requests: { group_jid, req_action: 'list'|'approve'|'reject', users? }\n\n[Flattened action: invite_link]", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "account": { "type": "string" }, "description": { "type": "string" }, "group_jid": { "type": "string" }, "invite": { "type": "string" }, "link_action": { "enum": [ "get", "revoke" ], "type": "string" }, "name": { "type": "string" }, "participants": { "items": { "type": "string" }, "type": "array" }, "req_action": { "enum": [ "list", "approve", "reject" ], "type": "string" }, "users": { "items": { "type": "string" }, "type": "array" } }, "type": "object" }, "name": "whatsapp_group_manage_invite_link", "outputSchema": null }, { "description": "Group lifecycle/admin (the connected account must be a group admin for most actions).\nActions:\n- create: { name, participants[] }\n- leave: { group_jid }\n- update: { group_jid, name?, description? }\n- invite_link: { group_jid, link_action: 'get'|'revoke' }\n- join: { invite } (invite code or full invite link)\n- requests: { group_jid, req_action: 'list'|'approve'|'reject', users? }\n\n[Flattened action: join]", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "account": { "type": "string" }, "description": { "type": "string" }, "group_jid": { "type": "string" }, "invite": { "type": "string" }, "link_action": { "enum": [ "get", "revoke" ], "type": "string" }, "name": { "type": "string" }, "participants": { "items": { "type": "string" }, "type": "array" }, "req_action": { "enum": [ "list", "approve", "reject" ], "type": "string" }, "users": { "items": { "type": "string" }, "type": "array" } }, "type": "object" }, "name": "whatsapp_group_manage_join", "outputSchema": null }, { "description": "Group lifecycle/admin (the connected account must be a group admin for most actions).\nActions:\n- create: { name, participants[] }\n- leave: { group_jid }\n- update: { group_jid, name?, description? }\n- invite_link: { group_jid, link_action: 'get'|'revoke' }\n- join: { invite } (invite code or full invite link)\n- requests: { group_jid, req_action: 'list'|'approve'|'reject', users? }\n\n[Flattened action: leave]", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "account": { "type": "string" }, "description": { "type": "string" }, "group_jid": { "type": "string" }, "invite": { "type": "string" }, "link_action": { "enum": [ "get", "revoke" ], "type": "string" }, "name": { "type": "string" }, "participants": { "items": { "type": "string" }, "type": "array" }, "req_action": { "enum": [ "list", "approve", "reject" ], "type": "string" }, "users": { "items": { "type": "string" }, "type": "array" } }, "type": "object" }, "name": "whatsapp_group_manage_leave", "outputSchema": null }, { "description": "Group lifecycle/admin (the connected account must be a group admin for most actions).\nActions:\n- create: { name, participants[] }\n- leave: { group_jid }\n- update: { group_jid, name?, description? }\n- invite_link: { group_jid, link_action: 'get'|'revoke' }\n- join: { invite } (invite code or full invite link)\n- requests: { group_jid, req_action: 'list'|'approve'|'reject', users? }\n\n[Flattened action: requests]", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "account": { "type": "string" }, "description": { "type": "string" }, "group_jid": { "type": "string" }, "invite": { "type": "string" }, "link_action": { "enum": [ "get", "revoke" ], "type": "string" }, "name": { "type": "string" }, "participants": { "items": { "type": "string" }, "type": "array" }, "req_action": { "enum": [ "list", "approve", "reject" ], "type": "string" }, "users": { "items": { "type": "string" }, "type": "array" } }, "type": "object" }, "name": "whatsapp_group_manage_requests", "outputSchema": null }, { "description": "Group lifecycle/admin (the connected account must be a group admin for most actions).\nActions:\n- create: { name, participants[] }\n- leave: { group_jid }\n- update: { group_jid, name?, description? }\n- invite_link: { group_jid, link_action: 'get'|'revoke' }\n- join: { invite } (invite code or full invite link)\n- requests: { group_jid, req_action: 'list'|'approve'|'reject', users? }\n\n[Flattened action: update]", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "account": { "type": "string" }, "description": { "type": "string" }, "group_jid": { "type": "string" }, "invite": { "type": "string" }, "link_action": { "enum": [ "get", "revoke" ], "type": "string" }, "name": { "type": "string" }, "participants": { "items": { "type": "string" }, "type": "array" }, "req_action": { "enum": [ "list", "approve", "reject" ], "type": "string" }, "users": { "items": { "type": "string" }, "type": "array" } }, "type": "object" }, "name": "whatsapp_group_manage_update", "outputSchema": null }, { "description": "List the members of a WhatsApp group (live). Returns each participant's JID, phone, and admin/super-admin flag. Requires group_jid (…@g.us, from whatsapp_groups).", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "account": { "type": "string" }, "group_jid": { "type": "string" } }, "required": [ "group_jid" ], "type": "object" }, "name": "whatsapp_group_members", "outputSchema": null }, { "description": "Manage participants of a WhatsApp group (the connected account must be a group admin). action: 'remove' kicks members, 'promote' makes them admin, 'demote' removes admin, 'add' invites. Pass 1–50 phone numbers (+E164) or JIDs in `users`.\n\n[Flattened action: add]", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "account": { "type": "string" }, "group_jid": { "type": "string" }, "users": { "items": { "type": "string" }, "type": "array" } }, "required": [ "group_jid", "users" ], "type": "object" }, "name": "whatsapp_group_participants_add", "outputSchema": null }, { "description": "Manage participants of a WhatsApp group (the connected account must be a group admin). action: 'remove' kicks members, 'promote' makes them admin, 'demote' removes admin, 'add' invites. Pass 1–50 phone numbers (+E164) or JIDs in `users`.\n\n[Flattened action: demote]", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "account": { "type": "string" }, "group_jid": { "type": "string" }, "users": { "items": { "type": "string" }, "type": "array" } }, "required": [ "group_jid", "users" ], "type": "object" }, "name": "whatsapp_group_participants_demote", "outputSchema": null }, { "description": "Manage participants of a WhatsApp group (the connected account must be a group admin). action: 'remove' kicks members, 'promote' makes them admin, 'demote' removes admin, 'add' invites. Pass 1–50 phone numbers (+E164) or JIDs in `users`.\n\n[Flattened action: promote]", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "account": { "type": "string" }, "group_jid": { "type": "string" }, "users": { "items": { "type": "string" }, "type": "array" } }, "required": [ "group_jid", "users" ], "type": "object" }, "name": "whatsapp_group_participants_promote", "outputSchema": null }, { "description": "Manage participants of a WhatsApp group (the connected account must be a group admin). action: 'remove' kicks members, 'promote' makes them admin, 'demote' removes admin, 'add' invites. Pass 1–50 phone numbers (+E164) or JIDs in `users`.\n\n[Flattened action: remove]", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "account": { "type": "string" }, "group_jid": { "type": "string" }, "users": { "items": { "type": "string" }, "type": "array" } }, "required": [ "group_jid", "users" ], "type": "object" }, "name": "whatsapp_group_participants_remove", "outputSchema": null }, { "description": "List WhatsApp groups the account belongs to — subject, jid, participants count, owner.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "account": { "type": "string" } }, "type": "object" }, "name": "whatsapp_groups", "outputSchema": null }, { "description": "Request OLDER messages for a chat from your phone (on-demand history sync), extending what whatsapp_messages can read. Returns { status, messages_added }:\n- \"done\"/\"partial\": it pulled messages_added new messages — read them via whatsapp_messages (paginate with `before`). \"partial\" means WhatsApp stopped early; wait and retry for more.\n- \"cooldown\": you requested this chat <60s ago (retry_after_s tells you when). WhatsApp THROTTLES back-to-back requests — DO NOT retry in a loop; wait, then try once.\n- \"timeout\": the phone didn't deliver in time (offline or throttled) — already-synced history is still readable; retry later.\nBEST-EFFORT (gated by WhatsApp): one call usually pulls a batch (~50–70 msgs); pulling much deeper repeatedly often won't work. Connects live, may take up to ~1 minute. The initial sync already loaded deep history for most chats — check whatsapp_history_coverage first; only backfill when a chat's oldest_ts isn't far enough back.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "account": { "type": "string" }, "chat_jid": { "type": "string" }, "count": { "default": 50, "type": "number" }, "requests": { "type": "number" } }, "required": [ "chat_jid" ], "type": "object" }, "name": "whatsapp_history_backfill", "outputSchema": null }, { "description": "Show how far back the LOCAL message archive reaches per chat (oldest_ts, newest_ts, message_count, status). Use it to find pagination boundaries for whatsapp_messages and to decide whether to pull more with whatsapp_history_backfill. Optional query (filter by name/JID), kind, limit, or a single chat_jid.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "account": { "type": "string" }, "chat_jid": { "type": "string" }, "kind": { "enum": [ "dm", "group", "broadcast", "newsletter", "unknown" ], "type": "string" }, "limit": { "default": 100, "type": "number" }, "query": { "type": "string" } }, "type": "object" }, "name": "whatsapp_history_coverage", "outputSchema": null }, { "description": "List WhatsApp accounts paired to this install — wa_jid, phone, label, proxy on/off, status.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "account": { "type": "string" } }, "type": "object" }, "name": "whatsapp_list_accounts", "outputSchema": null }, { "description": "Manage a message you can act on.\nActions:\n- delete: { chat_jid, message_id, for_everyone? (default true) } — delete for everyone (your msg) or just for you\n- forward: { chat_jid, message_id, to } — forward a stored message to another chat\n- edit: { chat_jid, message_id, text } — edit one of your recent text messages\n\n[Flattened action: delete]\n\nBulk support: accepts message_ids for batched execution.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "account": { "type": "string" }, "chat_jid": { "type": "string" }, "for_everyone": { "type": "boolean" }, "message_id": { "type": "string" }, "message_ids": { "items": { "type": "string" }, "type": "array" }, "text": { "type": "string" }, "to": { "type": "string" } }, "required": [ "chat_jid", "message_id" ], "type": "object" }, "name": "whatsapp_message_delete", "outputSchema": null }, { "description": "Manage a message you can act on.\nActions:\n- delete: { chat_jid, message_id, for_everyone? (default true) } — delete for everyone (your msg) or just for you\n- forward: { chat_jid, message_id, to } — forward a stored message to another chat\n- edit: { chat_jid, message_id, text } — edit one of your recent text messages\n\n[Flattened action: edit]\n\nBulk support: accepts message_ids for batched execution.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "account": { "type": "string" }, "chat_jid": { "type": "string" }, "for_everyone": { "type": "boolean" }, "message_id": { "type": "string" }, "message_ids": { "items": { "type": "string" }, "type": "array" }, "text": { "type": "string" }, "to": { "type": "string" } }, "required": [ "chat_jid", "message_id" ], "type": "object" }, "name": "whatsapp_message_edit", "outputSchema": null }, { "description": "Manage a message you can act on.\nActions:\n- delete: { chat_jid, message_id, for_everyone? (default true) } — delete for everyone (your msg) or just for you\n- forward: { chat_jid, message_id, to } — forward a stored message to another chat\n- edit: { chat_jid, message_id, text } — edit one of your recent text messages\n\n[Flattened action: forward]\n\nBulk support: accepts message_ids for batched execution.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "account": { "type": "string" }, "chat_jid": { "type": "string" }, "for_everyone": { "type": "boolean" }, "message_id": { "type": "string" }, "message_ids": { "items": { "type": "string" }, "type": "array" }, "text": { "type": "string" }, "to": { "type": "string" } }, "required": [ "chat_jid", "message_id" ], "type": "object" }, "name": "whatsapp_message_forward", "outputSchema": null }, { "description": "List messages in a chat from LOCAL history. Requires chat_jid (from whatsapp_chats). Paginate backwards by passing the oldest message's timestamp as `before` (ISO 8601); `after` pages forward; `order` sorts. NOTE: only messages already synced locally are returned — to see how far back the archive goes use whatsapp_history_coverage, and to pull OLDER messages from your phone use whatsapp_history_backfill.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "account": { "type": "string" }, "after": { "type": "string" }, "before": { "type": "string" }, "chat_jid": { "type": "string" }, "limit": { "default": 100, "type": "number" }, "order": { "default": "asc", "enum": [ "asc", "desc" ], "type": "string" }, "since": { "type": "string" } }, "required": [ "chat_jid" ], "type": "object" }, "name": "whatsapp_messages", "outputSchema": null }, { "description": "Mark messages as read in a chat. Requires chat_jid. Optional message_id (marks up to this message; omit to mark all unread).\n\nBulk support: accepts message_ids for batched execution.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "account": { "type": "string" }, "chat_jid": { "type": "string" }, "message_id": { "type": "string" }, "message_ids": { "items": { "type": "string" }, "type": "array" } }, "required": [ "chat_jid" ], "type": "object" }, "name": "whatsapp_messages_write", "outputSchema": null }, { "description": "Send a poll or vote on one.\nActions:\n- create: { to, name, options[] (2–12), selectable_count? }\n- vote: { chat_jid, message_id, options[] (the option texts to select) }\n\n[Flattened action: create]\n\nBulk support: accepts message_ids for batched execution.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "account": { "type": "string" }, "chat_jid": { "type": "string" }, "message_id": { "type": "string" }, "message_ids": { "items": { "type": "string" }, "type": "array" }, "name": { "type": "string" }, "options": { "items": { "type": "string" }, "type": "array" }, "selectable_count": { "type": "number" }, "to": { "type": "string" } }, "required": [ "options" ], "type": "object" }, "name": "whatsapp_poll_create", "outputSchema": null }, { "description": "Send a poll or vote on one.\nActions:\n- create: { to, name, options[] (2–12), selectable_count? }\n- vote: { chat_jid, message_id, options[] (the option texts to select) }\n\n[Flattened action: vote]\n\nBulk support: accepts message_ids for batched execution.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "account": { "type": "string" }, "chat_jid": { "type": "string" }, "message_id": { "type": "string" }, "message_ids": { "items": { "type": "string" }, "type": "array" }, "name": { "type": "string" }, "options": { "items": { "type": "string" }, "type": "array" }, "selectable_count": { "type": "number" }, "to": { "type": "string" } }, "required": [ "options" ], "type": "object" }, "name": "whatsapp_poll_vote", "outputSchema": null }, { "description": "React to a message with an emoji (or remove your reaction by passing an empty emoji). Requires chat_jid + message_id.\n\nBulk support: accepts message_ids for batched execution.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "account": { "type": "string" }, "chat_jid": { "type": "string" }, "emoji": { "type": "string" }, "message_id": { "type": "string" }, "message_ids": { "items": { "type": "string" }, "type": "array" } }, "required": [ "chat_jid", "message_id" ], "type": "object" }, "name": "whatsapp_react", "outputSchema": null }, { "description": "Full-text search across all stored messages (SQLite FTS5). Optional chat_jid to scope. Returns matches with context.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "account": { "type": "string" }, "chat_jid": { "type": "string" }, "limit": { "default": 50, "type": "number" }, "query": { "type": "string" } }, "required": [ "query" ], "type": "object" }, "name": "whatsapp_search", "outputSchema": null }, { "description": "Send a WhatsApp message (text or media).\nActions:\n- text: { to, text, reply_to? }\n- media: { to, type ('image'|'video'|'audio'|'document'|'sticker'),\n media_url | media_base64, caption?, filename?, mimetype? }\n\n`to` accepts either a JID ('[email protected]', '<id>@g.us') or\na plain phone (digits, country code included). For groups always use the\n'<id>@g.us' JID — get it from whatsapp_groups.\n\n[Flattened action: media]", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "account": { "type": "string" }, "caption": { "type": "string" }, "filename": { "type": "string" }, "media_base64": { "type": "string" }, "media_url": { "type": "string" }, "mimetype": { "type": "string" }, "reply_to": { "type": "string" }, "text": { "type": "string" }, "to": { "type": "string" }, "type": { "enum": [ "image", "video", "audio", "document", "sticker" ], "type": "string" } }, "required": [ "to" ], "type": "object" }, "name": "whatsapp_send_media", "outputSchema": null }, { "description": "Send a WhatsApp message (text or media).\nActions:\n- text: { to, text, reply_to? }\n- media: { to, type ('image'|'video'|'audio'|'document'|'sticker'),\n media_url | media_base64, caption?, filename?, mimetype? }\n\n`to` accepts either a JID ('[email protected]', '<id>@g.us') or\na plain phone (digits, country code included). For groups always use the\n'<id>@g.us' JID — get it from whatsapp_groups.\n\n[Flattened action: text]", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "account": { "type": "string" }, "caption": { "type": "string" }, "filename": { "type": "string" }, "media_base64": { "type": "string" }, "media_url": { "type": "string" }, "mimetype": { "type": "string" }, "reply_to": { "type": "string" }, "text": { "type": "string" }, "to": { "type": "string" }, "type": { "enum": [ "image", "video", "audio", "document", "sticker" ], "type": "string" } }, "required": [ "to" ], "type": "object" }, "name": "whatsapp_send_text", "outputSchema": null }, { "description": "Refresh this account's local data from WhatsApp — pulls recent messages and refreshes the groups/contacts lists into the local store. Call it BEFORE reading (chats/groups/messages/contacts/search) when results look stale or empty (e.g. right after connecting, or an account that hasn't synced recently). Connects live, so it may take ~20–60s. Returns { messages_stored }.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "account": { "type": "string" } }, "type": "object" }, "name": "whatsapp_sync", "outputSchema": null }, { "description": "Show this WhatsApp install's outbound webhook: the current URL, the subscribed events (empty = all), include_result, and the catalog of subscribable events (available_events — e.g. whatsapp.message, whatsapp.reaction, and the whatsapp.* wildcard). Owner/admin only.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": {}, "type": "object" }, "name": "whatsapp_webhook_get", "outputSchema": null }, { "description": "Set (or remove) this WhatsApp install's outbound webhook. Owner/admin only.\n- To set: pass `url` (https only, not localhost). `events` is the list of subscribed events (\"permissions\") — e.g. [\"whatsapp.message\"], or [\"whatsapp.*\"] for every WhatsApp event, or [] / omit for ALL events. See available_events from whatsapp_webhook_get. `include_result` (default true) controls whether the tool result is included in tool.call payloads. `secret` is optional (reserved).\n- Subscribing to any whatsapp.* event makes the daemon hold a live connection per number and forward inbound messages to your URL.\n- To remove the webhook: pass `remove: true` (or an empty url).", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "events": { "items": { "type": "string" }, "type": "array" }, "include_result": { "type": "boolean" }, "remove": { "type": "boolean" }, "secret": { "type": "string" }, "url": { "type": "string" } }, "type": "object" }, "name": "whatsapp_webhook_set", "outputSchema": null } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:e0f330422565aedc5791e0c7fc7f2ccbe772e60abba12aa0d8ae11754cb370d7 | sha256sum