Skip to content

mcp-audit changelog

io.github.saagpatel/mcp-audit

10 changes recorded. MCP Harbor re-reads this listing from the official registry every six hours and asks the live server what it exposes, and keeps what changed between one look and the next.

  • server.json 1 field changed
    version
    2.12.0 3.0.0

  • AGENTS.md +22 −66

    https://raw.githubusercontent.com/saagpatel/MCPAudit/HEAD/AGENTS.md

    − ## What This Project Is− `MCPAudit` is a local MCP security and drift audit tool. It inspects MCP client/server configuration and reports what configured servers can reach, with read-only safety as the default operating posture.− ## Current State− The repo is an active infrastructure/security project with package metadata, tests, CI, release docs, and a README that emphasizes zero-touch and read-only scan modes.− ## Stack− - Python− - `uv`− - pytest− - ruff− - GitHub Actions / CodeQL− - SARIF/JSON/HTML style reporting surfaces− ## Local Verification− Use the smallest check that exercises the requested change. Commands run from the repository root; use the existing environment. For checks that must avoid dependency resolution or downloads, add `--offline --no-sync` after `uv run`. If the environment is missing, report that prerequisite rather than silently changing dependencies.− # Focused test: replace the path/node with the affected test.− uv run pytest -p no:cacheprovider -q tests/test_scorer.py− # Lint, formatting, and the CI type-check selection.− uv run ruff check src/ tests/− uv run ruff format --check src/ tests/− uv run mypy .− # CLI entry point.− # Synthetic config-only smoke: no workstation config discovery or server connections.− uv run mcp-audit scan \−   --config examples/sandbox/fixtures/synthetic-mcp-config.json \− `--skip-connect` alone still discovers workstation MCP configs. The explicit fixture, `--config-only`, and empty override above keep this smoke confined to synthetic input. On Windows, replace `/dev/null` with a task-owned empty YAML file. Bare `scan` and `make audit` inspect workstation configs and may connect to servers; use them only when the task calls for that scope.− For broader verification, use `uv run pytest -p no:cacheprovider -q tests/`. The [CONTRIBUTING test lanes](CONTRIBUTING.md#running-tests) define Docker, PostgreSQL, Node, and macOS prerequisites. Tests can launch disposable fixture processes; skipped capabilities remain unverified. Run package/build checks when packaging is affected, using the [release checklist](maintainers/RELEASE-CHECKLIST.md).− Browser checks apply to HTML report or sandbox changes. For the static synthetic sandbox, run `python3 -m http.server 8765 --bind 127.0.0.1 --directory examples/sandbox` and open `http://127.0.0.1:8765/`; choose another free port if needed and stop the server when finished. Follow [the sandbox guide](examples/sandbox/README.md) for fixture and report checks. Ordinary CLI/library changes do not need a browser.− ## Known Risks− - MCP config auditing can expose sensitive config shape. Report environment variable key names only, never values.− - Treat remote package verification, downloads, LLM analysis, and connected server scans as higher-reach modes that need explicit justification.− ## Review guidelines− Focus Codex review on scan correctness, silent skipped checks, degraded-state− warnings, report schema compatibility, secret exposure in findings/warnings,− and release or registry drift. Treat comments on missing tests as merge-relevant− when the change touches detectors, report fields, scan modes, package− verification, SARIF/JSON/HTML output, or MCP connection behavior.− For docs-only PRs, comment only when the docs claim a scan, safety property,− output field, release version, or verification path that is not supported by− the reviewed tree.− ## Contributing− See `CONTRIBUTING.md` for the full contribution guide. Before opening a PR:+ ## Purpose+ MCPAudit reviews MCP client and server configuration, reports declared access and observed metadata, and highlights drift. Static, read-only review is the default.+ ## Layout+ - `src/mcp_audit/` contains the CLI, discovery, analysis, and report code.+ - `tests/` contains unit, integration, and fixture-backed regression tests.+ - `docs/` contains user guides, contracts, and maintainer procedures.+ - `examples/` contains synthetic configurations and safe walkthroughs.+ ## Setup+ Use Python 3.14.8 and `uv`.+ uv sync --locked --dev+ uv run mcp-audit check --config examples/sandbox/fixtures/synthetic-mcp-config.json \+ The explicit fixture, `--config-only`, and empty override keep this smoke test+ on synthetic input without discovering workstation configs or connecting.+ ## Checks+ Run `make check` for lint, formatting, type checking, and the default test suite. Use focused pytest commands for targeted changes. Use the synthetic sandbox fixture for CLI smoke checks; connected tests and platform-specific lanes have additional prerequisites documented in `CONTRIBUTING.md`.+ ## Boundaries+ - Prefer explicit synthetic configs with `--config-only --skip-connect` for checks that do not need workstation discovery.+ - Reports may contain configuration shape, tool names, and evidence text. Report environment variable key names only, never values, and review output before sharing it.+ - Remote package verification, downloads, LLM analysis, and connected scans are opt-in higher-reach operations.+ - Preserve report schema compatibility and surface incomplete or skipped checks clearly.+ ## Delivery+ Use small Conventional Commits. Before proposing a release, follow `maintainers/RELEASE-CHECKLIST.md`; do not claim hosted CI, publication, or runtime behavior from local checks alone.

    Showing the first 40 of each.

  • server.json 1 field changed
    version
    2.11.0 2.12.0

  • server.json 1 field changed
    version
    2.10.1 2.11.0
  • server.json 1 field changed
    version
    2.10.0 2.10.1

  • server.json 1 field changed
    version
    2.9.0 2.10.0
  • server.json 1 field changed
    version
    2.8.1 2.9.0

  • AGENTS.md +19 −14

    https://raw.githubusercontent.com/saagpatel/MCPAudit/HEAD/AGENTS.md

    − ## How To Run− Prefer zero-touch or read-only checks first:− uv run pytest -q− uv run ruff check .− uv run mcp-audit scan --skip-connect− Only run connected scans when the task explicitly calls for live MCP tool-schema inspection and the boundary is clear.− - Prefer config-only (`--skip-connect`) fixtures; connected fixtures require explicit justification.− Prefer zero-touch or read-only checks first:− ```sh− uv run pytest -q− uv run ruff check .− uv run mcp-audit scan --skip-connect− ```− Only run connected scans when the task explicitly calls for live MCP tool-schema inspection and the boundary is clear.+ ## Local Verification+ Use the smallest check that exercises the requested change. Commands run from the repository root; use the existing environment. For checks that must avoid dependency resolution or downloads, add `--offline --no-sync` after `uv run`. If the environment is missing, report that prerequisite rather than silently changing dependencies.+ # Focused test: replace the path/node with the affected test.+ uv run pytest -p no:cacheprovider -q tests/test_scorer.py+ # Lint, formatting, and the CI type-check selection.+ uv run ruff check src/ tests/+ uv run ruff format --check src/ tests/+ uv run mypy .+ # CLI entry point.+ uv run mcp-audit --help+ # Synthetic config-only smoke: no workstation config discovery or server connections.+ uv run mcp-audit scan \+   --config examples/sandbox/fixtures/synthetic-mcp-config.json \+   --config-only --skip-connect --override-config /dev/null+ `--skip-connect` alone still discovers workstation MCP configs. The explicit fixture, `--config-only`, and empty override above keep this smoke confined to synthetic input. On Windows, replace `/dev/null` with a task-owned empty YAML file. Bare `scan` and `make audit` inspect workstation configs and may connect to servers; use them only when the task calls for that scope.+ For broader verification, use `uv run pytest -p no:cacheprovider -q tests/`. The [CONTRIBUTING test lanes](CONTRIBUTING.md#running-tests) define Docker, PostgreSQL, Node, and macOS prerequisites. Tests can launch disposable fixture processes; skipped capabilities remain unverified. Run package/build checks when packaging is affected, using the [release checklist](maintainers/RELEASE-CHECKLIST.md).+ Browser checks apply to HTML report or sandbox changes. For the static synthetic sandbox, run `python3 -m http.server 8765 --bind 127.0.0.1 --directory examples/sandbox` and open `http://127.0.0.1:8765/`; choose another free port if needed and stop the server when finished. Follow [the sandbox guide](examples/sandbox/README.md) for fixture and report checks. Ordinary CLI/library changes do not need a browser.+ - Prefer explicit synthetic configs with `--config-only --skip-connect`; connected fixtures require explicit justification.+ Use the authoritative **Local Verification** section above for focused tests, the isolated synthetic CLI smoke, and conditional browser checks. Use [CONTRIBUTING.md](CONTRIBUTING.md#running-tests) for broader and capability-specific lanes.

  • server.json 1 field changed
    version
    2.7.0 2.8.1