🚀 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
:删除触发器
资源