Iminify
Server Details
Compress, convert and resize images, and scan web pages for every image they load.
- Status
- Healthy
- OAuth
- Works in Glama
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Score is being calculated.
Available Tools
11 toolscompress_imagesCompress imagesAInspect
Compress, convert or resize images. Send public image addresses in urls, uploads made with create_upload_link in upload_ids, or small files inline as base64 in files. Each image counts one against the account's daily images and compressions a minute, the same as on the website. Images are queued and compress in the background, usually in a few seconds: call get_image with each id until its status is completed, already-optimized, failed or cancelled, then download it from its download_url.
| Name | Required | Description | Default |
|---|---|---|---|
| urls | No | Public http or https addresses of images to fetch. Iminify refuses private networks, follows up to five redirects and names each file after its address. | |
| files | No | Small files sent inline, up to 4 MB each. Use create_upload_link for anything bigger. | |
| level | No | How hard to compress. "smart" (the default) finds the lowest quality that still looks like the original; "ultra" goes further and softens fine texture a little; "lossless" changes no pixel; "none" only converts, resizes and strips metadata. | |
| scale | No | Resize to this percentage of the original, 1 to 100. Not together with width or height. | |
| width | No | Resize to this width in pixels. Alone, the height follows the aspect ratio; with height too, the image is resized to exactly that size. | |
| format | No | Convert to this format. "auto" encodes every format that can hold the image and keeps the smallest. Leave it out to keep each image's own format (a HEIC or TIFF always comes back in another one). | |
| height | No | Resize to this height in pixels, the same way as width. | |
| upload_ids | No | Upload ids from create_upload_link whose file has been sent. Each upload can be compressed once. | |
| keep_metadata | No | Keep the EXIF metadata (camera, date, location). Off by default, which strips it; the orientation is applied to the pixels first. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description richly discloses behavior beyond the sparse annotations: jobs are queued and processed in the background, images count against daily and per-minute quotas, private networks are refused, redirects are limited, and statuses must be polled via get_image. It also explains that files are named after their source addresses and that uploads can be compressed only once. Nothing contradicts the annotations, and the asynchronous lifecycle is fully exposed.
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 composed of three dense but purposeful sentences: the first states the core action and input modes, the second covers quotas, and the third explains the asynchronous workflow and how to retrieve results. There is no filler or repetition; the structure front-loads the most important purpose and flows naturally to lifecycle details. This is efficient for a 9-parameter tool.
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 complexity, the absence of an output schema, and the presence of asynchronous processing, the description supplies all necessary context: how to provide inputs, what happens after submission, how to poll statuses, and where to download the result. It also surfaces rate-limit and security constraints that are not visible in the schema. An agent can correctly invoke this tool and manage its lifecycle using only the description.
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%, and the input schema already provides detailed per-parameter explanations for urls, files, level, scale, width, height, format, upload_ids, and keep_metadata. The description adds high-level context about input methods and job semantics but does not materially extend the schema's parameter-level meaning. Baseline 3 is therefore correct.
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 phrase, 'Compress, convert or resize images,' which precisely names the tool's operation and resource. It clearly distinguishes this tool from siblings like get_image, delete_image, and rename_image, which perform different operations on the same image resource. The addition of input methods and output workflow reinforces the purpose without ambiguity.
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 clear usage context by explaining that images can be supplied via urls, upload_ids from create_upload_link, or inline files, and it routes to get_image for checking asynchronous status. It references the sibling create_upload_link for larger files and explains the polling flow, but it does not explicitly state when to avoid this tool or name an alternative compression path. This is clear context with no direct exclusions, so a 4 is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_upload_linkCreate an upload linkAInspect
Get a one-time address to send a local file to, for an agent that can run a shell. PUT the file's bytes to upload_url (the answer includes a curl command), then call compress_images with the upload_id. The link expires after a few minutes and works once; the uploaded file keeps for about a day. Ask for one link per file.
| Name | Required | Description | Default |
|---|---|---|---|
| file_name | Yes | The file's name, like "hero.png". It names the image; the extension is corrected to what the bytes turn out to be. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only indicate readOnlyHint false; the description adds crucial behavior: link expires in a few minutes, works once, uploaded file retained about a day, and the response includes a curl command. This goes well beyond the structured annotation 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?
Four sentences with zero filler: purpose, workflow, expiration/retention, and batching rule are each given a precise, non-redundant clause. The purpose is front-loaded and the structure is easy to scan.
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 single-parameter tool with no output schema, the description fully equips an agent: it explains how to use the link (PUT bytes to upload_url), the response contents (curl command, upload_id), the follow-up action (compress_images), and the temporal constraints. Nothing critical is missing.
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 baseline is 3. The schema already defines file_name with extension-correction behavior; the tool description does not add significant new meaning about this parameter beyond context already present in the 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?
States a specific verb and resource ('Get a one-time address to send a local file to') and clearly distinguishes this tool from siblings like compress_images and create_zip by framing it as the upload-link step. The workflow reference to compress_images further clarifies its unique role.
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?
Provides clear context: intended for an agent that can run a shell, one link per file, and a follow-up action to call compress_images. Does not explicitly name alternatives or state when not to use this tool, so it stops short of a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_zipCreate a zipARead-onlyInspect
One download address for a zip of the optimized copies of several finished images, by their ids or by a page scan's id. Images that have not finished are left out and listed. The address works without a token and expires after an hour.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | No | The images, by id, up to 150. Send this or scan_id. | |
| scan_id | No | A page scan's id, to zip every finished image it found. Send this or ids. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds valuable behavioral context: it downloads optimized copies, excludes unfinished images, lists omitted ones, works without a token, and expires in an hour. This goes beyond annotations and gives the agent essential usage expectations.
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 three concise sentences, front-loading the core purpose and then adding key behavioral constraints (exclusion, listing, expiry). Every sentence adds necessary information without redundancy. It is well-structured and easily scannable.
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 moderate complexity (two mutually exclusive parameters) and strong annotations (read-only, non-destructive), the description covers all essential aspects: what it does, how to invoke it, behavioral nuances, and download specifics. The output schema is absent but the description adequately indicates the result is a zip address, so nothing critical is missing.
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 100%, fully documenting both parameters (ids and scan_id) and their mutual exclusivity (send this or scan_id). The description adds a little meaning by implying the zip includes optimized copies and excludes unfinished, but it does not add format or constraints beyond schema. Baseline 3 is appropriate given high schema coverage.
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 creates a zip download of optimized finished images, and it distinguishes from siblings like compress_images (which likely compresses individual images) and share_image (which likely shares a single image). It specifies the resource (zip) and the relevant inputs (image ids or scan id). However, it doesn't explicitly name a sibling it is not, which would enhance differentiation.
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 explains the two ways to invoke the tool (by ids or by scan_id), and mentions the exclusion of unfinished images, which is a key condition. It doesn't explicitly state when to prefer this over siblings, but the scope (batch download) is clear. It could benefit from a note on when to use compress_images instead, but the description implies a distinct use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_imageDelete an imageADestructiveInspect
Delete an image and both of its files from storage for good. There is no trash and no undo, so only do this when the person asked for it. An image still queued or compressing is refused.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The image's id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint: true, so the description's 'no trash and no undo' reinforces that. It adds a valuable behavioral constraint about refused operations on queued/compressing images, which is beyond what annotations provide. However, it doesn't mention return values or error handling, which might be expected.
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 tight two-sentence structure. The destructive nature is front-loaded, and the refusal condition is stated immediately after. There is no redundant or verbose language; every phrase earns its place.
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 simple single-parameter destructive operation with annotations covering the safety profile, the description is complete. It covers what is deleted, the lack of undo, and the refusal condition. No output schema is provided, and the description's brevity is sufficient for an agent to call the 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?
The schema fully describes the single parameter 'id' as 'The image's id.' The description adds no extra meaning about the id beyond that, so with 100% schema coverage, the baseline of 3 is appropriate. It does not clarify how to obtain the id or its format.
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 ('Delete'), identifies the resource ('an image'), and clarifies scope ('both of its files from storage for good'). It also implies the destructive nature, distinguishing it from siblings like rename_image or compress_images, which operate on the same resource without deletion.
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 states when to use it: 'only do this when the person asked for it.' Also provides a concrete exclusion: 'An image still queued or compressing is refused.' This gives clear guidance on when to avoid invocation, though it does not name alternative tools for those conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_imageGet an imageARead-onlyIdempotentInspect
One image with its status, sizes and savings. Poll this, a few seconds apart, until the status is completed, already-optimized, failed or cancelled. Once finished, optimized.download_url downloads the result and original.download_url the file as it was sent; both addresses work without a token and expire after an hour, so ask again for fresh ones.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The image's id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the operation read-only, idempotent, and non-destructive, and the description adds substantial behavioral detail beyond that: terminal statuses, tokenless one-hour download URLs, and the instruction to poll again for fresh links. Nothing in the description contradicts 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?
Three sentences carry only high-value information: the response contents, the polling behavior, and the URL expiry/refresh behavior. The most important scoping sentence is front-loaded and every sentence earns its place.
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 one parameter and no output schema, the description still tells the caller what the response contains (status, sizes, savings, download_urls), when those fields are ready, and how to handle expired links. An agent has everything needed to call and interpret the 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?
Schema coverage is 100%: the only parameter, id, is already described as 'The image's id.' The description confirms the tool targets one image but adds no further format or source details, so it meets the baseline without enriching the parameter semantics.
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 'One image with its status, sizes and savings', stating a specific verb and resource and scoping it to a single item, which distinguishes it from list_images and get_scan. The polling language clarifies that this is the status/result endpoint for one image, not a bulk or scan operation.
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 gives explicit operational guidance: poll a few seconds apart until one of four terminal statuses appears, and re-request after an hour for fresh download URLs. It does not name alternative sibling tools or say when not to use it, so it stops short of a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_scanGet a page scanARead-onlyIdempotentInspect
One page scan with every image it found, newest first, and the totals saved. Poll this, a few seconds apart, while a scan runs: it is done once its status is no longer queued or scanning and images_in_progress is 0. To download every finished image at once, call create_zip with the scan's id.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The scan's id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as read-only, idempotent, and non-destructive, so the safe polling behavior is covered. The description adds valuable behavioral context beyond annotations: the response changes over time, images are returned "newest first," and the scan is only complete when certain status conditions are met. This is exactly the dynamic behavior an agent needs to know for correct polling.
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 compact and well-structured: the first sentence states what is returned, the second explains polling and completion, and the third points to the sibling tool for bulk download. Every sentence earns its place, and the most important identification information is front-loaded. There is no filler or repetition.
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 a single simple parameter and no output schema, the description provides the essential return information: images, ordering, totals, status, and images_in_progress. It also explains the lifecycle of a scan and the completion condition, which is the key thing an agent needs to know. The pointer to create_zip completes the workflow context.
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%, with the id parameter described as "The scan's id," so the schema already carries the parameter semantics. The description mentions using "the scan's id" in the create_zip tip, but it does not elaborate on the id parameter for get_scan itself. This is the expected baseline when the schema fully documents the single parameter.
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 identifies the resource as "One page scan" and specifies its contents: "every image it found, newest first, and the totals saved." It is easy to distinguish from sibling image-level tools like get_image and list_images, though it does not explicitly name a sibling as the differentiator. The title and description together make the purpose unambiguous.
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, actionable guidance: "Poll this, a few seconds apart, while a scan runs" and defines the exact completion condition: "status is no longer queued or scanning and images_in_progress is 0." It also names the alternative for downloading all images: "call create_zip with the scan's id." This leaves no ambiguity about when and how to use the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_usageGet usageARead-onlyIdempotentInspect
Your Iminify plan, what it allows, and how much of today's allowance is used, with when it resets. The website, the API and this server spend the same counts. A limit of null means no daily cap. Check this before a large batch.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark it read-only and idempotent, and the description adds meaningful behavioral context: the website, API, and server share the same counts, and a null limit means no daily cap. This goes well beyond the annotations by explaining the semantics of the returned 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?
Three sentences, each earning its place: the first defines what it returns, the second clarifies shared counting behavior, and the third gives actionable guidance. No filler or redundant restating of the title.
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 read-only tool with no output schema, the description is complete. It covers the resource, the values returned, the meaning of null, the shared-account caveat, and when to call it.
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?
There are zero parameters, so the description carries no parameter burden. The baseline of 4 applies because there is nothing for the description to clarify.
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 identifies the resource (Iminify plan) and the specific data delivered: plan allowances, today's usage, and reset time. This fully distinguishes it from the sibling tools, which all perform image or scan operations.
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 says 'Check this before a large batch,' giving a concrete use case. It doesn't name alternative tools because none are alternatives; it's the only usage/plan-read tool, so exclusion guidance is unnecessary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_imagesList imagesARead-onlyIdempotentInspect
The account's images, newest first: uploads, images found by page scans, and re-runs. Filter by status, by source (upload or scan) or by one scan's id. Pages of up to 100; ask for the next page while page is below last_page.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | The page to read, from 1. | |
| scan | No | Only the images of this page scan, by its id. | |
| source | No | "upload" for images that were sent, "scan" for the ones page scans found. | |
| status | No | Only images with this status. | |
| per_page | No | Images a page. 15 by default. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and destructiveHint false, so no safety repetition is needed. The description adds useful behavioral details beyond annotations: newest-first ordering, filtering options, page size cap of 100, and the pagination instruction to request the next page while below last_page.
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 compact and front-loaded: it states the resource and ordering first, then filter options, then pagination behavior. Every sentence contributes useful information with no repetition of schema details or annotation hints.
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 list operation with strong annotations and a fully described parameter schema, the description covers the essential operational details: what is listed, how to filter, and how pagination works. It does not describe the response envelope beyond 'last_page', but the pagination instruction makes the expected interaction sufficiently clear.
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 five parameters. The description reinforces the meaning of source and scan filters and mentions pagination, but adds little semantic value beyond what the schema provides, justifying the baseline score.
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 names a specific verb (list) and resource (the account's images) and clarifies scope: uploads, scan-discovered images, and re-runs, newest first. This clearly differentiates it from siblings like get_image or delete_image, which target a single image or perform different actions.
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 clear context for when to use the tool: to list account images with optional filtering by status, source, or scan id, and to paginate through results. It does not explicitly name alternative tools or state when not to use it, but the intended use is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rename_imageRename an imageAIdempotentInspect
Change the name a finished image's optimized copy downloads under, for example to an SEO-friendly name like "red-running-shoes". The extension is always the delivered format's, so a typed one is dropped. The original keeps the name it was sent with.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The image's id. | |
| name | Yes | The new name, without an extension. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate idempotentHint and destructiveHint false. The description adds valuable behavioral details: the extension is always the delivered format's (typed extension dropped) and the original keeps its name. Also implies it only applies to finished images' optimized copies. These go beyond the structured annotations without contradicting them.
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?
Two concise sentences: the first states the purpose with an example, the second covers extension behavior and original name preservation. No filler; every sentence adds necessary information.
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 simple two-parameter tool with no output schema and annotations covering idempotency and safety, the description covers the core behavior (renaming download name), edge cases (extension dropping, original preserved), and the applicable scope (finished images). Nothing essential is missing.
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 100% and both parameters have descriptions. The description enhances this by clarifying that the 'name' is for the download filename, providing an example, and explaining the extension handling. This adds meaning beyond the schema's 'without an extension' note.
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 specific action ('change the name a finished image's optimized copy downloads under') with a concrete example (SEO-friendly name). It clearly distinguishes from sibling tools like compress_images or delete_image, which perform different operations on images.
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?
Provides clear context for when to use it (e.g., to assign an SEO-friendly download name) and implicitly excludes other operations by specifying it only affects the optimized copy's download name. Does not explicitly name alternatives, but the sibling list contains no similar rename tool, so usage is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scan_pageScan a web pageAInspect
Open a web page in a browser on Iminify's servers, collect every image it loads (scrolling to the bottom), and compress each one with the settings given. It answers straight away with the scan queued; a scan takes from a few seconds to a few minutes, so call get_scan until its status is no longer queued or scanning and images_in_progress is 0. Each scan counts one against the account's daily page scans; the images it finds do not count against its daily images. Pages on private networks are refused, and a page behind a login usually comes back with no images.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The page to scan. https:// can be left out. | |
| level | No | How hard to compress. "smart" (the default) finds the lowest quality that still looks like the original; "ultra" goes further and softens fine texture a little; "lossless" changes no pixel; "none" only converts, resizes and strips metadata. | |
| scale | No | Resize to this percentage of the original, 1 to 100. Not together with width or height. | |
| width | No | Resize to this width in pixels. Alone, the height follows the aspect ratio; with height too, the image is resized to exactly that size. | |
| format | No | Convert to this format. "auto" encodes every format that can hold the image and keeps the smallest. Leave it out to keep each image's own format (a HEIC or TIFF always comes back in another one). | |
| height | No | Resize to this height in pixels, the same way as width. | |
| keep_metadata | No | Keep the EXIF metadata (camera, date, location). Off by default, which strips it; the orientation is applied to the pixels first. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds significant behavioral context beyond annotations: it answers immediately with a queued scan, scans take seconds to minutes, each scan counts against daily page scans (not images), and private networks are refused. This is valuable for agent expectations. No contradiction with annotations (readOnlyHint=false, openWorldHint=true, destructiveHint=false).
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 information-dense yet concise. It front-loads the primary action, then covers async behavior, counting, and limitations in a logical order. Every sentence adds value; no redundancy or fluff.
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 no output schema, the description explains the return behavior (immediate queued status, polling via get_scan), the resource impact (daily scan counts), and edge cases (private networks, login pages). It covers everything an agent needs to invoke and use 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?
Schema description coverage is 100%, so all parameters are already well-documented. The description mentions 'with the settings given' generically but doesn't add detail beyond the schema. Since the schema fully covers parameter semantics, a baseline 3 is appropriate.
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 action: open a page, collect images, compress them. It uses specific verbs and resource (web page images). It distinguishes itself from siblings like compress_images (which likely works on existing images) and get_scan (which retrieves results).
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?
Provides explicit guidance: call get_scan until status is no longer queued/scanning and images_in_progress is 0. Also notes limitations (private networks refused, login pages may return no images) and the asynchronous nature. Clearly implies when to use this tool (to start a scan) versus polling for results.
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.
11 tool updates
- First observed
compress_images - First observed
create_upload_link - First observed
create_zip - First observed
delete_image - First observed
get_image - First observed
get_scan - First observed
get_usage - First observed
list_images - First observed
rename_image - First observed
scan_page - First observed
share_image
Publisher details
- Operator
- Mozex Labs · Publisher source
- Operator website
- https://www.iminify.com/
- Vendor relationship
- First-party · Publisher source
- Documentation
- https://www.iminify.com/docs/mcp
- Trust center
- Not available
- Restrictions
- Needs a free Iminify account with a verified email. Daily allowances depend on the plan: https://www.iminify.com/pricing · Publisher source
Related MCP Connectors
Resize, compress, convert, watermark and SEO-tag e-commerce product images from a public URL.
Image toolkit: resize, compress, crop, watermark, convert, rotate, EXIF read/strip.
- MochifyOAuthapp.mochify
Image and PDF toolkit: convert to AVIF/WebP/JXL, resize, crop, remove backgrounds, optimize PDFs.
Resize, convert, compress, crop, thumbnail and watermark images from your AI chat.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables batch image compression and resizing using the TinyPNG API. Supports PNG, JPEG, WebP, and AVIF formats with detailed compression reports and multiple resize modes.7 npm2ISC
- AlicenseAqualityBmaintenanceAudits images on any public web page to detect oversized images, compare natural vs rendered dimensions, and provide format breakdown, helping AI agents check image performance during development.141 npmMIT
- AlicenseBqualityDmaintenanceEnables AI assistants to download images from URLs and perform basic image optimization tasks.27 npm17Apache 2.0
- AlicenseNot gradedqualityAmaintenanceEnables local batch image preparation for the web via MCP, including compression, resizing, metadata stripping, thumbnails, and favicon generation.27 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.