WALoops MCP
A remote MCP server that provides AI coding assistants with tools to manage WhatsApp OTPs, conversations, campaigns, and automations. It supports reading account data, creating automation drafts, and sending OTP codes via a free key or an Advance plan API key.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://app.waloops.com/api/mcp.phpWhat you can do with it
- Send one-time passwords for user verification
- List and manage WhatsApp conversations
- Create automation drafts for customer engagement
- Check OTP account usage statistics
Source and maintenance
- Maintenance checked
Protocol and capabilities
- Server
- waloops 1.0.0
- MCP protocol
- 2025-06-18
- Tools
- 20 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": false
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
20 advertised
get_started
Explain WALoops setup, key types, available tool groups, API docs, and example OTP requests.
{
"type": "object",
"additionalProperties": false
}send_otp
Send an OTP to an international phone number. A free OTP key sends from the WALoops WhatsApp number; channel may be whatsapp or sms.
{
"type": "object",
"required": [
"phone",
"site_url"
],
"properties": {
"phone": {
"type": "string",
"description": "International digits, for example 919876543210."
},
"channel": {
"enum": [
"whatsapp",
"sms"
],
"type": "string"
},
"purpose": {
"type": "string",
"default": "login",
"description": "OTP purpose; defaults to login."
},
"site_url": {
"type": "string",
"description": "URL of the app or site this OTP is for, e.g. https://myapp.com. Required by the OTP API so every key has a known site."
}
},
"additionalProperties": false
}verify_otp
Verify a previously sent OTP using the recipient’s phone number and code.
{
"type": "object",
"required": [
"phone",
"code",
"site_url"
],
"properties": {
"code": {
"type": "string",
"description": "The OTP code received by the user."
},
"phone": {
"type": "string",
"description": "International phone number in digits."
},
"site_url": {
"type": "string",
"description": "URL of the app or site this OTP is for, e.g. https://myapp.com. Required by the OTP API so every key has a known site."
}
},
"additionalProperties": false
}get_otp_usage
Read OTP usage for the API key, including available usage or limits.
{
"type": "object",
"required": [
"site_url"
],
"properties": {
"site_url": {
"type": "string",
"description": "URL of the app or site this OTP is for, e.g. https://myapp.com. Required by the OTP API so every key has a known site."
}
},
"additionalProperties": false
}{
"readOnlyHint": true
}list_templates
Requires an Advance plan key. List the client’s approved WhatsApp templates and their variables.
{
"type": "object",
"additionalProperties": false
}{
"readOnlyHint": true
}send_template
Requires an Advance plan key. Send an approved WhatsApp template; call list_templates first to confirm the template name and variables.
{
"type": "object",
"required": [
"to",
"template"
],
"properties": {
"to": {
"type": "string",
"description": "Recipient phone number in digits."
},
"template": {
"type": "string",
"description": "Name of an approved template."
},
"variables": {
"oneOf": [
{
"type": "object",
"additionalProperties": {
"type": "string"
}
},
{
"type": "array",
"items": {
"type": "string"
}
}
],
"description": "Template variables as an object or an array of strings."
}
},
"additionalProperties": false
}get_dashboard_stats
Requires an Advance plan key. Messages, conversations, automations and plan usage overview.
{
"type": "object",
"additionalProperties": false
}{
"readOnlyHint": true
}list_conversations
Requires an Advance plan key. List and search inbox conversations.
{
"type": "object",
"properties": {
"page": {
"type": "integer"
},
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1
},
"search": {
"type": "string"
}
},
"additionalProperties": false
}{
"readOnlyHint": true
}get_conversation_messages
Requires an Advance plan key. List messages in a conversation.
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"description": "Conversation id from list_conversations."
},
"page": {
"type": "integer"
},
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1
}
},
"additionalProperties": false
}{
"readOnlyHint": true
}list_automations
Requires an Advance plan key. List automations, or fetch one automation with its run stats by id.
{
"type": "object",
"properties": {
"id": {
"type": "integer",
"description": "Optional automation id."
}
},
"additionalProperties": false
}{
"readOnlyHint": true
}list_connected_apps
Requires an Advance plan key. Connected apps (Shopify, WooCommerce, etc.) with their app_key and available event_key triggers; call before create_automation_draft.
{
"type": "object",
"additionalProperties": false
}{
"readOnlyHint": true
}list_actions
Every action an automation can run (WhatsApp, Shopify, WooCommerce, webhook to any external tool, bot flows, tags) with the action_config each needs. Combine any trigger from list_connected_apps with any action.
{
"type": "object",
"additionalProperties": false
}{
"readOnlyHint": true
}list_recipes
Requires an Advance plan key. List proven ready-made automations that can be installed as safe drafts.
{
"type": "object",
"additionalProperties": false
}{
"readOnlyHint": true
}list_bot_flows
Requires an Advance plan key. List bot flows available as automation actions.
{
"type": "object",
"additionalProperties": false
}{
"readOnlyHint": true
}list_tags
Requires an Advance plan key. List tags available as automation actions.
{
"type": "object",
"additionalProperties": false
}{
"readOnlyHint": true
}install_recipe_draft
Requires an Advance plan key. Installs a recipe as a switched-off draft for the owner to review.
{
"type": "object",
"required": [
"recipe_key"
],
"properties": {
"name": {
"type": "string",
"description": "Optional draft name."
},
"recipe_key": {
"type": "string",
"description": "Recipe key from list_recipes."
},
"instance_id": {
"type": "integer",
"description": "Optional trigger app instance_id from list_connected_apps."
},
"template_id": {
"type": "integer",
"description": "Optional approved template id from list_templates."
},
"action_instance_id": {
"type": "integer",
"description": "Optional action app instance_id from list_connected_apps."
}
},
"additionalProperties": false
}{
"readOnlyHint": false,
"destructiveHint": false
}list_campaigns
Requires an Advance plan key. List campaigns, or fetch one campaign by id.
{
"type": "object",
"properties": {
"id": {
"type": "integer",
"description": "Optional campaign id."
}
},
"additionalProperties": false
}{
"readOnlyHint": true
}create_template
Requires an Advance plan key. Creates a WhatsApp template and submits it to Meta for approval (usually minutes to a few hours). Check status later with list_templates.
{
"type": "object",
"required": [
"name",
"category",
"body"
],
"properties": {
"body": {
"type": "string",
"description": "Template body; may use {{1}}, {{2}} variables."
},
"name": {
"type": "string",
"description": "Lowercase letters, digits, and underscores only."
},
"footer": {
"type": "string"
},
"header": {
"type": "object",
"properties": {
"text": {
"type": "string"
},
"format": {
"type": "string"
},
"media_url": {
"type": "string"
}
},
"additionalProperties": true
},
"buttons": {
"type": "array",
"items": {
"type": "object",
"required": [
"type",
"text"
],
"properties": {
"url": {
"type": "string"
},
"text": {
"type": "string"
},
"type": {
"enum": [
"QUICK_REPLY",
"URL",
"PHONE_NUMBER"
],
"type": "string"
},
"phone_number": {
"type": "string"
}
},
"additionalProperties": false
}
},
"category": {
"enum": [
"MARKETING",
"UTILITY"
],
"type": "string"
},
"examples": {
"type": "array",
"items": {
"type": "string"
},
"description": "Sample values for body variables; required by Meta when variables are used."
},
"language": {
"type": "string",
"default": "en"
}
},
"additionalProperties": false
}{
"readOnlyHint": false,
"destructiveHint": false
}pause_automation
Requires an Advance plan key. Switches an automation OFF. For safety, automations can only be turned ON by the account owner inside the WALoops app.
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"description": "Automation id."
}
},
"additionalProperties": false
}{
"readOnlyHint": false,
"destructiveHint": false
}create_automation_draft
Requires an Advance plan key. Creates an automation as a DRAFT: saved switched OFF and named "[AI draft] ...". Nothing is sent until the account owner reviews it and turns it on in the WALoops app (Automations page). Tell the user this.
{
"type": "object",
"required": [
"name",
"app_key",
"event_key"
],
"properties": {
"name": {
"type": "string"
},
"stage": {
"type": "string"
},
"app_key": {
"type": "string",
"description": "App key from list_connected_apps."
},
"event_key": {
"type": "string",
"description": "Event key from list_connected_apps."
},
"conditions": {
"type": "array"
},
"action_type": {
"type": "string"
},
"instance_id": {
"type": "integer",
"description": "instance_id from list_connected_apps; needed when the account has more than one store of that app."
},
"template_id": {
"type": "integer",
"description": "WALoops template id from list_templates."
},
"action_config": {
"type": "object"
},
"field_mapping": {
"type": "object",
"description": "Template variable number to event field path."
},
"schedule_type": {
"enum": [
"immediate",
"delay"
],
"type": "string"
},
"action_app_key": {
"type": "string",
"default": "whatsapp"
},
"recipient_mode": {
"enum": [
"auto",
"manual"
],
"type": "string"
},
"condition_match": {
"enum": [
"all",
"any"
],
"type": "string"
},
"recipient_phone": {
"type": "string"
},
"action_instance_id": {
"type": "integer",
"description": "Action app instance_id from list_connected_apps; needed when there are multiple stores."
},
"schedule_delay_unit": {
"enum": [
"minutes",
"hours",
"days"
],
"type": "string"
},
"schedule_delay_value": {
"type": "integer"
}
},
"additionalProperties": false
}{
"readOnlyHint": false,
"destructiveHint": false
}Prompts
Not advertised
Resources
Not advertised
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 1861 ms
- 95th percentile latency
- 1861 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 1861 ms · metadata changed · 20 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http waloops-mcp https://app.waloops.com/api/mcp.phpCodex
codex mcp add waloops-mcp --url https://app.waloops.com/api/mcp.phpCursor
{
"mcpServers": {
"waloops-mcp": {
"url": "https://app.waloops.com/api/mcp.php"
}
}
}Cline
{
"mcpServers": {
"waloops-mcp": {
"type": "streamableHttp",
"url": "https://app.waloops.com/api/mcp.php",
"disabled": false
}
}
}VS Code
{
"servers": {
"waloops-mcp": {
"type": "http",
"url": "https://app.waloops.com/api/mcp.php"
}
}
}Gemini CLI
gemini mcp add --transport http waloops-mcp https://app.waloops.com/api/mcp.phpClaude Desktop
{
"mcpServers": {
"waloops-mcp": {
"url": "https://app.waloops.com/api/mcp.php"
}
}
}Windsurf
{
"mcpServers": {
"waloops-mcp": {
"serverUrl": "https://app.waloops.com/api/mcp.php"
}
}
}Let your agent find its tools
Find servers like WALoops MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.