Book Cover Maker - Abracadabrax
Server Details
Front covers for ebooks, Kindle and print books in 2:3 portrait format, with the title, the subtitle and the author name set in the cover design.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 5 tools
The five tools split into two families (book-cover prep vs. generic media jobs), and the descriptions do a lot of work to distinguish them. However, get_media_job and render_media_widget both return job status and both can mark a stale job failed/refund credits, and generate_media and update_media_project repeat nearly identical scope warnings about text-to-image only, so boundaries blur. An agent must read carefully to decide whether to start a job, overwrite settings, or just view one.
All names follow a consistent snake_case verb_noun pattern (generate_media, get_media_job, prepare_book_cover, render_media_widget, update_media_project). The only wobble is the resource vocabulary shifting between 'book_cover' and 'media_project/media_widget/media_job', which makes the naming families feel less unified than the syntax suggests.
Five tools is a tight, reasonable scope for a cover-generation server, and each does earn a place. The set is slightly diluted by two widget-internal helpers (render_media_widget, update_media_project) that expose UI plumbing rather than user-facing capability.
render_media_widget requires a project_id 'returned by prepare_media_project', but no such tool exists — only prepare_book_cover — creating a hard dead end. There is also no way to list projects/jobs, check credit balance, or export/download the finished cover, so the lifecycle is start-and-poll only with several gaps.
Available Tools
5 toolsgenerate_mediaGenerate Image or VideoADestructiveInspect
Start the generation for a prepared project in the user's Abracadabrax account. Call this only after the user explicitly asked to generate, never on your own initiative: it spends the user's credits and sends the generation inputs to the configured model provider. Optional settings overwrite the saved project. Repeating with unchanged settings reuses a running or completed job, but a failed job can start a new paid attempt. Returns the job id and status; poll get_media_job for the output. It needs the user's Abracadabrax account: the client asks the user to sign in when it is missing. Use this only for text-to-image or text-to-video prompts. Do not use it for uploaded, attached or reference images, image editing, background removal, upscaling, virtual try-on, image-to-video or other media-to-media workflows.
| Name | Required | Description | Default |
|---|---|---|---|
| tab | No | ||
| ratio | No | Aspect ratio such as 1:1, 16:9, 9:16, 4:3, 3:4. | |
| prompt | No | ||
| duration | No | Video length in seconds; must be one of the model's supported durations. | |
| model_id | No | Abracadabrax model id, e.g. nano-banana-2, gpt-image-2, flux-2-pro, kling-3-pro, veo-3-1, sora-2. | |
| model_name | No | ||
| project_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| job | No | |
| state | Yes | |
| balance | No | |
| message | Yes | |
| project | Yes | |
| dashboard_url | Yes | |
| credits_required | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations: it discloses credit spend, that inputs are sent to the configured model provider, that optional settings overwrite the saved project, that repeats reuse running/completed jobs while a failed job starts a new paid attempt, and that sign-in is required for the Abracadabrax account. These are exactly the cost, auth, and side-effect facts an agent needs and cannot get from the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense block, but front-loaded with the critical constraint (never generate on your own initiative) before routing, cost, and return-value details. Each sentence carries distinct information; it is long because the behavioral surface is large rather than padded, though the negative-workflow list could be tightened.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers the full decision surface for a 7-parameter, open-world-false mutation: cost, auth, idempotency-like reuse behavior, job-id return and polling path, and explicit exclusion of adjacent workflows. With an output schema present, no further return-value detail is required.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 43%, and the description compensates partially by explaining that the optional settings overwrite the saved project (which frames tab, ratio, duration, model_id as overrides). However, it adds no per-parameter meaning for ratio, duration, or model selection beyond what the schema fragments already say, leaving the coverage gap only partly closed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ("Start the generation for a prepared project") and clearly frames it as the execution step that follows prepare_media_project. The text also delineates what it is not (media-to-media workflows), so an agent can separate it from get_media_job and update_media_project without inspecting schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit when-to-call (only after the user explicitly asked to generate, never on own initiative), the follow-up step (poll get_media_job), and negative routing (not for uploaded/reference images, editing, background removal, upscaling, try-on, image-to-video). Both alternatives and exclusions are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_media_jobCheck Generation StatusARead-onlyDestructiveIdempotentInspect
Return the status and saved output URLs of an existing image or video job owned by the linked account. A queued or running job older than ten minutes can be marked failed and its credits refunded once. This changes job and credit records; it never starts a generation.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| job | No | |
| state | Yes | |
| message | Yes | |
| dashboard_url | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explicitly discloses a side effect: 'This changes job and credit records' with a one-time failure marking and credit refund for jobs stuck past ten minutes. The annotations declare readOnlyHint=true, which directly contradicts a tool that writes to job and credit records (destructiveHint=true on a read-only tool is likewise incoherent). Per the rubric this is a mutation disclosed against a readOnly annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with the primary outcome (status + output URLs), followed by exactly the two behavioral facts an agent needs: the ten-minute failure/refund rule and the mutation disclaimer. No padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values are covered, and the annotations plus description together cover the safety profile. The remaining gap is the unresolvable readOnly/destructive tension and no statement of what happens when the job_id is unknown or already terminal.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single job_id parameter has 0% schema description coverage, so the description must carry the burden. It adds a meaningful ownership constraint (the job must belong to the linked account) but gives no format, source, or validity guidance for the identifier.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (return the status and saved output URLs of an existing image/video job) plus the scope constraint (owned by the linked account). The closing clause 'it never starts a generation' actively distinguishes it from the sibling generate_media tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Context for use is clear — retrieve the state of an already-created job — and the description supplies an exclusion ('never starts a generation') that separates it from generate_media. However, it never names generate_media or explain the expected call pattern (e.g., poll after submitting a job).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prepare_book_coverPrepare Book CoverAInspect
Prepare a front cover with Abracadabrax for an ebook, a Kindle book or a print book in 2:3 portrait format, from the title, the subtitle, the author name, the genre and the visual style, with the text set in the cover design. Returns the settings and the credits required; nothing is generated and no credits are spent. No sign-in is needed to prepare. Original designs only: do not use it for copyrighted characters, existing franchises, brand logos, trademarks or real celebrities; offer the user an original alternative instead. Text only: do not use it for uploaded, attached or reference images or videos (editing, background removal, upscaling, image-to-video); for those, point the user to the Abracadabrax workspace.
| Name | Required | Description | Default |
|---|---|---|---|
| genre | No | Genre, e.g. thriller, romance, fantasy, self-help, business, children's picture book. | |
| title | Yes | Book title, spelled exactly. | |
| author | No | Author name as printed on the cover. | |
| model_id | No | Optional image model id: nano-banana-pro (default, sharp text), nano-banana-2, flux-2-pro. | |
| subtitle | No | Optional subtitle or series name. | |
| visual_style | No | Cover image and style, e.g. a lone lighthouse in a storm, moody photo; or bold typographic minimal. |
Output Schema
| Name | Required | Description |
|---|---|---|
| job | No | |
| state | Yes | |
| balance | No | |
| message | Yes | |
| project | Yes | |
| dashboard_url | Yes | |
| credits_required | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds real context beyond annotations: no generation, no credits spent, no sign-in required, returns the settings and credits needed, and originality/text-only content policies. The only soft spot is a mild tension with readOnlyHint=false — it is unclear whether the 'prepared' settings persist as state — but this is not a contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and output behavior are front-loaded, followed by the two exclusion rules, with zero filler sentences. Every clause either defines the operation or prevents a misuse, which is exactly what an agent needs before calling.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need not be described, yet the description still covers cost, auth, and side-effect expectations. Combined with the fully documented schema and the content-policy exclusions, an agent has everything needed to call this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all six parameters with examples and limits. The description enumerates the same inputs (title, subtitle, author, genre, visual style) but omits model_id and adds no format or syntax detail, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (prepare) and resource (front cover via Abracadabrax) plus format (2:3 portrait), supported inputs, and the fact that text is set into the design. It also explicitly separates itself from generate_media by stating 'nothing is generated', so an agent can route correctly without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit when-to-use (ebook/Kindle/print covers from title, subtitle, author, genre, style) and two clear when-not-to-use cases: copyrighted characters, franchises, logos, trademarks or real celebrities (offer an original alternative), and uploaded/attached/reference images or videos (point to the Abracadabrax workspace). Alternatives are named, not implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_media_widgetShow Image or Video ProjectADestructiveIdempotentInspect
Show a saved Abracadabrax image or video project and its existing job. A queued or running job older than ten minutes can be marked failed and its credits refunded once. This changes job and credit records; it never starts a generation. Requires a project_id returned by prepare_media_project.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| job | No | |
| state | Yes | |
| balance | No | |
| message | Yes | |
| project | Yes | |
| dashboard_url | Yes | |
| credits_required | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (destructiveHint=true, idempotentHint=true, readOnlyHint=false), the description discloses exactly what is mutated (job and credit records), the narrow condition under which the destructive action triggers (queued/running job older than ten minutes), and that the refund happens only once. This is precisely the extra context annotations cannot carry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short sentences, front-loaded with the primary action, followed by the conditional mutation, the non-behavior, and the prerequisite. No filler or repetition; every sentence adds a distinct fact.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained. Given the tool's mutation semantics, the description covers what is required to call it safely and correctly: input source, mutation scope, the conditional destructive path, and the guarantee that no generation is started.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% with one required parameter, so the description must compensate. It does by specifying the project_id's provenance ('returned by prepare_media_project'), which is meaningful information absent from the bare 'type: string' schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a concrete verb+resource: showing a saved Abracadabrax image or video project together with its existing job, plus the side effect of failing a stale job and refunding credits. It is clear, but it does not distinguish itself from sibling tools like get_media_job or update_media_project, which could plausibly cover similar ground.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It supplies a real precondition (project_id must come from prepare_media_project) and an exclusion (it never starts a generation, implicitly routing generation to generate_media). It stops short of explicitly naming get_media_job or update_media_project as alternatives, so the selection logic is not fully closed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_media_projectUpdate Image or Video SettingsADestructiveIdempotentInspect
Overwrite the saved widget settings (prompt, model, aspect ratio, duration) to a prepared project before generating. Changing generation settings detaches the prior job from this project without deleting that job or its media. Intended for the widget UI; no credits are spent. Use this only for text-to-image or text-to-video prompts. Do not use it for uploaded, attached or reference images, image editing, background removal, upscaling, virtual try-on, image-to-video or other media-to-media workflows.
| Name | Required | Description | Default |
|---|---|---|---|
| tab | No | ||
| ratio | No | Aspect ratio such as 1:1, 16:9, 9:16, 4:3, 3:4. | |
| prompt | No | ||
| duration | No | Video length in seconds; must be one of the model's supported durations. | |
| model_id | No | Abracadabrax model id, e.g. nano-banana-2, gpt-image-2, flux-2-pro, kling-3-pro, veo-3-1, sora-2. | |
| model_name | No | ||
| project_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| job | No | |
| state | Yes | |
| balance | No | |
| message | Yes | |
| project | Yes | |
| dashboard_url | Yes | |
| credits_required | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare destructiveHint=true and idempotentHint=true, and the description adds exactly the right context beyond them: the prior job is detached from the project rather than deleted, its media survives, and no credits are spent on the update. It also states the overwrite semantics, consistent with the idempotent hint instead of contradicting it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Opens with the core action and effect, then the scope constraints. No sentence is redundant; even the long exclusion list is load-bearing because it prevents the agent from routing editing/media-to-media work here.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter mutation tool with an output schema and full annotation coverage, the description supplies the necessary usage envelope, destruction semantics and cost note. The residual gap is parameter-level detail (tab, model_name, project_id), which is minor given the structured fields available.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 43%, so the description must compensate; it names prompt, model, aspect ratio and duration but adds no syntax or constraints beyond the schema (duration's model-specific allowed values, ratio format, and the tab/model_id vs model_name distinction are untouched). Partial compensation for the coverage gap, so a baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Overwrite the saved widget settings') plus which fields are affected, and positions the tool in the workflow ('to a prepared project before generating'), which cleanly separates it from prepare_media_project and generate_media. An agent can identify what this does without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly names the supported case (text-to-image / text-to-video prompts) and enumerates a long list of excluded workflows (uploaded/attached/reference images, editing, background removal, upscaling, try-on, image-to-video, media-to-media). This is textbook when/when-not guidance with nothing left to inference.
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.
5 tool updates
- First observed
generate_media - First observed
get_media_job - First observed
prepare_book_cover - First observed
render_media_widget - First observed
update_media_project
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceRemote MCP server that lets AI assistants read tracked competitive intelligence — competitor news, reviews, website changes, social posts and ads — and act on it by managing projects, competitors, battle cards, reports and canvases. Every answer carries a source and a date, and write actions only publish when explicitly shared.MIT
- AlicenseCqualityBmaintenanceCompetitor Monitor AI - MCP server providing AI-powered tools and automation by MEOK AI Labs115 npm55 PyPIMIT
- AlicenseAqualityCmaintenanceEnables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.1618 npm1MIT

industrylens-mcpofficial
AlicenseNot gradedqualityBmaintenanceBrowse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.