list_consumed_licensesLABSCO SUMMARY
Seat questions answered by name, not by spreadsheet export.
"How many licenses are we using" and "is this person an owner" are the two questions that drive most enterprise admin work, and both are one call here. The SSE transport is what lets the same server sit behind an n8n workflow rather than only a desktop client.
What it is
A Python MCP server that queries GitHub Enterprise license data through the /consumed-licenses endpoint. It answers seat questions and per-user questions, handles pagination across large enterprises automatically, and runs over stdio or SSE.
What you get
- list_consumed_licenses — summarise licenses, optionally including the users behind them
- get_user_organizations — a user's org memberships
- get_user_enterprise_roles — a user's enterprise roles
- get_user_detail — full license detail for one user, including 2FA and SAML identity
- Resources addressable by URI:
github://consumed-licenses/{dummy}for full usage plus user details, andgithub://user/{username}/roles - Two transports: stdio for direct MCP, SSE for HTTP — which is what makes it usable from n8n or a Kubernetes deployment
Requirements
Python 3.9+, a GitHub Enterprise Cloud tenant, and a personal access token with read:enterprise and license scopes. Set GITHUB_TOKEN and GITHUB_ENTERPRISE_URL — the latter is the enterprise API path, https://api.github.com/enterprises/{enterprise_name}. TRANSPORT selects stdio or sse; SSE listens on PORT, with 8050 used in the published Docker and n8n examples.
Setup effort
Build from source — clone the repository, then follow the steps on this page and add the configuration for your client
USE CASES
Checking whether you are about to run out of seats
Read the license summary rather than exporting a report.
Auditing one person's access
Look up their org memberships, enterprise roles and whether 2FA is on.
Finding seats nobody is using
Pull consumed licenses with users included and look for the dormant ones.
4 tools
Listed in project docs. Your client may show a different list.
get_user_organizationsget_user_enterprise_rolesget_user_detailBEFORE YOU INSTALL
What to know first
Tools you get
4 tools named in the project's documentation. Every tool reads; nothing creates, revokes or reassigns a license seat.
Requires
Python 3.9+; GITHUB_TOKEN in your environment
INSTALLATION
Connect your client
Clone the repository, then follow the steps on this page and add the configuration for your client.
Server setup
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
cp .env.example .env
# Edit .env: set GITHUB_TOKEN and GITHUB_ENTERPRISE_URLMCP Clients
Claude Desktop, Windsurf, Cursor
{
"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"
}
}
}
}Any MCP client — SSE
{
"mcpServers": {
"github": {
"type": "sse",
"url": "http://localhost:8050/sse"
}
}
}n8n
Add a github-mcp service to the docker-compose.yml that runs n8n: image ghcr.io/vipink1203/mcp-github-enterprise:latest, environment GITHUB_TOKEN, GITHUB_ENTERPRISE_URL, TRANSPORT=sse and PORT=8050, ports 8050:8050, on the same network as n8n (n8n-network in the README)
Give the n8n service N8N_COMMUNITY_PACKAGES=n8n-nodes-mcp and N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE=true so the MCP Client node is available, then start both with docker-compose up -d
In n8n: Settings → Credentials → New Credential → MCP Client API, Transport Type Server-Sent Events (SSE), Server URL http://github-mcp:8050/sse — the Compose service name, not localhost