Skip to main content
Change of provenance

The repository or configuration that created this release differ from a previous release. View details.

Security Review MCP: a finding reported in the code

Security Review MCP

licence Python Angular ci::status pypi::version docker::pulls documentation::badge

MCP server for security-oriented code review (vulnerabilities and misconfigurations), usable from VS Code / Copilot, Claude or a CI/CD agent. It provides review prompts, checklists, a pattern scan with focused Tree-sitter checks for request-to-SQL flows (Python, Java, Go, C#, Rust, Node.js), Angular DOM flows and unchecked message origins, an offline dependency analysis and a report database (SQLite or PostgreSQL) usable in pipelines.

📖 Full documentation: https://cyr-ius.github.io/security-review/

🇫🇷 Version française

Capabilities

Prompts security-review, api-security-review, configuration-review, codebase-review, dependency-review, triage-report, development-standards
Tools checklists, scan_code, scan_dependencies, saving and reading of reports with their checklist coverage (grouped by a normalized project name), status proposals (propose_finding_status: an agent never closes a finding), project posture and gate, SARIF export, trends, rule management
CLI security-review-mcp (MCP server, enroll) and security-review-controller (serve, db, advisories, rules, token, user, audit), exit codes 0 / 1 / 2
Pipelines security-review-ci (gate, sarif, trend, scan-code, scan-deps, which store their reports through the API): lightweight client of the REST API for Jenkins, GitLab or GitHub, with a ci token restricted to the selected projects, no database driver, installed alone without Python (uv tool install security-review-ci); on a workstation (commit hook), with a personal mcp or ci token
Rules More than 200 rules and more than 120 checklist items: Python, Java, Go, C#, Rust, TypeScript / Node.js backend, Angular, Docker, Kubernetes, configuration, GitLab CI, Jenkins, Spring, FastAPI, prompt injection aimed at AI assistants (hidden characters, injected instructions; read guard hook for Claude Code), copied into the database at first start, plus your own rules and checklists (TOML import/export from the CLI or the web interface)
Development standards conventions by technology managed in the web interface (TOML import/export) and handed to the AI assistant before it codes (prompt, get_development_standards / list_development_standards tools, resources)
Vulnerabilities manifests, lockfiles and CycloneDX SBOMs checked against an OSV database (PyPI, npm, Maven, Go, crates.io, NuGet) imported offline or updated every day by the controller, optional proxy
Transport HTTP (shared mode) or stdio (local mode), with optional Bearer tokens stored in the database (token CLI) with expiry and rotation, and TLS (optionally mutual)
Audit and metrics audit log of triage decisions, tokens and enrollments, and Prometheus metrics on /metrics (metrics token)
Connectors findings sent to other tools: Jira and ServiceNow built in, third-party connectors for any other system (vulnerability register, GRC...); each connector switched on in the web interface, by hand or automatically above a severity threshold, one record per issue
Deployment MCP server and controller (REST API, web interface) separated on a shared database, Alembic migrations, Docker Compose and Kubernetes examples
Enrollment an MCP client without a token requests its project (request_enrollment MCP tool or enroll CLI), an administrator approves it, then the user creates a personal MCP token in the web interface; a refused token gets a 401 that says how to get a new one
Web interface in English, French or Spanish: dashboard, triage by a person (approver of the accepted risks and false positives, reason and expiry of the accepted risks), risk acceptances to renew or remove, with append-only comments, per-project list of open findings for an expert review, management of rules, checklists, tokens (per project or for all projects), report language, outgoing proxy (OSV and OIDC) and OSV updates, local or OIDC user accounts, the only ones to open the interface (tokens are for machines: MCP agents, pipelines, scripts; personal or role API tokens for the REST API and Swagger, personal MCP tokens on the projects of the user, with the mcp-user role; initial admin account in the logs), optional OpenID Connect OIDC login, configurable in the interface, with accounts created on the fly, and roles, groups and permissions (groups matched by name with the OIDC groups claim, roles per project given to groups, never directly to accounts)

Details: how a review works (rules, checklists, standards, AGENTS.md), prompts and tools, whole codebase scan, dependencies, gate, SARIF, trends.

Quick start

The product runs as two services sharing one database: the MCP server (security-review-mcp), used by the agents and the CI, and the controller (security-review-controller), used by people: web interface, REST API, tokens and accounts. See two services, two roles.

uv venv && source .venv/bin/activate
uv pip install security-review         # Python ≥ 3.14; [postgres] extra for PostgreSQL

# from the same directory (shared SQLite file)
security-review-controller db upgrade                              # schema (Alembic)
security-review-controller user create admin --group administrators   # web interface account
security-review-controller token create --label alice              # token of the agent
security-review-controller serve --port 8080                       # /ui interface and REST API
security-review-mcp serve --port 8000                              # /mcp endpoint (streamable HTTP)

security-review-ci gate --url http://localhost:8080 --project portal  # block a pipeline (ci token: SECREVIEW_TOKEN)

Host configuration (VS Code with a token, .vscode/mcp.json; Claude and .mcp.json: see connecting the host):

{
  "servers": {
    "security-review": {
      "type": "http",
      "url": "http://127.0.0.1:8000/mcp",
      "headers": { "Authorization": "Bearer ${input:secreview-token}" }
    }
  },
  "inputs": [
    { "id": "secreview-token", "type": "promptString", "description": "Token", "password": true }
  ]
}

Step by step: deploying the server, connecting the host (VS Code, Claude, enrollment). Other cases: offline installation, local mode (stdio), HTTP, authentication and TLS, Docker images (ghcr.io/cyr-ius/security-review, docker.io/cyrius44/security-review) and Docker Compose with PostgreSQL, architecture and Kubernetes, SECREVIEW_* variables.

Limits

The scan produces leads, with false positives. Its Tree-sitter checks cover only simple local flows inside one file. It replaces neither a full SAST or SCA analysis, nor a human review. See security and limits.

Contributing

uv sync --extra dev && uv run pytest && uv run ruff check .

Development happens on dev, and a version is released by pushing a vX.Y.Z tag on master. See the contribution guide and AGENTS.md (instructions for AI agents).

Security and license

Report a vulnerability privately, as described in SECURITY.md. The project is distributed under the Apache 2.0 license.

Metadata

Release files for security-review 4.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Change of provenance

The repository or configuration that created these release files differ from that of a previous release.

We recommend inspecting the repository and configuration before proceeding. View details.

Source distribution (sdist)

Source distribution for security-review 4.0.0
File Size Uploaded Provenance Actions
security_review-4.0.0.tar.gz 1.6 MB With provenance Details for security_review-4.0.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for security-review 4.0.0
File Interpreter ABI Platform Actions
security_review-4.0.0-py3-none-any.whl Python 3 none any Details for security_review-4.0.0-py3-none-any.whl

Total release size: 3.2 MB

Release files / security_review-4.0.0.tar.gz

Change of provenance

This file belongs to a release with changed provenance: the repository or configuration that created the release files differ from that of a previous release.

We recommend inspecting the repository and configuration before proceeding. View details.

Download URL security_review-4.0.0.tar.gz
Size 1.6 MB
Tags Source
SHA-256 checksum
How to use checksums
48a251c8dfbcf3f85f9a73ae6d567cf4b1ece06507a45cd313b9f70b6ac37f10
BLAKE2b-256 checksum
How to use checksums
ca335884607cdc693b0a37246a468f1c56135d66193bcdef0de055875629adab
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 25, 2026.

Transparency log

Release files / security_review-4.0.0-py3-none-any.whl

Change of provenance

This file belongs to a release with changed provenance: the repository or configuration that created the release files differ from that of a previous release.

We recommend inspecting the repository and configuration before proceeding. View details.

Download URL security_review-4.0.0-py3-none-any.whl
Size 1.5 MB
Tags Python 3
SHA-256 checksum
How to use checksums
a8630249426f7c6fc8511610083b80ebc765fb152f2947a4de70843853c61cd7
BLAKE2b-256 checksum
How to use checksums
8dbb79d4835bffb0b634814c466bd719bd6084b92ea3894edfc07004c79ec209
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 25, 2026.

Transparency log

Security for security-review 4.0.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Change of provenance

The repository and configuration that created this release differ from a previous release.

While this could reflect a routine change by the project maintainers, it may also indicate that the release files have been compromised.

Select from 2 files

Attestation for security_review-4.0.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 25, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page