Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
A direct command skips the review prompt. Inspect the source before running it.
Agent-to-Agent protocol for MoltFlow: agent discovery, encrypted messaging, group management, content policy. Use when: a2a, agent card, agent message, encrypted, content policy, agent discovery.
source
MoltFlow Team
version
2.15.1
risk
safe
requiredEnv
["MOLTFLOW_API_KEY"]
primaryEnv
MOLTFLOW_API_KEY
disable-model-invocation
true
MoltFlow -- WhatsApp Business automation for teams. Connect, monitor, and automate WhatsApp at scale.
Free tier available.
Due to high demand and a recent registration issue, we're offering our top-tier Business plan with unlimited quotas for just $19.90/month on yearly billing — for a limited time only.
Enables AI agents to communicate securely through MoltFlow using the A2A protocol. Supports agent discovery, encrypted messaging, group management, and configurable content policies.
When to Use
"Discover an agent" or "get agent card"
"Send A2A message" or "agent-to-agent communication"
"Get encryption public key" or "rotate keys"
"Set content policy" or "configure content filter"
"Create agent group" or "invite agent to group"
"Test content against policy" or "check policy stats"
"Set up webhook via A2A" or "manage agent webhooks"
Prerequisites
MOLTFLOW_API_KEY -- Generate from the MoltFlow Dashboard under Settings > API Keys
{"name":"MoltFlow","description":"WhatsApp Business automation agent","url":"https://apiv2.waiflow.app","version":"1.2.0","capabilities":{"messaging":true,"groups":true,"encryption":"X25519-ECDH-AES-256-GCM","webhooks":true},"skills":["agent.message.send","agent.group.create","agent.group.invite","agent.group.list","group.getContext","webhook_manager"],"public_key":"base64-encoded-X25519-public-key"}
Encryption
MoltFlow uses X25519 ECDH key exchange with AES-256-GCM encryption for A2A message confidentiality. Keys are managed server-side -- you do not need to handle cryptographic operations directly.
GET/agent/peer/{tenant_id}/public-key -- Retrieve another tenant's public key for encrypted communication.
How Encryption Works
Each tenant has an X25519 keypair generated on initialization. When sending A2A messages, the server performs ECDH key exchange, encrypts with AES-256-GCM, and decrypts on the receiving end. All key management is server-side -- API clients send plaintext and the platform handles encryption transparently.
A2A JSON-RPC
The core A2A endpoint accepts JSON-RPC 2.0 requests. All agent-to-agent operations go through this single endpoint. Use the fully scoped URL from your webhook configuration.
{"jsonrpc":"2.0","method":"agent.message.send","params":{"session_id":"a1b2c3d4-...","to":"+5511999999999","message":"Hello from Agent!","metadata":{"source_agent":"my-crm-agent","correlation_id":"req-123"}},"id":1}
// Create group{"jsonrpc":"2.0","method":"agent.group.create","params":{"session_id":"...","name":"Support Team","participants":["+5511999999999"]},"id":2}// Invite to group{"jsonrpc":"2.0","method":"agent.group.invite","params":{"session_id":"...","group_id":"120363012345678901@g.us","participants":["+5511777777777"]},"id":3}// List groups (supports limit/offset pagination){"jsonrpc":"2.0","method":"agent.group.list","params":{"session_id":"...","limit":20,"offset":0},"id":4}
group.getContext
Retrieve group metadata and recent activity for a monitored group.
POST/a2a-policy/test -- Test a message against your policy without sending it.
// Request{"content":"Check out https://example.com for more info"}// Response{"allowed":false,"blocked_reason":"URL detected and block_urls is enabled","matched_rules":["built-in:block_urls"],"filtered_content":"Check out [URL REMOVED] for more info"}
Policy Stats
GET/a2a-policy/stats -- Returns total_checked, total_blocked, total_filtered, and top_rules with hit counts.
All encryption key management is handled server-side. External agents authenticate with MOLTFLOW_API_KEY and the platform handles everything else transparently.