← Back to search
manycontacts/whatsapp-mcp

ManyContacts.com MCP for WhatsApp Business

# ManyContacts MCP Server MCP (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. ## Quick Start ### 1. Get your CLI token ```bash npm install -g @manycontacts/cli ``` **Already have an account?** Log in: ```bash mc auth login --email user@example.com --password mypassword mc auth whoami # verify it works ``` **New to ManyContacts?** Create an account and connect your WhatsApp channel: ```bash # Register a new account mc auth register --email user@example.com --name "My Company" # Connect a WhatsApp Business channel (choose one method): mc channels connect whatsapp-api # WhatsApp Cloud API (recommended) mc channels connect coexistence # ManyContacts coexistence mode mc channels connect qr # QR code pairing # Verify everything is set up mc auth whoami mc channels list ``` ### 2. Configure in your MCP client #### Claude Desktop / Claude Code Add to your MCP settings (`~/.claude/claude_desktop_config.json` or similar): ```json { "mcpServers": { "manycontacts": { "command": "npx", "args": ["@manycontacts/mcp"], "env": { "MC_CLI_TOKEN": "your-cli-token-here" } } } } ``` #### Cursor Add to `.cursor/mcp.json`: ```json { "mcpServers": { "manycontacts": { "command": "npx", "args": ["@manycontacts/mcp"], "env": { "MC_CLI_TOKEN": "your-cli-token-here" } } } } ``` > **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. --- ## Available Tools (47 total) ### Account & Context #### `manycontacts_context` Get 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. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | *(none)* | — | — | No parameters needed | --- #### `manycontacts_org_get` Get WhatsApp Business organization/account information including name, timezone, and all configuration settings. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | *(none)* | — | — | No parameters needed | --- #### `manycontacts_org_update` Update organization-level settings such as timezone, auto-reply messages, auto-close behavior, and webhook configuration. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `timezone` | `string` | No | Timezone identifier (e.g. `Europe/Madrid`, `America/New_York`) | | `auto_reply_open` | `boolean` | No | Enable auto-reply when a new chat is opened | | `auto_reply_open_text` | `string` | No | Auto-reply message text when chat opens | | `auto_reply_close` | `boolean` | No | Enable auto-reply when a chat is closed | | `auto_reply_close_text` | `string` | No | Auto-reply message text when chat closes | | `auto_reply_close_minutes` | `number` | No | Minutes of inactivity before auto-close | | `auto_reply_away` | `boolean` | No | Enable away/out-of-hours auto-reply | | `auto_reply_away_text` | `string` | No | Away auto-reply message text | | `webhooks_forward` | `boolean` | No | Enable webhook forwarding to an external URL | | `webhooks_forward_url` | `string` | No | External URL to forward webhook events to | --- #### `manycontacts_org_schedule_get` Get the business hours schedule. Returns the configured working hours for each day of the week, used to determine when the "away" auto-reply activates. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | *(none)* | — | — | No parameters needed | --- #### `manycontacts_org_apikey` Get the organization's REST API key for direct API integrations. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | *(none)* | — | — | No parameters needed | --- #### `manycontacts_channels_list` List all connected WhatsApp Business and Instagram channels. For WhatsApp channels, shows the phone number and connection status. For Instagram channels, shows the username. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | *(none)* | — | — | No parameters needed | --- ### Contacts All contact operations use phone numbers as identifiers (with country code, no `+` prefix, e.g. `34600000000`). #### `manycontacts_contacts_list` List WhatsApp Business contacts with advanced filters. Returns paginated results with `has_more` indicator. Filters can be combined freely. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `page` | `number` | No | Page number (default: `1`) | | `limit` | `number` | No | Results per page, max `200` (default: `50`) | | `open` | `"true"` \| `"false"` | No | Filter by conversation open/closed status | | `assigned_to` | `string` | No | Filter by assigned user ID | | `tags` | `string` | No | Comma-separated tag IDs — contacts must have **all** specified tags | | `team` | `string` | No | Filter by team ID | | `stages` | `string` | No | Comma-separated funnel stage IDs | | `date_from` | `string` | No | Filter contacts updated after this date (`YYYY-MM-DD`) | | `date_to` | `string` | No | Filter contacts updated before this date (`YYYY-MM-DD`) | | `unread` | `"true"` | No | Only contacts with unread messages | | `blacklist` | `"true"` | No | Only blacklisted contacts | | `scheduled` | `"true"` | No | Only contacts with pending scheduled messages | > **Note:** When using `date_from` and `date_to` together, the range cannot exceed 90 days. **Response:** ```json { "ok": true, "data": [ { "name": "John Doe", "number": "34600000000", "open": true, "last_user_id": "uuid-of-assigned-user", "source": "whatsapp", "notes": "VIP customer", "customFields": {}, "createdAt": "2026-01-15T10:30:00Z" } ], "pagination": { "page": 1, "limit": 50, "has_more": true } } ``` --- #### `manycontacts_contacts_get` Get detailed information about a specific contact including their tags, teams, funnel stages, and custom fields. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `phone` | `string` | **Yes** | Phone number with country code (e.g. `34600000000`) | --- #### `manycontacts_contacts_create` Create a new WhatsApp Business contact in the CRM. The phone number will be normalized automatically (leading `+` removed). | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `phone` | `string` | **Yes** | Phone number with country code (e.g. `34600000000`) | | `name` | `string` | No | Contact display name | | `notes` | `string` | No | Free-text notes for the contact | --- #### `manycontacts_contacts_update` Update an existing contact's name, notes, or custom fields. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `phone` | `string` | **Yes** | Phone number of the contact to update | | `name` | `string` | No | New contact name | | `notes` | `string` | No | New contact notes | | `customFields` | `string` | No | Custom fields as a JSON string (e.g. `'{"company":"Acme"}'`) | --- #### `manycontacts_contacts_delete` Permanently delete a contact from the CRM. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `phone` | `string` | **Yes** | Phone number of the contact to delete | --- #### `manycontacts_contacts_assign` Assign a contact to a specific team member. The assigned user will see this contact in their personal inbox. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `phone` | `string` | **Yes** | Phone number of the contact | | `userId` | `string` | **Yes** | User ID to assign the contact to (use `manycontacts_users_list` to get IDs) | --- #### `manycontacts_contacts_unassign` Remove the current user assignment from a contact. The contact returns to the general unassigned inbox. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `phone` | `string` | **Yes** | Phone number of the contact | --- #### `manycontacts_contacts_close` Close a WhatsApp conversation. Closed conversations are archived and won't appear in the active inbox. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `phone` | `string` | **Yes** | Phone number of the contact | --- #### `manycontacts_contacts_open` Reopen a previously closed WhatsApp conversation. The contact will appear again in the active inbox. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `phone` | `string` | **Yes** | Phone number of the contact | --- #### `manycontacts_contacts_tag_add` Add a tag to a contact. Use `manycontacts_tags_list` to get available tag IDs. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `phone` | `string` | **Yes** | Phone number of the contact | | `tagId` | `string` | **Yes** | Tag ID to add | --- #### `manycontacts_contacts_tag_remove` Remove a tag from a contact. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `phone` | `string` | **Yes** | Phone number of the contact | | `tagId` | `string` | **Yes** | Tag ID to remove | --- #### `manycontacts_contacts_team_add` Add a team to a contact. Use `manycontacts_teams_list` to get available team IDs. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `phone` | `string` | **Yes** | Phone number of the contact | | `teamId` | `string` | **Yes** | Team ID to add | --- #### `manycontacts_contacts_team_remove` Remove a team from a contact. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `phone` | `string` | **Yes** | Phone number of the contact | | `teamId` | `string` | **Yes** | Team ID to remove | --- #### `manycontacts_contacts_set_stage` Move a contact to a specific stage within a sales funnel/pipeline. Use `manycontacts_funnels_list` to get funnel and stage IDs. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `phone` | `string` | **Yes** | Phone number of the contact | | `funnel_id` | `string` | **Yes** | Funnel ID | | `stage_id` | `string` | **Yes** | Target stage ID within the funnel | --- #### `manycontacts_contacts_bulk` Perform bulk operations on multiple contacts at once. Supports closing, opening, assigning, tagging, and team assignment. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `action` | `"close"` \| `"open"` \| `"assign"` \| `"add_tag"` \| `"add_team"` | **Yes** | Bulk action to perform | | `phones` | `string` | **Yes** | Comma-separated phone numbers (e.g. `"34600000000,34600000001"`) | | `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`. | --- ### Messaging #### `manycontacts_messages_list` List WhatsApp conversation messages for a contact. Returns messages in a conversation-friendly format with timestamps, status, and sender information. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `phone` | `string` | **Yes** | Phone number of the contact | | `page` | `number` | No | Page number (default: `1`) | | `limit` | `number` | No | Messages per page (default: `50`) | --- #### `manycontacts_messages_send_text` Send 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. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `phone` | `string` | **Yes** | Phone number to send the message to | | `body` | `string` | **Yes** | Message text content | --- #### `manycontacts_messages_send_note` Create an internal note on a contact's conversation. Notes are only visible to team members and are **not** sent to the WhatsApp contact. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `phone` | `string` | **Yes** | Phone number of the contact | | `body` | `string` | **Yes** | Internal note text | --- #### `manycontacts_messages_send_template` Send 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. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `phone` | `string` | **Yes** | Phone number to send the template to | | `templateId` | `string` | **Yes** | Template ID (use `manycontacts_templates_list` to get IDs) | | `variables` | `string` | No | Template variables as a JSON array string (e.g. `'["John","20%"]'`) | --- ### Templates WhatsApp Business templates are pre-approved message formats required for outbound messaging outside the 24-hour conversation window. #### `manycontacts_templates_list` List all WhatsApp Business message templates. Shows template name, code, status, components, and media flags. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `status` | `"approved"` \| `"pending"` \| `"rejected"` | No | Filter templates by approval status | --- #### `manycontacts_templates_get` Get full details of a specific template including its components (header, body, footer, buttons), configuration, and media attachments. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `id` | `string` | **Yes** | Template ID | --- #### `manycontacts_templates_sync` Sync 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. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | *(none)* | — | — | No parameters needed | --- ### Campaigns Campaigns allow bulk sending of WhatsApp template messages to a list of phone numbers at a scheduled time. #### `manycontacts_campaigns_list` List all WhatsApp Business bulk messaging campaigns with statistics (sent, delivered, read, and failed counts), template names, and scheduled dates. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | *(none)* | — | — | No parameters needed | --- #### `manycontacts_campaigns_create` Create a new WhatsApp Business bulk messaging campaign. The campaign will send a template message to the specified phone numbers at the scheduled time. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `name` | `string` | **Yes** | Campaign name | | `templateId` | `string` | **Yes** | WhatsApp template ID to use (must be `approved`) | | `phones` | `string` | **Yes** | Comma-separated phone numbers (e.g. `"34600000000,34600000001,34600000002"`) | | `date` | `string` | **Yes** | Scheduled send date in ISO format (e.g. `"2026-12-01T09:00:00"`) | | `variables` | `string` | No | Template variables as a JSON array string (e.g. `'["John","20%"]'`) | --- #### `manycontacts_campaigns_delete` Delete a WhatsApp Business campaign. Only pending (not yet sent) campaigns can be deleted. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `id` | `string` | **Yes** | Campaign ID to delete | --- ### Tags Tags are colored labels used to categorize and filter WhatsApp Business contacts (e.g. "VIP", "Support", "Lead"). #### `manycontacts_tags_list` List all available tags with their names, colors, and IDs. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | *(none)* | — | — | No parameters needed | --- #### `manycontacts_tags_create` Create a new tag for categorizing contacts. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `name` | `string` | **Yes** | Tag name | | `color` | `string` | No | Tag color as hex code (e.g. `"#ff0000"`). Defaults to `#fab1a0` | --- #### `manycontacts_tags_update` Update an existing tag's name or color. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `id` | `string` | **Yes** | Tag ID to update | | `name` | `string` | No | New tag name | | `color` | `string` | No | New tag color as hex code | --- #### `manycontacts_tags_delete` Delete a tag. The tag will be removed from all contacts that have it. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `id` | `string` | **Yes** | Tag ID to delete | --- ### Teams Teams group users together for assignment routing and contact organization. #### `manycontacts_teams_list` List all teams in the organization. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | *(none)* | — | — | No parameters needed | --- #### `manycontacts_teams_create` Create a new team. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `name` | `string` | **Yes** | Team name | --- #### `manycontacts_teams_add_member` Add a user to a team. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `teamId` | `string` | **Yes** | Team ID | | `userId` | `string` | **Yes** | User ID to add to the team | --- #### `manycontacts_teams_remove_member` Remove a user from a team. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `teamId` | `string` | **Yes** | Team ID | | `userId` | `string` | **Yes** | User ID to remove from the team | --- #### `manycontacts_teams_delete` Delete a team. Team members are not deleted, only the team grouping. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `id` | `string` | **Yes** | Team ID to delete | --- ### Sales Funnels / Pipelines Funnels allow you to track contacts through a multi-stage sales or support pipeline (e.g. "New Lead" -> "Qualified" -> "Proposal" -> "Won"). #### `manycontacts_funnels_list` List all sales funnels/pipelines with their stages. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | *(none)* | — | — | No parameters needed | --- #### `manycontacts_funnels_create` Create a new sales funnel/pipeline. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `name` | `string` | **Yes** | Funnel name | --- #### `manycontacts_funnels_add_stage` Add a new stage to an existing funnel. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `funnelId` | `string` | **Yes** | Funnel ID | | `name` | `string` | **Yes** | Stage name (e.g. "Qualified", "Proposal Sent") | | `order` | `number` | **Yes** | Stage position in the pipeline (0-based) | --- #### `manycontacts_funnels_update_stage` Update a stage's name within a funnel. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `funnelId` | `string` | **Yes** | Funnel ID | | `stageId` | `string` | **Yes** | Stage ID to update | | `name` | `string` | No | New stage name | --- #### `manycontacts_funnels_contacts` List contacts currently in a specific funnel, optionally filtered by stage. Returns paginated results. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `funnelId` | `string` | **Yes** | Funnel ID | | `stage_id` | `string` | No | Filter by specific stage ID | | `page` | `number` | No | Page number | | `limit` | `number` | No | Results per page | --- #### `manycontacts_funnels_delete` Delete a sales funnel/pipeline and all its stages. Contacts in the funnel are not deleted. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `id` | `string` | **Yes** | Funnel ID to delete | --- ### Users / Team Members Manage the team members who have access to the WhatsApp Business CRM. #### `manycontacts_users_list` List all team members/users in the organization with their roles and details. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | *(none)* | — | — | No parameters needed | --- #### `manycontacts_users_get` Get details of a specific team member. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `id` | `string` | **Yes** | User ID | --- #### `manycontacts_users_update` Update a team member's profile information. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `id` | `string` | **Yes** | User ID to update | | `name` | `string` | No | New user display name | --- #### `manycontacts_users_invite` Invite a new team member to the organization by email. They will receive an invitation email to join. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `email` | `string` | **Yes** | Email address to send the invitation to | --- #### `manycontacts_users_delete` Remove a team member from the organization. Their assigned contacts will become unassigned. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `id` | `string` | **Yes** | User ID to remove | --- ### AI Agents AI agents auto-respond to incoming WhatsApp messages using configurable instructions and scenarios. Only active agents are listed. #### `manycontacts_ai_agents_list` List all active AI auto-reply agents with their configuration. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | *(none)* | — | — | No parameters needed | --- #### `manycontacts_ai_agents_get` Get full details of a specific AI agent including its scenarios (conversation flows), instruction blocks, and configuration. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `id` | `string` | **Yes** | AI Agent ID (UUID) | --- #### `manycontacts_ai_agents_update` Update an AI agent's configuration. You can enable/disable the agent or modify its instruction blocks. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `id` | `string` | **Yes** | AI Agent ID (UUID) | | `active` | `boolean` | No | Enable (`true`) or disable (`false`) the agent | | `block_1` | `string` | No | Agent instructions — block 1 | | `block_2` | `string` | No | Agent instructions — block 2 | | `block_3` | `string` | No | Agent instructions — block 3 | --- #### `manycontacts_ai_agents_feedback` Get feedback and conversation logs for an AI agent. Shows how the agent has been responding and user satisfaction data. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `id` | `string` | **Yes** | AI Agent ID (UUID) | --- ## Environment Variables | Variable | Required | Description | |----------|----------|-------------| | `MC_CLI_TOKEN` | Yes* | ManyContacts CLI authentication token. Get one via `mc auth login`. | | `MC_API_URL` | No | API base URL (default: `https://api.manycontacts.com`) | > *If you've logged in via the CLI, the token is stored locally at `~/.manycontacts/config.json` and the MCP server reads it automatically. ## Authentication The MCP server authenticates using CLI tokens. Each token is scoped to an organization and has configurable permissions. ```bash # Login to get a token mc auth login --email user@example.com --password mypassword # The token is stored at ~/.manycontacts/config.json # Or set it explicitly via environment variable: export MC_CLI_TOKEN=your-token-here ``` ## Rate Limits - **Paying accounts:** 60 requests/minute - **Free/trial accounts:** 10 requests/minute When rate limited, the server returns a `429` error with a link to upgrade. ## License MIT

Decision: Block for production
Why: failing live status + score below evaluation threshold
Next: revalidate, add safeguards, export policy
EXECUTIVE VERDICT

Executive verdict

Production trust decision: Block for production
Reason: failing live status + score below evaluation threshold
Next action: revalidate, add safeguards, export policy
Production decision
Block for production
failing live status + score below evaluation threshold
Current score
45.6
Snapshot trustsnap_db676469b89ba765
Next action
revalidate, add safeguards, export policy
Claim the profile to add evidence, trigger validation, and configure monitoring.
Compare alternatives Export policy Open report JSON
Observed Attention
No observed attention
No observed attention in the current 30-day window.
  • No segmented attention signals observed in the current window.
Bucketed signal based on recent segmented Verify telemetry. Crawler and evaluator activity is not treated as confirmed human demand.
Status
Failing
Score
45.6
Transport
unknown
Tools
0

Current trust snapshot

Snapshot ID
trustsnap_db676469b89ba765
Use this ID to compare server page, report, policy, MCP, homepage, ranking, and shortlist surfaces.
Snapshot generated
Jul 10, 2026 12:27:58 PM UTC
All page, report, policy, and MCP surfaces use this same server-detail snapshot shape.
Last validated
Jul 10, 2026 07:21:04 AM UTC
Age: 5.11h • freshness band: Verified in last 24h • display score: 45.62
Production trust decision
Block for production
failing live status + score below evaluation threshold
Readiness class
unknown

Canonical machine links

SERVER OWNER FUNNEL

Own this MCP?

Claim ownership, prove control with a GitHub, DNS, HTTP, MCP metadata, or email-domain challenge, revalidate now, publish a badge, configure monitoring, and unlock a verified server profile.

1. Claim
unclaimed
with GitHub, DNS, or HTTP challenge instructions.
2. Revalidate
POST /v1/servers/manycontacts/whatsapp-mcp/revalidate
Verified owners get priority queueing after proof succeeds.
3. Badge
Verified by MCP Verify badge
Verified by MCP Verify - score 45.6 - last checked Jul 10, 2026
4. Monitor
Continuous Verify plan is self-serve: choose a tier, configure watches, add authenticated validation, trigger revalidation, and use the badge.
Paid profile
Add verified publisher identity, security metadata, evidence packs, badge customization, and owner analytics without buying a better score.
Badge embed
[![Verified by MCP Verify](https://verify.sentinelsignal.io/badge/manycontacts/whatsapp-mcp.svg)](https://verify.sentinelsignal.io/servers/manycontacts/whatsapp-mcp)

MCP TrustOps

TrustOps turns this report into operational controls: freshness SLAs, authenticated validation, semantic benchmarks, policy exports, alert subscriptions, badges, cost/compliance metadata, and runtime routing. Fresh trusted index decisions stay separate from long-tail inventory so stale scores do not masquerade as current evidence.

Freshness band
Verified in last 24h
Policy SLA: 168.0h • confidence-weighted score: 22.8 • stale score suppressed:
Policy exports
Formats: json, rego, yaml, github_action, gateway_config, client_report
Runtime routing
/v1/decide
Returns allowed tools, blocked tools, approval requirement, and reason.
Hosted runtime
Deploy trusted servers from GitHub with secrets, egress controls, releases, rollback, and audit events.
Authenticated validation
Premium publisher feature: paid authenticated runs verify scopes, write-action safeguards, and authorized tool execution.
Active trust badges
Freshly Validated No Critical Risk
Semantic benchmarks
template ready
Templates cover GitHub, database, healthcare, web search, and CRM least-privilege jobs.
Supply chain
not scanned
Deep scan checks are marked separately from public metadata signals.
Compliance metadata
Terms, privacy, SOC 2, HIPAA, GDPR, retention, deletion, and audit-log fields are tracked as enterprise metadata.
Alert subscription types
Status changes Score drops or recovers Freshness SLA breach Validation schema drift OAuth or auth behavior changes Tool surface changes New or changed write tool Supply-chain signal changes Legal or compliance metadata changes

MCP Runtime hosting

No hosted runtime profile is available yet.

Production readiness class

Production readiness class
Unknown
Fast server evidence is served while Verify protects web capacity.
Critical alerts
0
Production verdicts degrade quickly when critical alerts are active.

Evidence confidence

Confidence score
0.0
Full server evidence will be rebuilt by the regular cache refresh path.
Live checks captured
0
More direct checks increase trust in the current verdict.
Validation age
n/a
Lower age means fresher evidence.

Recommended for

No recommendation profile is available yet.

Client compatibility verdicts

No client compatibility verdicts are available yet.

Why compatibility is limited by client

No per-client remediation checklist is available yet.

Verdict traces

No verdict trace data is available yet.

Publishability policy profiles

No publishability policy profiles are available yet.

Compatibility fixtures

No compatibility fixtures are available yet.

Authenticated validation sessions

No authenticated validation detail is available yet.

Public validation is free. Authenticated validation is paid and proves scoped behavior, write-action safeguards, and authenticated tool execution.

Public server reputation

No public server reputation signals are available yet.

Incident & change feed

No incidents or changes recorded yet.

Capabilities

Use-case taxonomy
No taxonomy tags yet.

Security posture

No security posture summary available yet.

Agent Commerce & Payment Readiness - Beta

No agent-commerce assessment available yet.

Tool capability & risk inventory

No tool inventory available from the latest validation run.

Write-action governance

No write-action governance summary is available yet.

Action-controls diff

Need at least two validation runs before diffing action controls.

Why this score?

No score decomposition available yet.

Algorithmic score breakdown

Auth Operability
0/4
Measures whether auth discovery and protected access behave predictably for clients.
Error Contract Quality
0/4
Grades machine-readable error structure, status alignment, and remediation hints.
Rate-Limit Semantics
2/4
Checks whether quota/throttle responses are deterministic and automation-friendly.
Schema Completeness
0/4
Completeness of tool descriptions, parameter docs, examples, and schema shape.
Backward Compatibility
4/4
Stability score across tool schema/name drift relative to prior validations.
SLO Health
3/4
Availability, latency, and burst-failure profile across recent validation history.
Security Hygiene
1.5/4
HTTPS posture, endpoint hygiene, and response-surface hardening checks.
Task Success
1.7/4
Can an agent reliably initialize, enumerate tools, and execute core MCP flows?
Trust Confidence
2/4
Confidence-adjusted reliability score that penalizes low evidence volume.
Abuse/Noise Resilience
3/4
How well the server preserves core behavior in the presence of noisy traffic patterns.
Prompt Contract
2/4
Quality of prompt metadata, argument shape, and prompt discoverability for clients.
Resource Contract
2/4
How completely resources and resource templates describe URIs, types, and usage shape.
Discovery Metadata
3/4
Homepage, docs, icon, repository, support, and license coverage for directory consumers.
Registry Consistency
3/4
Agreement between stored registry metadata, live server-card data, and current validation output.
Installability
2/4
How cleanly a real client can connect, initialize, enumerate tools, and proceed through auth.
Session Semantics
0/4
Determinism and state behavior across repeated MCP calls, including sticky-session surprises.
Tool Surface Design
0/4
Naming clarity, schema ergonomics, and parameter complexity across the tool surface.
Result Shape Stability
0/4
Stability of declared output schemas across validations, with penalties for drift or missing shapes.
OAuth Interop
0/4
Depth and client compatibility of OAuth/OIDC metadata beyond the minimal protected-resource check.
Recovery Semantics
0/4
Whether failures include actionable machine-readable next steps such as retry or upgrade guidance.
Maintenance Signal
3.8/4
Versioning, update recency, and historical validation cadence that indicate active stewardship.
Adoption Signal
2/4
Directory presence and distribution clues that suggest the server is intended for external use.
Freshness Confidence
3/4
Confidence that recent validations are current enough and dense enough to trust operationally.
Transport Fidelity
0/4
Whether declared transport metadata matches the observed endpoint behavior and response formats.
Spec Recency
2/4
How close the server’s claimed MCP protocol version is to the latest known public revision.
Session Resume
0/4
Whether Streamable HTTP session identifiers and resumed requests behave cleanly for real clients.
Step-Up Auth
3/4
Whether OAuth metadata and WWW-Authenticate challenges support granular, incremental consent instead of broad upfront scopes.
Transport Compliance
1/4
Checks session headers, protocol-version enforcement, session teardown, and expired-session behavior.
Utility Coverage
2/4
Signals support for completions, pagination, and task-oriented utility surfaces that larger clients increasingly expect.
Advanced Capability Coverage
2/4
Coverage of newer MCP surfaces like roots, sampling, elicitation, structured output, and related metadata.
Connector Publishability
0/4
How ready the server looks for client catalogs and managed connector programs.
Tool Snapshot Churn
0/4
Stability of the tool surface across recent validations, including add/remove and output-shape drift.
Connector Replay
3/4
Whether a previously published frozen connector snapshot would remain backward compatible after the latest tool refresh.
Request Association
3/4
Whether roots, sampling, and elicitation appear tied to active client requests instead of arriving unsolicited on idle sessions.
Interactive Flow Safety
3/4
Whether prompts and docs steer users toward safe auth flows instead of pasting secrets directly.
Action Safety
3/4
Risk-weighted view of destructive, exec, egress, and confirmation semantics across the tool surface.
Official Registry Presence
3/4
Whether the server appears directly or indirectly in the official MCP registry.
Provenance Divergence
4/4
How closely official registry metadata, the live server card, and public repo/package signals agree with each other.
Safety Transparency
4/4
Clarity of docs, auth disclosure, support links, and other trust signals visible to integrators.
Tool Capability Clarity
0/4
How clearly the tool surface communicates whether each action reads, writes, deletes, executes, or exports data.
Destructive Operation Safety
3/4
Penalizes delete/revoke/destroy style tools unless auth and safeguards reduce blast radius.
Egress / SSRF Resilience
3/4
Assesses arbitrary URL fetch, crawl, webhook, and remote-request exposure on the tool surface.
Execution / Sandbox Safety
4/4
Evaluates shell, code, script, and command-execution exposure and whether that surface appears contained.
Data Exfiltration Resilience
3/4
Assesses export, dump, backup, and bulk-read behavior against the surrounding auth and safeguard signals.
Least Privilege Scope
2/4
Rewards scoped auth metadata and penalizes broad or missing scopes around privileged tools.
Secret Handling Hygiene
3/4
Assesses secret-bearing tools, token leakage risk, and whether the public surface avoids obvious secret exposure.
Supply Chain Signal
0.5/4
Public metadata signal for repository, changelog, license, versioning, and recency that supports supply-chain trust.
Input Sanitization Safety
0/4
Penalizes risky freeform string inputs when schemas do not constrain URLs, code, paths, queries, or templates.
Tool Namespace Clarity
0/4
Measures naming uniqueness and ambiguity across the tool namespace to reduce collision and confusion risk.

Compatibility profiles

No compatibility profiles available.

Actionable remediation

No remediation items. Current evidence does not show urgent client-facing fixes.

Point loss breakdown

No current score penalties are recorded.

Validation diff

Need at least two validation runs before diffing changes.

Tool snapshot diff & changelog

Need at least two validation runs before building a tool changelog.

Connector replay

No connector replay evidence is available yet.

Transport compliance drilldown

No transport compliance drilldown is available yet.

Request association

No request-association evidence is available yet.

Utility coverage

No utility-coverage summary is available yet.

Benchmark tasks

No benchmark tasks are available yet.

Registry & provenance divergence

No provenance-divergence summary is available yet.

Active alerts

No active alerts for the current server state.

Aliases & registry graph

No aliases discovered for this server.

Alias consolidation

No alias consolidation details are available yet.

Install snippets

No install snippets available.

Agent access & tool surface

Live server tools
No live tool surface captured yet.
Observed from the latest live validation against none. This is the target server surface, not Verify's own inspection tools.
Live capability counts
0 tools • 0 prompts • 0 resources
Counts come from the latest tools/list, prompts/list, and resources/list checks.
Inspect with Verify
search fetch search_servers recommend_servers get_server_report compare_servers
Use Verify itself to search, recommend, compare, and fetch the full report for manycontacts/whatsapp-mcp.
Direct machine links

Claims & monitoring

Server ownership

No verified maintainer claim recorded.

Watch subscriptions
0
Teams: none

Alert routing

No alert routing is configured yet.

Maintainer analytics

No maintainer analytics available.

Maintainer response quality

No maintainer response quality signals are available yet.

Maintainer annotations

No maintainer annotations have been recorded yet.

Maintainer rebuttals & expected behavior

No maintainer rebuttals or expected-behavior overrides are recorded yet.

Latest validation evidence

No validation run available yet.

Raw evidence view

No raw evidence recorded.

Known versions

Validation history

No historical trend summary is available yet.

Validation timeline

No validation timeline is available yet.

Recent validation runs

StartedStatusSummaryLatencyChecks
No validation runs yet.