使用说明
Zendesk MCP服务器
A. 模型上下文协议 (MCP)服务器,允许AI代理管理Zendesk支持票。使用官方MCP SDK在Python 3.12中从头开始构建。
免责声明: 这个项目是由人工智能代理从头开始构建的。它是 不 隶属于、认可或与股份有限公司Zendesk关联。“Zendesk”是Zendesk,股份有限公司的商标。这是一个独立的开源集成,使用公开的Zendesk REST API。
工具
| 工具 | 说明 |
|---|---|
create_ticket |
创建新的支持票 |
get_ticket |
通过ID获取门票详细信息 |
update_ticket |
更新状态、优先级、受让人或标签 |
add_comment |
添加公开回复或内部注释 |
search_tickets |
使用Zendesk查询语法搜索门票 |
设置
先决条件
- Python 3.12+
- 启用API访问的Zendesk帐户
Zendesk凭据
您需要从Zendesk帐户中获取三件事:
- 子域名 --the
acme部分acme.zendesk.com - 电子邮件 --Zendesk代理或管理员的电子邮件地址
- API令牌 --在Zendesk管理中心生成→ 应用程序和集成→ APIs → API Zendesk
安装
pip install .
或者使用紫外线:
uv pip install .
跑
将凭据设置为环境变量并启动服务器:
export ZENDESK_SUBDOMAIN=acme
export ZENDESK_EMAIL=agent@acme.com
export ZENDESK_API_TOKEN=your_api_token
export ZENDESK_MCP_AUTH_TOKEN=a-secret-bearer-token
# HTTP server (default) — for use with MCP gateways and remote clients
zendesk-mcp
# stdio mode — for local use with Claude Desktop, Cursor, etc.
zendesk-mcp --transport stdio
在HTTP模式下, ZENDESK_MCP_AUTH_TOKEN 是必需的。客户必须包括 Authorization: Bearer <token> 在每一个请求。要明确禁用身份验证(例如本地开发),请传递 --no-auth.
选项:
--transport stdio | streamable-http (default: streamable-http)
--host Host to bind to (default: 0.0.0.0)
--port Port to bind to (default: 8000)
--no-auth Disable bearer token auth (not recommended for production)
码头工人
docker build -t zendesk-mcp-server .
docker run -p 8000:8000 \
-e ZENDESK_SUBDOMAIN=acme \
-e ZENDESK_EMAIL=agent@acme.com \
-e ZENDESK_API_TOKEN=your_api_token \
-e ZENDESK_MCP_AUTH_TOKEN=a-secret-bearer-token \
zendesk-mcp-server
服务器将在以下时间可用 http://localhost:8000/mcp.
MCP客户端配置
远程/HTTP客户端
将MCP客户端指向服务器URL:
http://your-host:8000/mcp
本地/stdio客户端(Claude Desktop、Cursor等)
{
"mcpServers": {
"zendesk": {
"command": "zendesk-mcp",
"args": ["--transport", "stdio"],
"env": {
"ZENDESK_SUBDOMAIN": "acme",
"ZENDESK_EMAIL": "agent@acme.com",
"ZENDESK_API_TOKEN": "your_api_token"
}
}
}
}
工具详细信息
创建_票
subject (required): Ticket subject
description (required): Ticket body text
priority: low | normal | high | urgent (default: normal)
ticket_type: problem | incident | question | task
tags: list of tags
requester_email: email of the requester
assignee_email: email of the assigned agent
获取门票
ticket_id (required): Numeric Zendesk ticket ID
update_ticket
ticket_id (required): Numeric Zendesk ticket ID
status: new | open | pending | hold | solved | closed
priority: low | normal | high | urgent
assignee_email: email of the agent to reassign to
tags: replace current tags with this list
添加注释
ticket_id (required): Numeric Zendesk ticket ID
body (required): Comment text
public: true for public reply, false for internal note (default: true)
搜索门票
用途 Zendesk搜索语法:
query (required): e.g. "status:open priority:high", "tags:billing", "assignee:me"
sort_by: field to sort by (default: updated_at)
sort_order: asc | desc (default: desc)
安全
默认情况下,此服务器通过纯HTTP进行通信。 对于生产部署,我们强烈建议将其置于TLS终止反向代理之后 (例如,Nginx、Caddy或云负载均衡器),以便在传输过程中对所有流量(包括Zendesk API证书)进行加密。在没有TLS的情况下,不要将服务器直接暴露在公共互联网上。
发展
pip install -e ".[dev]"
pytest
许可证
麻省理工学院