JPG.now MCP Server
Server Details
Convert JPG images to and from popular formats through MCP-compatible AI clients.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- chrisyau83/jpg-now
- GitHub Stars
- 0
TDQS
Scored across 4 tools
Each tool has a clearly distinct purpose: submitting a conversion, polling a job, browsing the converter catalog, and checking account usage. There is no overlap between the submit/status pair since one creates work and the other reads its result, and the preconditions (converter slug from list_converters) are explicit.
All four tools follow a strict verb_noun snake_case pattern: convert_image_url, get_api_usage, get_conversion_status, list_converters. The verbs (convert/get/list) accurately signal intent and are used consistently for their action classes.
Four tools is a tight, well-scoped surface that mirrors the core API workflow without redundancy. It is on the lean side and could arguably add one more submission path, but nothing listed feels wasted.
The full lifecycle is covered: discover converters, submit a job, poll status, retrieve a temporary download URL, plus usage/rate-limit introspection. Minor gaps remain—no cancellation of jobs, no batch submission, and no direct local-file upload path (only public URLs), but agents can work around these.
Available Tools
4 toolsconvert_image_urlConvert an image from a URLAInspect
Download a publicly accessible image or document URL, submit it to JPG.now using a converter slug, and optionally wait for the result. Private-network URLs and embedded URL credentials are rejected.
| Name | Required | Description | Default |
|---|---|---|---|
| width | No | ||
| height | No | ||
| quality | No | ||
| converter | Yes | ||
| source_url | Yes | ||
| strip_metadata | No | ||
| timeout_seconds | No | ||
| background_color | No | ||
| wait_for_completion | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare openWorldHint=true, readOnlyHint=false, and non-idempotent, and the description adds a real behavioral constraint beyond them: private-network URLs and embedded URL credentials are rejected. It still omits what happens if the wait times out and whether a pending job is left behind, so it is not fully transparent.
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 front-loaded sentences that describe the pipeline first and the rejection constraint second, with no filler. Every clause carries information an agent needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need no explanation, but for a 9-parameter, non-idempotent open-world tool the description should at least cover the resize/quality/metadata options and the async polling path. The security constraint is the only substantive addition.
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 0% across 9 parameters, so the description carries the full burden and largely fails: only source_url and converter (via 'converter slug') and wait_for_completion (via 'optionally wait') are hinted at. Width, height, quality, strip_metadata, timeout_seconds, and background_color get no meaning at all, and no accepted converter slugs are listed.
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 gives a concrete verb chain (download, submit, optionally wait) tied to a named service and a specific input, so the agent knows exactly what the tool does. It does not name siblings such as get_conversion_status, though 'optionally wait for the result' implies that async path exists.
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?
Usage is implied by 'optionally wait for the result', but the description never states when to set wait_for_completion=false or that the agent should then poll get_conversion_status, nor when to prefer this tool over re-using an existing job. Adequate but leaves the async workflow to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_api_usageGet JPG.now API usageARead-onlyInspect
Return the caller's JPG.now API credits, usage, and rate limit.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description usefully enumerates the three data categories returned (credits, usage, rate limit), but adds nothing about auth requirements or whether usage figures are live vs. cached.
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 efficient sentence with the resource front-loaded and zero filler. Nothing could be cut without losing 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 no-parameter read tool with an output schema and full annotation coverage, this is nearly complete. The return shape is deferred to the output schema, which is appropriate; only auth expectations and rate-limit semantics are unaddressed.
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?
Zero parameters, so the baseline is 4. The only semantic hint needed is that 'the caller's' data is resolved from authentication identity rather than a parameter, which the description conveys.
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 ('Return') and a precise resource ('the caller's JPG.now API credits, usage, and rate limit'), which is unambiguous and clearly distinct from the conversion-oriented siblings. No explicit sibling differentiation, but none is needed given the obvious domain separation.
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?
Usage is only implied — an agent can infer you'd call this to check quota or rate limits before performing conversions, but the description never states when to use it or names an alternative. No exclusions or prerequisites are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_conversion_statusGet conversion statusARead-onlyInspect
Check a JPG.now conversion job. A completed job includes an absolute, temporary download URL.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, so safety is covered. The description adds genuinely useful behavior — a completed job returns an absolute, temporary download URL, signaling that URLs expire. It omits other states (pending/failed), polling cadence, and whether URL retrieval is separate or included.
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 short sentences with zero filler, and the core purpose is front-loaded before the return-value detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return structure needn't be explained, and the temporary-URL note is a good addition. But for a status-checking tool, the set of possible job states and the polling/re-check expectation are left unstated, which an agent needs to use it 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?
Only one parameter, job_id, and schema description coverage is 0%, so the description must carry the meaning. The phrase 'conversion job' implies job_id identifies such a job, but it never says where the id comes from (presumably convert_image_url) or what happens with an invalid id.
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 — check a JPG.now conversion job — which an agent can distinguish from convert_image_url (which starts a job), get_api_usage, and list_converters. It stops short of naming the sibling it relates to, so differentiation is inferable rather than explicit.
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?
Usage is implied (poll this after kicking off a conversion) and the mention of a completed job hints at repeated checks, but nothing states when to call it, whether polling is expected, or that convert_image_url is the tool that produces the job_id. No exclusions or alternatives are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_convertersList JPG.now convertersARead-onlyInspect
Search the live JPG.now converter catalog and return valid converter slugs such as png-to-jpg, jpg-to-webp, pdf-to-jpg, and compress-jpg.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| search | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only behavior, and the description adds useful context that the catalog is 'live' and that the return values are valid converter slugs, with concrete examples. It does not disclose rate limits, pagination behavior, or authentication, but against the existing annotations the added return-shape detail is valuable.
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 front-loaded sentence with no wasted words. It puts the core action and return content first and uses examples efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so the description needn't explain return values, and annotations cover read-only safety. However, for a search tool with two parameters and no schema descriptions, the missing parameter guidance leaves an agent without enough information to use search and limit 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 0%, so the description must compensate for undocumented parameters. It mentions searching the catalog but does not explain the 'search' parameter or the 'limit' parameter, its default of 50, or its maximum of 100; the slug examples offer only indirect help.
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 verb and resource: 'Search the live JPG.now converter catalog and return valid converter slugs.' It distinguishes the tool from action-oriented siblings like convert_image_url and get_conversion_status by making clear this is catalog discovery, and it gives examples that concretize the output.
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 implies the tool is used to discover converter slugs through search, but it never explicitly says when to use this versus alternatives such as convert_image_url. There are no exclusions or prerequisites stated, so the agent must infer the usage context.
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.
4 tool updates
- First observed
convert_image_url - First observed
get_api_usage - First observed
get_conversion_status - First observed
list_converters
Related MCP Connectors
Convert images to PNG, JPEG, WebP, or AVIF through one public remote MCP tool.
Convert RAR archives to ZIP, 7Z and TAR through MCP-compatible AI clients.
41OCR, transcription, file extraction, and image generation for AI agents via MCP.
Generate images from Claude, ChatGPT, Cursor and Codex with 12 top AI image models. Up to 4 images per call, SVG vectorization, background removal, upscaling and image-to-video. Remote MCP with OAuth, no API keys.
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceEnables AI assistants to convert and process various document formats through an MCP server interface.-
- AlicenseNot gradedqualityFmaintenanceEnables AI image processing tools such as vectorization, background removal, upscaling, and logo generation from any MCP-compatible client like Claude Code or Cursor.4 npmMIT
- AlicenseNot gradedqualityCmaintenanceProvides AI agents with tools to convert images between formats and inspect image metadata, enabling seamless image processing within agent workflows.2 npm3MIT
- AlicenseNot gradedqualityCmaintenanceEnables MCP clients to generate and edit images through any OpenAI-compatible image API, saving results as local files and returning absolute paths for immediate use.9 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.