Check an MCP server, skill or plugin before your agent uses it: tool text on record, changes graded.
Small Print keeps a record of the text that MCP servers, agent skills and plugins give your AI agent, and tells you when a change is graded high or critical. Every night it fetches the lists of the public registries, reads the new versions it finds, keeps every version it has read, and grades each change by a written rule: https://smallprint.dev.
npx smallprint check asks. Pin the servers and skills you use; by default the daily brief shows changes graded high or critical and high or critical advisories, by email or Discord, and choosing everything in settings brings every change. No password, and no credit card required.npx smallprint@1.0.0 check --no-upload prints what it found and sends nothing; without the flag it asks before sending names and versions to get grades. Or paste a config file at https://smallprint.dev/check.The grading rules are printed at https://smallprint.dev/how-we-grade.
npx smallprint gate asks the record before a session whether any server here changed since the lock or gained a high advisory; exit codes for a shell hook. CLI 1.0.0.mcp/: smallprint-mcp, an MCP server with four read-only tools over the public record (npx -y smallprint-mcp; registry name dev.smallprint/smallprint).Dockerfile builds and runs that server over stdio, for registries that start a server to check it answers.cli/: the source of the smallprint command, from which the npm package is built, with its tests. npx smallprint@1.0.0 check --no-upload prints what it found and sends nothing.vscode/: the Small Print extension for VS Code and Cursor, the same files that go to the stores.tools/verify-chain.mjs: checks the record chain from the public API: every link, every signature, and the entries hash of every day whose lines are kept; node tools/verify-chain.mjs. Rows written before 4 October 2026 link, and their entries cannot be recomputed.Fails the build when the small print your agents read has changed: an MCP server's version, a skill's files, or an instruction file such as CLAUDE.md, AGENTS.md or an .mcp.json, compared with a lock you committed.
- uses: gostanos/smallprint-action@v1.11
Write the lock from the repository's directory on a machine that has the intended configuration, with --project so it holds only what lives in the repository (the .mcp.json, the .claude/ and .cursor/ folders, CLAUDE.md, AGENTS.md and the rest), and commit it:
npx smallprint lock --project
git add smallprint.lock
To see it working, gostanos/smallprint-demo passes on its main branch, and its open pull request fails because it changes the filesystem server from version 2026.7.4 to 2026.7.10, and the lock check names that change. The check compares versions and file fingerprints; it does not read tool descriptions.
The check is local: it reads the repository's config and instruction files, compares them with the lock, and sends nothing anywhere. It exits 2 when something changed and prints what. When the change is yours, run npx smallprint lock --project again and commit. A lock written without --project also holds the machine's home-directory entries, which a CI runner does not have, so that check would fail on every run; the lock records which kind it is and the check honours it.
Inputs: lockfile (default smallprint.lock), version (the CLI version, default 1.0.0).
The step can write what changed as a SARIF log, and GitHub's upload-sarif action turns each line into a code-scanning alert on the pull request. Needs the --sarif flag, which is in smallprint 0.1.4 and later. The upload needs the security-events: write permission, and if: always() lets it run after the check has failed, so the build still fails when something changed.
permissions:
contents: read
security-events: write
steps:
- uses: actions/checkout@v4
- uses: gostanos/smallprint-action@v1.11
with:
sarif: smallprint.sarif
- uses: github/codeql-action/upload-sarif@v3
if: always()
with:
sarif_file: smallprint.sarif
With pre-commit, the same check runs before every commit, offline. Add this to .pre-commit-config.yaml in the repository that holds the lock:
repos:
- repo: https://github.com/gostanos/smallprint-action
rev: v1.11
hooks:
- id: smallprint-locked # runs smallprint check --locked; the commit stops when anything differs from the lock
- id: smallprint-lock # only when you ask: pre-commit run smallprint-lock --hook-stage manual
The hooks run the pinned version of the command with npx, so the machine needs Node 20 or later.
Source-derived launch command. Check the maintainer’s required arguments and credentials before running:
npx -y smallprint-mcpMerge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"dev-smallprint-smallprint": {
"command": "npx",
"args": [
"-y",
"smallprint-mcp"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.
Claude Desktop setup referenceSmall Print works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.