{"name":"com.powmcp/epub-check","slug":"powmcp-epub-check","title":"Ebook File Check","description":"Run EPUBCheck for EPUB specification errors and compare two exports.","url":"https://mcp.market/server/powmcp-epub-check","rating":null,"grade":"C","score":60,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":8,"stars":null,"forks":null,"downloads_week":null,"last_push_at":null,"license":null},"uptime":{"percent":100,"checks":7,"ok":7,"last_checked_at":"2026-09-21T02:30:37.834Z","last_ok_at":"2026-09-21T02:30:37.834Z","latency_ms":229},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":null,"website":"https://powmcp.com/apps/epub-check/","version":"0.5.3","remotes":[{"type":"streamable-http","url":"https://powmcp.com/epub-check/mcp"}],"packages":[],"tools":[{"name":"ebook_check","description":"Validates one EPUB (a directly hosted public URL or a file attached in chat) against the EPUB 2/3 specification using a pinned local EPUBCheck 5.3.0 engine run in a no-network sandbox. Each call takes exactly one source: the url parameter or the file attachment, never both. Returns the automated verdict: pass boolean, EPUB version, message counts by severity (fatal/error/warning/usage), findings grouped most-severe-first with EPUBCheck rule id (RSC-005, OPF-014, …), file path and line/column, plus a structural inventory (spine items, media types, remote-resource state), SHA-256 of the exact bytes, and truncation metadata. Use for one-file readiness and diagnosis: 'is this ebook valid', 'does this EPUB have specification problems before upload', 'what is wrong with it'. A pass means only that the bytes satisfied the automated profile; it never renders the book, judges accessibility, or guarantees any store will accept it, and human review of how the book reads and looks is always required. Downloads and validates a live EPUB under a 110-second call deadline; tell the user before the call.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"url":{"pattern":"^https?://","type":"string","description":"Direct public HTTP(S) URL to the EPUB file bytes, including the protocol, not a ChatGPT file id, local path, cloud-drive share, archive/viewer page, or authenticated URL needing a login. Each call takes either URL sources or attached-file sources, never both\n\nSTRICT RULE: Ebook check failed: provide either an EPUB URL or an attached EPUB file, not both\nSTRICT RULE: Ebook check failed: provide a public EPUB URL or attach the EPUB file"},"file":{"type":"object","required":["download_url","file_id"],"properties":{"download_url":{"type":"string","description":"Temporary authorized download URL supplied by ChatGPT; fetch it only while handling this tool call"},"file_id":{"type":"string","description":"ChatGPT file id for the attached file"},"mime_type":{"type":"string","description":"MIME type when ChatGPT knows it"},"file_name":{"type":"string","description":"Original file name when ChatGPT knows it"}},"description":"An EPUB file attached in chat, up to 25 MB, validated from its exact bytes. Provide either this attachment or url, never both.","additionalProperties":false},"maxMessages":{"minimum":1,"maximum":500,"type":"integer","description":"Maximum spec findings to return, most severe first (default 200); raise it to see more of a very noisy book, lower it to keep the answer short"}},"additionalProperties":false}},{"name":"ebook_compare","description":"Runs the identical pinned EPUBCheck 5.3.0 validation over exactly two EPUB builds (directly hosted public URLs or files attached in chat, baseline first, revised second) sequentially under one shared 110-second deadline, then reports which spec findings regressed or were fixed between them. Returns per-build hashes, EPUB versions, pass verdicts and severity counts, a regressions list (rules that appear or worsen in the revised build) and a fixed list (rules removed or reduced), and a ranking by pass state then fewer blocking findings. Use for 'did my re-export get worse', 'which build has fewer problems', and revision-over-revision questions. The ranking orders automated conformance only (it never means one build renders, reads, or sells better), and when both builds tie on pass state and blocking count it names no winner rather than crowning the first submission. It also flags when the two files declare different titles, since that usually means they are not two builds of one book. Human review remains required for both builds. A comparison can take up to 110 seconds under its shared deadline; tell the user before the call.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"urls":{"minItems":2,"maxItems":2,"type":"array","items":{"pattern":"^https?://","type":"string","description":"Direct public HTTP(S) URL to the EPUB file bytes, including the protocol, not a ChatGPT file id, local path, cloud-drive share, archive/viewer page, or authenticated URL needing a login. Each call takes either URL sources or attached-file sources, never both"},"description":"Exactly two distinct direct public HTTP(S) EPUB URLs: the baseline build first, the revised build second. Provide either these URLs or files, never both.\n\nSTRICT RULE: Ebook compare failed: provide either two EPUB URLs or two attached EPUB files, not both\nSTRICT RULE: Ebook compare failed: provide two public EPUB URLs or attach two EPUB build files"},"files":{"minItems":2,"maxItems":2,"type":"array","items":{"type":"object","required":["download_url","file_id"],"properties":{"download_url":{"type":"string","description":"Temporary authorized download URL supplied by ChatGPT; fetch it only while handling this tool call"},"file_id":{"type":"string","description":"ChatGPT file id for the attached file"},"mime_type":{"type":"string","description":"MIME type when ChatGPT knows it"},"file_name":{"type":"string","description":"Original file name when ChatGPT knows it"}},"description":"An EPUB build file attached in chat, up to 25 MB, validated from its exact bytes.","additionalProperties":false},"description":"Exactly two distinct EPUB builds attached in chat: the baseline build first, the revised build second. Provide either these attachments or urls, never both."},"maxMessages":{"minimum":1,"maximum":300,"type":"integer","description":"Maximum findings to collect per build for the comparison (default 150)"}},"description":"STRICT RULE: Ebook compare failed: the two sources must be distinct builds","additionalProperties":false}}],"scan":{"score":60,"grade":"C","scanned_at":"2026-09-19T20:27:48.725Z","report":{"scannerVersion":"0.1.5","scannedAt":"2026-09-19T20:27:48.657Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 926ms"]},"poisoning":{"score":15,"max":15,"notes":["2 tool descriptions checked"]},"auth":{"score":3,"max":15,"notes":["open endpoint exposes 1 write-action tools with no auth"]},"maintenance":{"score":3,"max":15,"notes":["no repository listed"]},"identity":{"score":4,"max":10,"notes":["verified namespace with website, no repo"]}},"findings":[{"id":"auth.open-write","severity":"high","component":"auth","title":"Write-action tools reachable without authentication"},{"id":"maint.no-repo","severity":"low","component":"maintenance","title":"No source repository listed"}],"inputs":{"probes":[{"url":"https://powmcp.com/epub-check/mcp","reachable":true,"authRequired":false,"latencyMs":926,"serverInfo":{"name":"epub-check","version":"0.5.3"}}],"packages":[],"repo":{"found":false},"icon":{"url":"https://powmcp.com/favicon.ico","source":"registry","width":256,"height":256},"presence":{"stars":null,"forks":null,"downloadsWeek":null,"license":null,"lastPushAt":null,"score":8}}}},"grade_history":[],"reviews":[]}