WHMCS MCP Server について
WHMCS MCP Serverは、WHMCSの顧客、請求、チケット、サービスの操作をAIクライアントに接続します。自然言語でホスティング業務を扱うチーム向けで、読み取り専用リソース、ワークフロープロンプト、各ツールのdryRunプレビューを備えます。
主な機能
- 01顧客、請求書、注文の管理
- 02チケット、サービス、ドメインの処理
- 03読み取り専用のライブリソース
- 0418種類のワークフロープロンプト
- 05dryRunによる操作プレビュー
活用シーン
- 01未払い請求書の確認とリマインダー送信
- 02サポートチケットの振り分けと返信案作成
- 03顧客の注文や請求書の作成
- 04サービスやドメインの更新リスク確認
MCP 対応
互換性のあるMCPクライアント向けに、WHMCS管理ツール、読み取り専用リソース、ワークフロープロンプトを公開します。READMEにはHTTPとstdioのトランスポートが記載されています。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
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:latestMCP_TRANSPORTMust be http for the streamable HTTP transport.WHMCS_API_URLBase URL of your WHMCS install, e.g. https://billing.example.comWHMCS_IDENTIFIERシークレットWHMCS API credential identifierWHMCS_SECRETシークレットWHMCS API credential secretLICENSE_KEYシークレットPaid licence key. Omit to start the 14-day trial.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
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.
前提条件 — WHMCS API のセットアップ
インストーラーを実行する前に、適切な権限を持つ WHMCS API 認証情報が必要です。
1. API ロールを作成する
WHMCS 管理画面で、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までのツールを使用するには、API ロールの権限にかかわらず、WHMCS の Project Management アドオンが有効になっている必要があります(Setup → Addon Modules)。
ドメインの書き込み権限:
register_domain、transfer_domain、renew_domainには、それぞれDomainRegister、DomainTransfer、DomainRenewが必要です。権限名ではDomainが先頭に来る点に注意してください。RegisterDomain/TransferDomain/RenewDomainは有効な WHMCS 権限キーではなく、付与しても無視されます。ドメインツールが HTTP 403 を返す場合、ロールに対応する権限がありません。2.3.1 以前からアップグレードする場合は、2.3.2 の変更履歴を参照してください。これら3つの権限を正しい名前で再付与する必要があります。
ヒント: 最小権限から始め、必要に応じて書き込み権限を追加してください。AI クライアントが意図しない動作をしたり、不適切なプロンプトを受け取ったりした場合の影響範囲を抑えられます。
2. API アクセスキーを設定する(推奨)
アクセスキーを使うと、IP 制限を完全に回避できます。MCP サーバーの送信元 IP は変わることがあるため(Docker の再起動、サーバーの移動など)、この方法を推奨します。
WHMCS のルートにある configuration.php に次の行を追加します。
$api_access_key = 'your-secret-passphrase';
使用できる文字:英字、数字、
! @ # $ % . ( ) * [ ] - _
次に、.env または Portainer スタックで WHMCS_ACCESS_KEY に同じ値を設定します。
3. API 認証情報を作成する
Setup → Staff Management → API Credentials → Generate New Credential
- ロール:作成したロールを選択します
- 許可する IP:アクセスキーを使用する場合は空欄にします(推奨)。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/info | WHMCS のインストール詳細(バージョン、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 | 管理者の ToDo 項目 |
whmcs://admin/todo-statuses | 利用可能な ToDo 項目のステータス値 |
whmcs://admin/staff-online | 現在管理エリアにログインしているスタッフ |
18 個のワークフロープロンプト
プロンプトは、MCP クライアントがワンクリックのガイド付きインタラクションとして表示する、事前構築済みのワークフローテンプレートです。
| プロンプト | 説明 |
|---|---|
new_client | 新規クライアントアカウント作成のガイド |
new_order | クライアントの製品注文を行い、受け付ける |
new_invoice | 任意で送信できるカスタム請求書を作成する |
new_quote | 送信/承認のライフサイクルを含む販売見積もりを作成する |
ticket_response | チケットを読み込み、スタッフ向けの丁寧な返信を作成する |
client_onboarding | アカウントのオンボーディング全体を確認するチェックリスト |
fraud_investigation | 不審な注文のセキュリティ監査 |
bulk_invoice_reminder | 支払期限超過の請求書を見つけ、支払いリマインダーを送信する |
revenue_report | MRR、未払い額、支払い済み額の財務内訳 |
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-tool | MX Modules |
|---|---|---|---|
| ツール | 86 | 約50 | 約20 |
| HTTP トランスポート(ChatGPT、Claude リモート) | あり | なし — stdio のみ | あり |
| 認証 | OAuth 2.0 PKCE + ベアラートークン | なし | 静的トークンのみ |
| ワンクリックインストール | あり(curl | bash) | 手動(clone + npm) | 手動 |
| リアルタイムの Webhook プッシュ | あり | なし | なし |
| 監査ログ | あり | なし | なし |
| Prometheus メトリクス | あり | なし | なし |
| レート制限 | あり | なし | なし |
すべてのツールでの dryRun モード | あり | なし | なし |
| 試用期間 | 14 日間無料 | 永久無料(MIT) | なし |
| 商用サポート | あり | なし | 限定的 |
| ライセンス | 商用 | MIT | 商用 |
サポート対象の AI クライアント
| クライアント | トランスポート | 認証 |
|---|---|---|
| ChatGPT(GPT Actions 経由) | HTTP | ベアラートークンまたは OAuth 2.0 |
| Claude Desktop | HTTP | ベアラートークンまたは OAuth 2.0 |
| Cursor IDE | stdio または HTTP | ベアラートークンまたは OAuth 2.0 |
| MCP 互換クライアント全般 | HTTP | ベアラートークンまたは OAuth 2.0 |
セキュリティ
- OAuth 2.0 PKCE — 有効期間の短いトークンと更新機能を備えた、業界標準の認証
- ベアラートークンモード — 単一テナントのデプロイ向けの簡単な API キー設定
- レート制限 — IP ごとおよびトークンごとの制御(設定可能)
- 監査ログ — 認証されたすべてのリクエストを、クライアント ID、メソッド、タイムスタンプとともに記録
- Helmet.js — セキュリティヘッダー(CSP、HSTS、X-Frame-Options など)
- 入力のサニタイズ — 多層防御によるインジェクション対策
- HTTPS の強制 — 本番環境で平文 HTTP を拒否
- Docker シークレット —
/run/secrets/が存在する場合、認証情報をそこから読み込み
設定
環境変数
.env.example を .env にコピーし、値を入力してください。
必須:
| 変数 | 説明 |
|---|---|
WHMCS_API_URL | WHMCS の URL。例:https://billing.example.com |
WHMCS_IDENTIFIER | WHMCS API 識別子 |
WHMCS_SECRET | WHMCS 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_FILE | ベアラートークンストアへのパス | /app/data/tokens.json |
注(v2.1.0):
MCP_AUTH_MODEとMCP_REQUIRE_AUTHは削除されました。サーバーは常に完全な認証スタックを実行し、どの設定でもベアラートークンと OAuth の両方を利用できます。HTTP モードでは常に認証が強制されます。
ネットワーク/プロキシ:
| 変数 | 説明 | デフォルト |
|---|---|---|
MCP_TRUST_PROXY | TLS 終端を行うリバースプロキシ(Traefik、nginx など)の背後でサーバーを実行する場合は、true に設定します。正確な IP 検出と HTTPS の強制のため、X-Forwarded-* ヘッダーを信頼するようになります。 | false (v2.2.0 で変更 — 本番環境では明示的に設定してください) |
オブザーバビリティ(任意):
| 変数 | 説明 | デフォルト |
|---|---|---|
MCP_METRICS_ENABLED | Prometheus メトリクスエンドポイントを有効にします | true |
MCP_METRICS_PORT | /metrics エンドポイントのポート | 9090 |
PUSHGATEWAY_URL | メトリクスのプッシュ先となる Prometheus Pushgateway の URL | (未設定) |
PUSHGATEWAY_USER | Pushgateway の HTTP Basic 認証ユーザー名 | (未設定) |
PUSHGATEWAY_PASSWORD | Pushgateway の HTTP Basic 認証パスワード | (未設定) |
Webhook(任意):
| 変数 | 説明 |
|---|---|
WHMCS_WEBHOOK_SECRET | WHMCS PHP フックと共有する HMAC シークレット |
すべてのオプションについては、.env.example を参照してください。
AI クライアントの接続
Cursor IDE
ベアラートークン(簡単な方法): ~/.cursor/mcp.json に追加します。
{
"mcpServers": {
"whmcs": {
"url": "https://your-server:3100/mcp",
"headers": {
"Authorization": "Bearer YOUR_TOKEN"
}
}
}
}
OAuth(新しいアプリの UI): OAuth を使って Cursor の「New App」から追加する場合、サーバーで MCP_CLIENT_REGISTRATION_SECRET を設定しておく必要があります(Portainer または .env で設定)。openssl rand -hex 24 で生成してサーバーに設定し、Cursor の詳細な OAuth 設定にある「Client registration secret」(または同等の項目)に同じ値を入力してください。これにより、Cursor が自身を登録できるように Dynamic Client Registration が有効になります。
または、ローカルの 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 プッシュ
新しいチケット、請求書、支払い遅延などの WHMCS イベントを、リアルタイムで AI にプッシュして受信できます。
設定手順については、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
サポートとライセンス
- ライセンスの購入/管理: daddar.io/store/ai-tools/whmcs-mcp
- ドキュメント: このリポジトリ + DEPLOYMENT.md + docs/WEBHOOKS.md
- サポート: [email protected]
- セキュリティ上の問題: SECURITY.md
Copyright © 2026 Daddario Tech Solutions. All rights reserved. 詳細は LICENSE をご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。