WHMCS MCP Server

io.github.daddariotech由 GitHub 账号 daddariotech 发布v2.3.8更新于 Nov 2, 2026

Connect Claude, ChatGPT, and Cursor to live WHMCS over MCP.

概览

AI 生成的概览

商业 MCP 服务器,把 AI 客户端连接到运行中的 WHMCS 计费系统,让助手读写客户、账单、订单、工单、服务和域名。

可以做什么
  • 客户:查询、列出、创建和更新客户账户、分组、联系人、邮箱、域名、附加服务与备注
  • 账单:读取、创建和更新账单,登记付款,列出逾期账单与交易,添加计费项目和余额
  • 订单与服务:下单、接受、取消或标记订单;创建、暂停、恢复、终止和升级产品
  • 支持:读取、新建和回复工单,添加备注,列出支持部门、状态和工单数量
  • 域名与目录:注册、转移、续费域名,管理域名服务器和锁定状态,读取 TLD 价格、产品和促销
  • 管理与报表:统计、活动日志、员工与待办事项,另有只读的 whmcs:// 资源和引导式工作流提示
适用场景
适合让助手直接操作 WHMCS 主机或计费系统:回答客户与账单问题、起草工单回复、催收逾期账单,或生成续费和流失风险报表,而不必手工复制数据。
运行要求
以本地进程(Docker 镜像或安装的二进制)或 HTTP 端点运行。需要 WHMCS API 地址,以及来自 WHMCS API 角色的凭据标识和密钥(WHMCS_IDENTIFIER、WHMCS_SECRET);14 天试用期后需要 LICENSE_KEY。使用 HTTP 传输时 MCP_TRANSPORT 必须设为 http。项目相关工具还需启用 WHMCS Project Management 附加模块。
安装前请注意
API 角色的权限决定助手能做什么:最高权限预设包含发送邮件、创建账单、添加余额和付款、注册或续费域名、暂停或终止服务,这些都会产生费用或改动客户数据。建议先只读,再按需增加写权限。服务器保存 WHMCS API 密钥和付费许可证密钥,属商业软件,试用 14 天后结束。

安装

在 SourceWeft 中

  1. 打开 控制台中的 WHMCS MCP Server,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

WHMCS MCP Server

Production-grade AI integration for WHMCS. Connect ChatGPT, Claude, and Cursor directly to your WHMCS installation — manage clients, invoices, tickets, and services through natural language.

You: "Send a payment reminder to all clients with overdue invoices over $50"AI:  Fetching overdue invoices... Found 12. Sending reminder emails... Done.

[License] [Docker] [MCP]


Prerequisites — WHMCS API Setup

Before running the installer you need a WHMCS API credential with the right permissions.

1. Create an API Role

In WHMCS Admin: Setup → Staff Management → API Roles → Add Role

Choose a permission preset based on how much you trust the AI:

Minimum permissions (read-only — AI can look but not touch): GetClients GetClientsDetails GetClientsProducts GetClientsDomains GetClientsAddons GetClientGroups GetContacts GetEmails GetInvoice GetInvoices GetOrders GetOrderStatuses GetProducts GetTicket GetTickets GetSupportDepartments GetQuotes GetCredits GetTransactions GetStats GetActivityLog GetCancelledPackages GetEmailTemplates GetCurrencies GetPaymentMethods GetHealthStatus GetProductGroups GetRegistrars GetServers GetAffiliates GetAnnouncements GetSupportStatuses GetTicketCounts GetTicketPredefinedCats GetAdminUsers GetToDoItems GetToDoItemStatuses GetStaffOnline DomainWhois DomainGetNameservers DomainGetLockingStatus GetTLDPricing GetPromotions GetProjects GetProject

Maximum permissions (full access — AI can take any action): Everything above, plus: AddClient UpdateClient AddClientNote AddContact UpdateContact CreateInvoice AddInvoicePayment AddOrder AcceptOrder CancelOrder OpenTicket AddTicketReply UpdateTicket CreateQuote UpdateQuote SendQuote AcceptQuote DeleteQuote AddCredit ApplyCredit AddBillableItem SendEmail UpdateClientProduct ModuleSuspend ModuleUnsuspend ModuleTerminate ModuleCreate UpgradeProduct DomainRegister DomainTransfer DomainRenew DomainUpdateNameservers DomainUpdateLockingStatus DomainToggleIdProtect FraudOrder PendingOrder UpdateInvoice ModuleChangePw LogActivity AddTicketNote AffiliateActivate CreateProject UpdateProject AddProjectTask UpdateProjectTask DeleteProjectTask AddProjectMessage StartTaskTimer EndTaskTimer

Project Management tools: list_projects through end_task_timer additionally require the WHMCS Project Management addon to be active (Setup → Addon Modules), regardless of API role permissions.

Domain write permissions: register_domain, transfer_domain, and renew_domain require DomainRegister, DomainTransfer, and DomainRenew respectively. Note the Domain prefix comes first — RegisterDomain / TransferDomain / RenewDomain are not valid WHMCS permission keys and are silently ignored if granted. If a domain tool returns HTTP 403, the matching permission is missing from your role. Upgrading from 2.3.1 or earlier? See the 2.3.2 changelog entry — you need to re-grant these three under their correct names.

Tip: Start with minimum permissions and add write permissions only as needed. This limits blast radius if an AI client goes rogue or gets a bad prompt.

2. Set an API Access Key (recommended)

An Access Key bypasses IP restrictions entirely — the recommended approach since the MCP server's outbound IP can change (Docker restarts, server moves, etc.).

Add this line to your configuration.php in the WHMCS root:

php
$api_access_key = 'your-secret-passphrase';

Allowed characters: letters, numbers, and ! @ # $ % . ( ) * [ ] - _

Then set WHMCS_ACCESS_KEY to the same value in your .env or Portainer stack.

3. Create an API Credential

Setup → Staff Management → API Credentials → Generate New Credential

  • Role: select the role you just created
  • Allowed IPs: leave blank if using an Access Key (recommended), or enter the server IP if you prefer IP-based restrictions
  • Copy the Identifier and Secret — you'll need these during install

Quick Start — running in under 5 minutes

Binary (no Docker required):

bash
curl -fsSL https://daddar.io/whmcs-mcp/install.sh | sudo bash

Prompts for your WHMCS credentials and license key, installs the binary to /usr/local/bin, and registers a systemd service.

Docker (recommended for servers already running Docker):

bash
curl -fsSL https://daddar.io/whmcs-mcp/install-docker.sh | bash

Prompts for credentials, writes .env, and starts the stack via Docker Compose.


Get a License

Purchase a license at daddar.io/store/ai-tools/whmcs-mcp — after checkout, your license key appears in the client portal. Paste it into setup.sh when prompted.

No license? A 14-day free trial starts automatically on first run.


What You Can Do

98 WHMCS Tools

CategoryTools
Clientsget_client list_clients add_client update_client get_client_details get_client_groups get_client_emails get_client_domains get_client_addons add_client_note
Invoicesget_invoice list_invoices create_invoice add_invoice_payment get_overdue_invoices get_transactions update_invoice
Ordersadd_order get_orders accept_order cancel_order get_order_statuses fraud_order pending_order
Serviceslist_services update_service upgrade_product module_create module_suspend module_unsuspend module_terminate get_cancelled_packages
Ticketsget_ticket list_tickets open_ticket add_ticket_reply update_ticket get_support_departments add_ticket_note get_support_statuses get_ticket_counts get_ticket_predefined_categories
Quotesget_quotes create_quote send_quote accept_quote update_quote delete_quote
Contactsget_contacts add_contact update_contact
Creditsget_credits add_credit apply_credit
Billingadd_billable_item get_payment_methods get_currencies
Emailsend_email get_email_templates
Productsget_products get_product_groups create_product
Domainsregister_domain transfer_domain renew_domain get_domain_whois get_domain_nameservers update_domain_nameservers get_domain_lock_status update_domain_lock_status update_domain_donotrenew get_tld_pricing
Adminget_admin_users get_staff_online get_whmcs_details log_activity get_activity_log
Affiliatesget_affiliates activate_affiliate
Promotionsget_promotions
Serversget_servers module_change_password
Systemget_health_status get_todo_items get_todo_item_statuses get_announcements get_registrars get_stats
Reportsget_stats get_activity_log get_transactions
Projectslist_projects get_project create_project update_project add_project_task update_project_task delete_project_task add_project_message start_task_timer end_task_timer — requires the WHMCS Project Management addon to be active

All tools support dryRun mode — preview what would happen before making changes.

24 Real-Time Resources

Resources are read-only data endpoints that AI clients can subscribe to via whmcs:// URIs. Data is served from a 60-second TTL cache.

URIDescription
whmcs://statsLive system statistics (revenue, client counts, invoice totals)
whmcs://healthServer health status
whmcs://system/infoWHMCS installation details (version, PHP, database)
whmcs://productsFull product and service catalog
whmcs://product-groupsProduct groups with product counts
whmcs://tld-pricingDomain TLD registration/transfer/renewal pricing
whmcs://promotionsActive promotions and coupon codes
whmcs://order-statusesAvailable order status values
whmcs://currenciesConfigured currencies with exchange rates
whmcs://payment-methodsActive payment gateway modules
whmcs://registrarsConfigured domain registrar modules
whmcs://serversProvisioning servers
whmcs://client-groupsClient group definitions
whmcs://affiliatesRegistered affiliate accounts
whmcs://email-templatesEmail template library
whmcs://announcementsPublished announcements
whmcs://support/departmentsSupport departments
whmcs://support/statusesAvailable ticket status values
whmcs://support/ticket-countsTicket counts by department and status
whmcs://support/predefined-categoriesPredefined ticket reply categories
whmcs://admin/usersAdmin user accounts
whmcs://admin/todoAdmin to-do items
whmcs://admin/todo-statusesAvailable to-do item status values
whmcs://admin/staff-onlineStaff currently logged into the admin area

18 Workflow Prompts

Prompts are pre-built workflow templates that MCP clients surface as one-click guided interactions.

PromptDescription
new_clientGuided new client account creation
new_orderPlace and accept a product order for a client
new_invoiceCreate a custom invoice with optional send
new_quoteDraft a sales quote with send/accept lifecycle
ticket_responseLoad a ticket, draft a professional staff reply
client_onboardingFull account onboarding review checklist
fraud_investigationSecurity audit for a suspicious order
bulk_invoice_reminderFind overdue invoices and send payment reminders
revenue_reportMRR + outstanding + paid financial breakdown
client_health_checkDeep account scorecard (services, billing, support)
domain_expiry_auditFlag at-risk domains, draft renewal reminders
new_product_setupStep-by-step product configuration guide
churn_risk_reportRanked churn-risk table with recommended actions
support_queue_triagePriority-ordered ticket queue with quick-win suggestions
affiliate_performanceTop performers, commissions, activation gaps
service_renewal_forecastN-month renewal revenue projection
addon_upsell_opportunitiesMissing add-on detection + upsell quote generation
promo_effectivenessPromo code usage, revenue impact, and expiry analysis

vs other WHMCS MCP servers

FeatureWHMCS MCP Server (us)scarecr0w12/whmcs-mcp-toolMX Modules
Tools86~50~20
HTTP transport (ChatGPT, Claude remote)YesNo — stdio onlyYes
AuthenticationOAuth 2.0 PKCE + bearer tokensNoneStatic tokens only
One-click installYes (curl | bash)Manual (clone + npm)Manual
Real-time webhook pushYesNoNo
Audit logYesNoNo
Prometheus metricsYesNoNo
Rate limitingYesNoNo
dryRun mode on every toolYesNoNo
Trial period14 days freeFree forever (MIT)None
Commercial supportYesNoneLimited
LicenseCommercialMITCommercial

Supported AI Clients

ClientTransportAuth
ChatGPT (via GPT Actions)HTTPBearer token or OAuth 2.0
Claude DesktopHTTPBearer token or OAuth 2.0
Cursor IDEstdio or HTTPBearer token or OAuth 2.0
Any MCP-compatible clientHTTPBearer token or OAuth 2.0

Security

  • OAuth 2.0 PKCE — industry-standard authorization with short-lived tokens and refresh
  • Bearer token mode — simple API key setup for single-tenant deployments
  • Rate limiting — per-IP and per-token controls (configurable)
  • Audit log — every authenticated request logged with client ID, method, and timestamp
  • Helmet.js — security headers (CSP, HSTS, X-Frame-Options, etc.)
  • Input sanitization — defense-in-depth against injection
  • HTTPS enforcement — rejects plain HTTP in production
  • Docker secrets — credentials read from /run/secrets/ if present

Configuration

Environment Variables

Copy .env.example to .env and fill in your values.

Required:

VariableDescription
WHMCS_API_URLYour WHMCS URL, e.g. https://billing.example.com
WHMCS_IDENTIFIERWHMCS API identifier
WHMCS_SECRETWHMCS API secret

License:

VariableDescriptionDefault
LICENSE_KEYYour license key from daddar.io(14-day free trial starts automatically)

Authentication:

VariableDescriptionDefault
MCP_OAUTH_ADMIN_PASSWORDEnables the /authorize consent UI for OAuth PKCE flows(unset — consent UI disabled)
MCP_OAUTH_SESSION_SECRETSecret used to sign OAuth CSRF session cookies. Generate with openssl rand -hex 32.(auto-generated ephemeral — set this in production)
MCP_AUTH_TOKENS_FILEPath to bearer token store/app/data/tokens.json

Note (v2.1.0): MCP_AUTH_MODE and MCP_REQUIRE_AUTH have been removed. The server always runs the full auth stack — bearer tokens and OAuth are both available in every configuration. Auth is always enforced in HTTP mode.

Network / proxy:

VariableDescriptionDefault
MCP_TRUST_PROXYSet to true when the server runs behind a TLS-terminating reverse proxy (Traefik, nginx, etc.). Enables X-Forwarded-* header trust for correct IP detection and HTTPS enforcement.false (changed in v2.2.0 — set explicitly in production)

Observability (optional):

VariableDescriptionDefault
MCP_METRICS_ENABLEDEnable Prometheus metrics endpointtrue
MCP_METRICS_PORTPort for /metrics endpoint9090
PUSHGATEWAY_URLPrometheus Pushgateway URL for metric push(unset)
PUSHGATEWAY_USERHTTP Basic Auth username for Pushgateway(unset)
PUSHGATEWAY_PASSWORDHTTP Basic Auth password for Pushgateway(unset)

Webhooks (optional):

VariableDescription
WHMCS_WEBHOOK_SECRETHMAC secret shared with your WHMCS PHP hook

See .env.example for all options.


Connecting AI Clients

Cursor IDE

Bearer token (simple): Add to ~/.cursor/mcp.json:

json
{  "mcpServers": {    "whmcs": {      "url": "https://your-server:3100/mcp",      "headers": {        "Authorization": "Bearer YOUR_TOKEN"      }    }  }}

OAuth (New App UI): When adding via Cursor's "New App" with OAuth, the server must have MCP_CLIENT_REGISTRATION_SECRET set (in Portainer or .env). Generate with openssl rand -hex 24, set it on the server, then enter the same value in Cursor's Advanced OAuth settings under "Client registration secret" (or equivalent). This enables Dynamic Client Registration so Cursor can self-register.

Or for local stdio mode:

json
{  "mcpServers": {    "whmcs": {      "command": "node",      "args": ["/path/to/whmcs-mcp/dist/index.js"],      "env": {        "WHMCS_API_URL": "https://your-whmcs.example.com",        "WHMCS_IDENTIFIER": "your-identifier",        "WHMCS_SECRET": "your-secret"      }    }  }}

Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

json
{  "mcpServers": {    "whmcs": {      "url": "https://your-server:3100/mcp",      "headers": {        "Authorization": "Bearer YOUR_TOKEN"      }    }  }}

ChatGPT (GPT Actions)

Point your GPT Action schema at https://your-server:3100/mcp. Use OAuth 2.0 mode for multi-user setups.


Real-Time Webhook Push

Receive WHMCS events pushed to your AI in real time — new tickets, invoices, overdue payments.

See docs/WEBHOOKS.md for setup instructions.


Deployment

Docker Compose (recommended)

bash
docker compose -f docker-compose.marketplace.yml up -d

Generates tokens:

bash
docker exec -it whmcs-mcp node dist/scripts/auth-cli.js generate \  --name "My AI" --scopes "mcp:read,mcp:write"

Kubernetes

See k8s-deployment.yaml and DEPLOYMENT.md.

Behind a Reverse Proxy (nginx / Caddy / Traefik)

Remove the ports block from docker-compose.marketplace.yml and proxy to whmcs-mcp:3100. See comments in that file.


Observability

  • Health check: GET /health
  • Readiness: GET /ready
  • Prometheus metrics: port 9090 (configurable via MCP_METRICS_PORT)

Key metrics: whmcs_mcp_requests_total, whmcs_mcp_request_duration_seconds, whmcs_mcp_active_sessions, whmcs_mcp_auth_total


Support & Licensing

Copyright © 2026 Daddario Tech Solutions. All rights reserved. See LICENSE.

来源:README.md,提交 d134069

工具

0
SourceWeft 曾在隔离沙箱中以无凭据方式启动该软件包一次,以列出其工具,但未能完成:该软件包类型无法在沙箱中运行。

版本历史

2
  1. v2.3.8最新Oct 26, 2026
  2. v2.3.6Sep 16, 2026

评分

已满足适用检查项的 40%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分

    请在仓库或注册中心条目中声明许可证。