{
  "markdown": "<!--\nSEO: Zendesk MCP | Model Context Protocol Server | AI Agents Zendesk Support Tickets\nzendesk, zendesk-api, zendesk-mcp, zendesk-support, zendesk-tickets, mcp, mcp-server, model-context-protocol, cursor, vscode, claude, claude-desktop, github-copilot, ai-agent, ai-agents, tool-calling, customer-support, helpdesk, support-tickets, ticketing, crm, typescript, python, fastmcp, watsonx-orchestrate, ibm-code-engine, npm, npx, stdio, sse, automation\n-->\n\n# Zendesk MCP\n\n[![npm version](https://img.shields.io/npm/v/@markusvankempen/zendesk-mcp-server.svg)](https://www.npmjs.com/package/@markusvankempen/zendesk-mcp-server)\n[![npm downloads](https://img.shields.io/npm/dm/@markusvankempen/zendesk-mcp-server.svg)](https://www.npmjs.com/package/@markusvankempen/zendesk-mcp-server)\n[![PyPI](https://img.shields.io/pypi/v/zendesk-mcp-server-py.svg)](https://pypi.org/project/zendesk-mcp-server-py/)\n[![VS Code Extension](https://img.shields.io/visual-studio-marketplace/v/markusvankempen.zendesk-mcp-vscode.svg?label=VS%20Code%20Extension)](https://marketplace.visualstudio.com/items?itemName=markusvankempen.zendesk-mcp-vscode)\n[![MCP Registry](https://img.shields.io/badge/MCP%20Registry-zendesk--mcp-blueviolet)](https://registry.modelcontextprotocol.io/servers/io.github.markusvankempen%2Fzendesk-mcp)\n[![CI](https://github.com/markusvankempen/zendesk-mcp/actions/workflows/ci.yml/badge.svg)](https://github.com/markusvankempen/zendesk-mcp/actions/workflows/ci.yml)\n[![License](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)\n\n<p align=\"center\">\n  <img src=\"resources/icon.svg\" alt=\"Zendesk MCP\" width=\"128\" />\n</p>\n\n<p align=\"center\">\n  <a href=\"cursor://anysphere.cursor-deeplink/mcp/install?name=Zendesk%20MCP&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkBtYXJrdXN2YW5rZW1wZW4vemVuZGVzay1tY3Atc2VydmVyIl0sImVudiI6eyJaRU5ERVNLX1NVQkRPTUFJTiI6InlvdXItc3ViZG9tYWluIiwiWkVOREVTS19FTUFJTCI6ImJvdEBleGFtcGxlLmNvbSIsIlpFTkRFU0tfQVBJX1RPS0VOIjoieW91ci16ZW5kZXNrLWFwaS10b2tlbiJ9fQ==\"><img src=\"https://img.shields.io/badge/Add_to_Cursor-Zendesk%20MCP-0f62fe?style=for-the-badge\" alt=\"Add MCP server to Cursor\" /></a>\n  &nbsp;\n  <a href=\"https://vscode.dev/redirect/mcp/install?name=zendesk-mcp&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40markusvankempen/zendesk-mcp-server%22%5D%2C%22env%22%3A%7B%22ZENDESK_SUBDOMAIN%22%3A%22your-subdomain%22%2C%22ZENDESK_EMAIL%22%3A%22bot%40example.com%22%2C%22ZENDESK_API_TOKEN%22%3A%22your-zendesk-api-token%22%7D%7D\"><img src=\"https://img.shields.io/badge/Add_to_VS_Code-Zendesk%20MCP-0098FF?style=for-the-badge&logo=visualstudiocode&logoColor=white\" alt=\"Add MCP server to VS Code\" /></a>\n  &nbsp;\n  <a href=\"https://github.com/markusvankempen/zendesk-mcp/blob/main/docs/ide/bob-local.md#step-by-step-npx-from-npm-option-a\"><img src=\"https://img.shields.io/badge/Add_to_Bob-Zendesk%20MCP-0f62fe?style=for-the-badge\" alt=\"Add MCP server to IBM Bob\" /></a>\n  &nbsp;\n  <a href=\"https://github.com/markusvankempen/zendesk-mcp/blob/main/docs/ide/antigravity-local.md#step-by-step-npx-from-npm-option-a\"><img src=\"https://img.shields.io/badge/Add_to_Antigravity-Zendesk%20MCP-4285F4?style=for-the-badge\" alt=\"Add MCP server to Antigravity\" /></a>\n</p>\n\n> **Model Context Protocol (MCP) server for Zendesk Support** — connect AI agents in **Cursor**, **VS Code**, **Claude Desktop**, **watsonx Orchestrate**, and **IBM Code Engine** to 14 ticket tools (create, search, assign, close, comments, metrics). Install: `npx @markusvankempen/zendesk-mcp-server` · `pip install zendesk-mcp-server-py`\n\n`zendesk` · `mcp` · `cursor` · `github-copilot` · `claude` · `ai-agents` · `customer-support` · `helpdesk` · `watsonx-orchestrate` · `typescript` · `python`\n\nGeneric Zendesk integration for AI agents via the [Model Context Protocol (MCP)](https://modelcontextprotocol.io). Ships **TypeScript** and **Python** server implementations plus deployment examples for IDEs, IBM Code Engine, and watsonx Orchestrate.\n\n**Author:** Markus van Kempen  \n**Email:** [markus.van.kempen@gmail.com](mailto:markus.van.kempen@gmail.com) · [mvk@ca.ibm.com](mailto:mvk@ca.ibm.com)  \n**Website:** [markusvankempen.github.io](https://markusvankempen.github.io/)  \n*No bug too small, no syntax too weird.*\n\n---\n\n## Overview\n\nZendesk MCP exposes 14 support-ticket operations as MCP tools so AI agents in **Cursor**, **VS Code**, **Claude Desktop**, **watsonx Orchestrate**, and **IBM Code Engine** can manage tickets through natural language.\n\nThe core design solves **requester attribution**: tickets are created with the real customer as requester (not the API service account), so Zendesk email replies route correctly.\n\n```mermaid\ngraph TB\n    subgraph clients [MCP Clients]\n        Cursor[Cursor / VS Code]\n        WxO[watsonx Orchestrate]\n        CE[Code Engine / Remote]\n    end\n\n    subgraph servers [Servers]\n        TS[\"TypeScript npm\"]\n        PY[\"Python FastMCP\"]\n    end\n\n    ZD[Zendesk REST API v2]\n\n    Cursor -->|stdio| TS\n    WxO -->|stdio| PY\n    CE -->|SSE| TS\n    CE -->|SSE| PY\n    TS --> ZD\n    PY --> ZD\n```\n\n📖 **[Documentation hub → docs/](./docs/README.md)** · **[MCP config examples → examples/mcp/](./examples/mcp/README.md)** · **[Public vs private repo → docs/PUBLIC_REPO.md](./docs/PUBLIC_REPO.md)** · **[Contributing → CONTRIBUTING.md](./CONTRIBUTING.md)** · **[Security → docs/SECURITY.md](./docs/SECURITY.md)**\n\n---\n\n## Documentation reference\n\nComplete index of every markdown file in this repository.\n\n### Root\n\n| Document | Description |\n|----------|-------------|\n| [README.md](./README.md) | Project overview, quick starts, deployments summary *(this file)* |\n| [task.md](./task.md) | Original project requirements and reference notes |\n\n### Core documentation (`docs/`)\n\n| Document | Description |\n|----------|-------------|\n| [docs/README.md](./docs/README.md) | **Documentation hub** — start here |\n| [docs/ide/README.md](./docs/ide/README.md) | IDE setup — local `npx` + remote Code Engine |\n| [docs/reference/ARCHITECTURE.md](./docs/reference/ARCHITECTURE.md) | System design, stdio/SSE/WxO topologies, auth flow |\n| [docs/reference/TOOLS.md](./docs/reference/TOOLS.md) | All 14 MCP tools — parameters, returns, examples |\n| [docs/guides/SCENARIOS.md](./docs/guides/SCENARIOS.md) | Requester modes, role agents, 17 scenarios, E2E |\n| [docs/reference/FILES.md](./docs/reference/FILES.md) | Complete file inventory |\n| [docs/deployments/README.md](./docs/deployments/README.md) | Deployment docs index |\n\n### Package READMEs (`packages/`)\n\n| Document | Description |\n|----------|-------------|\n| [packages/zendesk-mcp-server/README.md](./packages/zendesk-mcp-server/README.md) | TypeScript/npm server — install, env vars, SSE mode, build from source |\n| [packages/zendesk-mcp-server-py/README.md](./packages/zendesk-mcp-server-py/README.md) | Python FastMCP server — setup, SSE mode, WxO import pointer |\n\n### Deployment READMEs (`deployments/`)\n\n| Document | Description |\n|----------|-------------|\n| [deployments/vscode-extension/README.md](./deployments/vscode-extension/README.md) | VS Code / Cursor / Open VSX extension — commands, settings, publish |\n| [deployments/code-engine/README.md](./deployments/code-engine/README.md) | IBM Code Engine — Dockerfiles, SSE endpoints, remote MCP client config |\n| [deployments/code-engine/DEPLOYMENT-GUIDE.md](./deployments/code-engine/DEPLOYMENT-GUIDE.md) | Code Engine — live deploy, test/admin UI, **local vs deployed `mcp.json`** |\n| [deployments/watsonx-orchestrate/README.md](./deployments/watsonx-orchestrate/README.md) | WxO toolkit deploy, 4 role agents, scenario runner, CLI test commands |\n\n### Quick navigation by topic\n\n| Topic | Start here |\n|-------|------------|\n| **IDE setup (local `npx`)** | [docs/ide/README-local.md](./docs/ide/README-local.md) |\n| **IDE setup (Code Engine)** | [docs/ide/README-remote.md](./docs/ide/README-remote.md) |\n| Architecture & transports | [docs/reference/ARCHITECTURE.md](./docs/reference/ARCHITECTURE.md) |\n| Tool parameters & examples | [docs/reference/TOOLS.md](./docs/reference/TOOLS.md) |\n| WxO agents & test scenarios | [docs/guides/SCENARIOS.md](./docs/guides/SCENARIOS.md) |\n| Every file explained | [docs/reference/FILES.md](./docs/reference/FILES.md) |\n| npm / TypeScript server | [packages/zendesk-mcp-server/README.md](./packages/zendesk-mcp-server/README.md) |\n| Python / FastMCP server | [packages/zendesk-mcp-server-py/README.md](./packages/zendesk-mcp-server-py/README.md) |\n| IDE extension setup | [deployments/vscode-extension/README.md](./deployments/vscode-extension/README.md) |\n| Code Engine deploy | [deployments/code-engine/README.md](./deployments/code-engine/README.md) |\n| WxO deploy & E2E | [deployments/watsonx-orchestrate/README.md](./deployments/watsonx-orchestrate/README.md) |\n\n---\n\n## Repository layout\n\n```\nzendesk-mcp/\n├── docs/                         # Documentation hub\n│   ├── README.md                 # Start here\n│   ├── ide/                      # IDE setup guides (local + remote)\n│   ├── reference/                # ARCHITECTURE, TOOLS, FILES\n│   ├── guides/                   # SCENARIOS\n│   └── deployments/              # Deployment index\n├── packages/\n│   ├── zendesk-mcp-server/       # TypeScript MCP server (npm)\n│   └── zendesk-mcp-server-py/    # Python MCP server (FastMCP)\n├── deployments/\n│   ├── vscode-extension/         # VS Code / Cursor / Open VSX extension\n│   ├── code-engine/              # IBM Code Engine (SSE) + mcp-client JSON\n│   └── watsonx-orchestrate/      # WxO toolkit + 4 role agents\n└── .github/workflows/            # CI + npm/marketplace publish\n```\n\n---\n\n## Quick start (TypeScript / npm)\n\n```bash\nexport ZENDESK_SUBDOMAIN=your-subdomain\nexport ZENDESK_EMAIL=agent@example.com\nexport ZENDESK_API_TOKEN=your_token\n\nnpx @markusvankempen/zendesk-mcp-server\n```\n\n**One-click install:** [Cursor](cursor://anysphere.cursor-deeplink/mcp/install?name=Zendesk%20MCP&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkBtYXJrdXN2YW5rZW1wZW4vemVuZGVzay1tY3Atc2VydmVyIl0sImVudiI6eyJaRU5ERVNLX1NVQkRPTUFJTiI6InlvdXItc3ViZG9tYWluIiwiWkVOREVTS19FTUFJTCI6ImJvdEBleGFtcGxlLmNvbSIsIlpFTkRFU0tfQVBJX1RPS0VOIjoieW91ci16ZW5kZXNrLWFwaS10b2tlbiJ9fQ==) · [VS Code](https://vscode.dev/redirect/mcp/install?name=zendesk-mcp&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40markusvankempen/zendesk-mcp-server%22%5D%2C%22env%22%3A%7B%22ZENDESK_SUBDOMAIN%22%3A%22your-subdomain%22%2C%22ZENDESK_EMAIL%22%3A%22bot%40example.com%22%2C%22ZENDESK_API_TOKEN%22%3A%22your-zendesk-api-token%22%7D%7D) — then set your `ZENDESK_*` credentials in MCP settings.\n\n**Copy-paste setup:** [Bob](./docs/ide/bob-local.md) · [Antigravity](./docs/ide/antigravity-local.md) (no install deeplink yet — use [examples/mcp/](./examples/mcp/README.md)):\n\nAdd to your IDE config — copy from [examples/mcp/](./examples/mcp/README.md):\n\n| IDE | File |\n|-----|------|\n| Cursor | [examples/mcp/cursor-local.json](./examples/mcp/cursor-local.json) → `~/.cursor/mcp.json` |\n| VS Code | [examples/mcp/vscode-local.json](./examples/mcp/vscode-local.json) → `User/mcp.json` |\n| Bob | [examples/mcp/bob-local.json](./examples/mcp/bob-local.json) |\n| Antigravity | [examples/mcp/antigravity-local.json](./examples/mcp/antigravity-local.json) |\n| Claude Desktop | [examples/mcp/claude-desktop-local.json](./examples/mcp/claude-desktop-local.json) |\n\nOr use the **VS Code extension** — it stores your API token in OS keychain and writes MCP config automatically. See [deployments/vscode-extension/README.md](./deployments/vscode-extension/README.md).\n\nBefore pushing to GitHub, run `npm run check:secrets` — see [docs/SECURITY.md](./docs/SECURITY.md).\n\n---\n\n## Quick start (Python)\n\n```bash\npip install zendesk-mcp-server-py\n\nexport ZENDESK_SUBDOMAIN=your-subdomain\nexport ZENDESK_EMAIL=agent@example.com\nexport ZENDESK_API_TOKEN=your_token\n\nzendesk-mcp-server-py\n```\n\n---\n\n## MCP tools (14)\n\n| Tool | Description |\n|------|-------------|\n| `create_ticket` | Create ticket with correct requester attribution |\n| `get_ticket` | Get ticket by ID |\n| `update_ticket` | Update status, priority, tags, or comment |\n| `search_tickets` | Zendesk search query syntax |\n| `list_recent_tickets` | Recently updated tickets |\n| `list_all_tickets` | Admin-wide ticket listing |\n| `list_tickets_for_requester` | Tickets for a requester email |\n| `get_ticket_comments` | Read ticket conversation |\n| `add_ticket_comment` | Add public reply or internal note |\n| `get_user_by_email` | Look up Zendesk user |\n| `close_ticket` | Mark ticket solved |\n| `reopen_ticket` | Reopen solved/closed ticket |\n| `get_ticket_metrics` | SLA / timing metrics |\n| `assign_ticket` | Assign to group or agent |\n\n→ [Full tool reference with parameters & examples](./docs/reference/TOOLS.md)\n\n---\n\n## Deployments\n\n| Scenario | Directory | Transport | Docs |\n|----------|-----------|-----------|------|\n| VS Code / Cursor / Open VSX | `deployments/vscode-extension/` | stdio via `npx` | [README](./deployments/vscode-extension/README.md) |\n| IBM Code Engine | `deployments/code-engine/` | SSE | [README](./deployments/code-engine/README.md) |\n| watsonx Orchestrate | `deployments/watsonx-orchestrate/` | stdio subprocess | [README](./deployments/watsonx-orchestrate/README.md) · [Scenarios](./docs/guides/SCENARIOS.md) |\n\n### watsonx Orchestrate — role agents\n\n| Agent | Role |\n|-------|------|\n| `zendesk_end_user_agent` | Self-service — create/list/comment on own tickets |\n| `zendesk_support_agent` | Analyst — triage, investigate, metrics, assign |\n| `zendesk_admin_agent` | Admin — queue overview, SLA, assignment |\n| `zendesk_mcp_agent` | Generalist — all tools, prototyping |\n\n```bash\ncd deployments/watsonx-orchestrate\n./deploy_and_test.sh                              # full deploy + E2E\nRUN_LIVE=1 ./run_agent_scenarios.sh               # 17 role scenarios\n```\n\n---\n\n## Requester attribution (key design)\n\n```mermaid\nsequenceDiagram\n    autonumber\n    actor User\n    participant WxO as WxO Agent\n    participant MCP as MCP Server\n    participant ZD as Zendesk\n\n    User->>WxO: \"Create a ticket — account locked\"\n    Note over WxO: wxo_email_id available\n    WxO->>MCP: create_ticket(requester_email=wxo_email_id)\n    MCP->>ZD: Find/create user + create ticket\n    ZD-->>MCP: ticket_id=42, requester=real customer\n    MCP-->>WxO: JSON result\n    WxO-->>User: \"Ticket #42 created\"\n```\n\nConnection credentials (`ZENDESK_*`) authenticate the API. User identity (`wxo_email_id`) is mapped by the **agent** into tool arguments — the MCP server never sees WxO session context directly.\n\n→ [Full scenarios documentation](./docs/guides/SCENARIOS.md)\n\n---\n\n## Development\n\n```bash\nnpm install\nnpm run build          # TypeScript server + VS Code extension\nnpm run build:server   # TypeScript server only\nnpm run build:extension\n```\n\n---\n\n## Credentials\n\nNever commit `.env` files or API tokens.\n\n| Deployment | Secret storage |\n|------------|---------------|\n| IDE extension | VS Code `SecretStorage` (OS keychain) |\n| Code Engine | `ibmcloud ce` secrets / env vars |\n| WxO | `orchestrate connections set-credentials` |\n| Local dev | `packages/zendesk-mcp-server-py/.env` |\n\n| Variable | Purpose |\n|----------|---------|\n| `ZENDESK_SUBDOMAIN` | Tenant prefix (`mycompany` → `mycompany.zendesk.com`) |\n| `ZENDESK_EMAIL` | Service account email for API auth |\n| `ZENDESK_API_TOKEN` | Zendesk API token |\n\n---\n\n## Reference implementation\n\nExtracted and generalized from `WxO-ToolBox/vsc/test_tools/zendesk_mcp_server`. See [docs/reference/FILES.md](./docs/reference/FILES.md) for lineage mapping.\n\n→ [All documentation](./docs/README.md) · [task.md](./task.md) (original requirements)\n\n---\n\n## Contributing\n\nSee [CONTRIBUTING.md](./CONTRIBUTING.md) and [CODE_OF_CONDUCT.md](./CODE_OF_CONDUCT.md).\n\n## License\n\n[Apache License 2.0](./LICENSE)\n\n---\n\n## Links\n\n- **npm:** [@markusvankempen/zendesk-mcp-server](https://www.npmjs.com/package/@markusvankempen/zendesk-mcp-server)\n- **PyPI:** [zendesk-mcp-server-py](https://pypi.org/project/zendesk-mcp-server-py/)\n- **GitHub (docs):** [markusvankempen/zendesk-mcp](https://github.com/markusvankempen/zendesk-mcp)\n- **MCP examples:** [examples/mcp/](./examples/mcp/README.md)\n\n## More from the author\n\nPart of the open-source toolkit at [markusvankempen.github.io](https://markusvankempen.github.io/) — alongside [WxO Agent MCP](https://github.com/markusvankempen/wxo-agent-mcp), [Maximo MCP Server](https://github.com/markusvankempen/maximo-mcp-server), [Code Engine MCP Server](https://github.com/markusvankempen/code-engine-mcp-server), and [WxO Builder MCP Server](https://github.com/markusvankempen/wxo-builder-mcp-server).\n\n---\n\n## Topics & keywords\n\n`zendesk` · `zendesk-api` · `zendesk-mcp` · `zendesk-support` · `zendesk-tickets` · `mcp` · `mcp-server` · `model-context-protocol` · `cursor` · `claude` · `claude-desktop` · `github-copilot` · `vscode` · `vscode-extension` · `open-vsx` · `ai-agent` · `ai-agents` · `tool-calling` · `function-calling` · `llm-tools` · `customer-support` · `customer-service` · `helpdesk` · `help-desk` · `service-desk` · `support-tickets` · `ticketing` · `crm` · `watsonx` · `watsonx-orchestrate` · `ibm-cloud` · `ibm-code-engine` · `typescript` · `python` · `fastmcp` · `stdio` · `sse` · `npx` · `npm-package` · `automation`\n\n---\n\n**Author:** Markus van Kempen  \n**Email:** [markus.van.kempen@gmail.com](mailto:markus.van.kempen@gmail.com) · [mvk@ca.ibm.com](mailto:mvk@ca.ibm.com)  \n**Website:** [markusvankempen.github.io](https://markusvankempen.github.io/)  \n*No bug too small, no syntax too weird.*\n\n---\n\n> **Public distribution repo** — server source is not included. Install via\n> `npx -y @markusvankempen/zendesk-mcp-server` or `pip install zendesk-mcp-server-py`.\n> See [docs/PUBLIC_REPO.md](./docs/PUBLIC_REPO.md) for the private dev workflow.\n",
  "bytes": 17812,
  "sha": "0da6b59f5236ac0c72e3331ce7a72c52b0ea03bdca9ddfb013bb6c805135946d",
  "repo_slug": "markusvankempen/zendesk-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_markusvankempen_zendesk_mcp_c82b034c/readme"
}