mcpField
G
gmi-security-mcp

gmi-security-mcp

Local
github.comSecurity0Updated 1d ago

About gmi-security-mcp

gmi-security-mcp is an MCP server for coding agents that triages semgrep findings and scans repositories using GMI Inference. It combines cost estimates with advisory checks and reproducible verification, while requiring human review before a generated PoC is run.

Key features

  1. 01Triage semgrep findings
  2. 02Scan repositories with semgrep and OSV
  3. 03Check lockfiles against OSV
  4. 04Estimate cost before runs
  5. 05Verify findings with deterministic PoCs
  6. 06Redact secrets before sending

Use cases

  1. 01Triage semgrep results in an editor
  2. 02Review repository findings and dependencies
  3. 03Verify a suspected issue before confirmation

MCP support

The server exposes security analysis tools to MCP clients, including finding triage, repository scans, OSV checks, and verification. It runs as a stdio MCP server and requires a GMI Inference API key for model-backed analysis.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"jayanng-gmi-security": {
"command": "uvx",
"args": [
"gmi-security-mcp"
],
"env": {
"GMI_API_KEY": "<GMI_API_KEY>"
}
}
}
}
Run commanduvx gmi-security-mcp
Environment variables to set
GMI_API_KEYSecretGMI Inference API key

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
pypigmi-security-mcp0.5.11

Tools

15

Saved tool list · updated 1d ago

ParameterTypeRequiredDescription
codestringYes
fileanyNo
lineanyNo
checkanyNo
db_pathanyNo
findingstringYes
thresholdnumberNo
two_stagebooleanNo
max_tokensintegerNo
stage1_modelanyNo
stage2_modelanyNo
spend_cap_usdnumberNo

Details

From the project README

gmi-security-mcp

A security MCP server for coding agents, backed by GMI Inference. Your agent triages semgrep findings, scans repos, checks lockfiles against OSV, and verifies findings with a runnable PoC, all inside the editor, with the cost shown before every run.

PyPI: https://pypi.org/project/gmi-security-mcp/ — MCP Registry: https://registry.modelcontextprotocol.io/v0/servers?search=gmi-security-mcp — Repo: https://github.com/Jayanng/gmi-security-mcp

Install

Requires Python 3.13 or later and a GMI Inference API key. No GitHub token is needed for local repos.

pip install gmi-security-mcp
export GMI_API_KEY="your-gmi-key"
gmi-security-mcp --list-tools

That prints the 15 tool names. Run the server as a stdio MCP server with gmi-security-mcp, or run the 12 built-in examples with mcp-test, which spends under $0.02 with the default model. pipx install gmi-security-mcp works the same way, in an isolated venv.

Quick start

Add the server to Claude Code with claude mcp add gmi-security-mcp -e GMI_API_KEY="your-gmi-key" -- gmi-security-mcp, or drop this in .mcp.json:

{
  "mcpServers": {
    "gmi-security-mcp": {
      "command": "gmi-security-mcp",
      "env": { "GMI_API_KEY": "your-gmi-key" }
    }
  }
}

Config copies for Claude Code, Codex, and Cursor are in install/. Editor test status: Claude Code and Codex are tested for registration and tools/list only, Cursor is not tested end-to-end. See TUTORIAL.md section 2.

Tools

ToolWhat it does
triage_semgrep_findingTriage one finding. One validated verdict: real or false positive, severity, confidence, reason, fix.
repo_scanScan a repo with semgrep and osv-scanner, then two-stage triage of each finding. Returns a JSON report.
check_osv_advisoryCheck one lockfile against OSV. No GMI call.
explain_cveExplain a CVE, GHSA, or OSV id from its advisory, with citations.
draft_private_disclosureDraft a private disclosure from a confirmed real finding. Drafts only, never sent.
estimate_costEstimate a run before it spends anything. No GMI call, no spend.
verify_findingProve a finding with a deterministic oracle and a runnable PoC.
list_findingsList stored findings, summaries only, no code.
get_findingOne stored finding in full: code, evidence, verdict history, verification results.
update_findingUpdate a stored finding. A reason is required.
mark_fpMark a finding false positive, with a reason.
mark_confirmedMark a finding confirmed, with a reason. Only with a reproduced verification.
list_rulesList the custom semgrep rules pack: 8 rules, all enabled by default.
scope_enableEnable a scope policy for one repo from a scope file.
scope_disableDisable the scope policy for one repo.

Cost and safety

Estimate before every run. The default cap is $1.00 per tool call and cannot go above $5.00. A single finding typically costs $0.0001 to $0.001 with Gemini 3.5 Flash Lite. A model verdict alone never confirms a finding: only a deterministic oracle reproducing it does, and a generated PoC never runs on your host until you review and confirm it. Secrets are redacted before anything is sent to GMI, and the key comes from GMI_API_KEY only, never from a file. Drafts are never sent, opened as a PR, forked, pushed, or emailed by this server.

Docs

  • TUTORIAL.md: full worked tutorial, every command with real output, plus the reference appendix with tool details, cost records, limitations, and repo structure.
  • CHANGELOG.md: version history, including what is new in 0.5.8.
  • DECISIONS.md: design decisions and the audit record behind them.
  • DATA_SOURCES.md: where the model pricing comes from and when it was last re-checked live.

Development

python3 -m venv .venv
.venv/bin/pip install -e ".[dev]"
python3 -m pytest tests/ -q

Unit tests need no key and no network. 328 tests pass. Live tests are separate and capped: $1.00 per full run, $5.00 total for the whole build.

License

MIT. See LICENSE.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.