Menu

Star on GitHub · 3.2k
All posts
Product

GitHub Security MCP: 39 tools, 45 checks, full posture audit

A GitHub org's security lives in org settings, repo configs, workflow YAML, secret management, dependency health, and access control all at once. This MCP server runs 45 checks across all six and tells an agent what to fix, in priority order.

A heavy chain with one cracking link — one weak link is a breach: 45 GitHub security checks in one audit through an MCP server

A GitHub organization’s security posture isn’t one setting — it’s org-level 2FA and SSO, per-repo branch protection, the YAML in every Actions workflow, secret scanning coverage, dependency health, and who has access to what. No single dashboard shows all of it, so an audit means clicking through settings pages, grepping workflow files, and pulling API data into a spreadsheet. Hours per org.

github-security-mcp runs that audit for an agent instead. It gives 39 tools and 45 security checks across 6 categories over the Model Context Protocol — the agent calls GitHub’s APIs directly, grades org settings, repo configs, workflows, secrets, supply chain, and access control, and hands back a prioritized list of what to fix. It’s on npm under MIT (v0.1.0), and it does not require GitHub Enterprise: Enterprise-only checks return NOT_APPLICABLE rather than failing, so the audit still completes on a Free or Team plan.

What it checks

Six categories, 45 checks, each returning the same shape — { checkId, severity, status, details, remediation } — so the agent can aggregate and sort them uniformly:

Category Checks Covers
Organization 10 2FA enforcement, SSO/SAML, default visibility, member privileges, OAuth apps, webhooks, audit log
Repository 13 branch protection, secret scanning, code scanning, Dependabot, deploy keys, CODEOWNERS
Actions 8 script injection, pull_request_target, token permissions, action pinning, runners, environments, OIDC
Secrets 5 scanning coverage, push protection, custom patterns, secret scoping
Supply Chain 5 dependency graph, Dependabot updates, SBOM, known vulnerabilities
Access Control 4 team permissions, external collaborators, GitHub Apps, PAT scopes

github_run_all fires every check against an org and repo in one call; github_audit_summary and github_audit_report turn the findings into a rollup or a full markdown report.

The checks that actually bite: Actions

Most misconfigurations are a shrug on their own. The GitHub Actions ones are not — they’re how real supply-chain compromises happen, and they’re the sharpest thing this server finds.

  • Script injection (ACT-001). An untrusted field like ${{ github.event.issue.title }} interpolated straight into a run: block is arbitrary command execution — the title is the shell. An attacker opens an issue, the workflow runs their command. The fix is to pass it through an environment variable, never inline it into the script.
  • pull_request_target + checkout (ACT-002). This pattern runs with repository write access and secrets, against code from a fork. Any outsider’s pull request can execute with your credentials. It’s the single most dangerous workflow shape on GitHub.

The analysis is honest about its method: it fetches the workflow YAML through the Contents API and matches patterns with regex — GitHub exposes no parsed-workflow API — so it reliably catches the common shapes (injection, PR-target, unpinned @v4 tags instead of SHA pins, write-all token defaults) and can miss something deeply nested or built dynamically. It’s a strong first pass, not a formal proof.

The point is the chains

Run the whole thing against a 50-repo org and the value isn’t the individual flags — it’s that one read shows how they combine:

github_run_all({ org: "acme-corp", repo: "main-app" })

  34 findings — 4 critical, 7 high, 12 medium, 11 low
  Org:          2FA not enforced, no SSO
  Repo:         no branch protection on main, no code scanning
  Actions:      script injection in deploy.yml:47, write-all token, unpinned actions
  Secrets:      7 unresolved secret-scanning alerts
  Supply chain: 3 critical Dependabot alerts open 90+ days
  Access:       platform team has admin on 47 repos (3 members)

A missing branch-protection rule is bad. A missing branch-protection rule plus script injection in a workflow plus a write-all token is a compromise path waiting to be walked. The remediation the agent returns is specific — “Settings → Branches → require PR reviews on main,” “move ${{ github.event.issue.title }} into an env: var,” “rotate the seven exposed secrets” — not a severity number to go look up.

Where it fits in CyberStrike

github-security-mcp is one of the built-in MCP servers in the CyberStrike suite, and it slots into the recon chain the others start: OSINT discovers that a target uses GitHub and which org → github-security runs the full posture audit → cve-mcp scores the critical Dependabot alerts it surfaces by real exploitation likelihood → the darknet server checks whether any of that org’s tokens have turned up in stealer-log dumps. Four servers, one assessment — the layering argument from MCP vs A2A.

Getting started

The token does all the work, so scope it tight — a fine-grained PAT with read-only organization and repository permissions is enough for a full audit, and it should come from the environment, not a checked-in config (the reasoning is in ten ways to secure your MCP servers):

{
  "mcpServers": {
    "github-security": {
      "command": "npx",
      "args": ["-y", "github-security-mcp"],
      "env": { "GITHUB_TOKEN": "github_pat_…" }
    }
  }
}

Then point an agent at your org and ask it to run github_run_all. The audit is read-only — it reports what to change; it doesn’t change anything itself.

Published on npm as github-security-mcp (MIT). Part of the CyberStrike embedded MCP server suite — see also OSINT, cve-mcp, the darknet MCP server, and MCP vs A2A.

Keep reading

More from on call

View all posts
A tall stack of CVE reports beside one flagged page — 200 CVEs, five that matter: real risk scoring through one MCP server
productOct 17, 2026

CVE MCP: 41 tools, 11 sources, real risk scoring

A scan drops 200 CVEs on your desk. CVSS alone can't tell you which five matter. cve-mcp pulls severity, exploitation probability, active-exploitation status and weaponization into one MCP server, and scores what's actually urgent.

A sliced onion — reach the .onion layer: Tor, stealer logs, ransomware and blockchain intel through one MCP server
productOct 17, 2026

Darknet MCP Server: 66 tools, 16 sources, one protocol

Dark web intelligence scattered across 16 platforms — breaches, ransomware, stealer logs, Tor, blockchain — exposed to an AI agent through a single MCP server. What it does, how it works, and how to use it responsibly.

A figure on a summit overlooking a vast landscape — see the whole attack surface: full-spectrum reconnaissance through one MCP server
productOct 17, 2026

OSINT MCP Server: 37 tools, 12 sources, full-spectrum recon

Recon is the first phase of every assessment, and it's scattered across a dozen platforms — DNS, WHOIS, certificate transparency, Shodan, Censys, Wayback. This MCP server puts all 12 behind one agent, and 21 of its 37 tools need no API key.

Get the next post in your inbox

One email a month with new posts, product updates and the odd postmortem worth reading. Unsubscribe in one click.