protogrid

Search / io.github.chartsmartdev/printsanity

PrintSanity

R0· no sign-in

Checks AI-made flyers, cards and posters will print right. Fixes proportions and broken QR codes.

v1.0.1 · active · website · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality89good
Trust79of 100
Uptime, 30 days94%
Latency p50324 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "printsanity": {
      "type": "http",
      "url": "https://printsanity.com/mcp",
      "headers": {
        "Authorization": "Bearer ${PRINTSANITY_TOKEN}"
      }
    }
  }
}
claude mcp add --transport http printsanity https://printsanity.com/mcp --header "Authorization: Bearer ${PRINTSANITY_TOKEN}"
[mcp_servers.printsanity]
url = "https://printsanity.com/mcp"
bearer_token_env_var = "PRINTSANITY_TOKEN"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "printsanity": {
      "type": "remote",
      "url": "https://printsanity.com/mcp",
      "enabled": true,
      "headers": {
        "Authorization": "Bearer {env:PRINTSANITY_TOKEN}"
      }
    }
  }
}
{
  "mcpServers": {
    "printsanity": {
      "type": "http",
      "url": "https://printsanity.com/mcp",
      "headers": {
        "Authorization": "Bearer ${PRINTSANITY_TOKEN}"
      }
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=printsanity&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vcHJpbnRzYW5pdHkuY29tL21jcCIsImhlYWRlcnMiOnsiQXV0aG9yaXphdGlvbiI6IkJlYXJlciAke1BSSU5UU0FOSVRZX1RPS0VOfSJ9fQ%3D%3D"
}
{
  "servers": {
    "printsanity": {
      "type": "http",
      "url": "https://printsanity.com/mcp",
      "headers": {
        "Authorization": "Bearer ${PRINTSANITY_TOKEN}"
      }
    }
  }
}
{
  "mcpServers": {
    "printsanity": {
      "httpUrl": "https://printsanity.com/mcp",
      "headers": {
        "Authorization": "Bearer ${PRINTSANITY_TOKEN}"
      }
    }
  }
}
extensions:
  "printsanity":
    enabled: true
    name: "printsanity"
    type: streamable_http
    uri: "https://printsanity.com/mcp"
    headers:
      "Authorization": "Bearer ${PRINTSANITY_TOKEN}"
    timeout: 300

Placeholders to fill from your own secret store: ${PRINTSANITY_TOKEN}. The registry never accepts secret values.

Quality 89 / 100good

protocol88 · weight 25
  • pass
    protocol.modernsupports 2026-07-28 (server/discover)
  • pass
    protocol.statelessanswers without a session
  • pass
    protocol.transportstreamable HTTP
  • warn
    protocol.list_ttltools/list declares ttlMs 0, so clients re-fetch it on every use
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene86 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • pass
    tools.description_lengthdescriptions are concise
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations4 of 4 tools declare readOnlyHint or destructiveHint
  • fail
    tools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: plan_artwork (destructiveHint, idempotentHint); fix_print_file (idempotentHint); list_print_sizes (destructiveHint, idempotentHint); …
  • pass
    tools.token_costabout 768 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability100 · weight 15
  • pass
    stability.changes4 tool changes in 30 days
  • pass
    stability.rug_pullno tool changed its meaning under the same name
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

4 tools, about 768 tokens to load them all · tool set 670f77c2ae92 · tools last changed 2026-10-07 · checked 2026-10-19 12:32 UTC

Tool changes

  • fix_print_filechangedannotations
  • check_print_filechangedannotations
  • plan_artworkchangedannotations
  • list_print_sizeschangedannotations

Full history: list_changes · trend: quality JSON.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 79 / 100

no-repository
provenance45
liveness98
freshness100
hygiene80

+website +reachable +uptime-94% +updated-13d-ago -no-repository

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://printsanity.com/mcp streamable-httpnoneyes94%324 ms2026-07-282026-10-19

Tools (4)

check_print_fileread-onlyCheck whether artwork will print correctly at the given size. Give the artwork as file_url (public https link) or file_base64. `size` is required for images. Returns the verdict, what is wrong, whether repair reaches a printable file, and the prompt to regenerate with when it cannot.
fix_print_fileRepair what can be repaired and return download links for the print-ready file. Rebuilds QR codes so they scan, fixes proportions by adding paper rather than cropping, and returns a PDF the size of the paper (inside a border a home printer can reach, where the paper is one a home printer takes) plus a PNG and, where it differs, an edge-to-edge PDF for print shops. For small pieces such as business cards and invitations it also returns letter and A4 sheets with several copies and cut marks. Links last 30 minutes. Resolution is never faked: when that is the problem the result carries the prompt to regenerate with. `qr_url` is the link a QR code should carry when the one on the artwork was drawn by an image model and decodes to nothing.
list_print_sizesread-onlyThe named print sizes `size` accepts, with their dimensions.
plan_artworkread-onlyWhat to ask an image model for, before generating artwork for this print size. Returns the pixel dimensions to generate at, the floor below which it will look soft, the proportions, the smallest QR code that scans from where this piece is read, and a line to paste into the image prompt.

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "io.github.chartsmartdev/printsanity",
  "title": "PrintSanity",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://printsanity.com/mcp",
      "type": "streamable-http",
      "headers": [
        {
          "name": "Authorization",
          "isSecret": true,
          "description": "Optional: Bearer followed by a free API key from https://printsanity.com/developers, for 50 calls a day of your own. Without it, a shared daily allowance."
        }
      ]
    }
  ],
  "version": "1.0.1",
  "websiteUrl": "https://printsanity.com/developers",
  "description": "Checks AI-made flyers, cards and posters will print right. Fixes proportions and broken QR codes."
}