> ## Documentation Index
> Fetch the complete documentation index at: https://docs.notifique.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Notifique MCP

> Connect Cursor, Claude, or other IDEs to Notifique and send messages from chat.

<Tip>
  MCP is your IDE **waiter**: you ask in plain language ("send a WhatsApp", "list failed webhooks") and the AI calls the Notifique API for you.
</Tip>

## What is MCP?

**MCP** (Model Context Protocol) is a bridge between the AI on your computer and the Notifique API. Instead of crafting HTTP requests by hand, you chat and the AI uses ready-made tools.

Think of a waiter: you order the dish; they take it to the kitchen (API) and bring back the response.

Server: `https://mcp.notifique.dev/mcp`. Uses the **same API Key** as your app.

## What is it for?

With MCP you can:

* **Send** WhatsApp (text, buttons, list, media), SMS, email, push, RCS, voice, and Instagram Direct
* **Connect** official WhatsApp (Cloud API) or unofficial (QR)
* **Query** message status, instances, templates, contacts, and webhooks
* **Sync** templates with the Meta WABA (`whatsapp.sync_templates`, `whatsapp.push_template`)
* **Manage** instances and view metrics (`metrics_overview`, `metrics_logs`)
* **Notify** across multiple channels in one call via `POST /v1/notify`

Common tools: `whatsapp.send_text`, `whatsapp.send`, `whatsapp.create_instance`, `messages.send_template`, `messages.send_sms`, `messages.send_email`. For voice, use **`POST /v1/voice/calls`** via a generic tool.

Not sure which tool to use? Ask for **`system.help`** or **`system.capabilities`**.

***

## Official WhatsApp in MCP

Think of Cloud API as Meta’s **official counter**: outside the 24-hour window you may only send an **approved template**; inside it, text, buttons, and lists are allowed.

| Task                                              | Tool                                    | Detail                                                                             |
| ------------------------------------------------- | --------------------------------------- | ---------------------------------------------------------------------------------- |
| Create unofficial (QR) line                       | `whatsapp.create_instance`              | `mode: "UNOFFICIAL"` (default)                                                     |
| Create official line (bring-your-own credentials) | `whatsapp.create_instance`              | `mode: "OFFICIAL_BYOK"` + `metaAccessToken` + `metaPhoneNumberId` (+ `metaWabaId`) |
| Create official with shareable link               | `whatsapp.create_instance`              | `mode: "OFFICIAL"` + `generateShareableLink: true`                                 |
| Embedded Signup in the browser                    | Dashboard / Aura                        | MCP **cannot** open Facebook login; use the dashboard, Aura, or the shareable link |
| Send text / buttons / list                        | `whatsapp.send` or `whatsapp.send_text` | Official lines: only with an open 24h window                                       |
| Outside 24h                                       | `messages.send_template`                | `WHATSAPP_OFFICIAL` + `APPROVED` template                                          |
| Sync Meta ↔ local                                 | `whatsapp.sync_templates`               | `mode: preview` then `apply`                                                       |
| Publish template to WABA                          | `whatsapp.push_template`                | Mirrors HEADER/FOOTER/BUTTONS/carousel                                             |

Example, create an official instance in advanced mode:

```json theme={null}
{
  "name": "Cloud Support",
  "mode": "OFFICIAL_BYOK",
  "metaAccessToken": "EAAG...",
  "metaPhoneNumberId": "1234567890",
  "metaWabaId": "9876543210"
}
```

Example, buttons message (session, inside 24h):

```json theme={null}
{
  "to": "5511999999999",
  "type": "buttons",
  "payload": {
    "description": "How can we help?",
    "footer": "Notifique",
    "buttons": [
      { "type": "reply", "id": "sales", "displayText": "Sales" },
      { "type": "reply", "id": "support", "displayText": "Support" }
    ]
  }
}
```

<Warning>
  If the API returns `META_TEMPLATE_REQUIRED`, the official line is outside the 24h window. Use `messages.send_template`, do not retry with freeform text.
</Warning>

<Info>
  Full Cloud API guide: [Official Quick Start](/en/whatsapp-api/como-funciona/quick-start). QR vs official: [Connection modes](/en/whatsapp-api/como-funciona/modos-de-conexao).
</Info>

## When to use it?

| Situation                                    | Use MCP?                           |
| -------------------------------------------- | ---------------------------------- |
| Test a send without leaving Cursor or Claude | **Yes**                            |
| Generate code that runs in your backend      | No (use LLMs.txt + Skill)          |
| Visual automation without code               | No (use [n8n](/build-with-ai/n8n)) |

## Example phrases

* "What's the status of message X?"
* "Which WhatsApp instances are active? Which ones are official?"
* "Create an official WhatsApp connection with my token and phone number id"
* "Send a text to +1…"
* "Send a Yes/No buttons message to this number"
* "Sync Meta templates on this instance"
* "Show webhooks that failed today"
* "Send an RCS to 5511999999999"
* "Originate a voice call to +5511999887766 saying Hello"
* "Send an Instagram DM to @username"

## How to set up

### Claude Desktop

Edit the config file:

* **macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`
* **Windows:** `%APPDATA%\Claude\claude_desktop_config.json`

Replace `sk_...` with your key and restart Claude.

```json theme={null}
{
  "mcpServers": {
    "notifique": {
      "url": "https://mcp.notifique.dev/mcp",
      "headers": {
        "X-API-Key": "sk_..."
      }
    }
  }
}
```

### Cursor

Open **Settings → MCP** or create `.cursor/mcp.json` in the project root:

```json theme={null}
{
  "mcpServers": {
    "notifique": {
      "url": "https://mcp.notifique.dev/mcp",
      "headers": {
        "X-API-Key": "sk_..."
      }
    }
  }
}
```

### Claude Code

```bash theme={null}
claude mcp add notifique https://mcp.notifique.dev/mcp \
  --transport http \
  --header "X-API-Key: sk_..."
```

### Other MCP apps

Use URL `https://mcp.notifique.dev/mcp` and send the key in the header:

* `X-API-Key: sk_...`
* or `Authorization: Bearer sk_...`

<Warning>
  Never put your key in a public repository. Leaked? Revoke it in the dashboard and create a new one.
</Warning>

## Test if the server is up

No API Key needed:

```bash theme={null}
curl -sS https://mcp.notifique.dev/health
```

If you see `"ok": true`, the server is working.

## Security and tips

| Topic                           | Behavior                                           |
| ------------------------------- | -------------------------------------------------- |
| **No valid key**                | **401** response                                   |
| **Sensitive actions**           | May ask for `confirm: "YES"`                       |
| **Logs**                        | Full key is not shown                              |
| **Multiple WhatsApp instances** | Pass **`instanceId`** when sending                 |
| **Retry**                       | Use **`idempotencyKey`** on sends                  |
| **Status of one message**       | Use the channel tool (e.g. `whatsapp.get_message`) |

<Note>
  [Notifique MCP](/build-with-ai/mcp-notifique) (IDE + API Key) is **different** from workspace assistant MCP. See [Automations](/en/automations-api/como-funciona/introducao).
</Note>

***

## Next steps

* [Build with AI](/build-with-ai): overview
* [LLMs.txt](/build-with-ai/llm): map for generating code
* [Skills](/build-with-ai/skills): recipes per task
* [API Keys](/guides/api-key/index): create and revoke keys
* [Sandbox](/guides/sandbox/index): test with `sk_test_...`
