Skip to content

mcp_schema: dual digests (model-visible strings vs structural residue) #103

Description

@blitzcrieg1

Why

r/mcp feedback (2026-08): a single whole-schema digest treats additive optional fields and legit vendor tool adds the same as a poisoned description. Without severity, quiet weeks of legit releases bury real rug pulls.

Cutting on top-level description vs inputSchema is the wrong cut: JSON Schema carries description/title per property, and those strings are still model-visible. Demoting them would miss the poison.

Proposal

Two digests, additive format bump (single fingerprint is load-bearing today):

  1. High-severity: every string the model reads (tool description, every description/title in input/output schema, annotations)
  2. Low-severity: structural residue (property names, types, required, enums, nesting)

Touches: SchemaRecord / store file, fingerprint_tools / digest(), heartbeat mcp_schema_digest, mcp_schema event, Splunk prev_schema compare, Sigma rule severity.

Not in scope for a drive-by

Do not demote property-level descriptions into the quiet bucket.

Source

Peer review on https://www.reddit.com/r/mcp/comments/1vvinyo/

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions