Logospell
Server Details
AI-agent image generation: cohesive sets & illustrations. PNG/WebP (optional transparency) or JPEG.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.8/5 across 6 of 6 tools scored.
Each tool targets a distinct operation: check_credits for account balance, create_reference for uploading reference images, generate_illustration for single composed images, generate_image_set and generate_transparent_image_set for sets differentiated by background transparency, and list_recent_generations for retrieval. The clear differences prevent misselection.
All tool names follow a consistent verb_noun pattern in snake_case (check_credits, create_reference, generate_illustration, generate_image_set, generate_transparent_image_set, list_recent_generations). The verbs are descriptive and the pattern is uniform.
Six tools provide a well-scoped surface for an image generation service: credit checking, reference upload, two set generation variants, single image generation, and history listing. Each tool earns its place with no redundancy.
Core workflows are covered: reference creation, generation in three modes, credit checking, and retrieving past generations. Minor gaps include no explicit reference deletion or management and no direct single-transparent-image tool (though a set of one could serve), but these are edge cases.
Available Tools
6 toolscheck_creditsARead-onlyIdempotentInspect
Check how many image generation credits remain on your account: one balance shared by your MCP calls and the logospell.com generate page.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| remaining | Yes | Credits remaining on the API key. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, covering safety. The description adds useful context about the shared account balance, enhancing understanding without contradicting structured data.
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, front-loaded sentence conveys the exact purpose with no wasted words. The description is both concise and structurally effective.
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 zero-parameter tool with comprehensive annotations and an output schema, the description is fully sufficient. It adds the key nuance of a shared balance, covering all contextual needs.
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 tool has zero parameters, so the baseline is 4. There is no parameter description needed beyond the schema, which correctly shows an empty object.
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?
Description clearly states the tool checks remaining image generation credits, with specific verb 'Check' and resource 'credits'. The added detail about shared balance between MCP calls and the generate page distinguishes it from sibling generation tools.
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?
The context makes it obvious this is for verifying available credits before generation, but no explicit when-to-use or alternative comparisons are given. Since no sibling performs the same function, this is not a significant gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_referenceAInspect
Create an upload slot for a reference image. Returns an upload URL and a ref_ token: upload the image file with one shell command (curl -T ''), then pass the ref_ token to the reference-image parameter you are filling - every parameter that takes reference images names this tool in its description. This is the ONLY way to supply reference images, and those parameters accept ref_ tokens and nothing else. Image data never goes inside a tool call: a call is JSON, so an embedded image would have to be base64 text that you, the caller, must emit character by character - slow, error-prone, and enough to exhaust your context window. The upload moves the bytes out-of-band instead: a plain HTTP PUT of the raw file, so any HTTP client works; if your environment has no way to send one, install curl. And when the image you want is from one of your OWN recent Logospell generations, skip the upload entirely: pass sourceGeneration and sourceImage and the server copies it directly - the shortcut for extending an existing set in its own style. Accepts PNG, JPEG, or WebP, each at most 500KB, each side between 64px and 768px - resize before uploading if needed; larger reference images do not improve results. A reference is private to your API key and can be used in any number of later calls; its expiry window restarts each time you use or re-upload it, so uploading a few references once can serve a whole session of work. Costs no credits.
| Name | Required | Description | Default |
|---|---|---|---|
| sourceImage | No | Optional, with sourceGeneration: the delivered image filename to use as the reference, exactly as listed by list_recent_generations or the generation's manifest (e.g. "a_lotus_cradling_a_glowing_pearl.png"). An image larger than the reference limits is downscaled to fit automatically. | |
| sourceGeneration | No | Optional, with sourceImage: fill this reference from one of your own recent generations instead of uploading a file. Pass the generation id - the random segment of its download URL (.../download/<id>/images.zip), also returned by list_recent_generations. The image is copied server-side; nothing is uploaded. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ref | Yes | |
| expiresAt | Yes | |
| uploadURL | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses extensive behavioral details beyond annotations: the upload URL and ref_ token workflow, the out-of-band HTTP PUT mechanism, the per-key privacy and rolling expiry window, cost implications, and the explicit rationale against embedding base64 in JSON. This is far more transparent than the minimal annotations.
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?
The description is a single dense paragraph but well-structured, moving from purpose to mechanics to constraints. It is slightly longer than necessary—some rationale (e.g., base64 context pain) could be trimmed—but every sentence contributes to operational understanding, so it remains efficient.
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?
The description covers all essential context: return values, prerequisites (image format/size limits), the upload mechanism, the alternative shortcut, privacy/expiry behavior, and cost. Given the output schema exists and the description explains what is returned, it is fully complete for an agent to invoke 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?
While the schema covers parameter descriptions at 100%, the description adds meaning by explaining how sourceGeneration and sourceImage work together, that sourceImage is downscaled to fit, and that these parameters are the shortcut path that skips uploading. It also clarifies the token-based interaction with other tools' parameters.
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 opens with a specific verb and resource: 'Create an upload slot for a reference image.' It clearly distinguishes itself from siblings by stating 'This is the ONLY way to supply reference images,' making it unmistakable which tool to invoke for this purpose.
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?
The description provides explicit guidance on when to use the tool versus alternatives: it is the only way to supply reference images, and when using one's own recent generations, the description directs to skip the upload and use sourceGeneration/sourceImage instead. It also notes the edge case of needing to resize images before uploading.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_illustrationAInspect
Generate a single composed illustration from a prompt - a scene, environment, hero image, banner, character portrait, or any standalone picture. (For a SET of separate isolated subjects sharing one style - icons, sprites, asset packs - use generate_image_set for solid-color backgrounds, or generate_transparent_image_set for transparent backgrounds, instead.) Returns a zip download URL: the image plus a prompt.json recording what you asked for, plus an index.html viewer. Each call costs 1 credit. Run generation calls sequentially, never in parallel - only one generation runs at a time per API key.
The prompt describes the picture and is used as written (no template, no appended instructions); do not put the pixel size in it - put the size in the width and height arguments. width and height must be one of the supported pixel pairs below; any other pair is rejected. These are the maximums offered - nothing larger is available. Each line is one shape: the first pair is that shape's largest size, the rest are exact proportional downscales of it.
2816x1584, 1408x792, 704x396 2048x2048, 1024x1024, 512x512, 256x256 1456x2912, 728x1456, 364x728 3200x1440, 1600x720, 800x360 2912x1456, 1456x728, 728x364 1664x2496, 832x1248, 416x624 2496x1664, 1248x832, 624x416 1776x2368, 888x1184, 444x592 2368x1776, 1184x888, 592x444 1584x2816, 792x1408, 396x704 1440x3200, 720x1600, 360x800
Formats: png (default, lossless), jpg, webp. quality (1-100) applies to jpg and webp; default 90. Prompt max length: 2500 characters. A prompt that does not describe a picture is rejected. unpackTo: a directory on your local filesystem to extract the downloaded zip into. filename: name for the image file inside the zip (default illustration.).
If a "Rate limit exceeded" error is returned, wait the suggested number of seconds before retrying. Do not retry immediately.
| Name | Required | Description | Default |
|---|---|---|---|
| width | Yes | Output width in pixels. Must form one of the supported (width, height) pairs listed in the tool description. | |
| format | No | Output format: png (default, lossless), jpg, or webp. | |
| height | Yes | Output height in pixels, paired with width per the supported list in the tool description. | |
| prompt | Yes | What the illustration should depict - a scene, environment, hero image, banner, character, or any single composed picture. Used as written; a prompt that does not describe a picture is rejected. Do not put the pixel size here; use width and height. | |
| quality | No | Image quality for jpg/webp (1-100). Defaults to 90. | |
| filename | No | Name for the image file inside the zip. Defaults to illustration.<ext>. | |
| unpackTo | No | Path on the caller's local filesystem where the generated illustration should be saved. The server does NOT write here. After this call returns, you (the calling client) must download illustration.zip from the returned zip URL, extract it to this path yourself, then report the path to the user. Make the download your immediate next action when the result arrives, before any commentary; the download URL is short-lived. |
Output Schema
| Name | Required | Description |
|---|---|---|
| width | No | |
| format | No | |
| height | No | |
| zipURL | No | |
| unpackTo | No | |
| expiresAt | No | |
| remaining | No | |
| manifestURL | No | |
| imageFilename | No | |
| rejectedPrompt | No | Present only when the request was rejected because the prompt does not appear to describe a picture: the submitted prompt. No generation ran and nothing was charged; revise the prompt and resubmit. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes well beyond the annotations by disclosing cost per call, return format (zip URL with image, prompt.json, index.html), short-lived download URL, no-template prompt handling, rejected prompts, max length, and rate-limit behavior. There is no contradiction with 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but every sentence carries necessary information. It is well-organized with lead purpose statement, sibling disambiguation, pixel-size table, format notes, and a final error-handling rule. The structure makes it easy for an agent to extract sizing and concurrency constraints.
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 tool with seven parameters, an output schema, and operational constraints, the description is remarkably complete. It covers when to use, what to return, accepted dimensions and formats, prompt limits, implementation requirement around unpackTo, and rate-limit behavior. The agent has everything needed to invoke this tool 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?
Even though schema coverage is 100%, the description adds meaningful operational detail: the exact supported width/height pairs, to keep pixel size out of the prompt, the quality default of 90, the filename default, and the unpackTo/download behavior. This goes well beyond the schema's own parameter descriptions.
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 uses a specific verb and resource: 'Generate a single composed illustration from a prompt' and explicitly lists example outputs like scene, environment, hero image, banner, and character portrait. It also distinguishes itself from siblings by directing set-based use cases to generate_image_set or generate_transparent_image_set, leaving no ambiguity about scope.
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 explicitly states when to use this tool versus alternatives: single composed illustration here, sets of separate subjects in generate_image_set or generate_transparent_image_set. It also gives operational guidance: run generation calls sequentially, never in parallel, and wait the suggested seconds when a rate-limit error is returned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_image_setAInspect
Generate a cohesive SET of custom images on a SOLID-COLOR background, each one a separate isolated subject sharing one background and one visual style (icons, logos, game assets, UI elements, sprite/asset packs). The style parameter says how everything is drawn; the subjects parameter says what to draw. The style can also come from reference images via the styleReferences parameter - alone, or best combined with the style text (text plus references holds a style tightest), so an existing set can be extended in its original style across many calls. Returns a zip download URL. Each call costs 1 credit. Run generation calls sequentially, never in parallel - only one generation runs at a time per API key.
For TRANSPARENT-background output, use generate_transparent_image_set instead (1 credit per call).
For a SINGLE composed picture or a full-bleed scene (hero image, banner, character portrait, environment), use generate_illustration instead.
Output formats: PNG (lossless), JPEG, or WebP. Images can be delivered at a specific size or at their native resolution.
Size and quality considerations: Omitting the size parameter delivers images at their native resolution with zero scaling, which produces the highest quality results and is recommended when images will be post-processed, composited, or resized downstream. Native output dimensions vary between generations and track the subject count - roughly 650-950px per side for small sets, down to roughly 400-650 at the full 18; fewer subjects means larger native images. Specifying a size (e.g. 512) guarantees consistent dimensions across all images and generations but applies resampling which may soften fine details.
IMPORTANT - style and subject description rules for best results: The style applies to every image in the set, so it is what keeps them visually consistent. Put HOW the images are drawn (technique, palette, surface treatment) in the style, and make each subject description only about WHAT that one subject is, not how it looks. A quick test for any phrase: is it WHAT the subject is, or HOW it is drawn? HOW belongs in the style, shared across the set.
Get the style and the subject descriptions right with the user before you call. When their request puts how an image is drawn, a background, or a scene into a subject description (or names the subjects to draw in the style rather than as separate entries in the subjects list), fix it as you compose the call: routine moves of shared technique into the style you can just make, but when a change drops or alters something they explicitly asked for, tell them what you are adjusting and why first. Each call costs a credit, so it is worth getting this right up front rather than spending one on a framed or scene-filled result.
The style describes the visual treatment of the images (e.g. 'watercolor', 'pixel art', 'stained glass'). It must NOT mention background color, image count, layout, or sizing.
Do not list the subjects to draw in the style (e.g. 'illustrations of a fox, an owl, and a deer'); the style is only the shared visual treatment, and the subjects belong in the subjects list, one per entry. A category or theme word is fine (e.g. 'insect illustration').
Do not put background color or background descriptions in the style or subject descriptions.
Avoid framing the style as a type of painted canvas ('oil painting', 'acrylic painting', 'gouache painting', 'pastel painting'). These tend to produce each image as a rectangular framed canvas with its own colored background, rather than an isolated subject. Prefer 'illustration' or a specific technique: 'watercolor illustration', 'pen-and-ink sketch', 'ink wash', 'relief-etching', 'pastel drawing', 'woodblock print'.
Avoid color-field or atmospheric phrasings in the style ('luminous backgrounds of violet, rose, and gold', 'set against jewel-tone fields', 'dreamlike rainbow atmosphere'). These instruct the image model to fill each image with colored atmosphere, producing framed compositions rather than isolated subjects. Describe only the linework, palette, and technique of the subjects themselves.
Do not describe an aged, weathered, cracked, or textured surface, ground, wall, panel, or paper that the whole artwork sits on ('on aged wood', 'cracked fresco wall', 'aged parchment surface'); name the art tradition(s) or style(s) instead ('fresco-style illustration'). Texture that belongs to a subject's own material is fine ('a weathered bronze shield', 'a cracked ceramic vase').
No captions, labels, or annotations. Text that is part of the depicted object is fine (e.g. 'STOP' on a stop sign, 'EXIT' on an exit sign).
No grid lines, borders, frames, or separators.
No overlapping or collage-style arrangements.
Do not connect the subjects to each other or give them shared physical elements: no wires, cords, chains, ropes, ribbons, vines, or threads running between subjects, no frame or banner they share, no phrasing like 'connected by' or 'strung together', and no single continuous line or tube forming multiple subjects. Each subject must be drawable in complete isolation; connections inside one subject (a chain on an amulet, laces on a boot) are fine.
No dramatic/long drop shadows (subtle shadows are fine).
Image descriptions should describe WHAT to depict, not where to position it.
Each image is ONE isolated subject, not a scene. Describe the subject with its pose or action and anything it directly holds, rides, or interacts with, but not the surrounding setting, environment, landscape, or sky. For a single composed scene (a figure set within an environment), use generate_illustration instead.
Do not use size words (large, tiny, small, etc.) on the overall image subject (e.g. 'a large elephant', 'a tiny mouse') - all images are produced at the same size. Size words on details within the image are fine (e.g. 'a plate with a small insignia').
Maximum 18 images per generation. Do not put the image count in the style.
Subjects must be distinct: entries that differ only in case, punctuation, or spacing count as the same subject and the call is rejected. Explicit filenames must be distinct too (a different extension alone is not distinct).
The style must actually describe a visual style, and each subject must name a drawable subject; text that does not is rejected.
Style description max length: 500 characters. Image description max length: 200 characters each.
Size: each axis between 256 and 512 pixels (e.g. "512" for square, "256x512" for non-square); values outside the range are rejected. Omitting size delivers native resolution, which is also the path to larger images.
If the style check returns a suggested cleanup, show the user the specific changes and get their confirmation, then resubmit the approved prompt with validation set to "skip" so it generates exactly as approved (resubmitting without "skip" re-runs the check and may return further suggestions). See the validation parameter for when to use "skip" and "auto-apply".
If a "Rate limit exceeded" error is returned, wait the suggested number of seconds before retrying. Do not retry immediately.
| Name | Required | Description | Default |
|---|---|---|---|
| size | No | Image dimensions (e.g. 512 for square, 256x512 for non-square). Per-axis minimum and maximum are given in the tool description; values outside the range are rejected. If omitted, images are delivered at their native size with no scaling or distortion - this preserves maximum detail but output dimensions vary between generations. Specifying a size guarantees consistent dimensions across all images and generations but applies Lanczos resampling which may soften fine details. If the user plans to post-process the images, recommend omitting size to get the highest quality results. | |
| style | No | Visual style for all images, e.g. flat minimalist, hand-drawn sketch, 3D glossy, pixel art. Text that does not describe a visual style is rejected. Provide this, styleReferences, or both - together they hold a style most tightly (the text pins the style, the references show it applied), which is the recommended way to extend an existing set across multiple calls. | |
| format | No | Output format: png, jpg, or webp. Defaults to png. | |
| quality | No | Image quality for jpg/webp (1-100). Defaults to 90. | |
| subjects | Yes | Either a list of subject names (e.g. ["home", "search"]) or objects with description and filename (e.g. [{"description": "compass rose", "filename": "overview.webp"}]). Each subject must name a drawable subject and be distinct: entries differing only in case, punctuation, or spacing are rejected as the same subject. A subject with no Latin letters or numbers (a name written entirely in another script) needs the object form with a filename, since delivered files are named in ASCII. Subject text can use only letters, numbers, dashes, spaces, and apostrophes, and must start and end with a letter or number. | |
| unpackTo | No | Path on the caller's local filesystem where the generated files should be saved. The server does NOT write here. After this call returns, you (the calling client) must download images.zip from the returned zip URL, extract it to this path yourself, then report the path to the user. Make the download your immediate next action when the result arrives, before any commentary; the download URL is short-lived. | |
| background | No | Background as a 6-char hex color #RRGGBB (e.g. #ffffff, #2c3e50). Default is #ffffff. For transparent output, call the generate_transparent_image_set tool instead - this tool only produces solid-color backgrounds. Do not mention background in the style or subject descriptions. | |
| validation | No | How to handle the automatic style/subject check before generating. One of: suggest (the default) - if the style and descriptions need cleanup for a consistent set, the cleaned version is returned as a suggestion for you to review before any image is generated; skip - skip the cleanup suggestions and generate exactly as given (the non-drawable-content and repeated-subject rejection rules above still apply; no mode skips them), set this when resubmitting a prompt you already revised from a previous suggestion (so your approved wording is used as-is and not re-checked, which avoids further suggestions) or when you are confident the prompt is already clean; auto-apply - if cleanup is needed, apply it and generate in one step without returning a suggestion. Omit for the default. | |
| minimumMargin | No | Minimum margin in pixels around each subject. Defaults to 20. At most 15% of the smallest requested dimension when a size is given, at most 80 without one; negative values are rejected. All images in a set share one set of dimensions; the actual margin varies by subject and never falls below this. | |
| styleReferences | No | Up to 3 reference images that define the style, alone or alongside the style parameter (with both, the text pins the style and the references show it applied - the tightest hold, recommended when extending an existing set). Each entry is a ref_ token from the create_reference tool: create an upload slot, send the image file with the curl command it returns, then pass the token here. Image data itself never goes in a tool call; ref_ tokens are the only accepted form. Uploads take PNG, JPEG, or WebP; size and dimension limits are given in the create_reference tool's description, and oversized images are rejected with a clear message - larger reference images do not improve results. The images are used as style guides only: their rendering technique carries over, their subjects do not appear in the output. Provide at least one of style and styleReferences. |
Output Schema
| Name | Required | Description |
|---|---|---|
| style | No | |
| format | No | |
| images | No | |
| zipURL | No | |
| unpackTo | No | |
| expiresAt | No | |
| remaining | No | |
| background | No | |
| manifestURL | No | |
| rejectedStyle | No | Present only when the request was rejected because the style does not appear to describe a visual style: the submitted style text. No generation ran and nothing was charged; revise the style (or drop it and use styleReferences) and resubmit. |
| suggestedStyle | No | Present only on a validation suggestion: the cleaned style text, for review. An empty string means the cleanup removed the style entirely (nothing in it was usable as a style) - replace it, or use styleReferences. Absent on refs-only requests. No generation ran and nothing was charged. |
| rejectedSubjects | No | Present only when the request was rejected because some subjects do not appear to name distinct, drawable subjects: the exact rejected entries. No generation ran and nothing was charged; revise or remove these subjects and resubmit. |
| suggestedSubjects | No | Present only on a validation suggestion: the cleaned subject list, one entry per image. Adopt these, or resubmit your own wording with validation set to skip. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes beyond annotations, which only indicate readOnlyHint=false, openWorldHint=true, idempotentHint=false, destructiveHint=false. It explains behavioral traits such as consuming 1 credit per call, the need for sequential execution (only one generation at a time per API key), the possibility of rate limit errors and recommended response, the short-lived zip URL that requires immediate download, and the validation flow with 'skip' and 'auto-apply'. It also details the native resolution behavior and size effects. This is comprehensive transparency that contradicts nothing in 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but well-organized with clear sections (style rules, size considerations, error handling). It is front-loaded with the core purpose and usage, then details. While every sentence is informative, the length is substantial; however, given the complexity of the tool, the thoroughness is justified. Minor redundancy exists (e.g., repeated advice on style-text-plus-references), but overall it's structured effectively.
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 tool with 10 parameters, a complex validation flow, and an output schema (zip URL), the description is exceptionally complete. It covers parameter syntax, constraints (max 18 images, character limits, size ranges), common pitfalls (framing, backgrounds, connections), and interaction with sibling tools (create_reference for styleReferences). The output schema likely explains the zip structure, but the description also notes the download URL is short-lived, adding necessary context. The description leaves no obvious gaps for an agent to misuse the tool.
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?
Although the schema already has 100% coverage, the description adds significant semantic value beyond the schema. For example, it explains the trade-offs of omitting size (native resolution, higher quality, but varying dimensions) versus specifying size (consistent dimensions but potential softening), and it clarifies the interaction of style and styleReferences for maintaining style consistency. It also warns about phrasing that can lead to unwanted framed compositions. This goes well beyond the schema's descriptions.
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 clearly states the tool's purpose: generating a cohesive set of custom images on a solid-color background, each a separate isolated subject sharing one style. It distinguishes itself from siblings by explicitly naming alternative tools: generate_transparent_image_set for transparent backgrounds and generate_illustration for single composed scenes or full-bleed images. This meets the highest standard for purpose clarity.
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?
The description provides explicit when-to-use guidance: it says to use generate_transparent_image_set for transparent backgrounds, generate_illustration for single composed pictures or scenes, and generate_image_set for sets of isolated subjects. It also gives operational guidelines like running generation calls sequentially, never in parallel, and advice on handling rate limits. These explicit exclusions and alternatives score a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_transparent_image_setAInspect
Generate a cohesive SET of custom images with TRANSPARENT backgrounds, each one a separate isolated subject sharing one visual style (icons, logos, sprites, UI assets that need to drop onto any backdrop). The style parameter says how everything is drawn; the subjects parameter says what to draw. The style can also come from reference images via the styleReferences parameter - alone, or best combined with the style text (text plus references holds a style tightest), so an existing set can be extended in its original style across many calls. Returns a zip download URL. Each call costs 1 credit. When a solid colored background fits the user's use case, generate_image_set (1 credit per call) is the faster choice. Run generation calls sequentially, never in parallel - only one generation runs at a time per API key.
Output formats: PNG (lossless) or WebP. JPG is not supported because it has no alpha channel.
Size and quality considerations match generate_image_set: omitting size delivers native resolution (best quality, varies between generations); specifying a size resamples to that exact dimension.
IMPORTANT - style and subject description rules for best results: The style applies to every image in the set, so it is what keeps them visually consistent. Put HOW the images are drawn (technique, palette, surface treatment) in the style, and make each subject description only about WHAT that one subject is, not how it looks. A quick test for any phrase: is it WHAT the subject is, or HOW it is drawn? HOW belongs in the style, shared across the set.
Get the style and the subject descriptions right with the user before you call. When their request puts how an image is drawn, a background, or a scene into a subject description (or names the subjects to draw in the style rather than as separate entries in the subjects list), fix it as you compose the call: routine moves of shared technique into the style you can just make, but when a change drops or alters something they explicitly asked for, tell them what you are adjusting and why first. Each call costs a credit, so it is worth getting this right up front rather than spending one on a framed or scene-filled result.
The style describes the visual treatment of the images (e.g. 'watercolor', 'pixel art', 'stained glass'). It must NOT mention background color, image count, layout, or sizing.
Do not list the subjects to draw in the style (e.g. 'illustrations of a fox, an owl, and a deer'); the style is only the shared visual treatment, and the subjects belong in the subjects list, one per entry. A category or theme word is fine (e.g. 'insect illustration').
Do not put background color or background descriptions in the style or subject descriptions.
Avoid framing the style as a type of painted canvas ('oil painting', 'acrylic painting', 'gouache painting', 'pastel painting'). These tend to produce each image as a rectangular framed canvas with its own colored background, rather than an isolated subject. Prefer 'illustration' or a specific technique: 'watercolor illustration', 'pen-and-ink sketch', 'ink wash', 'relief-etching', 'pastel drawing', 'woodblock print'.
Avoid color-field or atmospheric phrasings in the style ('luminous backgrounds of violet, rose, and gold', 'set against jewel-tone fields', 'dreamlike rainbow atmosphere'). These instruct the image model to fill each image with colored atmosphere, producing framed compositions rather than isolated subjects. Describe only the linework, palette, and technique of the subjects themselves.
Do not describe an aged, weathered, cracked, or textured surface, ground, wall, panel, or paper that the whole artwork sits on ('on aged wood', 'cracked fresco wall', 'aged parchment surface'); name the art tradition(s) or style(s) instead ('fresco-style illustration'). Texture that belongs to a subject's own material is fine ('a weathered bronze shield', 'a cracked ceramic vase').
No captions, labels, or annotations. Text that is part of the depicted object is fine (e.g. 'STOP' on a stop sign, 'EXIT' on an exit sign).
No grid lines, borders, frames, or separators.
No overlapping or collage-style arrangements.
Do not connect the subjects to each other or give them shared physical elements: no wires, cords, chains, ropes, ribbons, vines, or threads running between subjects, no frame or banner they share, no phrasing like 'connected by' or 'strung together', and no single continuous line or tube forming multiple subjects. Each subject must be drawable in complete isolation; connections inside one subject (a chain on an amulet, laces on a boot) are fine.
No dramatic/long drop shadows (subtle shadows are fine).
Image descriptions should describe WHAT to depict, not where to position it.
Each image is ONE isolated subject, not a scene. Describe the subject with its pose or action and anything it directly holds, rides, or interacts with, but not the surrounding setting, environment, landscape, or sky. For a single composed scene (a figure set within an environment), use generate_illustration instead.
Do not use size words (large, tiny, small, etc.) on the overall image subject (e.g. 'a large elephant', 'a tiny mouse') - all images are produced at the same size. Size words on details within the image are fine (e.g. 'a plate with a small insignia').
Maximum 18 images per generation. Do not put the image count in the style.
Subjects must be distinct: entries that differ only in case, punctuation, or spacing count as the same subject and the call is rejected. Explicit filenames must be distinct too (a different extension alone is not distinct).
The style must actually describe a visual style, and each subject must name a drawable subject; text that does not is rejected.
Style description max length: 500 characters. Image description max length: 200 characters each.
Size: each axis between 256 and 512 pixels (e.g. "512" for square, "256x512" for non-square); values outside the range are rejected. Omitting size delivers native resolution, which is also the path to larger images.
If the style check returns a suggested cleanup, show the user the specific changes and get their confirmation, then resubmit the approved prompt with validation set to "skip" so it generates exactly as approved (resubmitting without "skip" re-runs the check and may return further suggestions). See the validation parameter for when to use "skip" and "auto-apply".
If a "Rate limit exceeded" error is returned, wait the suggested number of seconds before retrying. Do not retry immediately.
| Name | Required | Description | Default |
|---|---|---|---|
| size | No | Image dimensions (e.g. 512 for square, 256x512 for non-square). Per-axis minimum and maximum are given in the tool description; values outside the range are rejected. If omitted, images are delivered at their native size with no scaling or distortion. | |
| style | No | Visual style for all images, e.g. flat minimalist, hand-drawn sketch, 3D glossy, pixel art. Text that does not describe a visual style is rejected. Provide this, styleReferences, or both - together they hold a style most tightly (the text pins the style, the references show it applied), which is the recommended way to extend an existing set across multiple calls. | |
| format | No | Output format: png or webp (jpg has no alpha channel and is rejected). Defaults to png. | |
| quality | No | Image quality for webp (1-100). Defaults to 90. | |
| subjects | Yes | Either a list of subject names (e.g. ["home", "search"]) or objects with description and filename (e.g. [{"description": "compass rose", "filename": "overview.webp"}]). Each subject must name a drawable subject and be distinct: entries differing only in case, punctuation, or spacing are rejected as the same subject. A subject with no Latin letters or numbers (a name written entirely in another script) needs the object form with a filename, since delivered files are named in ASCII. Subject text can use only letters, numbers, dashes, spaces, and apostrophes, and must start and end with a letter or number. | |
| unpackTo | No | Path on the caller's local filesystem where the generated files should be saved. The server does NOT write here. After this call returns, you (the calling client) must download images.zip from the returned zip URL, extract it to this path yourself, then report the path to the user. Make the download your immediate next action when the result arrives, before any commentary; the download URL is short-lived. | |
| validation | No | How to handle the automatic style/subject check before generating. One of: suggest (the default) - if the style and descriptions need cleanup for a consistent set, the cleaned version is returned as a suggestion for you to review before any image is generated; skip - skip the cleanup suggestions and generate exactly as given (the non-drawable-content and repeated-subject rejection rules above still apply; no mode skips them), set this when resubmitting a prompt you already revised from a previous suggestion (so your approved wording is used as-is and not re-checked, which avoids further suggestions) or when you are confident the prompt is already clean; auto-apply - if cleanup is needed, apply it and generate in one step without returning a suggestion. Omit for the default. | |
| minimumMargin | No | Minimum margin in pixels around each subject. Defaults to 20. At most 15% of the smallest requested dimension when a size is given, at most 80 without one; negative values are rejected. All images in a set share one set of dimensions; the actual margin varies by subject and never falls below this. | |
| styleReferences | No | Up to 3 reference images that define the style, alone or alongside the style parameter (with both, the text pins the style and the references show it applied - the tightest hold, recommended when extending an existing set). Each entry is a ref_ token from the create_reference tool: create an upload slot, send the image file with the curl command it returns, then pass the token here. Image data itself never goes in a tool call; ref_ tokens are the only accepted form. Uploads take PNG, JPEG, or WebP; size and dimension limits are given in the create_reference tool's description, and oversized images are rejected with a clear message - larger reference images do not improve results. The images are used as style guides only: their rendering technique carries over, their subjects do not appear in the output. Provide at least one of style and styleReferences. |
Output Schema
| Name | Required | Description |
|---|---|---|
| style | No | |
| format | No | |
| images | No | |
| zipURL | No | |
| unpackTo | No | |
| expiresAt | No | |
| remaining | No | |
| background | No | |
| manifestURL | No | |
| rejectedStyle | No | Present only when the request was rejected because the style does not appear to describe a visual style: the submitted style text. No generation ran and nothing was charged; revise the style (or drop it and use styleReferences) and resubmit. |
| suggestedStyle | No | Present only on a validation suggestion: the cleaned style text, for review. An empty string means the cleanup removed the style entirely (nothing in it was usable as a style) - replace it, or use styleReferences. Absent on refs-only requests. No generation ran and nothing was charged. |
| rejectedSubjects | No | Present only when the request was rejected because some subjects do not appear to name distinct, drawable subjects: the exact rejected entries. No generation ran and nothing was charged; revise or remove these subjects and resubmit. |
| suggestedSubjects | No | Present only on a validation suggestion: the cleaned subject list, one entry per image. Adopt these, or resubmit your own wording with validation set to skip. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the minimal annotations (readOnly=false), the description discloses credit cost, zip URL return, sequential generation constraints, style-check behavior, rejection rules, and failure modes like framed canvases or connected subjects. It also tells the agent how to handle style-check suggestions and resubmission with validation='skip', well beyond what the annotations convey.
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?
The description is long but front-loaded: core purpose, use-case alternatives, cost, and sequencing come first, followed by a structured rule list. There is some redundancy with schema text (size range, 'style must describe a visual style'), and the prohibition list is extensive, but each rule targets a distinct failure mode, so the length is largely earned.
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 9-parameter tool with an output schema, the description is functionally complete: it covers return delivery (zip URL), pricing, concurrency, validation states, reference-image workflow, and every constraint needed to compose a valid call. No obvious gap would cause an agent to misinvoke.
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 already 100%, but the description adds substantial parameter-level meaning: how to split HOW vs WHAT across style and subjects, prohibitions on background/color-field phrasing, maximum 18 subjects, character limits, size range, and the required workflow for unpackTo (download immediately). It also clarifies validation modes and reference token usage beyond the schema descriptions.
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 opens with a specific verb and resource: 'Generate a cohesive SET of custom images with TRANSPARENT backgrounds, each one a separate isolated subject sharing one visual style,' and names concrete use cases (icons, logos, sprites, UI assets). It explicitly distinguishes itself from siblings: 'When a solid colored background fits... generate_image_set...' and 'For a single composed scene... use generate_illustration instead.'
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?
The description gives explicit when-to-use guidance and alternatives: solid-color backgrounds point to generate_image_set, single composed scenes point to generate_illustration, and extending an existing set is covered via styleReferences. It also instructs operational sequencing ('Run generation calls sequentially, never in parallel'), rate-limit handling, and the validation workflow with suggest/skip/auto-apply.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_recent_generationsARead-onlyIdempotentInspect
List your recent successful generations and return their download URLs again. Use this to recover a generation whose result message was lost (for example a dropped connection mid-call): generations are billed when they complete, and their downloads stay available until their original expiry even if the response never arrived - re-listing does not extend the expiry. Generations made on the logospell.com generate page appear here too. Returns, newest first: each generation's id, the tool used, creation and expiry times, image names, zip download URLs, and its set lineage - parent generation ids plus the style-reference sources it was made with, ready to reuse via create_reference. Costs no credits.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of recent generations to return (default 5, max 20). |
Output Schema
| Name | Required | Description |
|---|---|---|
| generations | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds significant behavioral context beyond the annotations: it clarifies that re-listing does not extend expiry, that generations from the web page appear, that it costs no credits, and that lineage data is included for reuse. These are specific, non-obvious details that help the agent understand side effects and limitations. The annotations already declare readOnlyHint and idempotentHint, and the description reinforces without contradicting.
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?
The description is logically structured: it opens with the core purpose, then adds the recovery use case, then explains billing and expiry behavior, then lists return fields, and ends with cost. Every sentence adds useful information, but it is longer than strictly necessary. It's efficient without being bloated, so a 4 is fitting.
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?
Given the tool's simplicity (one optional parameter), the presence of an output schema, and thorough annotations, the description covers all essential context: the exact data returned, the ordering, the inclusion of web-generated items, the inefficiency of re-listing for extending expiry, and that it costs no credits. There are no gaps that would leave an agent uncertain. This is complete.
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 only parameter, 'limit', is fully described in the schema (coverage 100%). The description does not add any extra semantic meaning about the limit parameter itself, but it does mention ordering ('newest first') which indirectly relates to the result set. Since the schema already covers parameter meaning, a baseline score of 3 is appropriate—the description offers no added value for parameters.
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 clearly states it lists recent successful generations and specifically mentions the use case of recovering lost download URLs. It identifies the resource (generations) and the verb (list), and distinguishes itself from sibling tools like generate_illustration by focusing on retrieving existing data rather than creating new content.
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?
The description explicitly says 'Use this to recover a generation whose result message was lost', providing clear when-to-use guidance. It also adds important context about billing and expiry, but does not explicitly state when not to use it or mention alternative tools by name (though it references create_reference for lineage reuse). This is close to a 5 but lacks an explicit when-not statement, so I'm scoring it 4.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceAI-agent image generation: cohesive image sets and single illustrations over MCP. PNG/WebP (optional transparency) or JPEG.
- AlicenseNot gradedqualityBmaintenanceGenerates logos, social media posts, app-store screenshots, comic panels, and visual-novel assets from natural-language prompts using 119 templates.MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to create high-resolution marketing images from simple JSON configs without design skills or API keys. Provides presets, themes, and layouts to render deterministic PNGs locally.MIT
- AlicenseNot gradedqualityDmaintenancePowerful image generation system leveraging multiple Stable Diffusion models (flux-schnell, flux-dev, sdxl, sd3, sd15) for creating high-quality AI-generated images with precise customization.19MIT