← MCP servers · github

GitHub

CAUTIONgrade C · trust 74/100

GitHub's official MCP Server

githubmcpmcp server

Overview

From the repository's own README, as read at the audited commit.

[![Go Report Card](https://goreportcard.com/badge/github.com/github/github-mcp-server)](https://goreportcard.com/report/github.com/github/github-mcp-server)# GitHub MCP ServerThe GitHub MCP Server connects AI tools directly to GitHub's platform. This gives AI agents, assistants, and chatbots the ability to read repositories and code files, manage issues and PRs, analyze code, and automate workflows. All through natural language interactions.### Use Cases- Repository Management: Browse and query code, search files, analyze commits, and understand project structure across any repository you have access to.- Issue & PR Automation: Create, update, and manage issues and pull requests. Let AI help triage bugs, review code changes, and maintain project boards.- CI/CD & Workflow Intelligence: Monitor GitHub Actions workflow runs, analyze build failures, manage releases, and get insights into your development pipeline.- Code Analysis: Examine security findings, review Dependabot alerts, understand code patterns, and get comprehensive insights into your codebase.- Team Collaboration: Access discussions, manage notifications, analyze team activity, and streamline processes for your team.Built for developers who want to connect their AI tools to GitHub context and capabilities, from simple natural language queries to complex multi-step agent workflows.---## Remote GitHub MCP Server[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install_Server-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://insiders.vscode.dev/redirect/mcp/install?name=github&config=%7B%22type%22%3A%20%22http%22%2C%22url%22%3A%20%22https%3A%2F%2Fapi.githubcopilot.com%2Fmcp%2F%22%7D) [![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install_Server-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://insiders.vscode.dev/redirect/mcp/install?name=github&config=%7B%22type%22%3A%20%22http%22%2C%22url%22%3A%20%22https%3A%2F%2Fapi.gith

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.

claude-code (oci)
claude mcp add github-mcp-server:${VERSION} -- docker run -i --rm ghcr.io/github/github-mcp-server:${VERSION}:None

Details

Source
github/github-mcp-server
npm
@github/mcp-server-ui@1.0.0
Transports
stdio · streamable-http
Tools
Registered at runtime; the list could not be read from source.
License
MIT
Stars
32,986 · pushed 0d ago

Trust audit

Install with care. The audit found things worth knowing before you trust its output.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codeWARN
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
none-observed
Network
none-observed
Shell
none-observed
Dependencies
not all pinned
Secrets in source
found

Findings (25)

MEDIUMObfuscation / stealth · obf.base64_blob · CWE-506, CWE-94
pkg/github/__toolsnaps__/assign_copilot_to_issue.snap:11
"src": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABmJLR0QA/wD/AP+gvaeTAAAC20lEQVRIidWUS4wMURSGv3O7kWmPEMRrSMzcbl1dpqtmGuOxsCKECCKxEBusSJhIWEhsWLFAbC1sWFiISBARCyQ2kzSZGaMxHo
MEDIUMObfuscation / stealth · obf.base64_blob · CWE-506, CWE-94
pkg/github/__toolsnaps__/assign_copilot_to_issue.snap:16
"src": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABmJLR0QA/wD/AP+gvaeTAAACCElEQVRIid2UPWsUYRSFn3dxWWJUkESiBgslFokfhehGiGClBBQx4h9IGlEh2ijYxh+gxEL/hIWwhYpF8KNZsFRJYdJEiUbjCk
MEDIUMObfuscation / stealth · obf.base64_blob · CWE-506, CWE-94
pkg/github/__toolsnaps__/assign_copilot_to_issue_with_intent.snap:11
"src": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABmJLR0QA/wD/AP+gvaeTAAAC20lEQVRIidWUS4wMURSGv3O7kWmPEMRrSMzcbl1dpqtmGuOxsCKECCKxEBusSJhIWEhsWLFAbC1sWFiISBARCyQ2kzSZGaMxHo
MEDIUMObfuscation / stealth · obf.base64_blob · CWE-506, CWE-94
pkg/github/__toolsnaps__/assign_copilot_to_issue_with_intent.snap:16
"src": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABmJLR0QA/wD/AP+gvaeTAAACCElEQVRIid2UPWsUYRSFn3dxWWJUkESiBgslFokfhehGiGClBBQx4h9IGlEh2ijYxh+gxEL/hIWwhYpF8KNZsFRJYdJEiUbjCk
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
pkg/http/middleware/pat_scope_test.go:102
Token:     "0123456789abcdef0123456789abcdef01234567",
LOWInventory / provenance · inv.hidden_file · CWE-1104
.golangci.yml
.golangci.yml
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInventory / provenance · inv.hidden_file · CWE-1104
.goreleaser.yaml
.goreleaser.yaml
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInventory / provenance · inv.hidden_file · CWE-1104
pkg/github/ui_dist/.placeholder.html
.placeholder.html
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
pkg/github/repositories_test.go:644
target := "../../outside"
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
pkg/github/repositories_test.go:2403
Target: github.Ptr("../../outside"),
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
pkg/github/repositories_test.go:2408
Target: github.Ptr("../../outside"),
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
pkg/github/repositories_test.go:2421
expectedErrMsg: `"target":"../../outside"`,
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
pkg/github/repositories_test.go:6556
{"traversal", "src/../../../etc/passwd", "must not contain '..'"},
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
pkg/utils/api_test.go:76
input:       "http://127.0.0.1",
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
pkg/utils/api_test.go:77
wantRestURL: "http://127.0.0.1/api/v3/",
LOWObfuscation / stealth · obf.base64_blob · CWE-506, CWE-94
docs/installation-guides/install-cursor.md:40
[![Install MCP Server](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/en/install-mcp?name=github&config=eyJjb21tYW5kIjoiZG9ja2VyIHJ1biAtaSAtLXJtIC1lIEdJVEhVQl9QRVJTT05BTF9BQ0NFU
LOWObfuscation / stealth · obf.zero_width · CWE-506, CWE-94
pkg/sanitize/sanitize_test.go:863
content := "普通 prose with $5 and $x^2$, :rocket:, ✈️, 👩💻.\n\n" +
LOWObfuscation / stealth · obf.zero_width · CWE-506, CWE-94
pkg/sanitize/sanitize_test.go:874
require.Equal(t, "✈️ and 👩💻", Content("✈️ and 👩💻"))
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
ui/package.json
@github/markdown-toolbar-element, @modelcontextprotocol/ext-apps, @primer/octicons-react, @primer/react, react, react-dom, react-markdown, remark-gfm
Why it matters. 15 dependency range(s) float
Fix. pin exact versions or ship a lockfile
LOWPrompt injection · prompt.authority_framing · CWE-94, CWE-1427
README.md:1662
Lockdown mode limits the content that the server will surface from public repositories. When enabled, the server checks whether the author of each item has push access to the repository. Private repos
LOWPrompt injection · prompt.authority_framing · CWE-94, CWE-1427
docs/server-configuration.md:295
Lockdown mode ensures the server only surfaces content in public repositories from users with push access to that repository. Private repositories are unaffected, and collaborators retain full access 
LOWPrompt injection · prompt.credential_read · CWE-94, CWE-1427
README.md:1651
When using Docker, you can pass the read-only mode as an environment variable:
Why it matters. asks the agent to read credentials
LOWPrompt injection · prompt.credential_read · CWE-94, CWE-1427
README.md:1664
Lockdown mode is a best-effort content filter intended to reduce the risk of prompt injection from untrusted repository content (issues, pull requests, comments, commits, etc.). It is **not** an autho
Why it matters. asks the agent to read credentials
LOWPrompt injection · prompt.credential_read · CWE-94, CWE-1427
docs/server-configuration.md:299
Lockdown mode is a best-effort content filter meant to reduce prompt-injection risk from untrusted repository content; it is not an authorization boundary. It does not restrict what the underlying cre
Why it matters. asks the agent to read credentials
LOWPrompt injection · prompt.persistence · CWE-94, CWE-1427
docs/installation-guides/install-claude.md:91
2. Add to your `PATH`
Why it matters. instructs the agent to persist itself in the user's environment

Gates applied: no_behavioural_pass.

Audited 2026-09-17 · audit v0.4.0 · source sha 8bd0df9a61a0 · full audit: observations/trust-audit/mcp-server/github__github-15.json · Report an issue or request a re-scan

Audit history

DateSourceVerdictGradeScoreChange
2026-09-178bd0df9a61a0CAUTIONC74first audit

Alternatives

Other servers in the same categories, safer ones first.

Questions

What is the GitHub MCP server?

GitHub's official MCP Server

Is GitHub safe to connect to an agent?

With care. The audit graded it C (74/100) and found 25 things worth knowing before you trust this server, listed below with the exact line each was found on.

What credentials does GitHub need?

No credential environment variables were found in its source, so it appears to need none.

How does GitHub run?

It speaks stdio and streamable-http, so it runs as a local process your client starts. It is published on npm as @github/mcp-server-ui at 1.0.0.

How current is this page?

The grade is for one exact copy of the source (8bd0df9a61a0), read on 2026-09-17. The repository is watched and re-audited when it changes.

Provenance: OBSERVED · read 2026-09-17 · job trust-audit-2026-09-17