GitHub Issue Relationships MCP Server

chuks-qua/github-issues-mcp-server
1 starsCommunity

Install to Claude Code

This server doesn't publish a one-line install command. Follow the setup in the source repository.

Summary

An MCP server that provides tools for managing GitHub issue relationships, including tracking dependencies, blockers, and sub-issues.

README.md

GitHub Issue Relationships MCP Server

An MCP (Model Context Protocol) server that provides tools for managing GitHub issue relationships - tracking dependencies, blockers, and sub-issues.

Features

Issue Dependencies

  • github_get_blocked_by - List issues blocking a specific issue
  • github_get_blocking - List issues that an issue is blocking
  • github_add_blocking_dependency - Add a blocking dependency
  • github_remove_blocking_dependency - Remove a blocking dependency

Sub-Issues

  • github_get_parent_issue - Get the parent of a sub-issue
  • github_list_sub_issues - List all sub-issues of a parent
  • github_add_sub_issue - Add a sub-issue to a parent
  • github_remove_sub_issue - Remove a sub-issue
  • github_reprioritize_sub_issue - Change sub-issue priority order

Setup

Prerequisites

  • Node.js 20+
  • GitHub CLI (gh) authenticated, OR a GitHub Personal Access Token

Installation

# Clone the repository
git clone <repo-url>
cd git-relationship-mcp

# Install dependencies
npm install

# Build (optional, for production)
npm run build

Authentication

The server requires a GitHub token with repo scope. You have two options:

Option 1: Use GitHub CLI (Recommended)

If you're authenticated with gh, the Claude Desktop config can retrieve the token automatically.

Option 2: Environment Variable

Set GITHUB_TOKEN directly: ``bash export GITHUB_TOKEN=ghp_your_token_here ``

Claude Desktop Configuration

Add to your Claude Desktop config file:

Windows: %APPDATA%\Claude\claude_desktop_config.json macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

Using GitHub CLI authentication (Windows):

{
  "mcpServers": {
    "github-issues": {
      "command": "cmd",
      "args": ["/c", "for /f %i in ('gh auth token') do @set GITHUB_TOKEN=%i && npx tsx src/index.ts"],
      "cwd": "C:\\path\\to\\git-relationship-mcp"
    }
  }
}

Using direct token:

{
  "mcpServers": {
    "github-issues": {
      "command": "npx",
      "args": ["tsx", "src/index.ts"],
      "cwd": "C:\\path\\to\\git-relationship-mcp",
      "env": {
        "GITHUB_TOKEN": "ghp_your_token_here"
      }
    }
  }
}

Development

# Run in development mode
npm run dev

# Type check
npm run typecheck

# Build for production
npm run build

# Run production build
npm start

Verifying Installation

After configuring Claude Desktop, test the server by asking Claude:

"List the tools from the github-issues server"

Claude should respond with 9 tools (github_get_blocked_by, github_get_blocking, github_add_blocking_dependency, etc.).

Manual Verification

Test the server starts correctly:

# Using GitHub CLI
GITHUB_TOKEN=$(gh auth token) npx tsx src/index.ts

# Using direct token
GITHUB_TOKEN=ghp_your_token npx tsx src/index.ts

The server should output startup information. Press Ctrl+C to exit.

Troubleshooting

| Issue | Cause | Solution | |-------|-------|----------| | "GITHUB_TOKEN environment variable is required" | Token not set or gh not authenticated | Run gh auth login or set GITHUB_TOKEN directly | | "Repository not found" (404) | Token lacks repo scope or repo doesn't exist | Ensure token has repo scope; verify owner/repo spelling | | "Rate limit exceeded" (403) | GitHub API limit hit | Wait 1 hour or use a PAT with higher limits | | Server doesn't appear in Claude Desktop | Config file syntax error | Validate JSON syntax; check file location | | "Permission denied" on write operations | Token lacks write permissions | Regenerate token with repo scope | | "Issue not found" for existing issue | Using issue number instead of ID for write ops | Use issue ID (from API or URL) for *_id parameters |

Example Usage

Once configured in Claude Desktop, you can ask Claude:

  • "What issues are blocking issue #42 in owner/repo?"
  • "List the sub-issues of issue #10 in my-org/project"
  • "Add issue #5 as a sub-issue of #1 in my-repo"
  • "Show me what issues #15 is blocking"

API Reference

See GitHub Issue Dependencies API and GitHub Sub-Issues API for full API documentation.

License

MIT

Related MCP servers

Browse all →