Skip the install. Get this working in under 2 minutes.
Start a free trial on cloud.anythingmcp.com, add the Zenhub in one click, then point your AI client (Claude, ChatGPT, Copilot or Cursor) at the generated MCP endpoint. No Docker, no git clone, zero engineering experience required.
Summary
Work with Zenhub boards from an AI agent through the GraphQL API: workspaces, pipelines and the issues in them, issue details, sprints and their issues, epics and their child issues, estimates; move issues, set estimates, plan sprints, create issues and comment. 17 typed tools plus a generic query tool, personal API key.
Try asking
Example prompts for Zenhub
Click any prompt to copy it. Paste into Claude, ChatGPT, Cursor, Gemini, Copilot or OpenClaw to run it against this connector.
Claude is AI and can make mistakes. Please double-check responses.
💡 No install? Use cloud.anythingmcp.com directly. Sign in, click Connectors → Zenhub, paste your credentials, mint an MCP API key — done. No Docker, no
git clone, no local server.
Zenhub
Work with Zenhub boards from an AI agent through the GraphQL API: workspaces, pipelines and the issues in them, issue details, sprints and their issues, epics and their child issues, estimates; move issues, set estimates, plan sprints, create issues and comment. 17 typed tools plus a generic query tool, personal API key.
Setup
The connector talks to the Zenhub GraphQL API with a personal API key. The key acts as its user: workspaces and repositories that user cannot see are missing from every result.
- In Zenhub open the API section of the dashboard (https://app.zenhub.com/settings/tokens) and create a Personal API Key for the GraphQL API. A user can have up to 5 keys.
- Copy the key right away (it is shown once) and paste it into
ZENHUB_API_KEYwithoutBearerin front. A legacy REST token does not work here. - Call
zenhub_get_viewerto check the key, find a workspace withzenhub_search_workspaces, then read the board withzenhub_list_pipelinesandzenhub_list_pipeline_issues.
Things to know:
- Each key gets 90 seconds of processing time per minute and at most 30 concurrent requests, and one query may not exceed 200 complexity points. That is why the list tools return 10 to 30 items by default; page with
afterset topageInfo.endCursor. - Zenhub ids are opaque strings. The write tools need the Zenhub issue
id, not the issue number. - For what the typed tools do not cover (releases, roadmaps, dependencies, priorities, labels), use
zenhub_graphql_queryorzenhub_graphql_mutation. zenhub_move_issue,zenhub_set_estimate,zenhub_add_issues_to_sprints,zenhub_create_issueandzenhub_add_commentchange the board or post content the team sees.
Prerequisites: ZENHUB_API_KEY
Install the connector locally
curl -fsSL https://raw.githubusercontent.com/HelpCode-ai/anythingmcp/main/docker-compose.quickstart.yml -o docker-compose.yml
printf 'JWT_SECRET=%s\nENCRYPTION_KEY=%s\n' "$(openssl rand -hex 32)" "$(openssl rand -hex 32)" > .env
docker compose up -d
Open http://localhost:3000/connectors/store, pick Zenhub and paste in the env vars listed under Prerequisites.
Available tools
| Tool | What it does |
|---|---|
zenhub_get_viewer | Return the Zenhub user behind the API key (id, name, email, GitHub login) and the Zenhub organizations it belongs to |
zenhub_list_organizations | List the Zenhub organizations of the user with their workspaces (id, name, description) |
zenhub_search_workspaces | Find workspaces the user can access by name |
zenhub_get_workspace | Get one workspace: name, description, organization, default repository, connected repositories (Zenhub id, GitHub id, name), the active… |
zenhub_list_pipelines | List the pipelines (board columns) of a workspace in board order: id, name, description and stage (BACKLOG, SPRINT_BACKLOG, DEVELOPMENT… |
zenhub_list_pipeline_issues | List the issues in one pipeline (board column), in board order: id, number, title, state, repository, estimate, plus the total count |
zenhub_get_issue | Get one issue by repository and number: title, body, state, type, estimate, its pipeline in the workspace, sprints, labels, assignees and… |
zenhub_list_sprints | List the sprints of a workspace, newest first: id, name, state, start and end, total and completed story points, closed issue count. state… |
zenhub_list_sprint_issues | List the issues in one sprint: id, number, title, state, repository and estimate, plus the sprint's points |
zenhub_list_epics | List the Zenhub epics of a workspace: id, title, state (open, to do, in progress or closed), start and end dates, estimate, and issue count… |
zenhub_list_epic_issues | List the child issues of one or more Zenhub epics: id, number, title, state, repository and estimate |
zenhub_get_estimate_values | List the estimate values (story point scale) allowed in each repository of a workspace, for example 1, 2, 3, 5, 8 |
zenhub_move_issue | Move an issue to another pipeline (board column) of the workspace that owns the pipeline, at a position (0 = top) |
zenhub_set_estimate | Set the estimate (story points) of an issue, or clear it by leaving value out |
zenhub_add_issues_to_sprints | Add one or more issues to one or more sprints |
zenhub_create_issue | Create an issue in a repository of the workspace (a GitHub repository, or the workspace's Zenhub repository for a Zenhub issue) |
zenhub_add_comment | Post a comment on an issue or epic |
zenhub_graphql_schema_url | Return the URL of the GraphQL schema (SDL) |
zenhub_graphql_schema | Fetch the GraphQL schema: a summary, one type, a search slice or the full SDL |
zenhub_graphql_query | Run an arbitrary GraphQL query |
zenhub_graphql_mutation | Run an arbitrary GraphQL mutation |
zenhub_graphql_subscription | Run an arbitrary GraphQL subscription (if the API supports it) |
Next steps
Was this guide helpful?