Whmcs MCP
MCP server for WHMCS automation - AI-powered client management and hosting operations
Ask AI about Whmcs MCP
Powered by Claude Β· Grounded in docs
I know everything about Whmcs MCP. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
WHMCS MCP Server
MCP (Model Context Protocol) server for full integration with the WHMCS API.
Features
Tickets and Support
- List tickets with advanced filters
- View full ticket details (including replies and notes)
- Create new tickets
- Add replies to tickets
- Update ticket properties
- List support departments
- View ticket statuses with counts
- Full ticket statistics
Clients
- List clients with filters and pagination
- View full client details (with stats)
Products and Orders
- List available products/services
- List orders with filters
Invoices
- List invoices with filters and sorting
General
- Secure authentication via API credentials
- Fully typed with TypeScript
- 34 MCP tools implemented and tested
Available Tools (34)
Tickets
- whmcs_get_tickets - List tickets with filters
- whmcs_get_ticket - View a specific ticket with all replies
- whmcs_get_ticket_counts - Ticket statistics and counts
- whmcs_open_ticket - Create a new ticket
- whmcs_add_ticket_reply - Reply to a ticket
- whmcs_update_ticket - Update ticket properties
Support
- whmcs_get_support_departments - List departments
- whmcs_get_support_statuses - View statuses with counts
Clients
- whmcs_get_clients - List clients
- whmcs_get_clients_details - Full client details
- whmcs_get_clients_products - Client products/services
- whmcs_get_clients_domains - Client domains
- whmcs_get_contacts - Client contacts
- whmcs_get_emails - Email history
Products, Orders, and Invoices
- whmcs_get_products - List products/services
- whmcs_get_orders - List orders
- whmcs_get_invoices - List invoices
Billing Analysis
- whmcs_find_invoice_gaps - Find missing invoice months per client
- whmcs_list_clients_with_pending_invoices - List clients with unpaid/overdue invoices
System and Administration
- whmcs_get_activity_log - Activity log (116k+ entries)
- whmcs_get_stats - Full statistics (revenue, orders, tickets)
- whmcs_get_currencies - Configured currencies
- whmcs_get_payment_methods - Active payment methods
- whmcs_get_admin_users - Admin users
Combined Invoices
- whmcs_get_unpaid_invoices_detailed - Unpaid invoices with client and product details
- whmcs_get_all_unpaid_invoices_complete - All unpaid invoices with full details
Service Management
- whmcs_module_suspend - Suspend service
- whmcs_module_unsuspend - Unsuspend service
- whmcs_module_terminate - Terminate service permanently
- whmcs_module_create - Provision service
Order Management
- whmcs_accept_order - Accept and activate order
- whmcs_cancel_order - Cancel order
- whmcs_delete_order - Delete order permanently
- whmcs_pending_order - Set order as pending
Quick Install
Claude Code (one command)
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 whmcs-mcp
Or with admin credentials instead of API keys:
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 whmcs-mcp
That's it. Run claude mcp list to verify.
Claude Desktop
Add to your claude_desktop_config.json (location by OS):
{
"mcpServers": {
"whmcs": {
"command": "npx",
"args": ["-y", "whmcs-mcp"],
"env": {
"WHMCS_API_URL": "https://your-whmcs.com/includes/api.php",
"WHMCS_IDENTIFIER": "your_identifier",
"WHMCS_SECRET": "your_secret"
}
}
}
}
Restart Claude Desktop and the 34 tools will be available.
Alternative: mcp.json file
If you prefer a config file instead of env vars, create mcp.json in the project root:
cp mcp.example.json mcp.json
# edit mcp.json with your credentials
When using admin credentials with username/password, the server automatically hashes the password with MD5 (WHMCS requirement). You can also provide an already MD5-hashed password.
Adding credentials later
If you already added the MCP server but didn't have the credentials yet:
Claude Code: run claude mcp add whmcs ... again with the -e flags -- it overwrites the previous entry.
Claude Desktop: open claude_desktop_config.json and add the env block to the existing whmcs entry:
"env": {
"WHMCS_API_URL": "https://your-whmcs.com/includes/api.php",
"WHMCS_IDENTIFIER": "your_identifier",
"WHMCS_SECRET": "your_secret"
}
Then restart Claude Desktop.
Usage Examples
In Claude Code, you can ask questions like:
Tickets:
- "List the last 10 open tickets"
- "Show details for ticket #123456"
- "How many tickets are awaiting response?"
- "Which support departments are available?"
Clients:
- "List the last 5 active clients"
- "Show details for client ID 123"
- "How many clients do we have total?"
Products:
- "List all available products"
- "Which products are in group 5?"
Orders and Invoices:
- "List the last 10 orders"
- "Show overdue invoices"
Technologies
- TypeScript
- MCP SDK (@modelcontextprotocol/sdk)
- Axios (HTTP client)
- WHMCS API v1
Project Structure
whmcs-mcp/
βββ src/ # TypeScript source code
β βββ index.ts # MCP server (34 tools)
β βββ config.ts # Config loader (env vars β mcp.json)
β βββ whmcs-client.ts # API client (34 methods)
β βββ types.ts # TypeScript types
βββ test/ # Unit tests
βββ build/ # Compiled output
βββ mcp.example.json # Config file template (optional)
βββ package.json
Development
# Watch mode (auto rebuild)
npm run dev
# Manual build
npm run build
# Run the MCP server with the default mcp.json
node build/index.js
# Run with a custom config path
node build/index.js --config /absolute/path/mcp.json
# Test client directly
node -e "import('./build/whmcs-client.js').then(async ({WHMCSClient}) => { ... })"
Requirements
- Node.js >= 18
- WHMCS account with API enabled
- WHMCS API Identifier and Secret
- IP authorized in the WHMCS API
Project Status
- 34 MCP tools implemented and tested
- Complete TypeScript client
- Tested in production with real data
- Full coverage of main WHMCS endpoints
Completed Implementations
Tickets and Support (8 tools)
- GetTickets, GetTicket, GetTicketCounts
- OpenTicket, AddTicketReply, UpdateTicket
- GetSupportDepartments, GetSupportStatuses
Clients (6 tools)
- GetClients, GetClientsDetails
- GetClientsProducts, GetClientsDomains
- GetContacts, GetEmails
Products and Sales (3 tools)
- GetProducts, GetOrders, GetInvoices
System and Admin (5 tools)
- GetActivityLog (116k+ entries tested)
- GetStats (revenue, orders, tickets)
- GetCurrencies, GetPaymentMethods
- GetAdminUsers
Combined Invoices (2 tools)
- GetUnpaidInvoicesDetailed, GetAllUnpaidInvoicesComplete
Billing Analysis (2 tools)
- FindInvoiceGaps, ListClientsWithPendingInvoices
Service Management (4 tools)
- ModuleSuspend, ModuleUnsuspend, ModuleTerminate, ModuleCreate
Order Management (4 tools)
- AcceptOrder, CancelOrder, DeleteOrder, PendingOrder
License
MIT
Author
Built for WHMCS integration via Model Context Protocol.
