@ibraheem4/github-mcp v3.4.0
Linear-GitHub Bridge MCP Server
A comprehensive MCP (Model Context Protocol) server that bridges Linear project management with GitHub repositories, providing intelligent issue triage, bidirectional synchronization, and seamless pull request workflows.
Overview
This server provides a sophisticated interface between Linear issues and GitHub repositories, with intelligent triage to ensure engineering issues go to GitHub (for Copilot agent integration) while business/product issues stay in Linear for optimal workflow management.
Core Philosophy
- Intelligent Triage: Automatically categorize issues as engineering vs business/product
- Copilot Optimization: Engineering issues on GitHub for AI agent integration
- Workflow Focused: Optimized for feature development, release management, and issue management
- Bidirectional Sync: Seamless issue synchronization between platforms
- Comprehensive Toolset: Full issue lifecycle management across both platforms
Features
š Linear Integration
- Issue Management: Full CRUD operations for Linear issues
- Team Management: List and work with Linear teams
- Rich Metadata: Support for priorities, assignees, labels, and status tracking
š GitHub Integration
- Issue Management: Complete GitHub issue lifecycle management
- Repository Integration: Work with any GitHub repository
- Label & Assignee Support: Full metadata synchronization
š§ Intelligent Triage
- Automatic Classification: AI-powered analysis of issue content
- Engineering Detection: Identifies code, bugs, features, performance issues
- Business Detection: Recognizes strategy, design, process, customer issues
- Confidence Scoring: Provides reasoning and confidence levels
- Label Suggestions: Recommends appropriate labels for each platform
š Bidirectional Synchronization
- Cross-Platform Sync: Create corresponding issues on either platform
- Context Preservation: Maintains links between synchronized issues
- Flexible Sync Modes: One-way or bidirectional synchronization
- Metadata Mapping: Intelligent translation of labels and assignees
š Pull Request Management
- Feature PR Creation: Automatically create feature branches and PRs from Linear issues
- Release PR Creation: Generate release PRs with change summaries from dev to main
- Rich PR Descriptions: Generate comprehensive PR descriptions from Linear issue details
- Linear Issue Tracking: Identify and link all Linear issues addressed in releases
Prerequisites
- Node.js 18+
- GitHub Personal Access Token with repo scope
- Linear API Key
Installation
NPX (Recommended)
# Set required environment variables
export GITHUB_TOKEN=your_github_personal_access_token
export LINEAR_API_KEY=your_linear_api_key
# Run the server
npx @ibraheem4/github-mcpLocal Development
git clone https://github.com/ibraheem4/github-mcp.git
cd github-mcp
npm install
npm run buildConfiguration
Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_TOKEN": "your_github_personal_access_token"
}
},
"linear-github-bridge": {
"command": "npx",
"args": ["-y", "@ibraheem4/github-mcp"],
"env": {
"GITHUB_TOKEN": "your_github_personal_access_token",
"LINEAR_API_KEY": "your_linear_api_key"
}
}
}
}Environment Variables
# Required for GitHub API access
GITHUB_TOKEN=your_github_personal_access_token
# Required for Linear API access
LINEAR_API_KEY=your_linear_api_keyAvailable Tools
Issue Triage Tools
1. triage_issue
Analyze an issue and determine the optimal platform (GitHub for engineering, Linear for business).
{
title: string; // Issue title
description: string; // Issue description
labels?: string[]; // Existing labels (optional)
}Example Usage:
{
"title": "API endpoint returning 500 error",
"description": "The /api/users endpoint is consistently returning 500 errors when fetching user data. This needs debugging and fixing."
}Returns:
{
"platform": "github",
"reasoning": "Engineering issue detected. Keywords: api, error, debugging, fix. Best managed on GitHub for Copilot agent integration.",
"confidence": 0.9,
"suggestedLabels": ["bug", "backend"],
"isEngineering": true
}Issue Management Tools
2. create_issue
Create an issue on GitHub or Linear based on triage decision.
{
title: string; // Issue title
description: string; // Issue description
platform: "github" | "linear"; // Target platform
owner?: string; // GitHub repo owner (required for GitHub)
repo?: string; // GitHub repo name (required for GitHub)
teamId?: string; // Linear team ID (required for Linear)
labels?: string[]; // Labels to apply
assignee?: string; // Assignee username/ID
priority?: number; // Priority (0-4, Linear only)
}3. get_linear_issue / get_github_issue
Get detailed information about a specific issue.
// Linear
{ issueId: string }
// GitHub
{ owner: string; repo: string; issueNumber: number }4. list_linear_issues / list_github_issues
List issues with optional filtering.
// Linear
{ teamId?: string; limit?: number }
// GitHub
{ owner: string; repo: string; state?: "open" | "closed" | "all"; limit?: number }5. update_github_issue
Update a GitHub issue with new information.
{
owner: string; // Repository owner
repo: string; // Repository name
issueNumber: number; // Issue number
title?: string; // New title
body?: string; // New description
state?: "open" | "closed"; // New state
labels?: string[]; // New labels
assignees?: string[]; // New assignees
}Synchronization Tools
6. sync_issue
Synchronize an issue between GitHub and Linear platforms.
{
sourceplatform: "github" | "linear"; // Source platform
sourceId: string; // Source issue ID/number
targetOwner?: string; // Target GitHub repo owner
targetRepo?: string; // Target GitHub repo name
targetTeamId?: string; // Target Linear team ID
syncMode?: "one-way" | "bidirectional"; // Sync mode
}Utility Tools
7. list_linear_teams
List all available Linear teams for issue creation.
{} // No parameters requiredPull Request Tools (Original)
8. create_feature_pr
Create a feature PR from a Linear issue.
{
owner: string; // Repository owner
repo: string; // Repository name
linearIssueId: string; // Linear issue ID (e.g., 'ARC-119')
base?: string; // Base branch (default: 'dev')
title?: string; // Override PR title
description?: string; // Override PR description
}9. create_release_pr
Create a release PR with change analysis.
{
owner: string; // Repository owner
repo: string; // Repository name
head?: string; // Head branch (default: 'dev')
base?: string; // Base branch (default: 'main')
title?: string; // Override PR title
}10. update_pr
Update an existing pull request.
{
owner: string; // Repository owner
repo: string; // Repository name
prNumber: number; // Pull request number
title?: string; // New PR title
description?: string; // New PR description
}Workflow Examples
Issue Triage Workflow
- Receive Issue: New issue comes in via any channel
- Triage Analysis: Use
triage_issueto analyze content - Create Issue: Use
create_issuewith recommended platform - Copilot Ready: Engineering issues on GitHub are ready for AI agents
# Example: Bug report
triage_issue: "Login API crashes" + "500 error on /auth/login endpoint"
ā Result: GitHub (engineering issue, confidence: 0.95)
ā create_issue: platform=github, labels=["bug", "backend"]Cross-Platform Sync Workflow
- Engineering Issue in Linear: Business team creates technical issue in Linear
- Sync to GitHub: Use
sync_issueto move to GitHub for development - Development: Copilot agents work on GitHub issue
- Status Updates: Sync progress back to Linear stakeholders
Feature Development Workflow (Enhanced)
- Product Planning: Create feature requirements in Linear
- Engineering Breakdown: Sync or create specific technical issues in GitHub
- Feature PR: Use
create_feature_prfrom GitHub issue - Development: AI agents assist with GitHub issue
- Release: Use
create_release_prto package features
Integration Strategy
This server works alongside other MCP servers for complete coverage:
- Use
@modelcontextprotocol/server-githubfor: Basic Git operations, file management, repository management - Use
@ibraheem4/github-mcpfor: Issue triage, Linear-GitHub workflows, cross-platform synchronization
Triage Algorithm
The intelligent triage system uses keyword analysis and context understanding:
Engineering Indicators
- Technical:
bug,error,crash,api,database,performance - Development:
code,feature,implement,test,deployment - Infrastructure:
server,security,build,ci/cd,scale - Special:
copilot,ai agent,automation(strong GitHub indicators)
Business Indicators
- Strategy:
roadmap,planning,budget,revenue,partnership - Product:
design,user experience,customer,workflow - Process:
policy,compliance,training,documentation - Operations:
marketing,sales,hr,procurement
Confidence Scoring
- Higher confidence for longer, more specific keywords
- Boost for Copilot/AI-related terms (GitHub preference)
- Balanced scoring prevents false classifications
Development
Project Structure
src/
āāā index.ts # Main MCP server implementation
āāā utils/
ā āāā github.ts # GitHub API integration + issue management
ā āāā linear.ts # Linear API integration + triage logic
āāā config/ # Configuration management
āāā types/ # TypeScript type definitions + triage typesLocal Development
npm run dev # Development server with hot reload
npm run build # Build for production
npm run inspector # Launch MCP inspector for testingContributing
- Fork the repository
- Create a feature branch
- Add comprehensive triage and sync functionality
- Add tests for new issue management features
- Submit a pull request
License
MIT License - see LICENSE file for details.
Perfect for teams using both Linear and GitHub: This server intelligently routes engineering work to GitHub (for Copilot integration) while keeping business discussions in Linear, with seamless synchronization between platforms.
8 months ago
8 months ago
8 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago