Zenhub logoMCP server · Engineering and operations

Zenhub MCP server

Zenhub in any MCP client, through Memtro: Zenhub does not publish this server. Memtro's Zenhub connector reads Zenhub through its API with the credentials you connect, and one endpoint hands those tools, every other system you connect and Memtro's memory tools to Claude Code, Cursor, Claude Desktop or anything else that speaks Streamable HTTP, as you.

What the model can do

Zenhub agile boards on GitHub: workspaces and their repositories, pipelines (board columns), the issues in a workspace or a pipeline (searchable by words, labels or assignee), one issue with its body, pipeline, priority, estimate, sprints, labels, issue type, parent and sub-issues, blocking dependencies, and the issue types a repository can use. Assignees are not available (the API docs show no query for them). When asked, can create an issue or sub-issue, edit its title, body or dates, close or reopen issues, move an issue between pipelines, set an estimate, add issues to a sprint, change issue types, nest issues under a parent, and add or remove a dependency.

Reads

  • zenhub_workspacesZenhub workspaces the key's user can see, by name: id and name.
  • zenhub_repositoriesA Zenhub workspace's repositories (id, GitHub id, name), the id of its own Zenhub repository (where Zenhub-only issues are created)…
  • zenhub_pipelinesA Zenhub workspace's pipelines, the columns of its board, in board order: id and name.
  • zenhub_workspace_issuesIssues and pull requests in a Zenhub workspace, a page at a time (at most 15, Zenhub's complexity limit): id, number, title…
  • zenhub_pipeline_issuesOpen issues in one Zenhub pipeline (board column), optionally matching words in the title, labels, or assignees' GitHub handles: id, number, title…
  • zenhub_issueOne Zenhub issue by its id, or by its GitHub repository id and issue number: title, body (first 6,000 characters), state, repository, estimate…
  • zenhub_dependenciesBlocking dependencies in a Zenhub workspace (at most 12, Zenhub's complexity limit): which issue blocks which, by issue id…
  • zenhub_issue_typesThe issue types (Initiative, Epic, Story, Task …) that issues in a repository can take in a workspace: id, name, level…

Acts, when you ask

These change something in Zenhub. The model is told to use them only when you ask for exactly that, and each one is granted by name: per team on a shared connection, by the owner on a personal one.

  • zenhub_create_issueCreate an issue in a Zenhub workspace's repository: a GitHub issue in a GitHub repository (visible on GitHub to whoever can see the repository…
  • zenhub_update_issueChange a Zenhub issue's title or body (the old text is replaced; for a GitHub issue the change shows on GitHub), or set its start and end dates…
  • zenhub_close_issuesClose Zenhub issues (GitHub issues close on GitHub too, which notifies their watchers).
  • zenhub_reopen_issuesReopen closed Zenhub issues, placing them at the top of a pipeline (GitHub issues reopen on GitHub too).
  • zenhub_move_issueMove a Zenhub issue to another pipeline (board column) at a position (0 is the top).
  • zenhub_set_estimateSet a Zenhub issue's estimate (story points), replacing any previous one.
  • zenhub_add_issues_to_sprintsAdd Zenhub issues to sprints (sprint ids come from zenhub_issue's sprints).
  • zenhub_change_issue_typeGive Zenhub issues an issue type (Epic, Story, Task …), or remove their type with remove_type.
  • zenhub_add_sub_issuesMake existing Zenhub issues sub-issues of a parent issue (moving them from any previous parent).
  • zenhub_add_dependencyRecord in Zenhub that one issue blocks another, each named by its GitHub repository id and issue number.
  • zenhub_remove_dependencyRemove a blocking dependency between two Zenhub issues, each named by its GitHub repository id and issue number.

Connect it

First connect Zenhub on Dashboard → Connections, then add Memtro to your client once. The Zenhub tools appear alongside the tools of everything else you have connected; nothing is configured per connector.

Claude Code

The Memtro plugin registers the server and a skill for when to use it; the tools are then available in every session.

claude plugin marketplace add memtro-org/claude-memtro
claude plugin install memtro@memtro --config api_key=sk-memtro-...

Cursor

Add the server to .cursor/mcp.json in the project, or to the global file under ~/.cursor/.

{
  "mcpServers": {
    "memtro": {
      "url": "https://platform.memtro.com/api/mcp",
      "headers": {
        "Authorization": "Bearer sk-memtro-..."
      }
    }
  }
}

Claude Desktop

Create a personal API key on Dashboard → Profile → API keys. In Claude Desktop add an MCP server of type HTTP with URL https://platform.memtro.com/api/mcp and the header Authorization: Bearer sk-memtro-…

OpenCode

A remote server in opencode.json.

{
  "mcp": {
    "memtro": {
      "type": "remote",
      "url": "https://platform.memtro.com/api/mcp",
      "headers": {
        "Authorization": "Bearer sk-memtro-..."
      }
    }
  }
}

Pi

One command: pi mcp add memtro --url https://platform.memtro.com/api/mcp --bearer-token-env-var MEMTRO_API_KEY. Tools arrive as mcp__memtro__*. The pi-memtro extension registers it for you, alongside Memtro as the model.

Any other client

Add an MCP server of type HTTP (Streamable HTTP, stateless) at https://platform.memtro.com/api/mcp with the header Authorization: Bearer sk-memtro-.... Codex, Zed, Windsurf, Cline and the SDKs all take a remote server this way.

Who may use it

The key identifies the person, and the server offers that person the tools they may use everywhere else in Memtro. A shared Zenhub connection is used by the teams an administrator granted it to, tool by tool, on the Permissions page; a personal connection is used by its owner alone, and its tools that act stay off until the owner allows them. See Teams and permissions and Connectors.

Ask it like this

  • › What is in the In Progress pipeline?
  • › Which issues are blocking the release epic?
  • › What is the estimate on the login redesign issue?
  • › Which issue types can the web repository use?
  • › Move issue 482 to Review and set its estimate to 3

Questions

Is this an official Zenhub MCP server?
No. It is Memtro's MCP server with Memtro's Zenhub connector behind it: the connector reads Zenhub through its API with the credentials you connect on Dashboard → Connections, and Zenhub publishes nothing here. The same endpoint carries every other system you connect and Memtro's memory tools.
What does it cost?
Nothing on top of Memtro. One price per organisation by its number of users, from $50 a month for up to 10 users after a 7-day free trial, with every connector, the MCP server, jobs and memory included. You bring your own model keys.
Can it change anything in Zenhub?
Only when you ask, and only what it has been granted: create an issue or a sub-issue in a repository (a GitHub issue notifies the repository's watchers); edit an issue's title, body, or start and end dates; close issues; reopen closed issues into a pipeline; move an issue to another pipeline; set an issue's estimate; add issues to sprints; change or remove the issue type of issues; make issues sub-issues of a parent; mark one issue as blocking another; remove a blocking dependency. Every other tool reads, searches or lists. An administrator grants each acting tool by name per team, and a personal connection acts only after its owner allows it.
Which clients work?
Any MCP client that speaks Streamable HTTP: Claude Code, Cursor, Claude Desktop, OpenCode, Codex, Zed, Windsurf, Cline and the Anthropic and OpenAI SDKs. There is no local process to run; the server is remote and authenticated with your key.

Other MCP servers · Engineering and operations

Where agents remember your company

Sign in, add a provider key, create an API key and point your tools at Memtro. It takes about five minutes.

7-day free trial · card on file, nothing charged until it ends · cancel any time