smartscale
Server Details
Deterministic CR80 pixel-geometry scaler. Callers supply the card and object pixel geometry; this MC
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- jdhart81/viridis-agent-fleet
- GitHub Stars
- 0
- Server Listing
- viridis-agent-fleet
TDQS
Scored across 4 tools
The primary tool, scale_objects_from_credit_card, is distinct from utility tools (health, describe). However, credit_card_photo_instructions overlaps somewhat in domain with the main scaling tool, as both relate to credit card imagery, though one is for capturing and the other for scaling. Overall, the boundaries are clear enough.
Two tools use verb_noun patterns (scale_objects_from_credit_card, credit_card_photo_instructions), but 'describe' and 'health' are single-word verbs, which deviates from the pattern. The naming is readable but not fully consistent.
With only 4 tools, the server feels slightly thin for a service that appears to be an image scaling API. However, the core function is present, and the utility tools are minimal. It is borderline acceptable, but could benefit from more modular tools.
The main scaling operation exists, but there is no way to retrieve past scaling results, update parameters, or delete records. The absence of any list/get/delete operations for scaled objects creates a dead end for agents that need to manage or verify prior work.
Available Tools
4 toolscredit_card_photo_instructionsCInspect
Return safe capture guidance for upstream CR80 pixel picking.
The image stays with the caller or upstream vision system; SmartScale only receives numeric pixel geometry.
| Name | Required | Description | Default |
|---|---|---|---|
| measurement_goal | No | ||
| objects_to_measure | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| error | No | |
| field | No | |
| result | No | |
| status | Yes | |
| message | No | |
| timestamp | No | |
| constraint | No | |
| error_type | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that the image is not sent to SmartScale, only numeric pixel geometry is received, which is key behavioral info. However, with no annotations, additional details like idempotency or side effects are missing.
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 extremely concise with two sentences, no fluff, and the key purpose is front-loaded.
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?
While the output schema exists, the description fails to contextualize the two input parameters, which are crucial for the agent to use the tool correctly. The overall guidance is incomplete for a tool with undocumented parameters.
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 description does not explain the parameters 'measurement_goal' and 'objects_to_measure' at all, leaving their purpose and values ambiguous. With 0% schema description coverage, this is a significant gap.
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 returns safe capture guidance for CR80 pixel picking, which is a specific action and distinguishes it from siblings like 'scale_objects_from_credit_card' which processes images. However, the term 'CR80 pixel picking' may be too technical and not immediately clear.
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 does not provide any explicit guidance on when to use this tool versus alternatives. It implies usage for obtaining capture guidance but fails to mention prerequisites or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
describeAInspect
Return SmartScale capabilities and input contract.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| error | No | |
| field | No | |
| result | No | |
| status | Yes | |
| message | No | |
| timestamp | No | |
| constraint | No | |
| error_type | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must convey behavioral traits. 'Return' implies a read-only operation, but no details about side effects or requirements are given. The simplicity of the tool (0 params) partially justifies the minimal description, but it could be more explicit.
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 sentence that directly states the tool's purpose with no unnecessary words.
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 has no parameters and an output schema, the description is nearly complete. It clearly states what is returned, but could briefly mention that it is a read-only introspection 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?
The input schema has zero parameters, so the baseline is 4. The description adds no parameter details, but none are needed.
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 returns 'SmartScale capabilities and input contract', using a specific verb and resource. It distinguishes from sibling tools like `credit_card_photo_instructions` and `scale_objects_from_credit_card`, which have different purposes.
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 no guidance on when to use this tool versus alternatives. It lacks context such as prerequisites or typical use cases, which is particularly needed given the sibling tools exist.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
healthAInspect
Return SmartScale health status.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| error | No | |
| field | No | |
| result | No | |
| status | Yes | |
| message | No | |
| timestamp | No | |
| constraint | No | |
| error_type | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries full burden of behavioral disclosure. It only states 'Return health status'—no mention of side effects, speed, or any traits beyond the basic operation. This adds little value over the tool name.
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 sentence that is perfectly concise and front-loaded. Every word is earned; no verbosity.
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, parameterless health check with an existing output schema, the description is nearly complete. It could briefly note the purpose (e.g., availability check) but is adequate as is.
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 no parameters, so schema coverage is 100%. With 0 parameters, the baseline is 4, and the description correctly does not attempt to describe nonexistent 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 uses a specific verb ('Return') and resource ('SmartScale health status'), making the tool's purpose clear. It distinguishes well from sibling tools like 'describe' or 'credit_card_photo_instructions' which operate on different domains.
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?
No guidance is given on when to use this tool versus alternatives. For a simple health check, the context is implied but not explicitly stated, leaving the agent without decision support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scale_objects_from_credit_cardAInspect
Scale object pixel dimensions using a standard CR80 credit card reference.
Args:
image_id: Caller-defined source identifier; no image is uploaded.
credit_card_pixel_width: Caller-supplied pixel width of a CR80-size card.
objects: Objects to scale. Each object needs pixel_width and pixel_height;
label, pixel_area, pixel_perimeter, and input confidence are optional.
credit_card_pixel_height: Optional caller-supplied height for distortion check.
payment_ref: Optional paid escrow reference consumed by the gateway.
request_id: Optional retry-safe idempotency key (maximum 128 characters).
| Name | Required | Description | Default |
|---|---|---|---|
| objects | Yes | ||
| image_id | Yes | ||
| request_id | No | ||
| payment_ref | No | ||
| credit_card_pixel_width | Yes | ||
| credit_card_pixel_height | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| error | No | |
| field | No | |
| result | No | |
| status | Yes | |
| message | No | |
| timestamp | No | |
| constraint | No | |
| error_type | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description reveals key behaviors: no image upload, caller-supplied dimensions, optional distortion check, payment ref consumed by gateway, and idempotency key. With no annotations, this provides adequate behavioral context, though it does not mention error handling or side effects.
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 front-loaded with a one-sentence summary followed by a structured Args section. It is informative without being overly verbose, though the Args list could be slightly trimmed without losing clarity.
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 (6 parameters, 3 required) and the existence of an output schema, the description covers all necessary aspects: parameter explanations, domain-specific details (CR80, distortion check), and optional fields. It is complete for an AI agent to use 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?
With schema description coverage at 0%, the description fully explains each parameter: image_id is a source identifier, credit_card_pixel_width is the card's pixel width, objects need pixel_width/height, etc. This adds significant meaning beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action ('Scale object pixel dimensions') and the reference method ('CR80 credit card'). It is specific and distinct from sibling tools, which are about instructions, description, and health.
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?
No explicit guidance on when to use this tool versus alternatives (e.g., if a different scaling method is needed). The description lacks when-not-to-use or context for choosing this over sibling tools.
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
- Changed
credit_card_photo_instructions12 fields changed- added
Output schema / properties / constraintAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Constraint" +} - added
Output schema / properties / dataAdded value: +{ + "default": null, + "title": "Data" +} - added
Output schema / properties / errorAdded value: +{ + "default": null, + "title": "Error" +} - added
Output schema / properties / error_typeAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Error Type" +} - added
Output schema / properties / fieldAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Field" +} - added
Output schema / properties / messageAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Message" +} - added
Output schema / properties / result / defaultAdded value: +null - removed
Output schema / properties / result / typeRemoved value: -"string" - added
Output schema / properties / statusAdded value: +{ + "title": "Status", + "type": "string" +} - added
Output schema / properties / timestampAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Timestamp" +} - changed
Output schema / requiredPrevious value: -[ - "result" -]New value: +[ + "status" +] - changed
Output schema / titlePrevious value: -"credit_card_photo_instructionsOutput"New value: +"FleetToolResult"
- Changed
describe12 fields changed- added
Output schema / properties / constraintAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Constraint" +} - added
Output schema / properties / dataAdded value: +{ + "default": null, + "title": "Data" +} - added
Output schema / properties / errorAdded value: +{ + "default": null, + "title": "Error" +} - added
Output schema / properties / error_typeAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Error Type" +} - added
Output schema / properties / fieldAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Field" +} - added
Output schema / properties / messageAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Message" +} - added
Output schema / properties / result / defaultAdded value: +null - removed
Output schema / properties / result / typeRemoved value: -"string" - added
Output schema / properties / statusAdded value: +{ + "title": "Status", + "type": "string" +} - added
Output schema / properties / timestampAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Timestamp" +} - changed
Output schema / requiredPrevious value: -[ - "result" -]New value: +[ + "status" +] - changed
Output schema / titlePrevious value: -"describeOutput"New value: +"FleetToolResult"
- Changed
health12 fields changed- added
Output schema / properties / constraintAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Constraint" +} - added
Output schema / properties / dataAdded value: +{ + "default": null, + "title": "Data" +} - added
Output schema / properties / errorAdded value: +{ + "default": null, + "title": "Error" +} - added
Output schema / properties / error_typeAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Error Type" +} - added
Output schema / properties / fieldAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Field" +} - added
Output schema / properties / messageAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Message" +} - added
Output schema / properties / result / defaultAdded value: +null - removed
Output schema / properties / result / typeRemoved value: -"string" - added
Output schema / properties / statusAdded value: +{ + "title": "Status", + "type": "string" +} - added
Output schema / properties / timestampAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Timestamp" +} - changed
Output schema / requiredPrevious value: -[ - "result" -]New value: +[ + "status" +] - changed
Output schema / titlePrevious value: -"healthOutput"New value: +"FleetToolResult"
- Changed
scale_objects_from_credit_card14 fields changed- added
Input schema / properties / payment_refAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Payment Ref" +} - added
Input schema / properties / request_idAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Request Id" +} - added
Output schema / properties / constraintAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Constraint" +} - added
Output schema / properties / dataAdded value: +{ + "default": null, + "title": "Data" +} - added
Output schema / properties / errorAdded value: +{ + "default": null, + "title": "Error" +} - added
Output schema / properties / error_typeAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Error Type" +} - added
Output schema / properties / fieldAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Field" +} - added
Output schema / properties / messageAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Message" +} - added
Output schema / properties / result / defaultAdded value: +null - removed
Output schema / properties / result / typeRemoved value: -"string" - added
Output schema / properties / statusAdded value: +{ + "title": "Status", + "type": "string" +} - added
Output schema / properties / timestampAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Timestamp" +} - changed
Output schema / requiredPrevious value: -[ - "result" -]New value: +[ + "status" +] - changed
Output schema / titlePrevious value: -"scale_objects_from_credit_cardOutput"New value: +"FleetToolResult"
4 tool updates
- First observed
credit_card_photo_instructions - First observed
describe - First observed
health - First observed
scale_objects_from_credit_card
Related MCP Connectors
Picas to millimeters, number discarded
Real Monte Carlo simulation of a compound event/conditional probability. Paid via x402.
Image header probing, bbox conversion, resize plans and colour maths. 4 of 6 free.
Related MCP Servers
- AlicenseAqualityBmaintenanceDeterministic AI data-center design engine exposed as MCP tools for sizing, validation, and physical layout. Supports NVIDIA Hopper, Blackwell, and Vera Rubin with anonymous access to the remote engine.33MIT
- AlicenseNot gradedqualityCmaintenanceA deterministic SVG perception tool for LLM agents that renders SVGs in a real browser to measure geometry, colors, and spatial constraints, reporting results in grid grammar and W3C color names without guessing.18 npmMIT
- AlicenseNot gradedqualityBmaintenanceA pixel-accurate visual toolbox MCP server for agents, enabling screen capture, pixel measurement, OCR, template matching, and visual regression with deterministic-first approaches.MIT
- AlicenseNot gradedqualityCmaintenanceLLM-native image optimization middleware & MCP server. Reduces vision model token consumption by preprocessing images into tile-boundary-aligned, padding-free formats.81 npm2Elastic 2.0
Glama MCP Gateway
Add one secure layer between your agents and this server.