mcpField
W
WHMCS MCP Server

WHMCS MCP Server

本地服务
daddar.io商业与营销33 天前更新

关于 WHMCS MCP Server

WHMCS MCP Server 将 WHMCS 客户、账单、工单和服务管理接入 AI 客户端,适用于需要自然语言处理日常主机业务的团队。它还提供只读资源、工作流提示词和所有工具的 dryRun 模式。

主要功能

  1. 01管理客户、账单和订单
  2. 02处理工单、服务与域名
  3. 03提供只读实时资源
  4. 04内置 18 个工作流提示词
  5. 05工具支持 dryRun 预览

适用场景

  1. 01查询并提醒逾期账单
  2. 02分流支持工单并撰写回复
  3. 03为客户创建订单或账单
  4. 04检查服务和域名续期风险

MCP 相关

它通过 MCP 暴露 WHMCS 管理工具、只读资源和工作流提示词,供兼容客户端调用。README 列出 HTTP 和标准输入输出传输方式。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"daddariotech-whmcs": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"MCP_TRANSPORT",
"-e",
"WHMCS_API_URL",
"-e",
"WHMCS_IDENTIFIER",
"-e",
"WHMCS_SECRET",
"-e",
"LICENSE_KEY",
"docker.io/daddariotech/whmcs-mcp:latest"
],
"env": {
"MCP_TRANSPORT": "<MCP_TRANSPORT>",
"WHMCS_API_URL": "<WHMCS_API_URL>",
"WHMCS_IDENTIFIER": "<WHMCS_IDENTIFIER>",
"WHMCS_SECRET": "<WHMCS_SECRET>",
"LICENSE_KEY": "<LICENSE_KEY>"
}
}
}
}
启动命令docker run -i --rm -e MCP_TRANSPORT -e WHMCS_API_URL -e WHMCS_IDENTIFIER -e WHMCS_SECRET -e LICENSE_KEY docker.io/daddariotech/whmcs-mcp:latest
需要配置的环境变量
MCP_TRANSPORTMust be http for the streamable HTTP transport.
WHMCS_API_URLBase URL of your WHMCS install, e.g. https://billing.example.com
WHMCS_IDENTIFIER密钥WHMCS API credential identifier
WHMCS_SECRET密钥WHMCS API credential secret
LICENSE_KEY密钥Paid licence key. Omit to start the 14-day trial.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
ocidocker.io/daddariotech/whmcs-mcp:latest

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

WHMCS MCP 服务

面向生产环境的 WHMCS AI 集成。 将 ChatGPT、Claude 和 Cursor 直接连接到您的 WHMCS 安装,通过自然语言管理客户、发票、工单和服务。

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

许可证 Docker MCP


前提条件 — WHMCS API 设置

运行安装程序前,你需要一个具备适当权限的 WHMCS API 凭据。

1. 创建 API 角色

在 WHMCS Admin 中:Setup → Staff Management → API Roles → Add Role

根据你对 AI 的信任程度,选择一个权限预设:

最低权限(只读 — AI 可以查看,但无法操作): 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

最高权限(完全访问 — AI 可以执行任何操作): 以上所有权限,以及: 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

项目管理工具:list_projects 到 end_task_timer 的工具还要求 WHMCS Project Management 插件处于启用状态(Setup → Addon Modules),无论 API 角色权限如何。

域名写入权限:register_domain、transfer_domain 和 renew_domain 分别需要 DomainRegister、DomainTransfer 和 DomainRenew。请注意,Domain 前缀在前 — RegisterDomain / TransferDomain / RenewDomain 并非有效的 WHMCS 权限 键,授予这些权限时会被静默忽略。如果域名工具返回 HTTP 403,说明你的角色缺少相应的 权限。如果你要从 2.3.1 或更早版本升级,请参阅 2.3.2 更新日志条目 — 你需要使用正确的名称重新授予这三项权限。

**提示:**先使用最低权限,仅在需要时添加写入权限。如果 AI 客户端失控或收到有问题的提示词,这样可以限制影响范围。

2. 设置 API 访问密钥(推荐)

访问密钥可以完全绕过 IP 限制 — 由于 MCP 服务的出站 IP 可能变化(Docker 重启、服务器迁移等),因此推荐使用这种方式。

将以下行添加到 WHMCS 根目录下的 configuration.php:

$api_access_key = 'your-secret-passphrase';

允许使用的字符:字母、数字以及 ! @ # $ % . ( ) * [ ] - _

然后在 .env 或 Portainer stack 中将 WHMCS_ACCESS_KEY 设置为相同的值。

3. 创建 API 凭据

Setup → Staff Management → API Credentials → Generate New Credential

  • Role:选择刚创建的角色
  • Allowed IPs:使用访问密钥时留空(推荐),或者输入服务器 IP 以使用基于 IP 的限制
  • 复制 Identifier 和 Secret — 安装时需要使用它们

快速开始 — 不到 5 分钟即可运行

二进制文件(无需 Docker):

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

系统会提示你输入 WHMCS 凭据和许可证密钥,将二进制文件安装到 /usr/local/bin,并注册 systemd 服务。

Docker(建议用于已运行 Docker 的服务器):

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

系统会提示你输入凭据,写入 .env,并通过 Docker Compose 启动整套服务。


获取许可证

在 daddar.io/store/ai-tools/whmcs-mcp 购买许可证 — 完成结账后,许可证密钥会显示在客户端门户中。按提示将其粘贴到 setup.sh。

没有许可证?首次运行时会自动开始 14 天免费试用。


你可以做什么

98 个 WHMCS 工具
类别工具
客户get_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
发票get_invoice list_invoices create_invoice add_invoice_payment get_overdue_invoices get_transactions update_invoice
订单add_order get_orders accept_order cancel_order get_order_statuses fraud_order pending_order
服务list_services update_service upgrade_product module_create module_suspend module_unsuspend module_terminate get_cancelled_packages
工单get_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
报价get_quotes create_quote send_quote accept_quote update_quote delete_quote
联系人get_contacts add_contact update_contact
额度get_credits add_credit apply_credit
账单add_billable_item get_payment_methods get_currencies
电子邮件send_email get_email_templates
产品get_products get_product_groups create_product
域名register_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
管理get_admin_users get_staff_online get_whmcs_details log_activity get_activity_log
联盟会员get_affiliates activate_affiliate
促销get_promotions
服务器get_servers module_change_password
系统get_health_status get_todo_items get_todo_item_statuses get_announcements get_registrars get_stats
报告get_stats get_activity_log get_transactions
项目list_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 — 需要启用 WHMCS Project Management 插件

所有工具均支持 dryRun 模式,可在进行更改前预览将要执行的操作。

24 个实时资源

资源是只读数据端点,AI 客户端可通过 whmcs:// URI 订阅。数据由 TTL 为 60 秒的缓存提供。

URI描述
whmcs://stats实时系统统计数据(收入、客户数量、发票总额)
whmcs://health服务运行状况
whmcs://system/infoWHMCS 安装详情(版本、PHP、数据库)
whmcs://products完整的产品和服务目录
whmcs://product-groups产品组及产品数量
whmcs://tld-pricing域名 TLD 注册、转移和续费价格
whmcs://promotions有效促销和优惠券代码
whmcs://order-statuses可用的订单状态值
whmcs://currencies已配置的货币及汇率
whmcs://payment-methods已启用的支付网关模块
whmcs://registrars已配置的域名注册商模块
whmcs://servers配置服务器
whmcs://client-groups客户组定义
whmcs://affiliates已注册的联盟营销账户
whmcs://email-templates电子邮件模板库
whmcs://announcements已发布的公告
whmcs://support/departments支持部门
whmcs://support/statuses可用的工单状态值
whmcs://support/ticket-counts按部门和状态划分的工单数量
whmcs://support/predefined-categories预定义的工单回复类别
whmcs://admin/users管理员用户账户
whmcs://admin/todo管理员待办事项
whmcs://admin/todo-statuses可用的待办事项状态值
whmcs://admin/staff-online当前登录管理区域的员工
18 个工作流提示词

提示词是预先构建的工作流模板,MCP 客户端会将其显示为一键式引导交互。

提示词描述
new_client引导创建新的客户账户
new_order为客户下单并接受产品订单
new_invoice创建自定义发票,可选择发送
new_quote起草销售报价,并处理发送和接受流程
ticket_response加载工单并起草专业的员工回复
client_onboarding完整的账户入门审核清单
fraud_investigation对可疑订单进行安全审计
bulk_invoice_reminder查找逾期发票并发送付款提醒
revenue_reportMRR、未结款项和已付款项的财务明细
client_health_check深入的账户评分卡(服务、账单、支持)
domain_expiry_audit标记存在风险的域名并起草续费提醒
new_product_setup分步产品配置指南
churn_risk_report按风险排序的客户流失风险表及建议措施
support_queue_triage按优先级排序的工单队列及快速见效建议
affiliate_performance优秀推广者、佣金和激活差距
service_renewal_forecast未来 N 个月的续费收入预测
addon_upsell_opportunities检测缺少的附加组件并生成追加销售报价
promo_effectiveness优惠码使用情况、收入影响和到期分析
与其他 WHMCS MCP 服务对比
功能WHMCS MCP Server(我们)scarecr0w12/whmcs-mcp-toolMX Modules
工具86~50~20
HTTP 传输(ChatGPT、Claude 远程)支持不支持 — 仅 stdio支持
身份验证OAuth 2.0 PKCE + bearer tokens无仅静态令牌
一键安装支持(curl | bash)手动(克隆 + npm)手动
实时 Webhook 推送支持不支持不支持
审计日志支持不支持不支持
Prometheus 指标支持不支持不支持
速率限制支持不支持不支持
每个工具均支持 dryRun 模式支持不支持不支持
试用期免费 14 天永久免费(MIT)无
商业支持支持无有限
许可证商业MIT商业

支持的 AI 客户端

客户端传输方式身份验证
ChatGPT(通过 GPT Actions)HTTPBearer token 或 OAuth 2.0
Claude DesktopHTTPBearer token 或 OAuth 2.0
Cursor IDEstdio 或 HTTPBearer token 或 OAuth 2.0
任何兼容 MCP 的客户端HTTPBearer token 或 OAuth 2.0

安全性

  • OAuth 2.0 PKCE — 符合行业标准的授权方式,使用短时令牌并支持刷新
  • Bearer token 模式 — 适用于单租户部署的简易 API 密钥配置
  • 速率限制 — 按 IP 和令牌实施控制(可配置)
  • 审计日志 — 记录每个通过身份验证的请求,包含客户端 ID、方法和时间戳
  • Helmet.js — 安全标头(CSP、HSTS、X-Frame-Options 等)
  • 输入清理 — 纵深防御,抵御注入攻击
  • 强制使用 HTTPS — 在生产环境中拒绝纯 HTTP
  • Docker secrets — 如果 /run/secrets/ 存在,则从中读取凭据

配置

环境变量

将 .env.example 复制为 .env,并填写相应值。

必填项:

变量说明
WHMCS_API_URL你的 WHMCS URL,例如 https://billing.example.com
WHMCS_IDENTIFIERWHMCS API 标识符
WHMCS_SECRETWHMCS API 密钥

许可证:

变量说明默认值
LICENSE_KEY你从 daddar.io 获取的许可证密钥(自动开始 14 天免费试用)

身份验证:

变量说明默认值
MCP_OAUTH_ADMIN_PASSWORD启用 OAuth PKCE 流程的 /authorize 授权界面(未设置 — 授权界面已禁用)
MCP_OAUTH_SESSION_SECRET用于签署 OAuth CSRF 会话 Cookie 的密钥。使用 openssl rand -hex 32 生成。(自动生成临时值 — 生产环境中请设置此项)
MCP_AUTH_TOKENS_FILEBearer token 存储文件的路径/app/data/tokens.json

注意(v2.1.0): MCP_AUTH_MODE 和 MCP_REQUIRE_AUTH 已移除。服务始终运行完整的身份验证栈 — 每种配置均支持 Bearer token 和 OAuth。HTTP 模式下始终强制进行身份验证。

网络 / 代理:

变量说明默认值
MCP_TRUST_PROXY当服务运行在终止 TLS 的反向代理(Traefik、nginx 等)之后时,设为 true。启用对 X-Forwarded-* 标头的信任,以便正确检测 IP 并强制使用 HTTPS。false (在 v2.2.0 中更改 — 生产环境中请显式设置)

可观测性(可选):

变量说明默认值
MCP_METRICS_ENABLED启用 Prometheus 指标端点true
MCP_METRICS_PORT/metrics 端点的端口9090
PUSHGATEWAY_URL用于推送指标的 Prometheus Pushgateway URL(未设置)
PUSHGATEWAY_USERPushgateway 的 HTTP Basic Auth 用户名(未设置)
PUSHGATEWAY_PASSWORDPushgateway 的 HTTP Basic Auth 密码(未设置)

Webhooks(可选):

变量说明
WHMCS_WEBHOOK_SECRET与你的 WHMCS PHP 钩子共享的 HMAC 密钥

所有选项请参阅 .env.example。


连接 AI 客户端

Cursor IDE

Bearer token(简易方式): 添加到 ~/.cursor/mcp.json:

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

OAuth(新版应用界面): 通过 Cursor 的“New App”使用 OAuth 添加时,服务必须设置 MCP_CLIENT_REGISTRATION_SECRET(在 Portainer 或 .env 中)。使用 openssl rand -hex 24 生成,在服务端设置,然后在 Cursor 的高级 OAuth 设置中“Client registration secret”(或类似选项)下输入相同的值。这样 Cursor 就能通过动态客户端注册自行注册。

或者使用本地 stdio 模式:

{
  "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

添加到 ~/Library/Application Support/Claude/claude_desktop_config.json(macOS)或 %APPDATA%\Claude\claude_desktop_config.json(Windows):

{
  "mcpServers": {
    "whmcs": {
      "url": "https://your-server:3100/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_TOKEN"
      }
    }
  }
}
ChatGPT(GPT Actions)

将你的 GPT Action 架构指向 https://your-server:3100/mcp。多用户设置请使用 OAuth 2.0 模式。


实时 Webhook 推送

实时接收推送到 AI 的 WHMCS 事件,包括新工单、发票和逾期付款。

设置说明请参阅 docs/WEBHOOKS.md。


部署

Docker Compose(推荐)
docker compose -f docker-compose.marketplace.yml up -d

生成令牌:

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

请参阅 k8s-deployment.yaml 和 DEPLOYMENT.md。

位于反向代理之后(nginx / Caddy / Traefik)

从 docker-compose.marketplace.yml 中移除 ports 块,并将代理指向 whmcs-mcp:3100。请参阅该文件中的注释。


可观测性

  • 健康检查: GET /health
  • 就绪状态: GET /ready
  • Prometheus 指标: 端口 9090(可通过 MCP_METRICS_PORT 配置)

关键指标:whmcs_mcp_requests_total、whmcs_mcp_request_duration_seconds、whmcs_mcp_active_sessions、whmcs_mcp_auth_total


支持与许可

版权所有 © 2026 Daddario Tech Solutions。保留所有权利。请参阅 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。