A Model Context Protocol server for GitHub Projects v2 board operations, enabling work queue management, claim coordination, and multi-agent task assignment.
- Work Queue Management: Query ready work (unblocked, unclaimed TODO issues)
- Claim System: Claim, renew, and release work with timeout management
- Dependency Tracking: Add blockers and parent-child relationships
- Status Updates: Update issue status on the board
- Agent Coordination: Multi-agent support with conflict prevention
- Native Rust Performance: Fast execution with minimal overhead
Download from GitHub Releases:
# Linux x64
curl -L https://github.com/AndrewAltimit/template-repo/releases/latest/download/mcp-github-board-linux-x64 -o mcp-github-board
chmod +x mcp-github-boardcd tools/mcp/mcp_github_board
cargo build --release
# Binary will be at target/release/mcp-github-board- board-manager CLI: Must be installed and in PATH (or at a known location)
- GitHub token: With repository and project access
- Environment Variables:
export GITHUB_TOKEN=ghp_your_token_here export GITHUB_REPOSITORY=owner/repo
# Start server on port 8022
mcp-github-board --mode standalone --port 8022
# Or with custom settings
mcp-github-board --mode standalone --port 8022 --log-level debugFor direct MCP client integration:
mcp-github-board --mode standalonemcp-github-board --mode server --port 8022# Health check
curl http://localhost:8022/health
# List tools
curl http://localhost:8022/mcp/tools
# Execute tool
curl -X POST http://localhost:8022/mcp/execute \
-H "Content-Type: application/json" \
-d '{
"tool": "query_ready_work",
"arguments": {"limit": 5}
}'Get ready work from the board (unblocked, unclaimed TODO issues).
Parameters:
agent_name(optional): Filter for specific agentlimit(optional, default: 10): Maximum issues to return
Example:
{
"tool": "query_ready_work",
"arguments": {
"agent_name": "claude",
"limit": 5
}
}Claim an issue for implementation.
Parameters:
issue_number(required): Issue to claimagent_name(required): Agent claiming the issuesession_id(required): Unique session identifier
Example:
{
"tool": "claim_work",
"arguments": {
"issue_number": 42,
"agent_name": "claude",
"session_id": "claude-session-123"
}
}Renew an active claim for long-running tasks.
Parameters:
issue_number(required): Issue with active claimagent_name(required): Agent renewing the claimsession_id(required): Session ID from original claim
Release claim on an issue.
Parameters:
issue_number(required): Issue to releaseagent_name(required): Agent releasing the claimreason(optional): Release reason (completed/blocked/abandoned/error)
Update issue status on the board.
Parameters:
issue_number(required): Issue to updatestatus(required): New status (Todo/In Progress/Blocked/Done/Abandoned)
Add a blocking dependency between issues.
Parameters:
issue_number(required): Issue that is blockedblocker_number(required): Issue that blocks
Mark an issue as discovered from another (parent-child relationship).
Parameters:
issue_number(required): Child issueparent_number(required): Parent issue
Get full details for a specific issue.
Parameters:
issue_number(required): Issue to query
Get dependency graph for an issue.
Parameters:
issue_number(required): Issue to query
Get list of enabled agents for this board.
Parameters: None
Get current board configuration.
Parameters: None
Get server status and board-manager CLI availability.
Parameters: None
Add to your .mcp.json:
{
"mcpServers": {
"github-board": {
"command": "mcp-github-board",
"args": ["--mode", "standalone"],
"env": {
"GITHUB_TOKEN": "${GITHUB_TOKEN}",
"GITHUB_REPOSITORY": "${GITHUB_REPOSITORY}"
}
}
}
}The server uses the board-manager CLI which reads configuration from .github/board_config.yaml. See the Board Manager documentation for configuration details.
- MCP Server: Built on mcp-core Rust library
- board-manager CLI: Handles all GitHub API interactions
- Async Runtime: Tokio for high-performance async operations
- Client sends tool request to server
- Server validates parameters and constructs CLI command
- board-manager CLI executes operation against GitHub API
- JSON response returned to client
- MCPError::InvalidParameters: Missing or invalid tool parameters
- MCPError::Internal: board-manager CLI errors or JSON parsing failures
- CLI errors include stderr output for debugging
Issue: board-manager CLI not found
Solution:
- Install board-manager or ensure it's in PATH
- Build from source:
cd tools/rust/board-manager && cargo build --release - Check common locations:
~/.local/bin/board-manager
Issue: board-manager error: ...
Solution:
- Verify GITHUB_TOKEN has proper scopes (repo, project)
- Check GITHUB_REPOSITORY format (owner/repo)
- Ensure project number is correct in board config
Part of the template-repo project. See repository root LICENSE file.