DarkFunnels — MCP server
A hosted, multi-tenant MCP server that lets your assistant operate a
WhatsApp AI sales agent: audit real conversations and find where sales are
lost, edit the versioned sales playbook with undo, manage the product catalog,
and read orders, stock and metrics — all scoped to your own account.
This repository is the public front door: the server itself is closed source.
Read the documentation first — no account needed
Connect
https://mcp.darkfunnels.ai/mcp?features=all
- Transport: Streamable HTTP, stateless. No SSE;
GET/DELETE on /mcp
answer 405.
- Auth: OAuth 2.1 with dynamic client registration. Nothing to request from
us and no waiting list — any DarkFunnels account can connect.
- Discovery:
https://mcp.darkfunnels.ai/.well-known/oauth-protected-resource/mcp
(RFC 9728). An unauthenticated call answers 401 with a
WWW-Authenticate: Bearer resource_metadata=… header, which is what makes a
compliant client start the flow on its own.
Authorize with the same account you use for the dashboard. Authorizing with
a different one connects successfully to that other, probably empty, workspace —
if your assistant says you have no products, check that first. The whoami tool
answers which account is connected.
What it is for
DarkFunnels puts an AI sales agent on a business's WhatsApp. The business
connects the number it already uses by scanning a QR code from the dashboard,
the same linked-device mechanism as WhatsApp Web: there is no Meta Cloud API
application to get approved, no message templates to submit, and no
per-conversation fee. DarkFunnels is not a Meta product and is not affiliated
with Meta.
This server is how the owner's own assistant — Claude, ChatGPT, Codex or any MCP
client — operates that workspace.
Scoping the connection
Four query parameters decide what the assistant can do:
?features= — an explicit list replaces the default set, it does not
extend it. ?features=all is the recommended value: it takes the whole
catalog, including groups published after you connect. A _write group always
brings its matching read group with it.
?read_only=true — disables every write, and takes precedence over
everything else, all included.
?pii=full — unmasks end-customer phone numbers, which are masked by default.
?agent=<uuid> — pins the connection to one sales funnel.
Without ?features=, the default set is read-only apart from a single
non-destructive write: assigning tags to customers.
44 tools across 14 feature groups. Every one declares a title and the
applicable readOnlyHint or destructiveHint, so a client can show the owner
what it is about to do.
Full reference, generated from the source code:
https://docs.darkfunnels.ai/en/reference/tools
Tool titles and descriptions are written in Spanish. That is deliberate: it is
the exact text the connector sends to the model, refined against real
operational failures in a product whose users are Spanish-speaking business
owners. Translating it would describe a tool that does not exist.
What it will never do
This connector never moves funds and cannot execute payments. Order and sales
data is read-only: nothing in the tool surface initiates, captures, or refunds a
payment.
One tool creates a sales funnel, which consumes a subscription seat. It never
initiates a payment: when the seat limit is reached the call fails closed, and
the owner completes any purchase in the DarkFunnels dashboard.
Try it with these
- "Review yesterday's WhatsApp conversations and tell me where we are losing sales."
- "Read my sales agent's manual and propose an improvement to the closing chapter; save it once I approve."
- "List the customers who have gone 3+ days without a reply and draft what the agent should say to re-engage each one."
Links
Registry
Published to the official MCP registry as ai.darkfunnels/whatsapp-sales-agent.
See server.json.