Skip to content

0004 โ€” Unrecognised JSON gets no diagnostics, and editors send every JSON file

Status: Accepted ยท Decided: 2026-09-29

Context

Policies and attestations follow no file-naming convention: passmcp's own examples call them company.json and attestation.json. They can only be recognised by content, so the server has to see every JSON file an editor opens. Most of those files are nothing to do with MCP: package.json, tsconfig.json, fixtures.

Decision

The VS Code extension, and the recommended Neovim configuration, start the server for every JSON and JSON-with-comments document. The server recognises an artefact by name first and content second, and a document that is none of them gets no diagnostics at all โ€” not even a syntax error or a duplicate key โ€” because another tool owns it.

Consequences

  • A policy or attestation is checked whatever it is called.
  • No false positives on unrelated JSON; the server's cost on such a file is one parse.
  • A policy that holds only version and name, under a name that does not end in .policy.json, is not recognised. The README states this.