WhatsApp MCP server: Mujib's URL, OAuth sign-in and tools
Mujib’s WhatsApp MCP server is one URL, https://api.mujib.ai/mcp. Claude or ChatGPT connects to it and reads your business’s WhatsApp, Instagram and Messenger conversations, bookings, customers and orders, through the account of the owner or admin who connected it. With full access it also improves the agent. The server never sends a message to your customers.
This page is the developer view: the URL, authentication, scopes and tools. The steps to add it inside each app are in Mujib in Claude and Mujib in ChatGPT.
What is the WhatsApp MCP server URL?
Section titled “What is the WhatsApp MCP server URL?”The URL is https://api.mujib.ai/mcp, and the dashboard shows it too: open Integrations, then the Mujib in Claude or Mujib in ChatGPT card, and copy it under Connection link with Copy the link.
| Item | Value |
|---|---|
| URL | https://api.mujib.ai/mcp |
| Transport | Streamable HTTP, POST requests only; each request stands alone, with no stored session |
| Authentication | OAuth with PKCE; the token goes in Authorization: Bearer <token> |
| Scopes | mujib:read to read, mujib:agent to change the agent |
A request with no token gets 401 and the discovery document’s address in the WWW-Authenticate header, which is how an app learns where to sign in:
curl -i https://api.mujib.ai/mcpHTTP/1.1 401 Unauthorizedwww-authenticate: Bearer resource_metadata="https://api.mujib.ai/.well-known/oauth-protected-resource/mcp"
{"error":"A Mujib sign-in is required."}Which apps can connect to the MCP server?
Section titled “Which apps can connect to the MCP server?”Only Claude and ChatGPT. Each app registers itself on its first connection, and Mujib accepts the registration only when all of its return addresses are on claude.ai, claude.com or chatgpt.com over https.
- Any other app, including one that returns to an address on your own computer, is refused with
invalid_redirect_uri. - The consent page names the app by where its sign-in code returns, not by the name it registered with, and shows that address.
- Steps to add it: Mujib in Claude and Mujib in ChatGPT.
How does the OAuth sign-in work?
Section titled “How does the OAuth sign-in work?”Mujib follows the standard MCP flow: the app discovers the sign-in server from the URL itself, registers, then sends the person to sign in and consent.
- The app sends a request with no token and gets
401with the protected-resource document’s address. - It reads
https://api.mujib.ai/.well-known/oauth-protected-resource/mcpand learns the sign-in server,https://api.mujib.ai/api/auth. - It reads the sign-in server’s settings from
https://api.mujib.ai/.well-known/oauth-authorization-server/api/authand registers athttps://api.mujib.ai/api/auth/oauth2/register. - It opens Mujib’s sign-in page for the person, with the two-step verification code when it is on, then the consent page, where they press Allow.
- The app exchanges the authorization code for an access token and a refresh token, with PKCE
S256. - It sends the token with every
POSTto/mcp.
This is the protected-resource document as the server returns it:
{ "resource": "https://api.mujib.ai/mcp", "authorization_servers": ["https://api.mujib.ai/api/auth"], "bearer_methods_supported": ["header"], "dpop_signing_alg_values_supported": ["EdDSA", "ES256", "ES512", "PS256", "RS256"], "scopes_supported": ["mujib:read", "mujib:agent"]}Mujib checks again on every request: that the person is still an owner or admin with an active account, that the business is active, and that the consent still exists. Disconnect the assistant, or change any of these, and access stops from the next request.
What is the difference between mujib:read and mujib:agent?
Section titled “What is the difference between mujib:read and mujib:agent?”mujib:read allows reading only and is required on every connection; mujib:agent adds tools that change the agent’s setup.
| Scope | What it allows | On the consent page |
|---|---|---|
mujib:read | 11 read tools: conversations, bookings, customers, orders and the agent’s setup | Always required |
mujib:agent | 4 more tools that change the knowledge base, corrections and the agent’s instructions | The Full access: it sees and improves the agent box, ticked by default |
- Untick the box before Allow and the app gets read access only.
- Each connection’s level shows in the Connected list: Full access or Can only look — for full access, disconnect it and connect again
- The editing tools need
mujib:agentin the token and in the current consent; a narrower consent later takes them away, even from an older token.
Which tools does the MCP server offer?
Section titled “Which tools does the MCP server offer?”The server offers 15 tools. An app gets each tool’s input schema from tools/list, and the read tools carry readOnlyHint.
| Tool | What it does | Kind |
|---|---|---|
workspace_info | The business name, its branches, today’s date and the sections it uses | Read |
waiting_for_staff | Conversations handed to staff and waiting for a reply, with the customer, channel and last message | Read |
activity_summary | A period’s summary: conversations, new customers, what the agent handled alone, handoffs and first-response time | Read |
list_bookings | Appointments for a day or a few days, with time, customer, specialist, branch and status | Read |
find_customers | Finds a customer by name, in any Arabic spelling, or by number | Read |
read_conversation | The latest messages of a customer’s conversation, marked customer, agent or staff | Read |
customer_messages_today | Today’s customer messages without names, to find the most common questions | Read |
list_orders | Active or finished orders, with today’s totals | Read |
leads_to_follow_up | Interested customers who went quiet, with the days since they last wrote | Read |
get_agent_setup | The agent’s instructions, handoff rules, preferred and forbidden words, and active corrections | Read |
search_knowledge | Searches the agent’s knowledge base | Read |
add_knowledge_entry | Adds an entry to the knowledge base | Change |
update_knowledge_entry | Edits an entry’s title or text, or switches it off | Change that replaces what is there |
add_agent_correction | A short rule the agent follows: how to answer, or a correct fact | Change |
update_agent_instructions | Replaces the agent’s instructions, handoff instructions, or the word lists | Change that replaces what is there |
list_bookingsrefuses when bookings are off for your business, andlist_orderswhen your business does not take orders.- A tool’s result is JSON text; an error is a result with
isErrorand a short sentence giving the reason. - Every change applies to the agent from its next reply and can be undone on the Integrations page.
What limits and errors can an app receive?
Section titled “What limits and errors can an app receive?”Each connection, meaning one person with one app, may make 120 requests a minute.
| Situation | Answer |
|---|---|
| Over the per-minute limit | 429 with a Retry-After header |
| No token | 401 with the discovery document’s address |
| The connection was removed, the person’s account was disabled, or the business is no longer active | 401 with error="invalid_token", so the app asks to sign in again |
| The person is no longer an owner or admin | 403 with error="insufficient_scope" |
| Wrong input, or something not found in your business | A tool result with isError |
How do I review what the assistant read and undo its changes?
Section titled “How do I review what the assistant read and undo its changes?”Everything the assistant does shows on the app’s own card on the Integrations page.
- Open the Mujib in Claude or Mujib in ChatGPT card.
- What it read lately lists its latest requests, each with a short label and never message text. Mujib keeps this log for 90 days.
- What it changed in the agent lists the latest changes to the agent, from Claude or ChatGPT, each with Undo to put the agent back as it was from its next message.
- Under Connected, press Disconnect next to anyone to stop their access at once.
Frequently asked questions
Can the MCP server send WhatsApp messages to my customers?
No. None of its tools sends a message to a customer. It reads your business's data, and changes the agent's setup only when you grant full access.
Can I connect it to an app other than Claude or ChatGPT?
No. Mujib accepts registrations only from apps that return to Claude's or ChatGPT's own sites, and refuses any other app.
Who can connect an assistant to Mujib?
Only the account owner and admins, each from their own account. The two-step verification code is still asked for when it is on.
How do I cut an assistant's access at once?
Open the app's card on the Integrations page and press “Disconnect” next to the person. Access stops from the next request, not when the token expires.
Is what the assistant reads logged?
A short label of each request is kept, such as the tool and what it searched for, never message text, for 90 days.