← Back to directory
O

OpenWA

Community
Free, open-source WhatsApp API gateway that can serve as an MCP server for AI agents
Category
Dev Tools #290 of 438
Stars
★ 15.3k Very popular
Transport
Streamable HTTP
Runtime
Docker · Node.js 22 LTS
Credentials
API key / credential required
License
MIT
Last commit
Tools
1
47FMRS · D

OpenWA offers a lightweight MCP server to safely expose WhatsApp automation capabilities to AI agents, but requires developers to have deployment and configuration experience and accept the risks of unofficial APIs.

Strongest · Documentation 14/20 Weakest · Reliability 5/20

Reliability
5/20
Security and permissions
10/20
Maintenance
6/20
Documentation
14/20
Setup experience
12/20
Why each score
Reliability 5/20
Limited evidence: README claims MCP is off by default, mounts POST /mcp when MCP_ENABLED=true, and exposes 51 curated tools behind API-key auth; but no server manifest, source, tests, or CI execution evidence is supplied, so the declared tool list cannot be matched to real behavior and error paths/dependencies are not diagnosable. Deduction: static calibration requires verifiable execution evidence and missing evidence lowers the score.
Security and permissions 10/20
No red lines triggered (no malware, credential theft, real secrets, or default destructive actions). README documents a solid control surface: MCP disabled by default, dedicated least-privilege keys, OPERATOR/session scoping, MCP_READONLY, rate limiting, and an explicit warning not to expose /mcp publicly; examples use placeholders only. Deduction: these controls are only documented, not verifiable from source, and explicit confirmation for dangerous operations is not present in the material.
Maintenance 6/20
Evidence shows the repository is not archived, has an MIT license, and few open issues; the README also references CI and a docs tree. These are surface activity signals. Deduction: no verifiable commit history, releases, dependency-update cadence, or security-response channel, so sustained maintenance and governance cannot be confirmed.
Documentation 14/20
The supplied README is well layered: install steps, ports, curl API examples, MCP .mcp.json client config, auth/read-only/rate-limit guidance, WhatsApp ban-risk warnings, security architecture, and a docs index. Deduction: the 51 MCP tools and their parameter schemas are not listed, the actual docs files are not supplied, and there is no evidence of more granular cost or troubleshooting guidance.
Setup experience 12/20
The install path is clear: one-command Docker Compose, local npm ci flow, production profiles, port table, MCP client configuration example, and multi-arch images. Deduction: MCP is off by default and API-key creation is not shown; the WhatsApp session/QR flow is not independently verifiable; under static calibration, missing test/CI evidence caps this dimension at 15.

Static review · not runListed 2026-08-07

Read the FMRS scoring method →

Fit and risk

What it can accessUses the networkChanges third-party account data

Best for

  • Developers and hobbyists wanting a self-hosted WhatsApp API gateway
  • Scenarios requiring WhatsApp automation integrated into AI agents
  • Personal projects or internal tools needing low-cost messaging automation
  • Developers willing to accept unofficial API risks and account restrictions

Not for

  • Production environments requiring official WhatsApp Cloud API compliance (e.g., healthcare, finance, large-scale commercial messaging)
  • Users who cannot accept account ban risks
  • Users wanting zero-configuration setup (requires some deployment and configuration)
  • Scenarios needing full REST API coverage (MCP exposes only curated tools)

Required permissions

  • Requires API key authentication (role OPERATOR or lower, session-scoped)
  • May require access to the Docker socket (if using built-in orchestration, protected by docker-proxy)
  • MCP endpoint must be reachable from the client (e.g., localhost or LAN)
  • Recommended to use a dedicated WhatsApp number to avoid risks to primary numbers

Risks and side effects

  • Unofficial WhatsApp API, risk of account restriction or ban
  • Messages may be dropped by WhatsApp server-side (first message to new contacts)
  • Requires regular updates to dependencies to cope with WhatsApp protocol changes
  • If /mcp is exposed publicly without an auth proxy, it could be abused

Setup

Before you start

Runtime:Docker · Node.js 22 LTS

MCP_ENABLED required Set to true to mount the MCP server at POST /mcp; off by default.
Other optional settings (4)
MCP_READONLY optional Set to true to mount only read tools, disabling sends/writes.
MCP_RATE_LIMIT_MAX optional Max MCP tool calls per API key per window; defaults to 60.
MCP_RATE_LIMIT_WINDOW_MS optional Sliding rate-limit window in milliseconds; defaults to 60000.
ENGINE_TYPE optional Selects the WhatsApp engine (whatsapp-web.js or baileys); set in .env or compose.
  1. Clone the repo: git clone https://github.com/rmyndharis/OpenWA.git && cd OpenWA\n2. Start Docker: docker compose -f docker-compose.dev.yml up -d (or use production deployment commands)\n3. Set MCP_ENABLED=true environment variable (in .env or docker-compose)\n4. Restart the service: npm run start:prod or restart the container\n5. Configure an MCP client (e.g., Claude Code's .mcp.json) with URL http://localhost:2785/mcp and include your API key in headers.
claude_desktop_config.json
{
  "mcpServers": {
    "openwa": {
      "type": "http",
      "url": "http://localhost:2785/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}

Shown for Claude Desktop. Other clients may use a different file or key (VS Code uses "servers") — the configurator below converts it.

.vscode/mcp.json
{
  "servers": {
    "openwa": {
      "type": "http",
      "url": "http://localhost:2785/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}

Goes in your project's .vscode/mcp.json (VS Code uses a "servers" key).

Terminal
claude mcp add --transport http openwa http://localhost:2785/mcp --header 'Authorization: Bearer YOUR_API_KEY'

Run it in a terminal; replace any <…> placeholders with your own values first.

Check that it works

After setting MCP_ENABLED=true and starting the server, point your MCP client at http://localhost:2785/mcp — the openwa session/messaging tools should appear in the tool list. A successful read-only call (e.g. listing sessions or webhook reads) proves the API key auth and connection work.

Troubleshooting

  1. Check that MCP_ENABLED is set and the service has been restarted
  2. Verify the API key is valid with the correct role and session scope (no IP allow-list)
  3. Check network connectivity to ensure the client can reach the /mcp endpoint
  4. Inspect service logs to confirm MCP mounted successfully
  5. Validate that the Authorization or X-API-Key header is correct

Things to try

Once connected, you can ask your AI assistant things like:

  • List all WhatsApp sessions on my OpenWA instance and their connection status
  • Send a text message via the openwa session to [email protected]
  • Show me all webhooks configured on this session and their subscribed events
  • Apply a label to a chat and list the existing labels

Tools 1

51 curated tools (sessions, messaging, contacts, basic group ops, webhook reads, labels, automation-rule reads)
Provides 51 curated tools for session management, sending/receiving messages, contact management, basic group operations, webhook reads, label management, and automation rule reads, callable by AI agents.

Use cases

Let AI agents automatically reply to WhatsApp messages
Send scheduled messages or notifications via AI assistants
Automate customer support with AI agents handling common queries
Integrate chatbots into WhatsApp groups

Supported clients

Claude Desktop
Cursor

Listed from the project's documentation, not tested by this site.

Overview

OpenWA is a free, open-source, self-hosted WhatsApp API gateway offering REST API, webhooks, multi-session management, and a web dashboard. It supports pluggable database, storage, and cache backends. When MCP_ENABLED=true is set, it mounts a stateless Streamable-HTTP transport at POST /mcp on the existing server, exposing 51 curated tools (sessions, messaging, contacts, basic group ops, webhook reads, labels, automation-rule reads) for AI agents like Claude and Cursor. The MCP server is off by default and additive, leaving all REST routes unchanged.

Similar servers

Context7 80 · B

Upstash's official server providing up-to-date third-party library docs for AI coding assistants

★ 62.9k · Tools 2 Compare with this →

Source revision 8a45366a2877 Data synced 2026-10-12 Read the FMRS scoring method