🚀 Zendesk API MCP 服務器
這是一個全面的模型上下文協議 (MCP) 服務器,用於與 Zendesk API 交互。它提供了一系列工具和資源,可用於管理 Zendesk 支持、Talk、Chat 和 Guide 等產品,極大地提升了對 Zendesk 產品的管理效率。
🚀 快速開始
先決條件
- Node.js 14 或更高版本
- 帶有 API 訪問權限的 Zendesk 賬戶
安裝
- 克隆此倉庫
- 安裝依賴:
npm install
- 使用你的 Zendesk 憑據創建一個
.env
文件:
ZENDESK_SUBDOMAIN=your-subdomain
ZENDESK_EMAIL=your-email@example.com
ZENDESK_API_TOKEN=your-api-token
運行服務器
啟動服務器:
npm start
使用自動重啟功能進行開發:
npm run dev
使用 MCP 檢查器測試
通過 MCP 檢查器測試服務器:
npm run inspect
✨ 主要特性
- 完整覆蓋 Zendesk API 功能
- 提供管理票務、用戶、組織等的工具
- 具備訪問 Zendesk API 文檔的資源
- 採用 Zendesk API 令牌進行安全身份驗證
📦 安裝指南
克隆倉庫
克隆此倉庫到本地。
安裝依賴
在項目根目錄下,運行以下命令安裝所需依賴:
npm install
配置環境變量
使用你的 Zendesk 憑據創建一個 .env
文件,示例如下:
ZENDESK_SUBDOMAIN=your-subdomain
ZENDESK_EMAIL=your-email@example.com
ZENDESK_API_TOKEN=your-api-token
💻 使用示例
基礎用法
以下是使用本服務器管理 Zendesk 資源的一些基礎示例:
票務管理
const { list_tickets } = require('./your-mcp-server-module');
list_tickets();
const { get_ticket } = require('./your-mcp-server-module');
get_ticket(123);
const { create_ticket } = require('./your-mcp-server-module');
create_ticket({ subject: 'New Ticket', description: 'This is a new ticket' });
const { update_ticket } = require('./your-mcp-server-module');
update_ticket(123, { subject: 'Updated Ticket' });
const { delete_ticket } = require('./your-mcp-server-module');
delete_ticket(123);
用戶管理
const { list_users } = require('./your-mcp-server-module');
list_users();
const { get_user } = require('./your-mcp-server-module');
get_user(456);
const { create_user } = require('./your-mcp-server-module');
create_user({ name: 'John Doe', email: 'john.doe@example.com' });
const { update_user } = require('./your-mcp-server-module');
update_user(456, { name: 'Jane Doe' });
const { delete_user } = require('./your-mcp-server-module');
delete_user(456);
組織管理
const { list_organizations } = require('./your-mcp-server-module');
list_organizations();
const { get_organization } = require('./your-mcp-server-module');
get_organization(789);
const { create_organization } = require('./your-mcp-server-module');
create_organization({ name: 'New Organization' });
const { update_organization } = require('./your-mcp-server-module');
update_organization(789, { name: 'Updated Organization' });
const { delete_organization } = require('./your-mcp-server-module');
delete_organization(789);
組別管理
const { list_groups } = require('./your-mcp-server-module');
list_groups();
const { get_group } = require('./your-mcp-server-module');
get_group(101);
const { create_group } = require('./your-mcp-server-module');
create_group({ name: 'New Group' });
const { update_group } = require('./your-mcp-server-module');
update_group(101, { name: 'Updated Group' });
const { delete_group } = require('./your-mcp-server-module');
delete_group(101);
宏指令管理
const { list_macros } = require('./your-mcp-server-module');
list_macros();
const { get_macro } = require('./your-mcp-server-module');
get_macro(111);
const { create_macro } = require('./your-mcp-server-module');
create_macro({ name: 'New Macro', actions: [] });
const { update_macro } = require('./your-mcp-server-module');
update_macro(111, { name: 'Updated Macro' });
const { delete_macro } = require('./your-mcp-server-module');
delete_macro(111);
視圖管理
const { list_views } = require('./your-mcp-server-module');
list_views();
const { get_view } = require('./your-mcp-server-module');
get_view(121);
const { create_view } = require('./your-mcp-server-module');
create_view({ name: 'New View', conditions: [] });
const { update_view } = require('./your-mcp-server-module');
update_view(121, { name: 'Updated View' });
const { delete_view } = require('./your-mcp-server-module');
delete_view(121);
觸發器管理
const { list_triggers } = require('./your-mcp-server-module');
list_triggers();
const { get_trigger } = require('./your-mcp-server-module');
get_trigger(131);
const { create_trigger } = require('./your-mcp-server-module');
create_trigger({ name: 'New Trigger', conditions: [] });
const { update_trigger } = require('./your-mcp-server-module');
update_trigger(131, { name: 'Updated Trigger' });
const { delete_trigger } = require('./your-mcp-server-module');
delete_trigger(131);
高級用法
在實際應用中,你可以根據具體需求組合使用這些工具,實現更復雜的業務邏輯。例如,在創建新票務時,同時關聯特定的用戶和組織:
const { create_ticket, get_user, get_organization } = require('./your-mcp-server-module');
async function createTicketWithUserAndOrganization() {
const user = await get_user(456);
const organization = await get_organization(789);
const ticketData = {
subject: 'New Ticket with User and Organization',
description: 'This ticket is associated with a specific user and organization',
requester_id: user.id,
organization_id: organization.id
};
create_ticket(ticketData);
}
createTicketWithUserAndOrganization();
📚 詳細文檔
可用工具
票務
list_tickets
:列出 Zendesk 中的票務
get_ticket
:根據 ID 獲取特定票務
create_ticket
:創建新票務
update_ticket
:更新現有票務
delete_ticket
:刪除票務
用戶
list_users
:列出 Zendesk 中的用戶
get_user
:根據 ID 獲取特定用戶
create_user
:創建新用戶
update_user
:更新現有用戶
delete_user
:刪除用戶
組織
list_organizations
:列出 Zendesk 中的組織
get_organization
:根據 ID 獲取特定組織
create_organization
:創建新組織
update_organization
:更新現有組織
delete_organization
:刪除組織
組別
list_groups
:列出 Zendesk 中的代理組
get_group
:根據 ID 獲取特定組
create_group
:創建新代理組
update_group
:更新現有組
delete_group
:刪除組
宏指令
list_macros
:列出 Zendesk 中的宏指令
get_macro
:根據 ID 獲取特定宏指令
create_macro
:創建新宏指令
update_macro
:更新現有宏指令
delete_macro
:刪除宏指令
視圖
list_views
:列出 Zendesk 中的視圖
get_view
:根據 ID 獲取特定視圖
create_view
:創建新視圖
update_view
:更新現有視圖
delete_view
:刪除視圖
觸發器
list_triggers
:列出 Zendesk 中的觸發器
get_trigger
:根據 ID 獲取特定觸發器
create_trigger
:創建新觸發器
update_trigger
:更新現有觸發器
delete_trigger
:刪除觸發器
資源