mcp-github-enterprise

mcp-github-enterprise

0

MCP GitHub Enterprise integrates AI agents with GitHub Enterprise to access and analyze license data securely. It offers features like license analytics, user lookup, and seamless deployment options, with a focus on enhancing enterprise GitHub management.

MCP GITHUB ENTERPRISE šŸŒ‰

Python >=3.9
MCP Protocol
GitHub API

A Model Context Protocol (MCP) server that lets AI agents (Claude, ChatGPT, etc.) query your GitHub Enterprise license data. Securely fetch license summaries, per-user details, org memberships, and enterprise roles via the /consumed-licenses endpoint.


šŸ“Š Capabilities & Example Prompts

  • License Summary
    • "Show me our GitHub Enterprise license summary"
    • "How many licenses are we currently using?"

  • Detailed License Usage
    • "List all consumed GitHub licenses"
    • "Do we have any unused GitHub licenses?"

  • User Lookup
    • "What GitHub orgs does johndoe belong to?"
    • "What enterprise roles does johndoe have?"
    • "Is johndoe an owner in our enterprise?"
    • "Get detailed info about johndoe"
    • "Does johndoe have 2FA enabled?"


🌟 Features

  • License Analytics: Total vs. consumed seats
  • User Lookup: Org memberships, roles, 2FA, SAML ID
  • Pagination: Handles large enterprises automatically
  • Dual Transports: stdio for direct MCP, SSE for HTTP
  • Kubernetes-Ready: Deploy on EKS/GKE or any K8s cluster

šŸ“‹ Prerequisites

  • Python 3.9+
  • GitHub PAT with read:enterprise / license scopes
  • GitHub Enterprise Cloud tenant

šŸš€ Quick Start

1. Clone & Install

git clone https://github.com/vipink1203/mcp-github-enterprise.git
cd mcp-github-enterprise
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

2. Configure

cp .env.example .env
# Edit .env: set GITHUB_TOKEN and GITHUB_ENTERPRISE_URL

3. Run

stdio transport
export TRANSPORT=stdio
python main.py
SSE transport
export TRANSPORT=sse PORT=8050
python main.py

🐳 Docker & n8n

Add this service to your docker-compose.yml alongside n8n:

services:
  github-mcp:
    image: ghcr.io/vipink1203/mcp-github-enterprise:latest
    environment:
      - GITHUB_TOKEN=${GITHUB_TOKEN}
      - GITHUB_ENTERPRISE_URL=${GITHUB_ENTERPRISE_URL}
      - TRANSPORT=sse
      - PORT=8050
    ports:
      - "8050:8050"
    restart: unless-stopped
    networks:
      - n8n-network

In n8n's UI, enable the MCP client:

šŸ”Œ Client Configuration

Claude Desktop / Windsurf / Cursor

Add this configuration to your Claude Desktop settings:

{
  "mcpServers": {
   "github-ent": {
     "command": "/path/to/your/venv/python",
     "args": ["/path/to/main.py"],
     "env": {
       "GITHUB_TOKEN": "",
       "GITHUB_ENTERPRISE_URL": "https://api.github.com/enterprises/{enterprise_name}",
       "TRANSPORT": "stdio"
     }
   }
}

SSE Configuration

{
  "mcpServers": {
    "github": {
      "transport": "sse",
      "url": "http://localhost:8050/sse"
    }
  }
}

šŸ“Š Example Use Cases

  • Enterprise User Management: Automate user onboarding and offboarding
  • License Monitoring: Get alerts when licenses are close to expiration
  • Organization Analysis: Analyze organization structures and relationships
  • User Access Auditing: Track user permissions and access levels
  • AI-powered GitHub Insights: Let AI analyze your enterprise GitHub data

šŸ”Œ MCP Tools & Resources

Tools

NameDescription
list_consumed_licensesSummarize licenses, optionally include users
get_user_organizationsList a user's GitHub org memberships
get_user_enterprise_rolesList a user's enterprise roles
get_user_detailFull license detail for a user

Resources

URIDescription
github://consumed-licenses/{dummy}Full license usage + user details
github://user/{username}/rolesOrg & enterprise roles for a user

šŸ”’ Security Considerations

  • Store your GitHub token securely
  • Use appropriate scopes for your GitHub token
  • For production, consider using AWS Secrets Manager or similar
  • Implement network policies in Kubernetes deployments

šŸ¤ Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

šŸ“œ License

This project is licensed under the MIT License - see the file for details.

šŸ™ Acknowledgements


Built with ā¤ļø for seamless AI ā†”ļø GitHub Enterprise integration.