{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_4e32nha7m4gh","handle":"printsanity","url":"https://wellknown.network/agents/printsanity","links":{"self":"https://wellknown.network/agents/printsanity/record.json","html":"https://wellknown.network/agents/printsanity","markdown":"https://wellknown.network/agents/printsanity/record.md","api":"https://wellknown.network/api/v1/agents/printsanity","status":"https://wellknown.network/api/v1/agents/printsanity/status","claim":"https://wellknown.network/agents/printsanity/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/printsanity/claim.json","badge":"https://wellknown.network/agents/printsanity/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/printsanity/history","tools":"https://wellknown.network/api/v1/agents/printsanity/tools"},"ard":{"identifier":"urn:air:printsanity.com:server:printsanity","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"PrintSanity","summary":"Checks AI-made flyers, cards and posters will print right. Fixes proportions and broken QR codes.","description":"Checks AI-made flyers, cards and posters will print right. Fixes proportions and broken QR codes.","publisher":{"name":"chartsmartdev","url":null},"homepage":"https://printsanity.com/developers","repository":null,"version":"1.0.1","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://printsanity.com/mcp","type":"mcp_streamable_http","auth":null,"probeable":true,"listed":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-10-06T22:54:17.525083Z","publishedAt":"2026-10-06T22:54:17.525083Z","registryName":"io.github.chartsmartdev/printsanity"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","homepageUrl":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[],"categories":[],"language":"en"},"observed":{"status":"live","statusReason":"Responded 20m ago.","lastOkAt":"2026-11-12T16:28:16.351Z","lastProbedAt":"2026-11-12T16:28:16.351Z","statusComputedAt":"2026-11-12T16:32:13.706Z","reliability30d":{"probes":98,"successRate":1,"p50Ms":206,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":96,"ok":96,"authBoundaryOk":0,"serviceOk":96,"note":"Counted from the observation rows for the window, checks of the server only (HTTP, A2A card, MCP initialize). ok = authBoundaryOk + serviceOk. `probes` is the sum of daily rollups and includes registry checks, so it can differ from `total`."}},"latestObservations":[{"at":"2026-11-12T16:28:16.351Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":215,"error":null,"detail":{"tools":[{"name":"list_print_sizes","description":"The named print sizes `size` accepts, with their dimensions."},{"name":"plan_artwork","description":"What to ask an image model for, before generating artwork for this print size.\n\nReturns the pixel dimensions to generate at, the floor below which it will look "},{"name":"check_print_file","description":"Check whether artwork will print correctly at the given size.\n\nGive the artwork as file_url (public https link) or file_base64. `size` is required\nfor images. R"},{"name":"fix_print_file","description":"Repair what can be repaired and return download links for the print-ready file.\n\nRebuilds QR codes so they scan, fixes proportions by adding paper rather than\nc"}],"toolCount":4,"toolsHash":"b1faef35261406e43b9b3dac9f68e061f950e7b9ee4c7f6253eab0186f2bb5a4","serverName":"PrintSanity","capabilities":["prompts","resources","tools"],"serverVersion":"","protocolVersion":"2025-06-18"}},{"at":"2026-11-12T06:30:13.263Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":153,"error":null,"detail":{"tools":[{"name":"list_print_sizes","description":"The named print sizes `size` accepts, with their dimensions."},{"name":"plan_artwork","description":"What to ask an image model for, before generating artwork for this print size.\n\nReturns the pixel dimensions to generate at, the floor below which it will look "},{"name":"check_print_file","description":"Check whether artwork will print correctly at the given size.\n\nGive the artwork as file_url (public https link) or file_base64. `size` is required\nfor images. R"},{"name":"fix_print_file","description":"Repair what can be repaired and return download links for the print-ready file.\n\nRebuilds QR codes so they scan, fixes proportions by adding paper rather than\nc"}],"toolCount":4,"toolsHash":"b1faef35261406e43b9b3dac9f68e061f950e7b9ee4c7f6253eab0186f2bb5a4","serverName":"PrintSanity","capabilities":["prompts","resources","tools"],"serverVersion":"","protocolVersion":"2025-06-18"}},{"at":"2026-11-11T21:25:27.494Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":189,"error":null,"detail":{"tools":[{"name":"list_print_sizes","description":"The named print sizes `size` accepts, with their dimensions."},{"name":"plan_artwork","description":"What to ask an image model for, before generating artwork for this print size.\n\nReturns the pixel dimensions to generate at, the floor below which it will look "},{"name":"check_print_file","description":"Check whether artwork will print correctly at the given size.\n\nGive the artwork as file_url (public https link) or file_base64. `size` is required\nfor images. R"},{"name":"fix_print_file","description":"Repair what can be repaired and return download links for the print-ready file.\n\nRebuilds QR codes so they scan, fixes proportions by adding paper rather than\nc"}],"toolCount":4,"toolsHash":"b1faef35261406e43b9b3dac9f68e061f950e7b9ee4c7f6253eab0186f2bb5a4","serverName":"PrintSanity","capabilities":["prompts","resources","tools"],"serverVersion":"","protocolVersion":"2025-06-18"}},{"at":"2026-11-11T12:22:44.805Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":214,"error":null,"detail":{"tools":[{"name":"list_print_sizes","description":"The named print sizes `size` accepts, with their dimensions."},{"name":"plan_artwork","description":"What to ask an image model for, before generating artwork for this print size.\n\nReturns the pixel dimensions to generate at, the floor below which it will look "},{"name":"check_print_file","description":"Check whether artwork will print correctly at the given size.\n\nGive the artwork as file_url (public https link) or file_base64. `size` is required\nfor images. R"},{"name":"fix_print_file","description":"Repair what can be repaired and return download links for the print-ready file.\n\nRebuilds QR codes so they scan, fixes proportions by adding paper rather than\nc"}],"toolCount":4,"toolsHash":"b1faef35261406e43b9b3dac9f68e061f950e7b9ee4c7f6253eab0186f2bb5a4","serverName":"PrintSanity","capabilities":["prompts","resources","tools"],"serverVersion":"","protocolVersion":"2025-06-18"}},{"at":"2026-11-11T02:27:08.043Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":185,"error":null,"detail":{"tools":[{"name":"list_print_sizes","description":"The named print sizes `size` accepts, with their dimensions."},{"name":"plan_artwork","description":"What to ask an image model for, before generating artwork for this print size.\n\nReturns the pixel dimensions to generate at, the floor below which it will look "},{"name":"check_print_file","description":"Check whether artwork will print correctly at the given size.\n\nGive the artwork as file_url (public https link) or file_base64. `size` is required\nfor images. R"},{"name":"fix_print_file","description":"Repair what can be repaired and return download links for the print-ready file.\n\nRebuilds QR codes so they scan, fixes proportions by adding paper rather than\nc"}],"toolCount":4,"toolsHash":"b1faef35261406e43b9b3dac9f68e061f950e7b9ee4c7f6253eab0186f2bb5a4","serverName":"PrintSanity","capabilities":["prompts","resources","tools"],"serverVersion":"","protocolVersion":"2025-06-18"}},{"at":"2026-11-10T16:24:59.981Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":199,"error":null,"detail":{"tools":[{"name":"list_print_sizes","description":"The named print sizes `size` accepts, with their dimensions."},{"name":"plan_artwork","description":"What to ask an image model for, before generating artwork for this print size.\n\nReturns the pixel dimensions to generate at, the floor below which it will look "},{"name":"check_print_file","description":"Check whether artwork will print correctly at the given size.\n\nGive the artwork as file_url (public https link) or file_base64. `size` is required\nfor images. R"},{"name":"fix_print_file","description":"Repair what can be repaired and return download links for the print-ready file.\n\nRebuilds QR codes so they scan, fixes proportions by adding paper rather than\nc"}],"toolCount":4,"toolsHash":"b1faef35261406e43b9b3dac9f68e061f950e7b9ee4c7f6253eab0186f2bb5a4","serverName":"PrintSanity","capabilities":["prompts","resources","tools"],"serverVersion":"","protocolVersion":"2025-06-18"}},{"at":"2026-11-10T07:27:35.786Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":196,"error":null,"detail":{"tools":[{"name":"list_print_sizes","description":"The named print sizes `size` accepts, with their dimensions."},{"name":"plan_artwork","description":"What to ask an image model for, before generating artwork for this print size.\n\nReturns the pixel dimensions to generate at, the floor below which it will look "},{"name":"check_print_file","description":"Check whether artwork will print correctly at the given size.\n\nGive the artwork as file_url (public https link) or file_base64. `size` is required\nfor images. R"},{"name":"fix_print_file","description":"Repair what can be repaired and return download links for the print-ready file.\n\nRebuilds QR codes so they scan, fixes proportions by adding paper rather than\nc"}],"toolCount":4,"toolsHash":"b1faef35261406e43b9b3dac9f68e061f950e7b9ee4c7f6253eab0186f2bb5a4","serverName":"PrintSanity","capabilities":["prompts","resources","tools"],"serverVersion":"","protocolVersion":"2025-06-18"}},{"at":"2026-11-09T22:26:39.672Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":180,"error":null,"detail":{"tools":[{"name":"list_print_sizes","description":"The named print sizes `size` accepts, with their dimensions."},{"name":"plan_artwork","description":"What to ask an image model for, before generating artwork for this print size.\n\nReturns the pixel dimensions to generate at, the floor below which it will look "},{"name":"check_print_file","description":"Check whether artwork will print correctly at the given size.\n\nGive the artwork as file_url (public https link) or file_base64. `size` is required\nfor images. R"},{"name":"fix_print_file","description":"Repair what can be repaired and return download links for the print-ready file.\n\nRebuilds QR codes so they scan, fixes proportions by adding paper rather than\nc"}],"toolCount":4,"toolsHash":"b1faef35261406e43b9b3dac9f68e061f950e7b9ee4c7f6253eab0186f2bb5a4","serverName":"PrintSanity","capabilities":["prompts","resources","tools"],"serverVersion":"","protocolVersion":"2025-06-18"}},{"at":"2026-11-09T13:35:59.632Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":182,"error":null,"detail":{"tools":[{"name":"list_print_sizes","description":"The named print sizes `size` accepts, with their dimensions."},{"name":"plan_artwork","description":"What to ask an image model for, before generating artwork for this print size.\n\nReturns the pixel dimensions to generate at, the floor below which it will look "},{"name":"check_print_file","description":"Check whether artwork will print correctly at the given size.\n\nGive the artwork as file_url (public https link) or file_base64. `size` is required\nfor images. R"},{"name":"fix_print_file","description":"Repair what can be repaired and return download links for the print-ready file.\n\nRebuilds QR codes so they scan, fixes proportions by adding paper rather than\nc"}],"toolCount":4,"toolsHash":"b1faef35261406e43b9b3dac9f68e061f950e7b9ee4c7f6253eab0186f2bb5a4","serverName":"PrintSanity","capabilities":["prompts","resources","tools"],"serverVersion":"","protocolVersion":"2025-06-18"}},{"at":"2026-11-09T04:28:39.782Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":291,"error":null,"detail":{"tools":[{"name":"list_print_sizes","description":"The named print sizes `size` accepts, with their dimensions."},{"name":"plan_artwork","description":"What to ask an image model for, before generating artwork for this print size.\n\nReturns the pixel dimensions to generate at, the floor below which it will look "},{"name":"check_print_file","description":"Check whether artwork will print correctly at the given size.\n\nGive the artwork as file_url (public https link) or file_base64. `size` is required\nfor images. R"},{"name":"fix_print_file","description":"Repair what can be repaired and return download links for the print-ready file.\n\nRebuilds QR codes so they scan, fixes proportions by adding paper rather than\nc"}],"toolCount":4,"toolsHash":"b1faef35261406e43b9b3dac9f68e061f950e7b9ee4c7f6253eab0186f2bb5a4","serverName":"PrintSanity","capabilities":["prompts","resources","tools"],"serverVersion":"","protocolVersion":"2025-06-18"}}],"tools":[{"name":"list_print_sizes","description":"The named print sizes `size` accepts, with their dimensions."},{"name":"plan_artwork","description":"What to ask an image model for, before generating artwork for this print size.\n\nReturns the pixel dimensions to generate at, the floor below which it will look "},{"name":"check_print_file","description":"Check whether artwork will print correctly at the given size.\n\nGive the artwork as file_url (public https link) or file_base64. `size` is required\nfor images. R"},{"name":"fix_print_file","description":"Repair what can be repaired and return download links for the print-ready file.\n\nRebuilds QR codes so they scan, fixes proportions by adding paper rather than\nc"}],"package":null,"toolSurface":{"id":"ts_qh7yw23p5fzx","endpointId":"ep_u7bscxymqt89","hash":"b1faef35261406e43b9b3dac9f68e061f950e7b9ee4c7f6253eab0186f2bb5a4","toolCount":4,"serverName":"PrintSanity","serverVersion":"","protocolVersion":"2025-06-18","firstSeenAt":"2026-10-07T07:28:49.653Z","lastSeenAt":"2026-11-12T16:28:16.342Z","observations":119,"hiddenText":{"level":"none","total":0,"tools":0,"kinds":[],"findings":[]},"toolNames":["list_print_sizes","plan_artwork","check_print_file","fix_print_file"],"distinctSurfaces":1,"surfacesWithHiddenText":0},"endpointFacts":[{"id":"ep_u7bscxymqt89","url":"https://printsanity.com/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-11-11T02:27:08.063Z","auth":{"observedAt":"2026-11-11T02:27:08.164Z","authRequired":false,"scheme":null,"resourceMetadata":null,"authorizationServer":null,"conformance":{"dpop":false,"rfc8414":false,"rfc9728":false,"pkceS256":false,"clientIdMetadataDocument":false,"dynamicClientRegistration":false}},"tls":{"observedAt":"2026-11-11T02:27:08.177Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"printsanity.com","issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validFrom":"2026-09-18T01:40:08.000Z","validTo":"2026-12-17T02:39:49.000Z","daysToExpiry":34,"sanCount":3,"fingerprint256":"A6:CC:BB:AB:B8:7D:08:5F:EA:E5:F4:C3:89:58:1A:78:D2:89:66:F9:08:25:95:D9:CD:7E:FF:BA:CD:06:87:F5"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"io.github.chartsmartdev/printsanity","url":"https://registry.modelcontextprotocol.io/v0/servers/io.github.chartsmartdev%2Fprintsanity","firstSeenAt":"2026-10-07T07:21:47.034Z","fetchedAt":"2026-11-10T07:20:10.148Z","normalizedAt":"2026-11-10T07:20:10.148Z"}]},"firstSeenAt":"2026-10-07T07:21:47.034Z","updatedAt":"2026-11-11T02:32:43.858Z"}