charter doctor reports one of the three MCP safety rules. MCP findings are often the highest-signal findings in a repo because they touch dependency integrity, origin trust, and remote authentication.
- AE-MCP-001 — Version pinning
- AE-MCP-002 — Trusted remotes
- AE-MCP-003 — Auth declaration
What it means: An MCP server entry is using a floating version (Fix pattern — pin to an exact version:Or let Charter apply a catalog-aware bump for you:Common version problems Charter flags:
@latest, a semver range like ^1.2.3, a missing version entirely, or a deprecated/archived package). Charter requires exact version pins for supply-chain auditability.Example finding:Deprecated packages (such as
@modelcontextprotocol/server-github) cannot be auto-fixed — the migration path is a different package entirely. Charter provides the successor package name in the finding output. You must make that migration manually.| Pattern | Example | Status |
|---|---|---|
| Floating tag | @latest | Fail |
| Semver range | ^1.2.3 or ~1.2.3 | Fail |
| Missing version | npx -y mcp-server-git | Fail |
| Floating git ref | git+https://...#main | Fail |
| Exact pin | @2026.1.14 | Pass |
Re-scan after changes
After editing your MCP config orcharter.yaml:
Fast investigation loop
When not to suppress MCP findings
MCP findings are high-signal. Do not jump straight to suppression for findings that point at real supply-chain or trust problems. Suppress only when:- the repo intentionally carries a reviewed exception (e.g., a vendored test fixture)
- you have a real reason and, for permanent suppressions, an approver