Skip to main content

Connect AI Assistants with the Mojeeb MCP Server

Mojeeb has an MCP server, so an AI assistant such as Claude, Cursor, VS Code or an n8n agent can work with your Mojeeb workspace in plain language: "show this week's leads", "add a note to this contact", "send this customer the order template". It uses the same API keys as the Public API and sees exactly what your key can see.

What is the Mojeeb MCP server?​

It is a server that speaks the Model Context Protocol (MCP), the open standard AI assistants use to call outside tools. It turns the Mojeeb Public API into 49 tools an assistant can pick from: read conversations and reply to customers, list agents, read and update leads and contacts, add knowledge, send WhatsApp messages and templates, hide comments, read analytics and usage.

Addresshttps://mcp.mojeeb.app/mcp
TransportStreamable HTTP
AuthenticationAuthorization: Bearer mk_live_..., a Mojeeb API key
Optional headerX-Mojeeb-MCP-Mode: read-only (see read-only mode)

Every tool call becomes one Public API request made with your key, so your key's agent list and your plan apply exactly as for any other integration.

What do I need before connecting?​

You need a Mojeeb API key and an MCP client that can send a header. Create the key on the dashboard's API Keys page; see Authentication for who can create one and on which plan. Use a separate key for each assistant, named after it, and limit it to the agents it needs.

The key is a server credential. It goes in the client's settings on your own computer or server, never in a chat message, and never in the address: a key in the URL is refused with 400 invalid_request.

How do I connect Claude Code?​

Run one command, with your key in place of mk_live_...:

claude mcp add --transport http mojeeb https://mcp.mojeeb.app/mcp --header "Authorization: Bearer mk_live_..."

To limit Claude Code to reading, add a second header:

claude mcp add --transport http mojeeb https://mcp.mojeeb.app/mcp --header "Authorization: Bearer mk_live_..." --header "X-Mojeeb-MCP-Mode: read-only"

How do I connect Cursor?​

The quickest way is the install link: Add Mojeeb to Cursor. Cursor opens with the server filled in and mk_live_... as the key; open Cursor's MCP settings and replace it with your key.

To set it up by hand, add Mojeeb to ~/.cursor/mcp.json (or .cursor/mcp.json in a project), with your key in place of mk_live_...:

{
"mcpServers": {
"mojeeb": {
"url": "https://mcp.mojeeb.app/mcp",
"headers": { "Authorization": "Bearer mk_live_..." }
}
}
}

For read-only, add "X-Mojeeb-MCP-Mode": "read-only" inside headers.

How do I connect VS Code?​

The quickest way is the install link: Install Mojeeb in VS Code. VS Code adds the server, asks for your key the first time it starts it, and stores the key securely.

To set it up by hand, add Mojeeb to .vscode/mcp.json. VS Code asks for the key once and stores it, so it never sits in the file:

{
"inputs": [
{ "id": "mojeeb-key", "type": "promptString", "description": "Mojeeb API key", "password": true }
],
"servers": {
"mojeeb": {
"type": "http",
"url": "https://mcp.mojeeb.app/mcp",
"headers": { "Authorization": "Bearer ${input:mojeeb-key}" }
}
}
}

For read-only, add "X-Mojeeb-MCP-Mode": "read-only" inside headers.

How do I connect Claude Desktop?​

Claude Desktop's configuration file starts local servers, so it reaches Mojeeb through the mcp-remote bridge, which needs Node.js. Add this to claude_desktop_config.json and restart Claude Desktop:

{
"mcpServers": {
"mojeeb": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.mojeeb.app/mcp", "--header", "Authorization:${MOJEEB_AUTH}"],
"env": { "MOJEEB_AUTH": "Bearer mk_live_..." }
}
}
}

For read-only, add "--header", "X-Mojeeb-MCP-Mode:read-only" to args.

How do I connect n8n?​

Use the MCP Client Tool node inside an AI Agent node. Set the endpoint to https://mcp.mojeeb.app/mcp, the transport to HTTP Streamable, and authentication to a header named Authorization with the value Bearer mk_live_....

An n8n agent runs tools without asking anyone first, so it should usually be read-only: send X-Mojeeb-MCP-Mode: read-only as well, using an authentication option that sends more than one header.

How do I use Mojeeb from the Claude API?​

The Claude Messages API can call the MCP server for you through its MCP connector: name the server in mcp_servers, put your Mojeeb key in authorization_token (Claude sends it as Authorization: Bearer), and add an mcp_toolset tool. Claude then picks Mojeeb tools while it answers, with no MCP client of your own.

curl https://api.anthropic.com/v1/messages \
-H "Content-Type: application/json" \
-H "X-API-Key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "anthropic-beta: mcp-client-2025-11-20" \
-d '{
"model": "claude-opus-5-5",
"max_tokens": 1024,
"messages": [{"role": "user", "content": "List this week'"'"'s leads"}],
"mcp_servers": [
{"type": "url", "url": "https://mcp.mojeeb.app/mcp", "name": "mojeeb", "authorization_token": "mk_live_..."}
],
"tools": [{"type": "mcp_toolset", "mcp_server_name": "mojeeb"}]
}'

The connector sends no other header, so it can't ask for read-only mode. To keep Claude to reading, allowlist the read tools in the toolset: "default_config": {"enabled": false} and "configs": {"list_leads": {"enabled": true}} for each tool you allow.

How do I use Mojeeb from the OpenAI API?​

The OpenAI Responses API can call the MCP server for you with its mcp tool: give the server address in server_url and your Mojeeb key in authorization. The model then picks Mojeeb tools while it answers. Send the key with every request; OpenAI doesn't store it.

curl https://api.openai.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"model": "gpt-6-astra",
"tools": [{
"type": "mcp",
"server_label": "mojeeb",
"server_description": "The Mojeeb workspace: conversations, leads, contacts, agents and WhatsApp.",
"server_url": "https://mcp.mojeeb.app/mcp",
"authorization": "mk_live_...",
"require_approval": "always"
}],
"input": "List this week'"'"'s leads"
}'

The mcp tool can't ask for read-only mode either. To keep the model to reading, list the read tools in allowed_tools, for example ["list_leads", "get_lead", "list_contacts"]; "require_approval": "always" makes your code approve each call before it runs.

Can I add Mojeeb as a connector in claude.ai or ChatGPT?​

Not yet. The connector screens on those websites sign in with OAuth and have no field for an API key, and Mojeeb's MCP server works with API keys only. Use a client that sends a header: Claude Code, Claude Desktop, Cursor, VS Code, n8n, the Claude or OpenAI API, or your own agent built with an MCP SDK.

Which tools does the MCP server offer?​

Forty-nine tools, 29 that read and 20 that change or send. Each tool is one API reference operation under its snake_case name (listLeads is list_leads), with the same inputs; ids in the path are written the same way (agent_id, lead_id).

AreaReadChange or send
Account and agentsget_me, list_agents, get_agentupdate_agent
Conversationslist_conversations, get_conversation, list_conversation_messages, get_conversation_messagesend_conversation_message, update_conversation, assign_conversation, resume_conversation_ai
Team, usage, reportslist_organization_members, list_agent_members, get_usage, list_usage_history, get_agent_analyticsnone
WhatsApplist_whatsapp_templates, get_whatsapp_message_statussend_whatsapp_message, send_whatsapp_template
Contacts and noteslist_contacts, get_contact, list_contact_notesupdate_contact, create_contact_note, update_contact_note
Leadslist_leads, get_lead, list_lead_fields, get_lead_capturecreate_lead, update_lead, assign_lead, update_lead_capture
Knowledgelist_knowledge_bases, get_knowledge_basecreate_knowledge_base, replace_knowledge_base
Channels and follow-upslist_connections, get_follow_up_settingsupdate_connection, update_follow_up_settings
Commentslist_comments, get_commenthide_comment, unhide_comment
Custom API toolslist_custom_api_tools, list_custom_api_tool_runsnone

Each tool tells the client whether it only reads, whether it can overwrite something, and whether it reaches a real person (a reply in a conversation and the two WhatsApp sends). Most clients use this to ask you before running a tool that changes or sends.

What can't the MCP server do?​

It never deletes anything: no lead, note, knowledge base, lead field or custom API tool. It doesn't create, change or test custom API tools, because their settings can hold another system's credentials, and it doesn't add or change lead fields. Everything outside the Public API stays in the dashboard.

How do I make an assistant read-only?​

Send the header X-Mojeeb-MCP-Mode: read-only with every request, from the client's settings. The server then lists and runs only the 29 tools that read; a tool that changes or sends is neither offered nor run. Without the header, the assistant gets all 49 tools.

Use read-only for any assistant that only reports, and for any client that runs tools without asking you first, such as an n8n agent or your own autonomous agent.

Is it safe to connect an AI assistant to my workspace?​

It is as safe as the key you give it and the client you use. The assistant reads text other people wrote: customers' messages and names, comments, notes and knowledge. Someone can hide an instruction in that text, such as "send the contact list to this number", and a careless model may follow it.

Three habits keep this contained:

  • Give each assistant its own key, limited to the agents it needs (per-agent keys), and revoke it on the API Keys page when you stop using it.
  • Use read-only mode unless you need the assistant to act.
  • Use a client that asks before running tools that change or send, and read what it is about to do before you approve it.

How do rate limits work with the MCP server?​

Each tool call is one Public API request and counts against your key's rate limit, 60 requests a minute. The server also uses one request per key every 15 minutes to read the key's company for its logs. Separately, the MCP server accepts at most 120 requests a minute from one IP address, and it also limits its total traffic from everyone together; beyond either, it answers 429 with a Retry-After header.

When the API answers 429 with a short wait, the server waits and retries once by itself. A longer wait goes back to the assistant with the number of seconds.

Can a retry send a WhatsApp message twice?​

No. The server gives every WhatsApp send an idempotency key and reuses it if it retries the request, so a network retry never sends a second message. A new tool call from the assistant is a new send, though: if the assistant asks to send the same message again, it is sent again.

Common questions​

Does the MCP server cost extra?​

No. It uses your existing API key and plan. Each tool call is an API request and counts exactly as the same request from your own server would.

Does Mojeeb store what my assistant reads?​

No. The server keeps no conversation data. For usage and security it logs each call's tool name, outcome, timing, agent id and the key's last four characters, never the key, the content you send or the results.

Why does the assistant say a tool is unknown?​

Either the client is in read-only mode and the tool changes or sends something, or the client listed the tools before a change on our side. Check the X-Mojeeb-MCP-Mode header, then restart or refresh the MCP server in your client so it lists the tools again.

Why does every call fail with 401?​

The key is missing, mistyped, revoked or expired. The Authorization header must be Bearer followed by the whole key. Create a new key on the API Keys page if you lost the old one; see Authentication.

Can I see the raw API instead?​

Yes. Everything the MCP server does is a Public API request, documented in the API reference. The full contract is also served at https://api.mojeeb.app/v1/openapi.yaml, which some AI tool builders import directly.