Skip to main content
Glama

Ebook File Check

Server Details

Run EPUBCheck for EPUB specification errors and compare two exports.

Ownership verified
Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

TDQS

A4.4/5.0

Scored across 2 tools

Disambiguation5/5

The two tools have clearly distinct purposes: one validates a single EPUB, the other compares exactly two builds. There is no overlap or ambiguity in their intended use cases.

Naming Consistency5/5

Both tools follow the same 'ebook_' prefix followed by a concise action verb (check, compare), creating a predictable and consistent naming pattern.

Tool Count3/5

With only two tools, the surface is minimal, which is borderline per the rubric. However, the server's scope is narrowly defined around EPUB validation, so the small count is reasonable but still feels thin.

Completeness5/5

The two tools cover the essential operations for the domain: validating a single file and comparing revisions for regressions. No obvious gaps exist for the stated purpose of automated conformance checking.

Available Tools

2 tools
ebook_checkA
Read-only
Inspect

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 in about five to seven seconds, hard-bounded at the 110-second call deadline.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoDirect 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 STRICT RULE: Ebook check failed: provide either an EPUB URL or an attached EPUB file, not both STRICT RULE: Ebook check failed: provide a public EPUB URL or attach the EPUB file
fileNoAn EPUB file attached in chat, up to 25 MB, validated from its exact bytes. Provide either this attachment or url, never both.
maxMessagesNoMaximum 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

Output Schema

ParametersJSON Schema
NameRequiredDescription
passYesTrue when the EPUB has no fatal or error messages against the automated profile
bytesYesDownloaded EPUB size in bytes
countsYesCounts of EPUBCheck findings grouped by severity
sha256YesSHA-256 hash of the exact validated bytes
finalUrlYesURL after redirects, with query string and fragment stripped
findingsYesBounded spec findings, most severe first, capped by maxMessages
fetchedAtYesISO timestamp the EPUB was fetched and validated
inventoryYesStructural inventory reported for the EPUB container
nonclaimsYesWhat this automated result does not establish
redirectsYesRedirect hops followed
truncationYesFinding totals and the applied limit on returned findings
contentTypeNoContent-Type the server returned
epubVersionNoDetected EPUB version, e.g. 2.0.1 or 3.0; omitted when the engine could not detect it
processingMsYesTotal processing time in milliseconds
requestedUrlYesThe checked EPUB source: the submitted URL with query and fragment stripped, or the attached file's name
engineVersionYesEPUBCheck engine version that produced the verdict
ruleProfileDateYesRelease date of the pinned EPUBCheck rule profile
humanReviewItemsYesChecks only a qualified human can perform
epubVersionDetectedYesDistinguished state: false means the version could not be detected, distinct from a detected-but-invalid version
humanReviewRequiredYesAlways true: automated conformance never covers how the book reads or renders

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With readOnlyHint=true, openWorldHint=true, and destructiveHint=false already covering the safety profile, the description adds important operational behavior: the engine is pinned to 5.3.0, runs with no network access, validates from exact bytes, and is bounded at 110 seconds. It also clearly states the pass verdict is only an automated profile, not a store guarantee — a meaningful limitation beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the tool's core functionamp;engine, then the input constraint, then output summary, then usage guidance and caveats. It is fairly long but every sentence adds distinct information: validation target, single-source rule, result contents, use cases, pass limitations, and performance expectation. Minor redundancy between the input constraint and schema wording keeps it from a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description tells the agent what the tool does, what counts as input, what the output contains (pass boolean, messages, RSC IDs, locations, truncation), how long it may take (110s deadline), and what a pass does not mean. Combined with a rich schema and safety annotations, nothing necessary for correct invocation or result interpretation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%: url, file, and maxMessages each have type, constraints, and semantic descriptions. The description does not add parameter-level meaning beyond the schema, and the main added constraint (only one of url/file, never both) is already stated in the schema itself. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Validates one EPUB ... against the EPUB 2/3 specification' using 'a pinned local EPUBCheck run in a no-network sandbox.' It unambiguously identifies the action, input type, and validation standard, while the one-file/one-source constraint differentiates it from any bulk or multi-file checker.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives concrete example use cases ('is this ebook valid', 'what is wrong with it') and states the single-source constraint (URL or attached file, never both). It also clarifies that a pass does not guarantee store acceptance—an implicit exclusion of over-reliance. It does not explicitly contrast with the sibling ebook_compare tool, but the one-file framing effectively scopes it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ebook_compareA
Read-only
Inspect

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 measures about ten to fifteen seconds, hard-bounded at the shared 110-second deadline.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlsNoExactly two distinct direct public HTTP(S) EPUB URLs: the baseline build first, the revised build second. Provide either these URLs or files, never both. STRICT RULE: Ebook compare failed: provide either two EPUB URLs or two attached EPUB files, not both STRICT RULE: Ebook compare failed: provide two public EPUB URLs or attach two EPUB build files
filesNoExactly two distinct EPUB builds attached in chat: the baseline build first, the revised build second. Provide either these attachments or urls, never both.
maxMessagesNoMaximum findings to collect per build for the comparison (default 150)

Output Schema

ParametersJSON Schema
NameRequiredDescription
fixedYesRules removed or reduced in the revised build versus the baseline
limitsYesConclusions this automated comparison cannot support
rankingYesBuilds ranked by pass state then fewer blocking findings; unvalidatable builds last
documentsYesPer-build hashes, versions, and verdicts in submitted order (baseline first, revised second)
nonclaimsYesWhat these automated results do not establish
truncatedYesTrue when either build's findings were truncated, which can make the difference table incomplete
comparedAtYesISO timestamp of the comparison
regressionsYesRules that appear or worsen in the revised build versus the baseline
processingMsYesTotal processing time in milliseconds
engineVersionYesEPUBCheck engine version that produced the verdicts
ruleProfileDateYesRelease date of the pinned EPUBCheck rule profile
humanReviewItemsYesChecks only a qualified human can perform
humanReviewRequiredYesAlways true: automated conformance never covers how either build reads or renders

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already say read-only/non-destructive; the description goes beyond them by disclosing sequential execution, the shared 110-second hard deadline, the automated-only ranking caveat, the no-winner tie policy, and the different-title warning. This is substantial behavior-context benefit over structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the core function, then adds use cases, caveats, and timing in a logical order. It is fairly long, but the behavioral caveats are consequential enough that most sentences earn their place; a bit of redundancy with the schema could be trimmed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a comparison tool with 100% schema coverage and an output schema, the description adds the essential behavioral context: deadline, ordering convention, tie/ranking policy, title-mismatch warning, and human-review need. Nothing critical needed by an agent to invoke correctly appears missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents urls, files, and maxMessages. The description reinforces the baseline-first/revised-second ordering and the 'never both' constraint that are largely already in the schema descriptions, adding no major new parameter meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a highly specific verb and resource: runs a pinned EPUBCheck 5.3.0 comparison over exactly two EPUB builds and reports regressed/fixed findings. The purpose is distinct from the likely single-build sibling ebook_check by emphasizing two-build comparison and revision-over-revision questions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete use cases ('did my re-export get worse', 'which build has fewer problems', revision-over-revision questions) and clear ordering rules (baseline first, revised second). Does not explicitly contrast with ebook_check or state when not to use it, but the two-build framing makes the intended context reasonably clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 2 tool updates
    • First observedebook_check
    • First observedebook_compare

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    Validates Excel (.xlsx) workbooks against reviewed, lockable acceptance contracts, catching errors and outputting structured issues that agents can repair.
    1
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Validates electronic invoices (XRechnung, ZUGFeRD, Factur-X, Peppol BIS, etc.) against authority-pinned rules and explains failures.
    2
    172
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources