Skip to content

Add addBlockedBy / removeBlockedBy mutations (native issue dependencies) to MCP server #2391

@karyandrew

Description

@karyandrew

Summary

GitHub's native issue-dependencies API (GA Aug 2025) exposes addBlockedBy / removeBlockedBy GraphQL mutations to set/unset hard-block edges between issues: https://github.blog/changelog/2025-08-21-dependencies-on-issues/

The MCP server currently exposes:

  • sub_issue_write — parent/child sub-issue relationships
  • issue_write — issue CRUD

It does NOT expose the blockedBy / blocking mutation pair, and there is no generic GraphQL passthrough that would let a client invoke them.

Impact

Clients restricted to MCP (e.g., Claude Code's web sandbox) cannot set blockedBy edges, while clients with raw gh api graphql access can. The same agent acting from a CLI session can write the edge; from the web sandbox, it cannot. Any "agent, file this issue and link it as blockedBy #N" workflow has to be punted to a CLI session.

Use case

A personal-knowledge-base repo (https://github.com/karyandrew/second-brain) uses native issue dependencies as the canonical edge model for a work-tracking DAG. The agent's "ready set" query depends on issueDependenciesSummary.blockedBy == 0. Web-sandbox sessions can read the edges but not write them.

Asks (any one closes)

  1. Add addBlockedBy / removeBlockedBy to the MCP server, paralleling the existing sub_issue_write shape.
  2. Add a generic GraphQL passthrough (e.g., graphql_query) so clients can invoke arbitrary mutations against authenticated repos.

Verified upstream

From a gh api graphql shell:

gh api graphql -f query='mutation { addBlockedBy(input: {issueId: "...", blockingIssueId: "..."}) { issue { number issueDependenciesSummary { blockedBy } } } }'

Works. Pure tool-surface gap.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions