Zendesk工单管理服务器

一个基于Model Context Protocol(MCP)的服务器,允许AI代理管理Zendesk支持工单。

  • by ag2trust
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 ag2trust/zendesk-mcp-server

使用说明

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帐户中获取三件事:

  1. 子域名 --the acme 部分 acme.zendesk.com
  2. 电子邮件 --Zendesk代理或管理员的电子邮件地址
  3. 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

许可证

麻省理工学院