Zendesk について
サポートチーム向けのローカル MCP サーバーで、AI ホストから Zendesk Support のデータを検索・管理できます。API トークンと OAuth 認証に対応します。
主な機能
- 01チケットの検索とエクスポート
- 02チケットの作成と更新
- 03ユーザーとコメントの管理
- 04マクロ、ビュー、フィールドの確認
- 05ヘルプセンター記事の検索
- 06OAuth または API トークンでの接続
活用シーン
- 01緊急の未解決チケットを探して詳細を確認
- 02公開返信や内部メモを作成・追加
- 03チケット対応時にマクロを適用
MCP 対応
stdio 経由でローカル MCP ホストに Zendesk Support のツールを提供し、チケット、ユーザー、コメント、マクロ、ヘルプセンター、アカウントを操作できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y @mindstone/mcp-server-zendeskZENDESK_CONFIG_PATHPath to the config directory containing accounts.json and credentials/ZENDESK_CLIENT_IDOptional OAuth client ID for legacy token refresh flowsZENDESK_CLIENT_SECRETシークレットOptional OAuth client secret for legacy token refresh flowsローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
26掲載時のツール一覧 · 2 週間前に更新
このツールにパラメーターはありません。
詳細
@mindstone/mcp-server-zendesk
Zendesk Support MCP サーバー — 標準的な stdio MCP パッケージを通じて、チケット、ユーザー、コメント、マクロ、アカウント設定、サポートワークフローの検出を行います。
ローカルの MCP ホストからアシスタントに Zendesk チケットのトリアージ、要約、更新を行わせたいサポートチームに最適です。
ステータス
- バージョン: 0.4.1 · npm
- 認証: ハイブリッド(API トークンまたは OAuth)(
ZENDESK_CLIENT_SECRET) - ツール: 26(チケット、ユーザー、コメント、マクロ、ビュー、ヘルプセンター、顧客満足度)
- サーフェス: cloud-api
- 機械可読:
STATUS.json
このパッケージについて
Zendesk は、プラットフォーム全体との統合を広げるため、独自の MCP クライアントおよびサーバー機能を発表しています。このパッケージは、ローカルの Zendesk Support コネクターをインストールして直接実行したい MCP ホスト向けです。
人が通常依頼するサポート業務をアシスタントが行えるようにします。緊急のチケットを見つけ、最新の状況を取得し、コメントを作成または追加し、マクロを適用し、ユーザーや組織を検索し、サポート設定を確認できます。その利点は、チケットのトリアージとフォローアップを迅速化しながら、顧客が作成したチケットのテキストを従うべき指示ではなく、引用・要約の対象として扱えることです。
対話例
「優先度の高い未解決の Zendesk チケットを探し、最初のチケットの最新情報を表示してください。」
ホストが呼び出すツール:
search_zendesk_tickets—type:ticket status:open priority:highを検索し、チケットの概要を返します。get_zendesk_ticket— 選択したチケットを取得します。折り返し表示された件名と説明文も含まれます。
応答(抜粋):
{
"ok": true,
"ticket": {
"id": 12345,
"status": "open",
"priority": "high",
"subject": "<untrusted-content source=\"external-ticket\">Login issue</untrusted-content>",
"description": "<untrusted-content source=\"external-ticket\">Customer cannot access the admin dashboard.</untrusted-content>"
}
}
要件
- Node.js 20+
- npm
ワンクリックインストール
ボタンをクリックすると、ホストから次の項目を入力するよう求められます:ZENDESK_CONFIG_PATH、ZENDESK_CLIENT_SECRET。
Claude Desktop / Claude Code / Goose / Continue.dev 用の手動設定(Zendesk)
{
"mcpServers": {
"Zendesk": {
"command": "npx",
"args": [
"-y",
"@mindstone/mcp-server-zendesk"
],
"env": {
"ZENDESK_CONFIG_PATH": "~/.mcp/zendesk",
"ZENDESK_CLIENT_SECRET": ""
}
}
}
}
クイックスタート
インストールとビルド
cd <path-to-repo>/connectors/zendesk
npm install
npm run build
npx(公開後)
npx -y @mindstone/mcp-server-zendesk
ローカル
node dist/index.js
設定
環境変数
ZENDESK_CONFIG_PATH—accounts.jsonとcredentials/を含む設定ディレクトリへのパスZENDESK_CLIENT_ID— トークンファイルに独自のclient_idがないサインインを更新する際に使用する OAuth クライアント ID。リフレッシュ時に読み込まれますZENDESK_CLIENT_SECRET— 機密 OAuth クライアントでのみ使用し、ZENDESK_CLIENT_IDと併せて送信します。パブリック(PKCE)クライアントには不要ですMCP_HOST_BRIDGE_STATE— 認証情報の管理に使用するホストブリッジの状態ファイルへの任意のパスMINDSTONE_REBEL_BRIDGE_STATE—MCP_HOST_BRIDGE_STATEと後方互換性のあるエイリアス
認証
各アカウントでは、2種類の認証情報のいずれかを使用します。同じサブドメインでは、API トークンより OAuth サインインが優先されます。
OAuth サインイン(推奨)。 ホストアプリが Zendesk サインイン(PKCE を使用する認可コードフローなど)を実行し、その結果を ZENDESK_CONFIG_PATH 配下の credentials/<subdomain>.token.json に、所有者のみが読み書きできる権限(0600)で書き込みます。
{
"access_token": "…",
"refresh_token": "…",
"expires_in": 1800,
"expires_at": 1767225600000,
"token_type": "bearer",
"subdomain": "acme",
"email": "[email protected]",
"client_id": "your-oauth-client-id",
"scope": "read write"
}
expires_at はミリ秒単位のタイムスタンプです。client_id と scope は任意です。指定されている場合、トークンの更新にはそのクライアントが使用され、同じスコープが要求されます。
コネクターは、有効期限の5分前以降、または401エラー発生後に、アクセストークンを独自に更新します。
- リフレッシュトークンとクライアント ID(トークンファイルの
client_id、なければZENDESK_CLIENT_ID)を含む JSON リクエストをhttps://<subdomain>.zendesk.com/oauth/tokensに送信します。パブリッククライアントにはクライアントシークレットは不要です。 - 複数のツール呼び出しが同時に発生した場合も、トークンの更新は1回だけ行われます。また、最初にトークンファイルを再読み込みするため、別のプロセスで更新されたトークンが再使用されずに使われます。
- ローテーションされたリフレッシュトークンは、ファイルをアトミックに置き換えて保存します。ただし、ファイルに、直前に使用したリフレッシュトークンがまだ記録されている場合に限ります。更新中にトークンファイルが削除された場合(アカウントが切断された場合)は再作成されません。新しいサインインによって置き換えられた場合は、そのファイルが保持され、代わりに使用されます。
- 更新したトークンを保存できない場合(ディスクの容量不足または読み取り専用など)、コネクターはメモリ上でそのトークンを使い続け、使用済みのリフレッシュトークンを再送信しません。
list_zendesk_accountsは、ファイルに変更があるまで、そのアカウントにwarningを表示します。再起動後は、アカウントへの再サインインが必要になることがあります。 - Zendesk がリフレッシュトークンを拒否した場合(
invalid_grant、invalid_client、unauthorized_client)、またはクライアント ID がない場合、ツール呼び出しはAUTH_FAILEDと「Reconnect Zendesk…」を返し、list_zendesk_accountsはreconnect-requiredを報告します。トークンファイルは保持されます。再度サインインすると置き換えられます。 - 一時的なエラー(サーバーエラー、レート制限、ネットワークエラー)が発生した場合、アクセストークンの有効期限が切れた後は
AUTH_REFRESH_FAILED(「しばらくしてから再試行してください」)を返します。次の呼び出しで再試行されます。
API トークン。 accounts.json(下記を参照)に subdomain、email、apiToken を含むエントリーを作成し、HTTP Basic 認証として送信します。API トークンには有効期限がないため、常に active です。
スタンドアロン設定ディレクトリ
API トークンを使用するには、設定ディレクトリと accounts.json ファイルを作成します。
mkdir -p ~/.mcp/zendesk
cat > ~/.mcp/zendesk/accounts.json <<'EOF'
{
"accounts": [
{
"subdomain": "yourcompany",
"email": "[email protected]",
"apiToken": "your-zendesk-api-token"
}
],
"defaultSubdomain": "yourcompany"
}
EOF
ホスト設定の例
Claude Desktop / Cursor
{
"mcpServers": {
"Zendesk": {
"command": "npx",
"args": ["-y", "@mindstone/mcp-server-zendesk"],
"env": {
"ZENDESK_CONFIG_PATH": "~/.mcp/zendesk"
}
}
}
}
ローカル開発(npm への公開は不要)
{
"mcpServers": {
"Zendesk": {
"command": "node",
"args": ["<path-to-repo>/connectors/zendesk/dist/index.js"],
"env": {
"ZENDESK_CONFIG_PATH": "~/.mcp/zendesk"
}
}
}
}
Mindstone Rebel
"Zendesk": {
"name": "Zendesk",
"type": "stdio",
"command": "node",
"args": ["<path-to-repo>/connectors/zendesk/dist/index.js"],
"env": {
"ZENDESK_CONFIG_PATH": "~/Library/Application Support/mindstone-rebel/mcp/zendesk",
"MCP_HOST_BRIDGE_STATE": "~/Library/Application Support/mindstone-rebel/mcp/rebel-inbox-bridge.json"
},
"description": "Zendesk support tickets...",
"catalogId": "bundled-zendesk"
}
ツール(26)
アカウント管理
list_zendesk_accounts— 接続済みアカウントと認証状態を一覧表示しますremove_zendesk_account— Zendesk アカウントの接続を解除しますauthenticate_zendesk_account— API トークンを使用して接続します
チケット
search_zendesk_tickets— Zendesk クエリー構文を使用して検索します(結果は最大1000件)export_zendesk_tickets— カーソルベースでエクスポートします。結果数に1000件の上限はありませんget_zendesk_ticket— ID を指定して単一のチケットを取得しますget_zendesk_tickets_by_ids— 複数のチケットを一括取得しますcreate_zendesk_ticket— 新しいチケットを作成しますupdate_zendesk_ticket— チケットのフィールドやステータスを更新するか、コメントを追加します
ユーザー
search_zendesk_users— 名前、メールアドレス、またはクエリーで検索しますget_zendesk_user— ID を指定してユーザーを取得しますcreate_or_update_zendesk_user— ユーザーを作成するか、同じメールアドレスを持つユーザーを更新します
コメント
list_zendesk_ticket_comments— 作成者を解決して会話スレッドを一覧表示add_zendesk_ticket_comment— 公開返信または内部メモを追加
検索
list_zendesk_groups— エージェントグループを一覧表示list_zendesk_ticket_fields— カスタムフィールドを含むチケットフィールドを一覧表示list_zendesk_views— 保存済みチケットビューを一覧表示list_zendesk_view_tickets— ビューを実行してチケットを一覧表示list_zendesk_organizations— 組織を一覧表示get_zendesk_organization— IDで単一の組織を取得
マクロ
list_zendesk_macros— マクロを一覧表示または検索get_zendesk_macro— マクロの詳細を取得apply_zendesk_macro— チケットへのマクロの適用をプレビューして実行
ヘルプセンター
search_zendesk_help_center_articles— ナレッジベースの記事を検索get_zendesk_help_center_article— ヘルプセンターの記事全文を読む
満足度
list_zendesk_satisfaction_ratings— 評価スコアや日付で絞り込んでCSAT評価を一覧表示
セキュリティに関する注意事項
- Zendesk APIトークンの認証情報は
accounts.jsonに保存されます。OAuth認証情報は、ZENDESK_CONFIG_PATH配下のcredentials/*.token.jsonから読み取られます。更新されたトークンは同じフォルダー内のアクセス権限0600の一時ファイルに書き込まれ、その後、元の場所に名前を変更して配置されます。更新に失敗してもトークンファイルが削除されることはありません。 - アクセストークン、リフレッシュトークン、トークンエンドポイントのエラー説明がログに記録されることはありません。記録されるのはHTTPステータスとOAuthエラーコードのみです。
- ホストブリッジ呼び出しを設定した場合、
MCP_HOST_BRIDGE_STATEのトークンを使用して127.0.0.1に接続します。 - チケットの件名、説明、コメント本文、ユーザー/組織/グループ/マクロ/ビュー/フィールドのテキスト、その他の外部作成文字列は、モデルに公開する前に、閉じタグをエスケープしたうえで
<untrusted-content source="...">...</untrusted-content>のエンベロープで囲まれます。 - ファイルに書き込むチケットエクスポートは、システムの一時ディレクトリ内に制限され(シンボリックリンクを考慮した正規のパス包含チェックを実施)、エクスポートごとに新しく作成した専用ディレクトリ内に、所有者のみがアクセスできる権限で作成されます。指定されたファイル名のみが使用され、完全なパスは
file_pathとして返されます。既存のファイルが変更されることはありません。export_zendesk_ticketsとget_zendesk_tickets_by_idsはローカルのエクスポートファイルを書き込む可能性があるため、読み取り専用ではないと注釈されています。 - メールアドレスはネットワーク呼び出し前に形式が検証され、電話番号はE.164形式で検証されます。数値IDとページネーションパラメーターには正の整数を指定する必要があります。
- アカウントの削除、チケットの更新、チケットへのコメント追加、マクロの適用には、対応するホストがサポートデータの変更前に確認を求められるよう、マークが付けられています。
スモークテスト
MCPホストに次の実行を依頼してください。
Zendeskで未解決のチケットを一覧表示して
失敗した場合は、次の点を確認してください。
dist/index.jsが存在すること(npm run buildを実行)ZENDESK_CONFIG_PATHが読み取り可能なディレクトリを指していることaccounts.jsonに有効なサブドメイン、メールアドレス、APIトークンが含まれていること
トラブルシューティング
| 症状 | 原因として考えられるもの | 対処方法 |
|---|---|---|
| コネクターが起動しない | まだビルドされていない | npm install && npm run buildを実行 |
| 認証エラーまたは結果が空 | 設定パスが間違っている、または認証情報が無効 | ZENDESK_CONFIG_PATHとaccounts.jsonを確認 |
"Reconnect Zendesk"を伴うAUTH_FAILED | OAuthサインインが取り消された、未使用期間が長く期限切れになった、または更新に必要なクライアントIDがない | ホストアプリからZendeskに再度サインイン |
AUTH_REFRESH_FAILED | サインインを更新するためにZendeskに接続できなかった | 少し待ってから再試行 |
| MCPホストでプロトコルの問題が報告される | stdioセッションで標準出力に不要な内容が出力されている | console.logの呼び出しがないことを確認(すべてのログ出力でconsole.errorを使用) |
ライセンス
FSL-1.1-MIT — MITの将来ライセンスを含むFunctional Source License、Version 1.1です。本ソフトウェアは2030-04-08にMITライセンスへ移行します。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。