MCP GOVERNANCE / APPROVAL & DRIFT

Approval is not a forever verdict.

An MCP connection can remain in an approved catalog while its command, endpoint, tools or permissions change. A safer governance workflow records the reviewed structure, compares later observations and sends meaningful changes back to a human reviewer.

1. Separate intent from observation

An approved list records what an organization intends to allow. Discovery records what a bounded inspection actually observed. These are related but different datasets, and the difference is where review work begins.

01 / INTENT

Approved inventory

The server, owner, source and structure that a team reviewed and accepted.

02 / OBSERVATION

Current evidence

A privacy-safe structural snapshot from a supported project or client configuration.

03 / COMPARISON

Drift finding

A new, removed or materially changed structural item that needs attribution.

04 / DECISION

Human review

Approve the reviewed structure, investigate the change or retire the exception.

2. Build a structural baseline

A useful baseline should be specific enough to compare and restrained enough to avoid collecting secrets. It can identify the server, transport, safe executable identity, selected tool or permission structure and provenance without storing token values, header values or unnecessary full local paths.

  • Identity: Record the logical server identity and the source that produced the observation.
  • Transport: Distinguish local stdio configuration from remote endpoint structure.
  • Execution: Preserve a safe command basename and bounded structural signals, not argument or environment values.
  • Scope: Capture relevant permission or tool-shape changes without treating capability alone as runtime behavior.
  • Provenance: Keep client, project and configuration context so a reviewer can reproduce the observation.
Privacy boundary

A baseline is not a secret store. Redaction and bounded collection are part of the control, not an optional presentation detail.

3. Make review states explicit

Governance becomes easier to operate when the report says what happened without collapsing every state into a risk score. A current structure can match an approved baseline, require review, or represent an approved item that is no longer observed.

APPROVED

Structural match

The current bounded observation matches the reviewed baseline. This is not a guarantee of safe runtime behavior.

REVIEW REQUIRED

Added or changed

New evidence or a material structural change needs attribution and a human decision.

REMOVED / NOT OBSERVED

Follow up

The prior evidence was not observed in the current bounded scope; absence is not proven outside it.

NOT CHECKED

Keep the boundary

The available evidence was incomplete or a surface was outside the supported inspection scope.

4. Use a review loop, not a one-time checkbox

  1. Discover: collect evidence from supported, documented surfaces.
  2. Normalize: merge duplicate observations while retaining provenance.
  3. Review: examine owner, source, transport, command identity, permissions and tool changes.
  4. Approve: record the exact structural state that was reviewed.
  5. Compare: run the same bounded inspection later and classify changes.
  6. Gate where needed: use a machine-readable review result in CI when an unapproved change should stop a workflow.

Approval should mean “matches the reviewed structural baseline,” not “safe forever.”

5. Know what drift detection cannot prove

A structural comparison is valuable because it is explainable, but it is not runtime monitoring. It cannot prove that a server is safe, that a connection is active, or that no unobserved client, platform or network connection exists.

  • A repository or package can change after inspection.
  • Runtime behavior can differ from static configuration evidence.
  • Unsupported clients and locations remain outside the bounded observation.
  • Authorization, deployment context and operational controls need separate review.
Read the discovery boundaries ↗

6. Start with a read-only control

For an early MCP governance program, a read-only inventory and drift report can create value before enforcement. It gives security and platform teams a shared evidence record, lets developers understand why a review is required and avoids breaking production workflows while coverage is still being validated.

ShadowMCP’s current direction is deliberately bounded: discover, inventory, explain and govern. The public repository scanner is a separate pre-execution evidence path; it does not execute repository code or issue a safe/unsafe verdict.

Inspect public repository evidence ↗

Sources and further reading

This page describes an operational model and the current bounded semantics of ShadowMCP. For broader security controls, use the security guide and checklist below.