Skip to content

Add Ouzap (WhatsApp) to the connector catalogue - #850

Open
rehoboam-karl wants to merge 1 commit into
CopilotKit:mainfrom
rehoboam-karl:feat/catalogue-ouzap
Open

rehoboam-karl wants to merge 1 commit into
CopilotKit:mainfrom
rehoboam-karl:feat/catalogue-ouzap

Conversation

@rehoboam-karl

Copy link
Copy Markdown

What

Adds Ouzap to the connector catalogue. Ouzap is a Brazilian WhatsApp gateway with a hosted MCP server, so a Bot can list, read and reply to the WhatsApp conversations on a person's Ouzap number and start new ones.

Why a catalogue entry

Ouzap's MCP server only accepts OAuth. A server added by URL takes a static bearer credential, so today it cannot be connected without a code change. Ouzap has the same shape as Notion, so it needs no new machinery:

  • /.well-known/oauth-protected-resource and /.well-known/oauth-authorization-server are both published.
  • It supports dynamic client registration (RFC 7591) at /oauth/register.
  • It is a public client: token_endpoint_auth_methods_supported: ["none"], PKCE S256.

Choices worth a look

  • Scopes: conversations, messages:read and messages:write, which match Ouzap's consent screen ("read and reply to WhatsApp conversations"). contacts:write is left out, so create_contact fails at the vendor.
  • Writes: create_contact, reply_conversation, schedule_whatsapp_message and send_whatsapp_message are pinned in the test. Every one of them reaches a real person's phone.
  • Reads: readTools names the six reads (get_message_status, list_conversations, list_scheduled_messages, list_whatsapp_numbers, read_conversation, search_contacts). Anything else Ouzap advertises later classifies as a write until reviewed, as with Exa and Firecrawl, because a sending tool that slipped through as a read would message real people.
  • Revocation: Ouzap publishes no revocation_endpoint. revokeUrl points at the token endpoint, as Notion's does, and nothing reads the field today.

Tests

  • server/tests/plugin-catalogue.test.ts gets an Ouzap block mirroring Notion's: transport, https-pinned endpoints, scopes, and the pinned write list.
  • bun run typecheck (server) and biome format / biome lint are clean on the changed files.
  • The catalogue, OAuth, MCP listing and plugin route suites pass with 625 tests, the 4 new ones included. 6 tests fail in that set both on main and on this branch, so they come from the environment and not from this change.

Note

The write-tool names come from the tool listing Ouzap's server advertises today. The OAuth endpoints were read live from Ouzap's discovery documents, but the full consent flow has not yet been run end to end against this branch. A first Refresh tools after enabling is the reconciliation the Notion entry calls for.

🤖 Generated with Claude Code

Ouzap runs a hosted MCP server for WhatsApp with OAuth discovery, dynamic
client registration and PKCE as a public client, the same shape as Notion,
so it fits the catalogue without new machinery. Sending, replying,
scheduling and creating a contact are pinned as writes; contacts:write is
not requested.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant