PD MCP Hub for WHMCS

PD MCP Hub — Let Claude, Cursor and Copilot Work in Your WHMCS, Safely

One governed endpoint for everything your team's AI touches — WHMCS, your PD modules, and the MCP servers you already use

Made and supported by Projektif Digital Ltd. Runs inside PD Modules, the panel every module installs into.

AI & Automation

PD MCP Hub gives the AI assistants your team already uses a controlled way into WHMCS. It is one secure endpoint that tools such as Claude and OpenAI Codex can connect to, so a support agent can ask an assistant about a client, an invoice or a ticket and get a real answer from your own system. What each assistant is allowed to do is decided by a connection you create for it, and nothing that matters happens without a person agreeing to it. PD MCP Hub is free.

It is built for hosts who want the benefit of AI assistants in their day-to-day work without giving any of them the keys to the business. Each assistant gets exactly the reach you grant, every call is recorded, and a serious action waits for you.

Why hosts choose PD MCP Hub

One connection per assistant, each with its own limits. Every connection has its own token, its own risk ceiling, its own areas of WHMCS and the administrator it acts as. Give the assistant that reads your support queue no financial tools at all, and an instruction hidden in a ticket has nothing to reach.

A person approves anything serious. Refunds, payments, cancellations, ticket replies and anything that deletes wait in Approvals. The description is written from the actual request, not by the assistant, and shows what the assistant had just read. An approval covers only the request shown, for that connection, once, and for an hour. Rejecting tells the assistant not to retry.

Everything is on the record, including the refusals. The audit trail logs every call with the time, the connection, the tool, the outcome, how long it took and its arguments, with passwords, card details and API credentials removed. Every refusal is there too, with its reason, and the whole trail downloads as a CSV.

Two kill switches. One in the panel stops every connection immediately, even one mid-conversation. The other is a file you create in the module's folder, which stops everything over SSH when the panel itself is the problem. Delete the file and it resumes.

Safe by default. The endpoint ships switched off and answers 503 to everything until you turn it on. A read-only switch outranks every other setting, so nothing that changes data is reachable.

It grows with the modules you own. Installed PD modules add their tools on their own. A family such as DNS or SMS appears as one set of tools however many providers you have installed, and you give each connection access to the areas you choose.

How it works

  1. Create a connection. Name the assistant, choose the administrator it acts as, set its ceiling (Read, Write, Comms or Destructive), its areas, an optional address allow-list, an expiry date and a rate limit.
  2. Copy the token once. It is shown only at creation. Only a one-way hash is kept, and Rotate issues a new token and kills the old one at once.
  3. Connect the assistant. The Connect tab shows the exact configuration to paste. Claude Code, Claude.ai, OpenAI Codex and Claude Desktop are documented, and a one-file bridge with a published checksum covers clients that only launch a local program.
  4. Watch and widen. Start read-only, watch the audit trail for a day, and widen the connection when you can see what it actually does.

What you get in WHMCS

Controlling access

  • A ceiling per connection, and a floor from the administrator's role: a connection bound to a support operator cannot reach billing tools whatever its ceiling, and a disabled administrator's connection is refused everything
  • Each tool needs the permission a person would need to do the same thing by hand
  • A connection limited to specific clients is confined to them on every tool, including searches, and tools that answer across all clients are not available to it
  • An address allow-list that accepts single addresses and ranges, an expiry date, and a calls-per-minute limit that answers 429 when exceeded
  • Browser origin checks when you list origins, with MCP clients that send no origin unaffected
  • A token placed in a web address is refused, recorded as a leak and the caller told to treat it as compromised
  • Clear status codes: 401 for a bad, revoked, expired or disabled token, 403 for an address not allowed, 503 when off or killed, 429 over the limit

What an assistant can do

  • A compact set of WHMCS tools: search, client, service, domain, invoice, order and ticket lookups, business numbers, health, invoice actions, ticket reply and an escape hatch for any other API action
  • The escape hatch runs only individually classified actions at each action's own risk. Decrypting passwords, creating administrators and mailing staff are never available
  • Find-a-tool and call-a-tool let an assistant discover what it can use, and are a route to a tool, never around one
  • Add, edit and delete knowledge base articles and announcements, with a person asked before anything is deleted, and add a staff-only note to a client
  • A refund request records the intent and says plainly that the money has not moved and where to finish it
  • Ticket text written by customers reaches the assistant marked as customer-written data

Attaching other servers

  • Attach the MCP servers you already run, over HTTPS only, and put them under the same rules. Their tools are renamed under the server's short name, treated as dangerous and scanned for instruction-like text
  • Nothing an attached server offers is available until you approve it and tick it on a connection
  • A re-check that finds changed definitions holds the server and withdraws its tools until you review. A server that fails three checks in a row is withdrawn, and removing a server withdraws it from every connection
  • By default a connection reaches attached servers or holds destructive tools of its own, not both, unless you accept the risk on that connection

Running it day to day

  • The Catalogue tab lists every tool with its risk class and what the list costs an assistant's context
  • Audit rows are pruned after the retention you set, 90 days by default, by the hourly maintenance job
  • Behind Cloudflare, the documented WAF skip rule on the endpoint path lets hosted assistants through, and the path stays protected by token, allow-list and rate limit

Security built in

  • Tokens are hashed, shown once, and never accepted in a web address
  • Nothing passes through us: your WHMCS talks directly to the assistant and to any server you attach
  • There is no client-area surface at all, permanently, so no customer session can reach these tools
  • If you attach other servers, their credentials stay yours and nothing is proxied
  • On Apache, the shipped configuration restores an Authorization header the server would otherwise strip

One product, every feature

PD MCP Hub is free, with every control included. It does no background work unless you attach a server, and those re-checks run on your cron, never while an assistant is waiting. It installs into PD Modules in one click and uninstalls cleanly, removing its connections, audit trail, approvals and attached servers.

When PD AI Assistant is installed too, you can switch on the bridge so its co-pilot gains the hub's tools under the connection's limits.

Requirements

  • WHMCS 9 or later on PHP 8.2 or later
  • An MCP-capable assistant that can reach your WHMCS over HTTPS
  • PD Modules, the free control panel every PD module installs into

Questions

Is PD MCP Hub really free?

Yes. Every feature is included, there is nothing to upgrade to, and no part of it is held back for a paid plan — the kill switch, read-only mode, the approval queue, the full audit trail, client scoping and as many connection profiles as you need. Separate profiles are how you keep an assistant that reads tickets away from anything that moves money, so you get as many as your setup calls for. A £0 licence still ties the install to your account so updates and support work.

What can an AI assistant actually see?

Exactly what the connection you gave it allows. Each connection has a risk ceiling, a set of areas it can reach, a WHMCS administrator it acts as, and optionally a list of clients it may touch. The narrowest of those wins. Start read-only, watch the audit trail for a day, and widen it when you can see what it is actually doing.

What stops someone hiding an instruction in a support ticket?

Mostly the shape of the connection. Customer-written content is handed to the model marked as data rather than instructions, which helps and is not a defence on its own. The real answer is that the connection reading tickets has no financial tools at all, so an instruction saying "refund invoice 4821" has nothing to reach. Anything that does move money stops and asks a person, and the description they read is written from the actual request, with the ticket the assistant had just read shown beside it.

How do I stop everything immediately?

The kill switch on the Settings tab cuts every connection, including conversations in progress. If the panel itself is the problem, create a file called .mcp-kill in the module's directory over SSH — that works with no database, no login and no working panel.

Does any of my data go to you?

No. Your WHMCS talks directly to the assistant you connected, and directly to any third-party MCP server you attached, using your own credentials. Nothing is proxied through us and we host nothing on the path.

Which AI clients does it work with?

Anything that speaks the Model Context Protocol. Newer builds of Claude Code, Cursor and VS Code can connect to the endpoint directly over HTTPS. Claude Desktop and some others launch a local command instead, so a small bridge file is included — one file, Node 18 or newer, no dependencies, with its checksum shown in the panel so you can verify what you downloaded.

Can my customers use this?

No, and that is permanent rather than a phase. This is an administrator tool with no client-area surface at all, so there is no route by which a signed-in customer could reach it.

What does "attach another MCP server" mean?

You can connect the other tools your business already runs — Cloudflare, Stripe, GitHub, Sentry, or anything else that speaks Streamable HTTP over HTTPS — so one assistant can work across them and your WHMCS together. Their tools appear under their own name, their credentials stay on your server, and nothing they offer is available until you have read the definitions and approved them.

What if an attached server changes its tools later?

It stops working until you look. We keep an exact record of the definitions you approved and re-check on your cron. If they change — new tools, edited descriptions, altered inputs — the server is held and shown to you as a difference, and its tools disappear from every connection until you approve the new set. That is the defence against a server that behaves for a month and then does not.

Do my other PD modules add anything?

Yes, automatically. Any PD module that contributes tools makes them available here with nothing to wire up — DNS zones and records, SMS sending and history, security checks. Where several modules do the same kind of job the tools are shared, so owning one DNS module or all ten gives you one set of DNS tools, with the providers you actually own offered as choices.

Will it slow my WHMCS down?

It does no background work unless you attach a third-party server, and even then the re-checks run on your cron rather than while an assistant is waiting. Listing tools reads manifests and loads no module code; exactly one module is loaded when one of its tools is actually called.

How does this differ from just giving the AI an API key?

An API key is all-or-nothing and has no memory. This has a ceiling per connection, a floor from the bound administrator's role, a human step in front of anything irreversible, a per-minute rate limit, and a record of every call and every refusal. It is also the difference between an assistant that can look something up and one that can quietly issue a refund.

What’s new in 0.1.35

  • Tables fit narrow screens.
  • Your assistant can now add, edit, find and delete knowledge base articles and categories and add client notes. Deleting always asks a person first and says what goes with it.
  • It can also post, edit and delete announcements, and asking it to find a capability now finds the API actions that do it.
  • A connection that is too restricted now tells you how to raise its ceiling.
  • Tools now follow each staff role's own permissions: a role without the matching permission is refused.
  • Asking the assistant for a refund now notes it on the invoice and says plainly that no money has moved; it no longer says it recorded a refund that it had not.
  • Card numbers and API credentials are removed from the Audit trail whatever the field is called.
  • A connection can now be allowed to hold destructive tools alongside an attached server, from its edit screen; the choice is recorded in the Audit trail.
  • A tool from an area a connection was not given is refused when called by name, as well as left off its list.
  • A connection acting as a disabled or deleted administrator is refused everything.
  • A call turned away for its arguments now appears in the Audit trail.
  • A new connection gets its full per-minute allowance from the first minute.
  • A connection limited to specific clients now stays within them on every tool, and an approval only ever runs the exact request you approved.

Get your website online with PD Hosting

UK hosting, domains and support from a real team. From a first site to a full server.

Terms and Conditions  ·  Privacy Policy

PD Hosting is the trading name of Projektif Digital Ltd, registered in England and Wales, company number 12482555.

PD Hosting
Privacy Overview

This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.