Atlas / MCP servers / ddukbg / GitHub Enterprise

GitHub EnterpriseBLOCK

mcp/ddukbg/github-enterprise

github-enterprise-mcp

Verdict
BLOCK
Grade
F
Trust score
49 /100
Exposed tools
28 18r · 8w · 2d
Transport
sse · stdio
License
—
Stars
29
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

[](https://mseep.ai/app/containerelic-github-enterprise-mcp)

[](https://archestra.ai/mcp-catalog/ddukbg__github-enterprise-mcp)

An MCP (Model Context Protocol) server for integration with GitHub Enterprise API. This server provides an MCP interface to easily access repository information, issues, PRs, and more from GitHub Enterprise in Cursor.

Compatibility

This project is primarily designed for GitHub Enterprise Server environments, but it also works with:

  • GitHub.com
  • GitHub Enterprise Cloud
Note: Some enterprise-specific features (like license information and enterprise statistics) will not work with GitHub.com or GitHub Enterprise Cloud.

Key Features

  • Retrieve repository list from GitHub Enterprise instances
  • Get detailed repository information
  • List repository branches
  • View file and directory contents
  • Manage issues and pull requests
  • Repository management (create, update, delete)
  • GitHub Actions workflows management
  • User management (list, create, update, delete, suspend/unsuspend users)
  • Access enterprise statistics
  • Enhanced error handling and user-friendly response formatting

Getting Started

Prerequisites

  • Node.js 18 or higher
  • Access to a GitHub Enterprise instance
  • Personal Access Token (PAT)

Docker Installation and Setup

Option 1: Running with Docker

  1. Build the Docker image:
docker build -t github-enterprise-mcp .
  1. Run the Docker container with environment variables:
docker run -p 3000:3000 \
-e GITHUB_TOKEN="your_github_token" \
-e GITHUB_ENTERPRISE_URL="https://github.your-company.com/api/v3" \
-e DEBUG=true \
Read from source at commit 71332dcf5b99OBSERVED · 2026-10-08
Advertisement
02

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.

claude-code
claude mcp add github-enterprise-mcp --env GH_TOKEN=${GH_TOKEN} --env GITHUB_TOKEN=${GITHUB_TOKEN} -- npx -y @ddukbg/[email protected]
claude-desktop
{
  "mcpServers": {
    "github-enterprise-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@ddukbg/[email protected]"
      ],
      "env": {
        "GH_TOKEN": "${GH_TOKEN}",
        "GITHUB_TOKEN": "${GITHUB_TOKEN}"
      }
    }
  }
}
03

Exposed tools (28)

18 read · 8 write · 2 destructive. Blast radius: 2 tools can delete or overwrite — an agent that can be talked into calling a tool can be talked into calling this one.

ToolRiskDescription
create-issuewrite
create-pull-requestwrite
create-repositorywrite
create-userwrite
delete-repositorydestructive
delete-userdestructive
get-contentread
get-enterprise-statsread
get-issueread
get-license-inforead
get-pull-requestread
get-repositoryread
get-userread
list-branchesread
list-issue-commentsread
list-issuesread
list-pull-requestsread
list-repositoriesread
list-user-orgsread
list-usersread
list-workflow-runsread
list-workflowsread
merge-pull-requestwrite
suspend-userread
trigger-workflowwrite
unsuspend-userread
update-repositorywrite
update-userwrite
04

Trust audit

BLOCKgrade F · trust 49/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codeFAIL
L2Instruction surface (what it tells the agent)FAIL
L3Class-specific surfaceWARN
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
declared (6 observation(s))
Network
declared (5 observation(s))
Shell
declared (2 observation(s))
Dependencies
not all pinned
Secrets in source
none-found

Findings (25)

HIGHCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
node_modules/body-parser/node_modules/qs/dist/qs.js:46
"use strict";var undefined,$Object=require(22),$Error=require(16),$EvalError=require(15),$RangeError=require(17),$ReferenceError=require(18),$SyntaxError=require(19),$TypeError=require(20),$URIError=r
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
HIGHCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
node_modules/body-parser/node_modules/qs/dist/qs.js:79
"use strict";var ERROR_MESSAGE="Function.prototype.bind called on incompatible ",toStr=Object.prototype.toString,max=Math.max,funcType="[object Function]",concatty=function concatty(t,n){for(var r=[],
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
HIGHSupply chain · supply.typosquat · CWE-829, CWE-1357
node_modules/iconv-lite/package.json
request ~ requests
Why it matters. dependency name one edit from a popular package
Fix. verify the package; likely typosquat
HIGHPrompt injection · prompt.zero_width · CWE-94, CWE-1427
node_modules/@modelcontextprotocol/sdk/node_modules/express-rate-limit/license.md:1
# MIT License
Why it matters. invisible characters in instruction text
Fix. strip non-printing characters
MEDIUMInformation disclosure · disclose.log_secret · CWE-209, CWE-532
index.ts:218
console.log('token:', options.config?.token ? '(set)' : '(none)');
MEDIUMInformation disclosure · disclose.log_secret · CWE-209, CWE-532
index.ts:230
console.log(`Token provided: ${options.config?.token ? 'yes' : 'no'}`);
MEDIUMInformation disclosure · disclose.log_secret · CWE-209, CWE-532
utils/config.js:45
console.log(`- 토큰 제공 여부: ${environmentConfig.token ? '예' : '아니오'}`);
MEDIUMObfuscation / stealth · obf.zero_width · CWE-506, CWE-94
node_modules/iconv-lite/encodings/sbcs-data-generated.js:100
"chars": "€پ‚ƒ„...†‡ˆ‰ٹ‹Œچژڈگ‘’“”•–—کTMڑ›œں ،¢£¤¥¦§ ̈©ھ«¬® ̄°±23 ́μ¶· ̧1؛»1⁄41⁄23⁄4؟ہءآأؤإئابةتثجحخدذرزسشصض×طظعغـفقكàلâمنهوçèéêëىيîïًٌٍَôُِ÷ّùْûüے"
MEDIUMObfuscation / stealth · obf.zero_width · CWE-506, CWE-94
node_modules/iconv-lite/encodings/sbcs-data-generated.js:373
"chars": "«»...“”�•‘’� กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาําิีึืฺุู–—฿เแโใไๅๆ็่้๊๋์ํTM๏๐๑๒๓๔๕๖๗๘๙®©����"
MEDIUMPrompt injection · prompt.hidden_style · CWE-94, CWE-1427
node_modules/zod-to-json-schema/README.md:44
<div style="background-color: white; padding: 4px; padding-bottom: 8px;" alt="stainless">
MEDIUMFilesystem / path · mcp.destructive_tools · CWE-22, CWE-59
delete-repository, delete-user
Why it matters. 2 tool(s) can delete or overwrite
Fix. prefer a read-only mode or scoped tokens; the page states the blast radius
LOWInventory / provenance · inv.hidden_file · CWE-1104
node_modules/body-parser/node_modules/qs/.nycrc
.nycrc
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInventory / provenance · inv.hidden_file · CWE-1104
node_modules/zod-to-json-schema/.prettierrc.json
.prettierrc.json
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
api/actions/actions.ts:1
import { GitHubClient } from '../../utils/client.js';
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
api/admin/admin.ts:1
import { GitHubClient } from '../../utils/client.js';
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
api/issues/issues.ts:4
import { GitHubClient } from '../../utils/client.js';
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
api/pulls/pulls.ts:5
import { GitHubClient } from '../../utils/client.js';
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
api/repos/repository.ts:1
import { GitHubClient } from '../../utils/client.js';
LOWObfuscation / stealth · obf.decode_call · CWE-506, CWE-94
node_modules/zod/lib/index.mjs:1006
const decoded = JSON.parse(atob(base64));
LOWObfuscation / stealth · obf.decode_call · CWE-506, CWE-94
node_modules/zod/lib/index.umd.js:1012
const decoded = JSON.parse(atob(base64));
LOWObfuscation / stealth · obf.decode_call · CWE-506, CWE-94
node_modules/zod/lib/types.js:478
const decoded = JSON.parse(atob(base64));
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
node_modules/@modelcontextprotocol/sdk/node_modules/express/package.json
accepts, body-parser, content-disposition, content-type, cookie-signature, encodeurl, escape-html, etag
Why it matters. 21 dependency range(s) float
Fix. pin exact versions or ship a lockfile
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
node_modules/@modelcontextprotocol/sdk/package.json
content-type, cors, eventsource, express, express-rate-limit, pkce-challenge, raw-body, zod
Why it matters. 28 dependency range(s) float
Fix. pin exact versions or ship a lockfile
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
node_modules/@types/express-serve-static-core/package.json
@types/node, @types/qs, @types/range-parser, @types/send
Why it matters. 4 dependency range(s) float
Fix. pin exact versions or ship a lockfile
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
node_modules/@types/express/package.json
@types/body-parser, @types/express-serve-static-core, @types/qs, @types/serve-static
Why it matters. 4 dependency range(s) float
Fix. pin exact versions or ship a lockfile

Gates applied: no_behavioural_pass.

Audited 2026-10-08 · audit v0.4.1 · source sha 71332dcf5b99full audit observations/trust-audit/mcp-server/ddukbg__github-enterprise.json · Report an issue / request a re-scan
05

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-0871332dcf5b99BLOCKF49first audit
06

Questions

What is the GitHub Enterprise MCP server?

github-enterprise-mcp

What tools does GitHub Enterprise expose?

28 in total: 18 read-only, 8 that write, and 2 that can delete or overwrite (delete-repository, delete-user). Every one is listed on this page with its risk.

Is GitHub Enterprise safe to connect to an agent?

No — not without reading the findings first. The audit graded it F (49/100) and found 4 critical or high issues in the source. Each one is listed on this page with the file and line it is on. Separately from the audit: 2 of its tools can destroy data, so scope the token you give it to what you actually need.

What credentials does GitHub Enterprise need?

It reads GH_TOKEN and GITHUB_TOKEN from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.

How does GitHub Enterprise run?

It speaks sse and stdio, so it runs as a local process your client starts. It is published on npm as @ddukbg/github-enterprise-mcp at 1.3.0.

How current is this page?

The grade is for one exact copy of the source (71332dcf5b99), read on 2026-10-08. The repository is watched and re-audited when it changes.

Advertisement