mcp-whmcs
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
mcp-whmcs
MCP server for WHMCS. It lets Claude (or any MCP client) manage clients, services, orders, invoices, quotes, domains, tickets and system settings through the WHMCS External API.
128 typed tools for the common workflows, with validated parameters and WHMCS quirks handled for you: PHP bracket notation,
base64(serialize())for custom fields, parallel arrays forAddOrder, numbered invoice lines, and booleans sent as1/0.whmcs_call_apiruns any of the 162 WHMCS actions, and custom actions added by addon modules.whmcs_list_actionslists them with their kind and documentation link.Safety: read-only mode,
confirm: truerequired on destructive tools, sensitive actions turned off by default, and MCP annotations (readOnlyHint/destructiveHint) on every tool.Responses are compact JSON. WHMCS list wrappers (
{"clients":{"client":[…]}}) are collapsed into arrays, and very large payloads are truncated with a hint to paginate.
Install
API credentials (recommended)
Create them in WHMCS under Configuration → System Settings → Manage API Credentials. Assign an API role that grants only the actions you need.
claude mcp add whmcs \
-e WHMCS_API_URL=https://your-whmcs.com/includes/api.php \
-e WHMCS_IDENTIFIER=your_identifier \
-e WHMCS_SECRET=your_secret \
-- npx -y mcp-whmcsAdmin username and password (legacy)
The password is MD5-hashed before it is sent, which is what WHMCS expects.
claude mcp add whmcs \
-e WHMCS_API_URL=https://your-whmcs.com/includes/api.php \
-e WHMCS_USERNAME=your_admin_user \
-e WHMCS_PASSWORD=your_admin_password \
-- npx -y mcp-whmcsbunx mcp-whmcs works in place of npx -y mcp-whmcs. For a read-only assistant, add
-e WHMCS_READ_ONLY=true.
Allow the API caller's IP
By default WHMCS accepts API calls only from allowed IPs. You can do either of the following:
Add the IP of the machine that runs the server under Configuration → System Settings → General Settings → Security → API IP Access Restriction.
Or set
$api_access_key = '...';in WHMCSconfiguration.phpand pass the same value asWHMCS_ACCESS_KEY.
Other MCP clients
{
"mcpServers": {
"whmcs": {
"command": "npx",
"args": ["-y", "mcp-whmcs"],
"env": {
"WHMCS_API_URL": "https://your-whmcs.com/includes/api.php",
"WHMCS_IDENTIFIER": "your_identifier",
"WHMCS_SECRET": "your_secret"
}
}
}
}Related MCP server: mcp-remnawave
Configuration
Variable | Description |
| Required. |
| API credentials (recommended). |
| Legacy admin login, used when no API credentials are set. Set |
| API access key that bypasses the IP allow list. |
|
|
|
|
| Comma-separated subset of |
| Request timeout in milliseconds (default |
| Truncate tool output after this many characters (default |
Tools
✎ = write, ⚠ = destructive (requires confirm: true), 🔒 = requires WHMCS_ALLOW_SENSITIVE. All names have the
whmcs_ prefix.
Toolset | Tools |
clients | get_clients, get_client_details, add_client ✎, update_client ✎, close_client ⚠, delete_client ⚠, get_client_groups, add_client_note ✎, get_emails, get_cancelled_packages, get_contacts, add_contact ✎, update_contact ✎, delete_contact ⚠, get_users, add_user ✎, update_user ✎, reset_user_password ✎, create_client_invite ✎, get_permissions_list, get_user_permissions, update_user_permissions ✎, delete_user_client ⚠ |
services | get_client_products, get_client_addons, update_client_product ✎, update_client_addon ✎, module_create ✎, module_suspend ✎, module_unsuspend ✎, module_terminate ⚠, module_change_password ✎, module_change_package ✎, module_custom ✎, upgrade_product ✎, add_cancel_request ⚠ |
orders | get_orders, get_order_statuses, add_order ✎, accept_order ✎, pending_order ✎, cancel_order ⚠, fraud_order ⚠, delete_order ⚠, order_fraud_check ✎, get_products, get_promotions, add_product ✎ |
billing | get_invoices, get_invoice, create_invoice ✎, update_invoice ✎, add_invoice_payment ✎, capture_payment ✎, apply_credit ✎, gen_invoices ✎, add_billable_item ✎, get_transactions, add_transaction ✎, get_credits, add_credit ✎, get_pay_methods, delete_pay_method ⚠, get_quotes, create_quote ✎, update_quote ✎, send_quote ✎, accept_quote ✎, delete_quote ⚠ |
domains | get_client_domains, domain_whois, get_tld_pricing, get_registrars, domain_get_whois_info, domain_get_nameservers, domain_update_nameservers ✎, domain_get_locking_status, domain_update_locking_status ✎, domain_request_epp ✎, domain_register ✎, domain_transfer ✎, domain_renew ✎, domain_toggle_id_protect ✎, domain_release ⚠, update_client_domain ✎ |
support | get_tickets, get_ticket, get_ticket_notes, get_ticket_counts, open_ticket ✎, add_ticket_reply ✎, add_ticket_note ✎, update_ticket ✎, merge_ticket ⚠, delete_ticket ⚠, block_ticket_sender ⚠, get_support_departments, get_support_statuses, get_ticket_predefined_cats, get_ticket_predefined_replies, get_announcements, add_announcement ✎ |
system | get_stats, whmcs_details, get_activity_log, log_activity ✎, get_automation_log, get_module_queue, get_admin_users, get_admin_details, get_staff_online, get_currencies, get_payment_methods, get_email_templates, send_email ✎, send_admin_email ✎, get_todo_items, update_todo_item ✎, add_banned_ip ✎, get_servers, get_health_status, get_affiliates, affiliate_activate ✎, create_sso_token ✎🔒 |
projects | get_projects, get_project, create_project ✎, add_project_task ✎, add_project_message ✎ |
always | list_actions, call_api |
Example prompts
"Which clients have overdue invoices, and how much does each one owe?"
"Open ticket #ABC-123456, summarize it, and draft a reply as admin
mario.""Suspend service 812 for non-payment, then add a client note."
"Is
example.itavailable? If so, how much is a 2-year registration?"
Development
Requires Bun.
bun installbun run checkbun run buildcheck runs oxfmt, oxlint (including the vendored
anti-slop plugin in tools/oxlint/anti-slop) and tsc.
bun test runs the live tests in test/live.test.ts against the WHMCS instance configured in .env. The test
server always runs with WHMCS_READ_ONLY=true, so it can't create, change or delete records.
bun run inspect opens the server in the MCP Inspector.
License
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
MCP server for your apps' tools and custom tools, plus hosted AI agents and approval-gated workflows
Security-first WordPress MCP server. 129 tools for Claude, ChatGPT, Gemini. Free on wp.org.
Hosted MCP with 91 agent tools: X, domains, SEO, Maps, Trends, Search, YouTube, TikTok, and more.
Run field service from Claude, ChatGPT or Copilot: dispatch, billing, customer messages, photos, and change the software itself, with a confirm step before every change. This address is the India region; US East, Canada, Norway and NZ addresses are at fieldproxy.ai/mcp.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to administrate WHMCS installations through the External API, providing ~50 tools for clients, billing, orders, services, domains, support, and aggregators with safety features and governance.64 npm3ISC
- AlicenseCqualityBmaintenanceEnables MCP clients like Claude Code, Claude Desktop, or Cursor to read and manage Remnawave 3.x VPN panel resources — users, nodes, hosts, config profiles, squads, subscription templates, billing, and HWID devices — through the panel's REST API, with contract-driven tool schemas, numeric user IDs, multi-panel config lookup, and an optional readonly mode.2049 npmMIT
- AlicenseBqualityCmaintenanceEnables management of WHMCS installations via the WHMCS API, providing tools for clients, products, billing, support tickets, domains, orders, and system administration.6264 npmMIT
- AlicenseAqualityBmaintenanceEnables LLM agents and MCP clients to interact with the Blesta billing API. It provides read-only tools for searching clients, invoices, services, transactions, and payment accounts, plus optional write tools for creating invoices, managing services, recording payments, and generating customer-facing payment links.33GPL 3.0