{
  "markdown": "[![smithery badge](https://smithery.ai/badge/manycontacts/whatsapp-mcp)](https://smithery.ai/servers/manycontacts/whatsapp-mcp)\n\n# ManyContacts MCP Server\n\nMCP (Model Context Protocol) server for [ManyContacts](https://manycontacts.com) — the WhatsApp Business CRM. Enables AI agents (Claude, Cursor, Windsurf, etc.) to manage contacts, send WhatsApp messages, run campaigns, configure AI auto-replies, and perform all CRM operations programmatically.\n\n## Quick Start\n\n### 1. Get your CLI token\n\n```bash\nnpm install -g @manycontacts/cli\n```\n\n**Already have an account?** Log in:\n\n```bash\nmc auth login --email user@example.com --password mypassword\nmc auth whoami   # verify it works\n```\n\n**New to ManyContacts?** Create an account and connect your WhatsApp channel:\n\n```bash\n# Register a new account\nmc auth register --email user@example.com --name \"My Company\"\n\n# Connect a WhatsApp Business channel (choose one method):\nmc channels connect whatsapp-api      # WhatsApp Cloud API (recommended)\nmc channels connect coexistence       # ManyContacts coexistence mode\nmc channels connect qr                # QR code pairing\n\n# Verify everything is set up\nmc auth whoami\nmc channels list\n```\n\n### 2. Configure in your MCP client\n\n#### Claude Desktop / Claude Code\n\nAdd to your MCP settings (`~/.claude/claude_desktop_config.json` or similar):\n\n```json\n{\n  \"mcpServers\": {\n    \"manycontacts\": {\n      \"command\": \"npx\",\n      \"args\": [\"@manycontacts/mcp\"],\n      \"env\": {\n        \"MC_CLI_TOKEN\": \"your-cli-token-here\"\n      }\n    }\n  }\n}\n```\n\n#### Cursor\n\nAdd to `.cursor/mcp.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"manycontacts\": {\n      \"command\": \"npx\",\n      \"args\": [\"@manycontacts/mcp\"],\n      \"env\": {\n        \"MC_CLI_TOKEN\": \"your-cli-token-here\"\n      }\n    }\n  }\n}\n```\n\n> **Tip:** If you've already logged in via the CLI (`mc auth login`), the token is stored in `~/.manycontacts/config.json` and the MCP server will pick it up automatically — no `MC_CLI_TOKEN` env var needed.\n\n---\n\n## Available Tools (55 total)\n\n### Account & Context\n\n#### `manycontacts.context`\n\nGet a full overview of your ManyContacts account: connected WhatsApp Business channels, contact/user/tag counts, active AI agents, and enabled features. **Use this first** to understand the account state before performing other operations.\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| *(none)* | — | — | No parameters needed |\n\n---\n\n#### `manycontacts.org.get`\n\nGet WhatsApp Business organization/account information including name, timezone, and all configuration settings.\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| *(none)* | — | — | No parameters needed |\n\n---\n\n#### `manycontacts.org.update`\n\nUpdate organization-level settings such as timezone, auto-reply messages, auto-close behavior, and webhook configuration.\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `timezone` | `string` | No | Timezone identifier (e.g. `Europe/Madrid`, `America/New_York`) |\n| `auto_reply_open` | `boolean` | No | Enable auto-reply when a new chat is opened |\n| `auto_reply_open_text` | `string` | No | Auto-reply message text when chat opens |\n| `auto_reply_close` | `boolean` | No | Enable auto-reply when a chat is closed |\n| `auto_reply_close_text` | `string` | No | Auto-reply message text when chat closes |\n| `auto_reply_close_minutes` | `number` | No | Minutes of inactivity before auto-close |\n| `auto_reply_away` | `boolean` | No | Enable away/out-of-hours auto-reply |\n| `auto_reply_away_text` | `string` | No | Away auto-reply message text |\n| `webhooks_forward` | `boolean` | No | Enable webhook forwarding to an external URL |\n| `webhooks_forward_url` | `string` | No | External URL to forward webhook events to |\n\n---\n\n#### `manycontacts.org.schedule.get`\n\nGet the business hours schedule. Returns the configured working hours for each day of the week, used to determine when the \"away\" auto-reply activates.\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| *(none)* | — | — | No parameters needed |\n\n---\n\n#### `manycontacts.org.apikey`\n\nGet the organization's REST API key for direct API integrations.\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| *(none)* | — | — | No parameters needed |\n\n---\n\n#### `manycontacts.channels.list`\n\nList all connected WhatsApp Business and Instagram channels. For WhatsApp channels, shows the phone number and connection status. For Instagram channels, shows the username.\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| *(none)* | — | — | No parameters needed |\n\n---\n\n### Contacts\n\nAll contact operations use phone numbers as identifiers (with country code, no `+` prefix, e.g. `34600000000`).\n\n#### `manycontacts.contacts.list`\n\nList WhatsApp Business contacts with advanced filters. Returns paginated results with `has_more` indicator. Filters can be combined freely.\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `page` | `number` | No | Page number (default: `1`) |\n| `limit` | `number` | No | Results per page, max `200` (default: `50`) |\n| `open` | `\"true\"` \\| `\"false\"` | No | Filter by conversation open/closed status |\n| `assigned_to` | `string` | No | Filter by assigned user ID |\n| `tags` | `string` | No | Comma-separated tag IDs — contacts must have **all** specified tags |\n| `team` | `string` | No | Filter by team ID |\n| `stages` | `string` | No | Comma-separated funnel stage IDs |\n| `date_from` | `string` | No | Filter contacts updated after this date (`YYYY-MM-DD`) |\n| `date_to` | `string` | No | Filter contacts updated before this date (`YYYY-MM-DD`) |\n| `unread` | `\"true\"` | No | Only contacts with unread messages |\n| `blacklist` | `\"true\"` | No | Only blacklisted contacts |\n| `scheduled` | `\"true\"` | No | Only contacts with pending scheduled messages |\n\n> **Note:** When using `date_from` and `date_to` together, the range cannot exceed 90 days.\n\n**Response:**\n```json\n{\n  \"ok\": true,\n  \"data\": [\n    {\n      \"name\": \"John Doe\",\n      \"number\": \"34600000000\",\n      \"open\": true,\n      \"last_user_id\": \"uuid-of-assigned-user\",\n      \"source\": \"whatsapp\",\n      \"notes\": \"VIP customer\",\n      \"customFields\": {},\n      \"createdAt\": \"2026-01-15T10:30:00Z\"\n    }\n  ],\n  \"pagination\": { \"page\": 1, \"limit\": 50, \"has_more\": true }\n}\n```\n\n---\n\n#### `manycontacts.contacts.get`\n\nGet detailed information about a specific contact including their tags, teams, funnel stages, and custom fields.\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `phone` | `string` | **Yes** | Phone number with country code (e.g. `34600000000`) |\n\n---\n\n#### `manycontacts.contacts.create`\n\nCreate a new WhatsApp Business contact in the CRM. The phone number will be normalized automatically (leading `+` removed).\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `phone` | `string` | **Yes** | Phone number with country code (e.g. `34600000000`) |\n| `name` | `string` | No | Contact display name |\n| `notes` | `string` | No | Free-text notes for the contact |\n\n---\n\n#### `manycontacts.contacts.update`\n\nUpdate an existing contact's name, notes, or custom fields.\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `phone` | `string` | **Yes** | Phone number of the contact to update |\n| `name` | `string` | No | New contact name |\n| `notes` | `string` | No | New contact notes |\n| `customFields` | `string` | No | Custom fields as a JSON string (e.g. `'{\"company\":\"Acme\"}'`) |\n\n---\n\n#### `manycontacts.contacts.delete`\n\nPermanently delete a contact from the CRM.\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `phone` | `string` | **Yes** | Phone number of the contact to delete |\n\n---\n\n#### `manycontacts.contacts.assign`\n\nAssign a contact to a specific team member. The assigned user will see this contact in their personal inbox.\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `phone` | `string` | **Yes** | Phone number of the contact |\n| `userId` | `string` | **Yes** | User ID to assign the contact to (use `manycontacts.users.list` to get IDs) |\n\n---\n\n#### `manycontacts.contacts.unassign`\n\nRemove the current user assignment from a contact. The contact returns to the general unassigned inbox.\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `phone` | `string` | **Yes** | Phone number of the contact |\n\n---\n\n#### `manycontacts.contacts.close`\n\nClose a WhatsApp conversation. Closed conversations are archived and won't appear in the active inbox.\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `phone` | `string` | **Yes** | Phone number of the contact |\n\n---\n\n#### `manycontacts.contacts.open`\n\nReopen a previously closed WhatsApp conversation. The contact will appear again in the active inbox.\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `phone` | `string` | **Yes** | Phone number of the contact |\n\n---\n\n#### `manycontacts.contacts.tag.add`\n\nAdd a tag to a contact. Use `manycontacts.tags.list` to get available tag IDs.\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `phone` | `string` | **Yes** | Phone number of the contact |\n| `tagId` | `string` | **Yes** | Tag ID to add |\n\n---\n\n#### `manycontacts.contacts.tag.remove`\n\nRemove a tag from a contact.\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `phone` | `string` | **Yes** | Phone number of the contact |\n| `tagId` | `string` | **Yes** | Tag ID to remove |\n\n---\n\n#### `manycontacts.contacts.team.add`\n\nAdd a team to a contact. Use `manycontacts.teams.list` to get available team IDs.\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `phone` | `string` | **Yes** | Phone number of the contact |\n| `teamId` | `string` | **Yes** | Team ID to add |\n\n---\n\n#### `manycontacts.contacts.team.remove`\n\nRemove a team from a contact.\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `phone` | `string` | **Yes** | Phone number of the contact |\n| `teamId` | `string` | **Yes** | Team ID to remove |\n\n---\n\n#### `manycontacts.contacts.set_stage`\n\nMove a contact to a specific stage within a sales funnel/pipeline. Use `manycontacts.funnels.list` to get funnel and stage IDs.\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `phone` | `string` | **Yes** | Phone number of the contact |\n| `funnel_id` | `string` | **Yes** | Funnel ID |\n| `stage_id` | `string` | **Yes** | Target stage ID within the funnel |\n\n---\n\n#### `manycontacts.contacts.bulk`\n\nPerform bulk operations on multiple contacts at once. Supports closing, opening, assigning, tagging, and team assignment.\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `action` | `\"close\"` \\| `\"open\"` \\| `\"assign\"` \\| `\"add_tag\"` \\| `\"add_team\"` | **Yes** | Bulk action to perform |\n| `phones` | `string` | **Yes** | Comma-separated phone numbers (e.g. `\"34600000000,34600000001\"`) |\n| `value` | `string` | No | Value required by the action: user ID for `assign`, tag ID for `add_tag`, team ID for `add_team`. Not needed for `close` or `open`. |\n\n---\n\n### Messaging\n\n#### `manycontacts.messages.list`\n\nList WhatsApp conversation messages for a contact. Returns messages in a conversation-friendly format with timestamps, status, and sender information.\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `phone` | `string` | **Yes** | Phone number of the contact |\n| `page` | `number` | No | Page number (default: `1`) |\n| `limit` | `number` | No | Messages per page (default: `50`) |\n\n---\n\n#### `manycontacts.messages.send.text`\n\nSend a WhatsApp text message to a contact. Only works within the 24-hour conversation window. Use `manycontacts.messages.send.template` to initiate conversations outside this window.\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `phone` | `string` | **Yes** | Phone number to send the message to |\n| `body` | `string` | **Yes** | Message text content |\n\n---\n\n#### `manycontacts.messages.send.note`\n\nCreate an internal note on a contact's conversation. Notes are only visible to team members and are **not** sent to the WhatsApp contact.\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `phone` | `string` | **Yes** | Phone number of the contact |\n| `body` | `string` | **Yes** | Internal note text |\n\n---\n\n#### `manycontacts.messages.send.template`\n\nSend a WhatsApp Business template message. Templates are required to initiate conversations outside the 24-hour window or for bulk outbound messaging. Templates must be pre-approved by Meta.\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `phone` | `string` | **Yes** | Phone number to send the template to |\n| `templateId` | `string` | **Yes** | Template ID (use `manycontacts.templates.list` to get IDs) |\n| `variables` | `string` | No | Template variables as a JSON array string (e.g. `'[\"John\",\"20%\"]'`) |\n\n---\n\n### Templates\n\nWhatsApp Business templates are pre-approved message formats required for outbound messaging outside the 24-hour conversation window.\n\n#### `manycontacts.templates.list`\n\nList all WhatsApp Business message templates. Shows template name, code, status, components, and media flags.\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `status` | `\"approved\"` \\| `\"pending\"` \\| `\"rejected\"` | No | Filter templates by approval status |\n\n---\n\n#### `manycontacts.templates.get`\n\nGet full details of a specific template including its components (header, body, footer, buttons), configuration, and media attachments.\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `id` | `string` | **Yes** | Template ID |\n\n---\n\n#### `manycontacts.templates.sync`\n\nSync WhatsApp Business templates from Meta Cloud API. Fetches the latest templates from the connected WhatsApp Business account. Useful after creating or modifying templates in the Meta Business Manager.\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| *(none)* | — | — | No parameters needed |\n\n---\n\n### Campaigns\n\nCampaigns allow bulk sending of WhatsApp template messages to a list of phone numbers at a scheduled time.\n\n#### `manycontacts.campaigns.list`\n\nList all WhatsApp Business bulk messaging campaigns with statistics (sent, delivered, read, and failed counts), template names, and scheduled dates.\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| *(none)* | — | — | No parameters needed |\n\n---\n\n#### `manycontacts.campaigns.create`\n\nCreate a new WhatsApp Business bulk messaging campaign. The campaign will send a template message to the specified phone numbers at the scheduled time.\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `name` | `string` | **Yes** | Campaign name |\n| `templateId` | `string` | **Yes** | WhatsApp template ID to use (must be `approved`) |\n| `phones` | `string` | **Yes** | Comma-separated phone numbers (e.g. `\"34600000000,34600000001,34600000002\"`) |\n| `date` | `string` | **Yes** | Scheduled send date in ISO format (e.g. `\"2026-12-01T09:00:00\"`) |\n| `variables` | `string` | No | Template variables as a JSON array string (e.g. `'[\"John\",\"20%\"]'`) |\n\n---\n\n#### `manycontacts.campaigns.delete`\n\nDelete a WhatsApp Business campaign. Only pending (not yet sent) campaigns can be deleted.\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `id` | `string` | **Yes** | Campaign ID to delete |\n\n---\n\n### Tags\n\nTags are colored labels used to categorize and filter WhatsApp Business contacts (e.g. \"VIP\", \"Support\", \"Lead\").\n\n#### `manycontacts.tags.list`\n\nList all available tags with their names, colors, and IDs.\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| *(none)* | — | — | No parameters needed |\n\n---\n\n#### `manycontacts.tags.create`\n\nCreate a new tag for categorizing contacts.\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `name` | `string` | **Yes** | Tag name |\n| `color` | `string` | No | Tag color as hex code (e.g. `\"#ff0000\"`). Defaults to `#fab1a0` |\n\n---\n\n#### `manycontacts.tags.update`\n\nUpdate an existing tag's name or color.\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `id` | `string` | **Yes** | Tag ID to update |\n| `name` | `string` | No | New tag name |\n| `color` | `string` | No | New tag color as hex code |\n\n---\n\n#### `manycontacts.tags.delete`\n\nDelete a tag. The tag will be removed from all contacts that have it.\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `id` | `string` | **Yes** | Tag ID to delete |\n\n---\n\n### Teams\n\nTeams group users together for assignment routing and contact organization.\n\n#### `manycontacts.teams.list`\n\nList all teams in the organization.\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| *(none)* | — | — | No parameters needed |\n\n---\n\n#### `manycontacts.teams.create`\n\nCreate a new team.\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `name` | `string` | **Yes** | Team name |\n\n---\n\n#### `manycontacts.teams.add_member`\n\nAdd a user to a team.\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `teamId` | `string` | **Yes** | Team ID |\n| `userId` | `string` | **Yes** | User ID to add to the team |\n\n---\n\n#### `manycontacts.teams.remove_member`\n\nRemove a user from a team.\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `teamId` | `string` | **Yes** | Team ID |\n| `userId` | `string` | **Yes** | User ID to remove from the team |\n\n---\n\n#### `manycontacts.teams.delete`\n\nDelete a team. Team members are not deleted, only the team grouping.\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `id` | `string` | **Yes** | Team ID to delete |\n\n---\n\n### Sales Funnels / Pipelines\n\nFunnels allow you to track contacts through a multi-stage sales or support pipeline (e.g. \"New Lead\" -> \"Qualified\" -> \"Proposal\" -> \"Won\").\n\n#### `manycontacts.funnels.list`\n\nList all sales funnels/pipelines with their stages.\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| *(none)* | — | — | No parameters needed |\n\n---\n\n#### `manycontacts.funnels.create`\n\nCreate a new sales funnel/pipeline.\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `name` | `string` | **Yes** | Funnel name |\n\n---\n\n#### `manycontacts.funnels.add_stage`\n\nAdd a new stage to an existing funnel.\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `funnelId` | `string` | **Yes** | Funnel ID |\n| `name` | `string` | **Yes** | Stage name (e.g. \"Qualified\", \"Proposal Sent\") |\n| `order` | `number` | **Yes** | Stage position in the pipeline (0-based) |\n\n---\n\n#### `manycontacts.funnels.update_stage`\n\nUpdate a stage's name within a funnel.\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `funnelId` | `string` | **Yes** | Funnel ID |\n| `stageId` | `string` | **Yes** | Stage ID to update |\n| `name` | `string` | No | New stage name |\n\n---\n\n#### `manycontacts.funnels.contacts`\n\nList contacts currently in a specific funnel, optionally filtered by stage. Returns paginated results.\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `funnelId` | `string` | **Yes** | Funnel ID |\n| `stage_id` | `string` | No | Filter by specific stage ID |\n| `page` | `number` | No | Page number |\n| `limit` | `number` | No | Results per page |\n\n---\n\n#### `manycontacts.funnels.delete`\n\nDelete a sales funnel/pipeline and all its stages. Contacts in the funnel are not deleted.\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `id` | `string` | **Yes** | Funnel ID to delete |\n\n---\n\n### Users / Team Members\n\nManage the team members who have access to the WhatsApp Business CRM.\n\n#### `manycontacts.users.list`\n\nList all team members/users in the organization with their roles and details.\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| *(none)* | — | — | No parameters needed |\n\n---\n\n#### `manycontacts.users.get`\n\nGet details of a specific team member.\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `id` | `string` | **Yes** | User ID |\n\n---\n\n#### `manycontacts.users.update`\n\nUpdate a team member's profile information.\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `id` | `string` | **Yes** | User ID to update |\n| `name` | `string` | No | New user display name |\n\n---\n\n#### `manycontacts.users.invite`\n\nInvite a new team member to the organization by email. They will receive an invitation email to join.\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `email` | `string` | **Yes** | Email address to send the invitation to |\n\n---\n\n#### `manycontacts.users.delete`\n\nRemove a team member from the organization. Their assigned contacts will become unassigned.\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `id` | `string` | **Yes** | User ID to remove |\n\n---\n\n### AI Agents\n\nAI agents auto-respond to incoming WhatsApp messages using configurable instructions and scenarios. Only active agents are listed.\n\n#### `manycontacts.ai_agents.list`\n\nList all active AI auto-reply agents with their configuration.\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| *(none)* | — | — | No parameters needed |\n\n---\n\n#### `manycontacts.ai_agents.get`\n\nGet full details of a specific AI agent including its scenarios (conversation flows), instruction blocks, and configuration.\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `id` | `string` | **Yes** | AI Agent ID (UUID) |\n\n---\n\n#### `manycontacts.ai_agents.update`\n\nUpdate an AI agent's configuration. You can enable/disable the agent or modify its instruction blocks.\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `id` | `string` | **Yes** | AI Agent ID (UUID) |\n| `active` | `boolean` | No | Enable (`true`) or disable (`false`) the agent |\n| `block_1` | `string` | No | Agent instructions — block 1 |\n| `block_2` | `string` | No | Agent instructions — block 2 |\n| `block_3` | `string` | No | Agent instructions — block 3 |\n\n---\n\n#### `manycontacts.ai_agents.feedback`\n\nGet feedback and conversation logs for an AI agent. Shows how the agent has been responding and user satisfaction data.\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `id` | `string` | **Yes** | AI Agent ID (UUID) |\n\n---\n\n## Available Prompts (6 total)\n\nPre-built prompts that guide AI agents through common workflows. Use these to quickly accomplish multi-step tasks.\n\n### `contact-lookup`\n\nLook up a WhatsApp contact and get a complete summary of their profile, tags, funnel stage, and recent messages.\n\n| Argument | Required | Description |\n|----------|----------|-------------|\n| `phone` | **Yes** | Phone number in international format (e.g. `+34612345678`) |\n\n---\n\n### `send-campaign`\n\nStep-by-step guide to creating a WhatsApp bulk campaign: lists available templates, asks for recipients and schedule, then creates the campaign.\n\n| Argument | Required | Description |\n|----------|----------|-------------|\n| *(none)* | — | Interactive guided workflow |\n\n---\n\n### `daily-dashboard`\n\nGenerates a complete overview of your ManyContacts account including channels, open conversations, team structure, and sales funnels.\n\n| Argument | Required | Description |\n|----------|----------|-------------|\n| *(none)* | — | No arguments needed |\n\n---\n\n### `reply-to-contact`\n\nReviews recent conversation history with a contact, then sends a WhatsApp message with full context.\n\n| Argument | Required | Description |\n|----------|----------|-------------|\n| `phone` | **Yes** | Phone number in international format (e.g. `+34612345678`) |\n| `message` | **Yes** | The message text to send |\n\n---\n\n### `manage-funnel`\n\nDisplays all sales funnels with their stages and contact counts per stage, giving a visual pipeline overview.\n\n| Argument | Required | Description |\n|----------|----------|-------------|\n| *(none)* | — | No arguments needed |\n\n---\n\n### `bulk-tag-contacts`\n\nTags multiple contacts at once — finds or creates the tag, then applies it in bulk.\n\n| Argument | Required | Description |\n|----------|----------|-------------|\n| `phones` | **Yes** | Comma-separated phone numbers (e.g. `+34612345678,+34698765432`) |\n| `tagName` | **Yes** | Name of the tag to apply |\n\n---\n\n## Environment Variables\n\n| Variable | Required | Description |\n|----------|----------|-------------|\n| `MC_CLI_TOKEN` | Yes* | ManyContacts CLI authentication token. Get one via `mc auth login`. |\n| `MC_API_URL` | No | API base URL (default: `https://api.manycontacts.com`) |\n\n> *If you've logged in via the CLI, the token is stored locally at `~/.manycontacts/config.json` and the MCP server reads it automatically.\n\n## Authentication\n\nThe MCP server authenticates using CLI tokens. Each token is scoped to an organization and has configurable permissions.\n\n```bash\n# Login to get a token\nmc auth login --email user@example.com --password mypassword\n\n# The token is stored at ~/.manycontacts/config.json\n# Or set it explicitly via environment variable:\nexport MC_CLI_TOKEN=your-token-here\n```\n\n## Rate Limits\n\n- **Paying accounts:** 60 requests/minute\n- **Free/trial accounts:** 10 requests/minute\n\nWhen rate limited, the server returns a `429` error with a link to upgrade.\n\n## License\n\nMIT\n",
  "bytes": 26771,
  "sha": "66a45514e1594a26227f37277bb69d602344da95f8aa3c7beee112155832447c",
  "repo_slug": "manycontacts/mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_manycontacts_whatsapp_mcp_c8a8b9a6/readme"
}