Zendesk 上下文服务 MCP 服务器
使用说明(Markdown 格式)
-
项目简介
- 本仓库实现了一个以 MCP(Model Context Protocol)为基础的服务端,用于向 AI 客户端提供对 Zendesk Tickets、Search、Articles 等操作的“工具”封装。通过一个内置的 MCP 服务器,它把 Zendesk 的常用操作暴露为可被 AI 客户端调用的工具集合,支持 STDIO 传输,便于在 Claude、Cursor、Windsurf 等代理工具中直接集成。
-
主要功能点
- MCP 服务器核心:使用 model context protocol 的服务器框架,注册并暴露工具供客户端调用。
- 工具注册与实现:实现了 Zendesk 相关的工具,例如 zendesk_list_tickets、zendesk_show_ticket、zendesk_create_ticket、zendesk_update_ticket、zendesk_delete_ticket,以及 zendesk_search_tickets 等。
- 通过 STDIO 传输:默认使用 StdioTransport 与客户端通信,适合本地开发与代理集成场景。
- 与现有 CLI 的协同:服务器端复用现有的 TicketService、SearchService、UserService、ArticleService 等组件,确保与 CLI 的数据模型和调用方式保持一致。
-
安装步骤
- 安装并构建 zd 二进制(仓库自带 Go 构建方式,参考 README 指引)。
- 运行 MCP 服务器命令:在命令行执行 zd mcp serve。
- 若要在 AI 客户端集成,请确保客户端可通过 MCP 标准流程与 STDIO 传输通讯。
-
服务器配置(MCP 客户端需要的最少信息) 说明:MCP 客户端需要知道服务器的启动方式,以便与 MCP 服务器建立连接。以下配置描述用于在 AI 客户端的软件中注册该 MCP 服务器;客户端本身不需要包含在此处的代码,只需具有配置信息即可连接。
{ "server_name": "zendesk", "command": "zd", "args": ["mcp", "serve"] }
- server_name: MCP 服务器的唯一标识名,客户端用于引用和发现服务器。
- command: 启动服务器的命令(本仓库中的示例是 zd)。
- args: 启动命令的参数集合,示例为 ["mcp","serve"],表示用 zd 启动 MCP 服务。
- 备注:具体的服务端实现已经在代码中通过 mcp.NewServer(...).Run(ctx, &mcp.StdioTransport{}) 启动并提供工具注册。
-
基本使用方法
- 启动服务器
- 在仓库根目录执行:zd mcp serve
- 服务器将通过标准输入输出与 MCP 客户端通信。
- 连接客户端
- 将客户端(如 Claude Code、Claude Desktop、Cursor、Windsurf 等)配置为指向上述服务器。
- 使用 client.json 配置中的 server_name、command 与 args 来建立连接。
- 使用工具
- 客户端可以调用已暴露的工具,例如 zendesk_list_tickets、zendesk_show_ticket、zendesk_search_tickets、zendesk_create_ticket、zendesk_update_ticket、zendesk_delete_ticket 等。
- 工具输入通过对应该输入类型的 JSON 结构传递,输出为 JSON 结果,便于 AI 客户端解析与后续处理。
- 安全与权限
- 服务器端遵循与 CLI 相同的认证机制,需具备 Zendesk 子域及认证凭据(若使用真实数据源),也可在演示模式使用演示数据。
- 常见注意点
- MCP 工具输出的 JSON 结果包含经过 enrich 的数据(如带有用户信息的票据等),方便 AI 客户端在对话中使用。
- 如需在本地测试,可以使用仓库提供的模拟数据(demo 模式)进行演示。
- 启动服务器