This ZenHub MCP server acts as a bridge between AI assistants and the ZenHub project management platform. It allows Large Language Models (LLMs) to understand and interact with project workflows, making it much easier for teams to keep track of their development progress without constantly switching between different applications. By connecting an AI directly to ZenHub, developers can use natural language to ask about project status, update task lists, or organize their daily work through a simple chat interface. The server provides a robust set of 54 specialized tools that cover the most essential project management tasks across ten different categories. It empowers an AI to create GitHub issues, manage epics, set story point estimates, and organize sprints across various workspaces. It also supports complex filtering and searching, allowing the AI to locate specific issues within pipelines and even reassign tasks or add labels on the fly. This level of integration transforms a standard AI assistant into a functional project coordinator that can handle the routine maintenance of project tickets. For more technical implementations, this tool provides direct access to the ZenHub GraphQL API, including a flexible query tool for executing custom GraphQL strings and variables. It is built on a modular architecture designed for easy expansion, currently covering approximately 30% of ZenHub’s total available operations. Security is managed through API key-based authentication via environment variables, and the server is fully compatible with professional AI environments like Claude Desktop and Cursor. This deep technical integration ensures that AI systems have the precision required to execute complex data mutations and retrieve nested project metadata with high reliability.
Category: DevOps, CI/CD & Version Control
Tags: agile, github, graphql, task-tracking, zenhub
bash npm install npm run build API Key Setup: 1. Obtain your ZenHub API key from ZenHub Settings. 2. Set the environment variable: bash export ZENHUB_API_KEY=your_api_key_here Alternatively, create a .env file by copying .env.example and adding your key. ---~/Library/Application Support/Claude/claude_desktop_config.json on macOS): json { "mcpServers": { "zenhub": { "command": "npx", "args": ["zenhub-mcp-server"], "env": { "ZENHUB_API_KEY": "your_api_key_here" } } } }json { "name": "zenhub", "command": "node", "args": ["/path/to/zenhub-mcp/dist/index.js"], "env": { "ZENHUB_API_KEY": "your_api_key_here", "GITHUB_PAT": "your_github_pat_here" } } Alternatively, for development mode in Cursor: json { "name": "zenhub-dev", "command": "npm", "args": ["run", "dev"], "cwd": "/path/to/zenhub-mcp", "env": { "ZENHUB_API_KEY": "your_api_key_here" } } ---zenhub_query: Execute any GraphQL query against the ZenHub API. * zenhub_search_issues: Search for issues in a specific pipeline. * zenhub_search_issues_in_repository: Search and filter issues inside a repository. * zenhub_get_workspace_issues: Get all issues in a workspace (paginated). * zenhub_get_viewer: Get current ZenHub user information. * zenhub_get_issue_by_info: Lookup an issue by repository and issue number. * zenhub_get_repositories: Lookup repositories by their GitHub IDs. Issue Management * zenhub_create_issue: Create a new GitHub issue via ZenHub. * zenhub_close_issues: Close one or more issues. * zenhub_reopen_issues: Reopen closed issues and move to a specific pipeline. * zenhub_move_issue: Move issues to a specific pipeline and position. * zenhub_add_assignees_to_issues: Add assignees to multiple issues. * zenhub_add_labels_to_issues: Add labels to multiple issues. * zenhub_set_estimate: Set an estimate for an issue. * zenhub_add_issues_to_epics: Add issues to epics. Epic Management * zenhub_create_epic: Create a new epic in ZenHub. Workspace Management * zenhub_get_user_workspaces: Get all workspaces accessible to the user. * zenhub_get_user_organizations: Get accessible ZenHub organizations. * zenhub_create_workspace: Create a new workspace. Sprint Management * zenhub_create_sprint: Create a new sprint with specific dates. * zenhub_add_issues_to_sprints: Add issues to specific sprints. ---zenhub_set_multiple_estimates and zenhub_add_labels_to_issues tools, an AI can analyze the content of multiple issues simultaneously and apply standardized metadata based on the project's history or team guidelines. Example: "Analyze the last 10 issues created in the 'Backend' repository. Based on their descriptions, suggest complexity estimates, apply the 'bug' or 'feature' labels, and assign the 'API-related' issues to @dev_lead."zenhub_create_epic to establish the parent container, create the individual task issues, and then use zenhub_add_issues_to_epics to link them all together instantly. Example: "I want to build a new 'User Dashboard.' Create an Epic for this in the 'Web-App' repo. Then, create three issues for the UI, the Auth integration, and the API endpoints, and add all of them to that new Epic."zenhub_get_workspace_issues and zenhub_query, an AI assistant can perform a "health check" on the workspace. It can identify pipelines that are overloaded and suggest reassignments or movements…Part of MCP Servers
You can install the server by cloning the repository and running npm install followed by npm run build. Once built, you can run the server directly using node with the compiled dist/index.js entry point, or invoke zenhub-mcp-server using npx within your client configuration file. You must also supply a valid ZenHub API key through environment variables.
The server provides 54 tools for managing agile workflows via ZenHub. It enables LLMs to search and query issues, modify assignees, apply labels, update story point estimates, create epics, and organize sprints across workspaces. It also provides a raw GraphQL query tool, allowing assistants to execute custom operations against the ZenHub public GraphQL endpoint.
The server works with any Model Context Protocol compliant host that supports stdio process execution. It includes verified setup configurations for Claude Desktop and Cursor. Users can run the server either through npx or by executing the compiled Node.js script locally while passing the required ZenHub API key inside the environment settings block.
Authentication is handled through the ZENHUB_API_KEY environment variable. You generate an API token from your ZenHub token settings page and set it in your system environment, a local .env file, or the env configuration block of your MCP client. For certain Cursor configurations interfacing with GitHub repositories, an optional GITHUB_PAT variable can also be supplied.
Yes, the server includes the zenhub_query tool specifically for executing custom GraphQL strings and variable payloads against the ZenHub public API. This allows developers and AI models to perform complex queries or mutations that extend beyond the pre-built issue, epic, sprint, and workspace management tools provided out of the box.