foretop

foretop charter — MCP capability drift scanner

Review every MCP capability before it expands.

Charter turns committed MCP client configuration into a deterministic lock file and shows when a pull request adds a server or expands access.

Available now · Apache-2.0

What it checks

A bounded scanner with explicit evidence and an honest unknown state.

Config

Inventory committed MCP servers

Read project-level Claude Code and Cursor configuration, recording transports, commands, arguments, and endpoints.

Secrets

Record references, never values

Capture the names and paths of credential-referencing environment variables and headers without opening the secrets behind them.

Capabilities

Enumerate only when asked

Static parsing is the default. Optional local stdio enumeration launches trusted servers and classifies the tools they expose.

Use it locally or as a CI gate

Default

Start report-only

Add --base origin/main to fail when a server or capability expands relative to the merge base. Without --enumerate, the comparison intentionally detects server-level drift only.

Output

One result, several renderers

Choose table, Markdown, JSON, SARIF, annotations, and triage JSON without changing what the scan concluded.

Action

Annotate the pull request

The public repository includes a composite GitHub Action that emits annotations, maintains one summary comment, and preserves the CLI's exit code.

Trust boundary

What leaves the machine?

Static scans are local and never read secret values. --enumerate is opt-in because it launches configured third-party stdio servers; remote servers are recorded but not contacted.

What is outside today's boundary?
  • Only project-level Claude Code and Cursor MCP configuration files are scanned.
  • Live enumeration currently supports local stdio servers, not remote transports.
  • Capability-level drift needs comparable enumeration data on both revisions.

Run it on yours

Install the published package, scan the current directory, and inspect every result before deciding whether to gate CI.