WhatsApp

Connect a personal/Business WhatsApp account via QR pairing (multi-device, like WhatsApp Web). Send

사용해야 할까요

품질 및 안전성

B
설명 품질
96%
스키마 완전성
71%
이름 품질
78%
오염 위험
80%
권한 일치
80%
프로토콜 준수
100%

발견 사항 (16)

  • HIGHTool poisoning patterns detected
  • LOWTool 'whatsapp_chat_archive' description lacks action verbwhatsapp_chat_archive에서
  • LOWTool 'whatsapp_chat_unarchive' description lacks action verbwhatsapp_chat_unarchive에서
  • LOWTool 'whatsapp_chat_pin' description lacks action verbwhatsapp_chat_pin에서
  • LOWTool 'whatsapp_chat_unpin' description lacks action verbwhatsapp_chat_unpin에서
  • LOWTool 'whatsapp_chat_mute' description lacks action verbwhatsapp_chat_mute에서
  • LOWTool 'whatsapp_chat_unmute' description lacks action verbwhatsapp_chat_unmute에서
  • LOWTool 'connect' description lacks action verbconnect에서
  • LOWTool 'whatsapp_group_participants_add' name length outside 3-30 rangewhatsapp_group_participants_add에서
  • LOWTool 'whatsapp_group_participants_remove' name length outside 3-30 rangewhatsapp_group_participants_remove에서

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~9,367토큰 (도구 정의)
~840 B일반적인 응답 크기
상당한 주의 영향 (128k 컨텍스트의 7.32%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

{
  "mcpServers": {
    "whatsapp-mcp": {
      "url": "https://api.mcp.ai/p_whatsapp"
    }
  }
}

원격 엔드포인트

https://api.mcp.ai/p_whatsappstreamable-http

할 수 있는 일

도구 목록

도구 (47)

🟢 읽기 전용🟡 쓰기🔴 삭제⚪ 알 수 없음
🟢whatsapp_list_accounts(account)

List WhatsApp accounts paired to this install — wa_jid, phone, label, proxy on/off, status.

입력 스키마

{
  "type": "object",
  "properties": {
    "account": {
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢whatsapp_sync(account)

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 }.

입력 스키마

{
  "type": "object",
  "properties": {
    "account": {
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡whatsapp_send_text(to, text, reply_to, type, media_url, ...)

Send a WhatsApp message (text or media). Actions: - text: { to, text, reply_to? } - media: { to, type ('image'|'video'|'audio'|'document'|'sticker'), media_url | media_base64, caption?, filename?, mimetype? } `to` accepts either a JID ('[email protected]', '<id>@g.us') or a plain phone (digits, country code included). For groups always use the '<id>@g.us' JID — get it from whatsapp_groups. [Flattened action: text]

입력 스키마

{
  "type": "object",
  "properties": {
    "to": {
      "type": "string"
    },
    "text": {
      "type": "string"
    },
    "reply_to": {
      "type": "string"
    },
    "type": {
      "type": "string",
      "enum": [
        "image",
        "video",
        "audio",
        "document",
        "sticker"
      ]
    },
    "media_url": {
      "type": "string"
    },
    "media_base64": {
      "type": "string"
    },
    "caption": {
      "type": "string"
    },
    "filename": {
      "type": "string"
    },
    "mimetype": {
      "type": "string"
    },
    "account": {
      "type": "string"
    }
  },
  "required": [
    "to"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡whatsapp_send_media(to, text, reply_to, type, media_url, ...)

Send a WhatsApp message (text or media). Actions: - text: { to, text, reply_to? } - media: { to, type ('image'|'video'|'audio'|'document'|'sticker'), media_url | media_base64, caption?, filename?, mimetype? } `to` accepts either a JID ('[email protected]', '<id>@g.us') or a plain phone (digits, country code included). For groups always use the '<id>@g.us' JID — get it from whatsapp_groups. [Flattened action: media]

입력 스키마

{
  "type": "object",
  "properties": {
    "to": {
      "type": "string"
    },
    "text": {
      "type": "string"
    },
    "reply_to": {
      "type": "string"
    },
    "type": {
      "type": "string",
      "enum": [
        "image",
        "video",
        "audio",
        "document",
        "sticker"
      ]
    },
    "media_url": {
      "type": "string"
    },
    "media_base64": {
      "type": "string"
    },
    "caption": {
      "type": "string"
    },
    "filename": {
      "type": "string"
    },
    "mimetype": {
      "type": "string"
    },
    "account": {
      "type": "string"
    }
  },
  "required": [
    "to"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢whatsapp_chats(limit, archived, account)

List WhatsApp chats (individual + group). Sorted by most recent activity.

입력 스키마

{
  "type": "object",
  "properties": {
    "limit": {
      "default": 50,
      "type": "number"
    },
    "archived": {
      "type": "boolean"
    },
    "account": {
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢whatsapp_messages(chat_jid, before, after, since, order, ...)

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.

입력 스키마

{
  "type": "object",
  "properties": {
    "chat_jid": {
      "type": "string"
    },
    "before": {
      "type": "string"
    },
    "after": {
      "type": "string"
    },
    "since": {
      "type": "string"
    },
    "order": {
      "default": "asc",
      "type": "string",
      "enum": [
        "asc",
        "desc"
      ]
    },
    "limit": {
      "default": 100,
      "type": "number"
    },
    "account": {
      "type": "string"
    }
  },
  "required": [
    "chat_jid"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡whatsapp_messages_write(chat_jid, message_id, account, message_ids)

Mark messages as read in a chat. Requires chat_jid. Optional message_id (marks up to this message; omit to mark all unread). Bulk support: accepts message_ids for batched execution.

입력 스키마

{
  "type": "object",
  "properties": {
    "chat_jid": {
      "type": "string"
    },
    "message_id": {
      "type": "string"
    },
    "account": {
      "type": "string"
    },
    "message_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "chat_jid"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢whatsapp_contacts_list(query, limit, jid, account)

Read WhatsApp contacts. Actions: - list: search across contacts (query optional — substring on name/phone). Default limit 50. - get: full contact info by JID. [Flattened action: list]

입력 스키마

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string"
    },
    "limit": {
      "default": 50,
      "type": "number"
    },
    "jid": {
      "type": "string"
    },
    "account": {
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢whatsapp_contacts_get(query, limit, jid, account)

Read WhatsApp contacts. Actions: - list: search across contacts (query optional — substring on name/phone). Default limit 50. - get: full contact info by JID. [Flattened action: get]

입력 스키마

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string"
    },
    "limit": {
      "default": 50,
      "type": "number"
    },
    "jid": {
      "type": "string"
    },
    "account": {
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢whatsapp_groups(account)

List WhatsApp groups the account belongs to — subject, jid, participants count, owner.

입력 스키마

{
  "type": "object",
  "properties": {
    "account": {
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢whatsapp_group_members(group_jid, account)

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).

입력 스키마

{
  "type": "object",
  "properties": {
    "group_jid": {
      "type": "string"
    },
    "account": {
      "type": "string"
    }
  },
  "required": [
    "group_jid"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡whatsapp_group_participants_add(group_jid, users, account)

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`. [Flattened action: add]

입력 스키마

{
  "type": "object",
  "properties": {
    "group_jid": {
      "type": "string"
    },
    "users": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "account": {
      "type": "string"
    }
  },
  "required": [
    "group_jid",
    "users"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴whatsapp_group_participants_remove(group_jid, users, account)

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`. [Flattened action: remove]

입력 스키마

{
  "type": "object",
  "properties": {
    "group_jid": {
      "type": "string"
    },
    "users": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "account": {
      "type": "string"
    }
  },
  "required": [
    "group_jid",
    "users"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪whatsapp_group_participants_promote(group_jid, users, account)

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`. [Flattened action: promote]

입력 스키마

{
  "type": "object",
  "properties": {
    "group_jid": {
      "type": "string"
    },
    "users": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "account": {
      "type": "string"
    }
  },
  "required": [
    "group_jid",
    "users"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪whatsapp_group_participants_demote(group_jid, users, account)

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`. [Flattened action: demote]

입력 스키마

{
  "type": "object",
  "properties": {
    "group_jid": {
      "type": "string"
    },
    "users": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "account": {
      "type": "string"
    }
  },
  "required": [
    "group_jid",
    "users"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴whatsapp_react(chat_jid, message_id, emoji, account, message_ids)

React to a message with an emoji (or remove your reaction by passing an empty emoji). Requires chat_jid + message_id. Bulk support: accepts message_ids for batched execution.

입력 스키마

{
  "type": "object",
  "properties": {
    "chat_jid": {
      "type": "string"
    },
    "message_id": {
      "type": "string"
    },
    "emoji": {
      "type": "string"
    },
    "account": {
      "type": "string"
    },
    "message_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "chat_jid",
    "message_id"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡whatsapp_poll_create(to, name, chat_jid, message_id, options, ...)

Send a poll or vote on one. Actions: - create: { to, name, options[] (2–12), selectable_count? } - vote: { chat_jid, message_id, options[] (the option texts to select) } [Flattened action: create] Bulk support: accepts message_ids for batched execution.

입력 스키마

{
  "type": "object",
  "properties": {
    "to": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "chat_jid": {
      "type": "string"
    },
    "message_id": {
      "type": "string"
    },
    "options": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "selectable_count": {
      "type": "number"
    },
    "account": {
      "type": "string"
    },
    "message_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "options"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡whatsapp_poll_vote(to, name, chat_jid, message_id, options, ...)

Send a poll or vote on one. Actions: - create: { to, name, options[] (2–12), selectable_count? } - vote: { chat_jid, message_id, options[] (the option texts to select) } [Flattened action: vote] Bulk support: accepts message_ids for batched execution.

입력 스키마

{
  "type": "object",
  "properties": {
    "to": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "chat_jid": {
      "type": "string"
    },
    "message_id": {
      "type": "string"
    },
    "options": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "selectable_count": {
      "type": "number"
    },
    "account": {
      "type": "string"
    },
    "message_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "options"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴whatsapp_message_delete(chat_jid, message_id, for_everyone, to, text, ...)

Manage a message you can act on. Actions: - delete: { chat_jid, message_id, for_everyone? (default true) } — delete for everyone (your msg) or just for you - forward: { chat_jid, message_id, to } — forward a stored message to another chat - edit: { chat_jid, message_id, text } — edit one of your recent text messages [Flattened action: delete] Bulk support: accepts message_ids for batched execution.

입력 스키마

{
  "type": "object",
  "properties": {
    "chat_jid": {
      "type": "string"
    },
    "message_id": {
      "type": "string"
    },
    "for_everyone": {
      "type": "boolean"
    },
    "to": {
      "type": "string"
    },
    "text": {
      "type": "string"
    },
    "account": {
      "type": "string"
    },
    "message_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "chat_jid",
    "message_id"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴whatsapp_message_forward(chat_jid, message_id, for_everyone, to, text, ...)

Manage a message you can act on. Actions: - delete: { chat_jid, message_id, for_everyone? (default true) } — delete for everyone (your msg) or just for you - forward: { chat_jid, message_id, to } — forward a stored message to another chat - edit: { chat_jid, message_id, text } — edit one of your recent text messages [Flattened action: forward] Bulk support: accepts message_ids for batched execution.

입력 스키마

{
  "type": "object",
  "properties": {
    "chat_jid": {
      "type": "string"
    },
    "message_id": {
      "type": "string"
    },
    "for_everyone": {
      "type": "boolean"
    },
    "to": {
      "type": "string"
    },
    "text": {
      "type": "string"
    },
    "account": {
      "type": "string"
    },
    "message_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "chat_jid",
    "message_id"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴whatsapp_message_edit(chat_jid, message_id, for_everyone, to, text, ...)

Manage a message you can act on. Actions: - delete: { chat_jid, message_id, for_everyone? (default true) } — delete for everyone (your msg) or just for you - forward: { chat_jid, message_id, to } — forward a stored message to another chat - edit: { chat_jid, message_id, text } — edit one of your recent text messages [Flattened action: edit] Bulk support: accepts message_ids for batched execution.

입력 스키마

{
  "type": "object",
  "properties": {
    "chat_jid": {
      "type": "string"
    },
    "message_id": {
      "type": "string"
    },
    "for_everyone": {
      "type": "boolean"
    },
    "to": {
      "type": "string"
    },
    "text": {
      "type": "string"
    },
    "account": {
      "type": "string"
    },
    "message_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "chat_jid",
    "message_id"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢whatsapp_chat_metadata(chat_jid, account)

Get metadata for a single chat (subject/name, archived/pinned/muted state, unread count, timestamps). Requires chat_jid.

입력 스키마

{
  "type": "object",
  "properties": {
    "chat_jid": {
      "type": "string"
    },
    "account": {
      "type": "string"
    }
  },
  "required": [
    "chat_jid"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡whatsapp_chat_archive(chat_jid, duration_secs, account)

Change a chat's state. action: archive/unarchive, pin/unpin, mute/unmute. Requires chat_jid. [Flattened action: archive]

입력 스키마

{
  "type": "object",
  "properties": {
    "chat_jid": {
      "type": "string"
    },
    "duration_secs": {
      "type": "number"
    },
    "account": {
      "type": "string"
    }
  },
  "required": [
    "chat_jid"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡whatsapp_chat_unarchive(chat_jid, duration_secs, account)

Change a chat's state. action: archive/unarchive, pin/unpin, mute/unmute. Requires chat_jid. [Flattened action: unarchive]

입력 스키마

{
  "type": "object",
  "properties": {
    "chat_jid": {
      "type": "string"
    },
    "duration_secs": {
      "type": "number"
    },
    "account": {
      "type": "string"
    }
  },
  "required": [
    "chat_jid"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡whatsapp_chat_pin(chat_jid, duration_secs, account)

Change a chat's state. action: archive/unarchive, pin/unpin, mute/unmute. Requires chat_jid. [Flattened action: pin]

입력 스키마

{
  "type": "object",
  "properties": {
    "chat_jid": {
      "type": "string"
    },
    "duration_secs": {
      "type": "number"
    },
    "account": {
      "type": "string"
    }
  },
  "required": [
    "chat_jid"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡whatsapp_chat_unpin(chat_jid, duration_secs, account)

Change a chat's state. action: archive/unarchive, pin/unpin, mute/unmute. Requires chat_jid. [Flattened action: unpin]

입력 스키마

{
  "type": "object",
  "properties": {
    "chat_jid": {
      "type": "string"
    },
    "duration_secs": {
      "type": "number"
    },
    "account": {
      "type": "string"
    }
  },
  "required": [
    "chat_jid"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡whatsapp_chat_mute(chat_jid, duration_secs, account)

Change a chat's state. action: archive/unarchive, pin/unpin, mute/unmute. Requires chat_jid. [Flattened action: mute]

입력 스키마

{
  "type": "object",
  "properties": {
    "chat_jid": {
      "type": "string"
    },
    "duration_secs": {
      "type": "number"
    },
    "account": {
      "type": "string"
    }
  },
  "required": [
    "chat_jid"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡whatsapp_chat_unmute(chat_jid, duration_secs, account)

Change a chat's state. action: archive/unarchive, pin/unpin, mute/unmute. Requires chat_jid. [Flattened action: unmute]

입력 스키마

{
  "type": "object",
  "properties": {
    "chat_jid": {
      "type": "string"
    },
    "duration_secs": {
      "type": "number"
    },
    "account": {
      "type": "string"
    }
  },
  "required": [
    "chat_jid"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡whatsapp_group_manage_create(group_jid, name, description, participants, link_action, ...)

Group lifecycle/admin (the connected account must be a group admin for most actions). Actions: - create: { name, participants[] } - leave: { group_jid } - update: { group_jid, name?, description? } - invite_link: { group_jid, link_action: 'get'|'revoke' } - join: { invite } (invite code or full invite link) - requests: { group_jid, req_action: 'list'|'approve'|'reject', users? } [Flattened action: create]

입력 스키마

{
  "type": "object",
  "properties": {
    "group_jid": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "description": {
      "type": "string"
    },
    "participants": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "link_action": {
      "type": "string",
      "enum": [
        "get",
        "revoke"
      ]
    },
    "invite": {
      "type": "string"
    },
    "req_action": {
      "type": "string",
      "enum": [
        "list",
        "approve",
        "reject"
      ]
    },
    "users": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "account": {
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪whatsapp_group_manage_leave(group_jid, name, description, participants, link_action, ...)

Group lifecycle/admin (the connected account must be a group admin for most actions). Actions: - create: { name, participants[] } - leave: { group_jid } - update: { group_jid, name?, description? } - invite_link: { group_jid, link_action: 'get'|'revoke' } - join: { invite } (invite code or full invite link) - requests: { group_jid, req_action: 'list'|'approve'|'reject', users? } [Flattened action: leave]

입력 스키마

{
  "type": "object",
  "properties": {
    "group_jid": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "description": {
      "type": "string"
    },
    "participants": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "link_action": {
      "type": "string",
      "enum": [
        "get",
        "revoke"
      ]
    },
    "invite": {
      "type": "string"
    },
    "req_action": {
      "type": "string",
      "enum": [
        "list",
        "approve",
        "reject"
      ]
    },
    "users": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "account": {
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡whatsapp_group_manage_update(group_jid, name, description, participants, link_action, ...)

Group lifecycle/admin (the connected account must be a group admin for most actions). Actions: - create: { name, participants[] } - leave: { group_jid } - update: { group_jid, name?, description? } - invite_link: { group_jid, link_action: 'get'|'revoke' } - join: { invite } (invite code or full invite link) - requests: { group_jid, req_action: 'list'|'approve'|'reject', users? } [Flattened action: update]

입력 스키마

{
  "type": "object",
  "properties": {
    "group_jid": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "description": {
      "type": "string"
    },
    "participants": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "link_action": {
      "type": "string",
      "enum": [
        "get",
        "revoke"
      ]
    },
    "invite": {
      "type": "string"
    },
    "req_action": {
      "type": "string",
      "enum": [
        "list",
        "approve",
        "reject"
      ]
    },
    "users": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "account": {
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪whatsapp_group_manage_invite_link(group_jid, name, description, participants, link_action, ...)

Group lifecycle/admin (the connected account must be a group admin for most actions). Actions: - create: { name, participants[] } - leave: { group_jid } - update: { group_jid, name?, description? } - invite_link: { group_jid, link_action: 'get'|'revoke' } - join: { invite } (invite code or full invite link) - requests: { group_jid, req_action: 'list'|'approve'|'reject', users? } [Flattened action: invite_link]

입력 스키마

{
  "type": "object",
  "properties": {
    "group_jid": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "description": {
      "type": "string"
    },
    "participants": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "link_action": {
      "type": "string",
      "enum": [
        "get",
        "revoke"
      ]
    },
    "invite": {
      "type": "string"
    },
    "req_action": {
      "type": "string",
      "enum": [
        "list",
        "approve",
        "reject"
      ]
    },
    "users": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "account": {
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪whatsapp_group_manage_join(group_jid, name, description, participants, link_action, ...)

Group lifecycle/admin (the connected account must be a group admin for most actions). Actions: - create: { name, participants[] } - leave: { group_jid } - update: { group_jid, name?, description? } - invite_link: { group_jid, link_action: 'get'|'revoke' } - join: { invite } (invite code or full invite link) - requests: { group_jid, req_action: 'list'|'approve'|'reject', users? } [Flattened action: join]

입력 스키마

{
  "type": "object",
  "properties": {
    "group_jid": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "description": {
      "type": "string"
    },
    "participants": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "link_action": {
      "type": "string",
      "enum": [
        "get",
        "revoke"
      ]
    },
    "invite": {
      "type": "string"
    },
    "req_action": {
      "type": "string",
      "enum": [
        "list",
        "approve",
        "reject"
      ]
    },
    "users": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "account": {
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪whatsapp_group_manage_requests(group_jid, name, description, participants, link_action, ...)

Group lifecycle/admin (the connected account must be a group admin for most actions). Actions: - create: { name, participants[] } - leave: { group_jid } - update: { group_jid, name?, description? } - invite_link: { group_jid, link_action: 'get'|'revoke' } - join: { invite } (invite code or full invite link) - requests: { group_jid, req_action: 'list'|'approve'|'reject', users? } [Flattened action: requests]

입력 스키마

{
  "type": "object",
  "properties": {
    "group_jid": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "description": {
      "type": "string"
    },
    "participants": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "link_action": {
      "type": "string",
      "enum": [
        "get",
        "revoke"
      ]
    },
    "invite": {
      "type": "string"
    },
    "req_action": {
      "type": "string",
      "enum": [
        "list",
        "approve",
        "reject"
      ]
    },
    "users": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "account": {
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢whatsapp_search(query, chat_jid, limit, account)

Full-text search across all stored messages (SQLite FTS5). Optional chat_jid to scope. Returns matches with context.

입력 스키마

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string"
    },
    "chat_jid": {
      "type": "string"
    },
    "limit": {
      "default": 50,
      "type": "number"
    },
    "account": {
      "type": "string"
    }
  },
  "required": [
    "query"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢whatsapp_history_coverage(query, kind, limit, chat_jid, account)

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.

입력 스키마

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string"
    },
    "kind": {
      "type": "string",
      "enum": [
        "dm",
        "group",
        "broadcast",
        "newsletter",
        "unknown"
      ]
    },
    "limit": {
      "default": 100,
      "type": "number"
    },
    "chat_jid": {
      "type": "string"
    },
    "account": {
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢whatsapp_history_backfill(chat_jid, count, requests, account)

Request OLDER messages for a chat from your phone (on-demand history sync), extending what whatsapp_messages can read. Returns { status, messages_added }: - "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. - "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. - "timeout": the phone didn't deliver in time (offline or throttled) — already-synced history is still readable; retry later. BEST-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.

입력 스키마

{
  "type": "object",
  "properties": {
    "chat_jid": {
      "type": "string"
    },
    "count": {
      "default": 50,
      "type": "number"
    },
    "requests": {
      "type": "number"
    },
    "account": {
      "type": "string"
    }
  },
  "required": [
    "chat_jid"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢whatsapp_webhook_get

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.

입력 스키마

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴whatsapp_webhook_set(url, events, include_result, secret, remove)

Set (or remove) this WhatsApp install's outbound webhook. Owner/admin only. - 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). - Subscribing to any whatsapp.* event makes the daemon hold a live connection per number and forward inbound messages to your URL. - To remove the webhook: pass `remove: true` (or an empty url).

입력 스키마

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string"
    },
    "events": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "include_result": {
      "type": "boolean"
    },
    "secret": {
      "type": "string"
    },
    "remove": {
      "type": "boolean"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢whatsapp_config_get

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.

입력 스키마

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡whatsapp_config_set(account, values)

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. - `account`: which number (id/wa_jid, phone, or label; omit if only one is connected). - `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. The new value applies on the next (re)connection; the live session cache is invalidated so the next tool call uses it.

입력 스키마

{
  "type": "object",
  "properties": {
    "account": {
      "type": "string"
    },
    "values": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "type": "string"
      }
    }
  },
  "required": [
    "values"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢show_version

Show the current MCP platform and adapter versions.

입력 스키마

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡report_bug(message, context, conversation)

Report a bug, missing feature, or send feedback. Include the conversation array with recent messages for reproduction.

입력 스키마

{
  "type": "object",
  "properties": {
    "message": {
      "type": "string"
    },
    "context": {
      "default": "",
      "type": "string"
    },
    "conversation": {
      "default": "[]",
      "type": "string"
    }
  },
  "required": [
    "message"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢connect

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.

입력 스키마

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢toolkit_info

Returns the current toolkit state: installed MCPs, their connection status, the accounts connected to each one, and how many catalog tools each exposes.

입력 스키마

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡marketplace(action, query, mcp_id, limit, tier_slug, ...)

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.

입력 스키마

{
  "type": "object",
  "properties": {
    "action": {
      "default": "search",
      "type": "string",
      "enum": [
        "search",
        "describe",
        "install",
        "uninstall",
        "subscribe",
        "cancel",
        "resume",
        "report_bug",
        "request_mcp",
        "list_tools",
        "invoke",
        "search_prompts",
        "get_prompt",
        "publish_prompt"
      ]
    },
    "query": {
      "default": "",
      "type": "string"
    },
    "mcp_id": {
      "default": "",
      "type": "string"
    },
    "limit": {
      "default": 10,
      "type": "number"
    },
    "tier_slug": {
      "default": "",
      "type": "string"
    },
    "immediate": {
      "default": false,
      "type": "boolean"
    },
    "cancel_reason": {
      "type": "string",
      "enum": [
        "too_expensive",
        "missing_features",
        "switched_service",
        "unused",
        "customer_service",
        "too_complex",
        "low_quality",
        "other"
      ]
    },
    "cancel_comment": {
      "default": "",
      "type": "string"
    },
    "message": {
      "default": "",
      "type": "string"
    },
    "report_context": {
      "default": "",
      "type": "string"
    },
    "conversation": {
      "default": "[]",
      "type": "string"
    },
    "request_name": {
      "default": "",
      "type": "string"
    },
    "request_details": {
      "default": "",
      "type": "string"
    },
    "tool_id": {
      "default": "",
      "type": "string"
    },
    "arguments": {
      "default": "{}",
      "type": "string"
    },
    "prompt_slug": {
      "default": "",
      "type": "string"
    },
    "prompt_vars": {
      "default": "{}",
      "type": "string"
    },
    "prompt_category": {
      "default": "",
      "type": "string"
    },
    "prompt_tool": {
      "default": "",
      "type": "string"
    },
    "prompt_title": {
      "default": "",
      "type": "string"
    },
    "prompt_description": {
      "default": "",
      "type": "string"
    },
    "prompt_body": {
      "default": "",
      "type": "string"
    },
    "prompt_targets": {
      "default": [],
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "claude",
          "chatgpt",
          "cursor",
          "lovable"
        ]
      }
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡authenticate(token)

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.

입력 스키마

{
  "type": "object",
  "properties": {
    "token": {
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 47개
검증됨버전이 기록되지 않음도구 47개