Skip to main content
Glama

Server Details

Deterministic CR80 pixel-geometry scaler. Callers supply the card and object pixel geometry; this MC

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
100.0% over 76 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
jdhart81/viridis-agent-fleet
GitHub Stars
0
Server Listing
viridis-agent-fleet

TDQS

B3.4/5.0

Scored across 4 tools

Disambiguation5/5

The four tools have clearly distinct roles: scaling, capture guidance, capability/contract description, and health reporting. An agent can easily determine which tool to use for each need.

Naming Consistency3/5

Names are readable snake_case, but the conventions are mixed: two single-word utilities (describe, health), a noun-phrase instruction tool, and a verb_noun main operation. There is no consistent verb_noun pattern across the set.

Tool Count5/5

Four tools is well-scoped for a narrow scaling utility: one core operation, one capture-guidance helper, and two service metadata/health tools. Nothing is excessive or clearly missing due to the count.

Completeness4/5

The surface covers the core scaling operation, capture guidance, contract discovery, and health status. For a numeric-geometry-only scaling service this is essentially complete, with only minor gaps such as no standalone input-validation or card-type metadata tool.

Available Tools

4 tools
credit_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.

NameRequiredDescriptionDefault
measurement_goalNo
objects_to_measureNo

Output Schema

NameRequiredDescription
dataNo
errorNo
fieldNo
resultNo
statusYes
messageNo
timestampNo
constraintNo
error_typeNo

TDQS

C2.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

It adds genuinely useful data-handling context the annotations do not convey: the image never leaves the caller and only numeric pixel geometry reaches SmartScale. That is real value. However, it says nothing about the tension with readOnlyHint=false — the description reads like a pure guidance-returning call, so an agent cannot tell whether anything is persisted.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with no padding and the privacy constraint front-loaded is good structure, but the density of undefined jargon ('CR80 pixel picking') means the brevity comes at the cost of comprehension rather than from efficiency.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the caller/image separation is covered. What is missing is any account of the two input parameters and any disambiguation from siblings, which for a tool in a four-tool family leaves a real gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% for measurement_goal and objects_to_measure, and the description mentions neither. Neither the schema nor the description explains what values measurement_goal accepts or what form objects_to_measure entries take, so the agent must guess before it can call the tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

It states a verb and a resource ('return safe capture guidance') but the resource is framed in compressed jargon ('upstream CR80 pixel picking') that only insiders will decode; CR80 is never expanded to 'credit-card-sized reference object'. It also gives no hint of how it differs from the sibling scale_objects_from_credit_card.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to call this versus scale_objects_from_credit_card or describe, and no prerequisites. The phrase 'upstream' gestures at a workflow position but leaves the agent to infer the trigger condition entirely.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

describeB
Read-onlyIdempotent
Inspect

Return SmartScale capabilities and input contract.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
dataNo
errorNo
fieldNo
resultNo
statusYes
messageNo
timestampNo
constraintNo
error_typeNo

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the description needn't restate safety. It adds only that the call surfaces the input contract, with no mention of response shape, versioning, or caching behavior; the annotations lower the bar and the description meets it only minimally.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single compact sentence with no filler. It is front-loaded with the key information, though 'capabilities and input contract' is compressed to the point of vagueness rather than economy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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 needn't be explained, and a zero-param read-only introspection tool is inherently simple. Still, the description never positions this tool relative to 'health' or explains what an agent should do with the returned contract, leaving a moderate gap for a discovery-oriented tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, which is the baseline-4 case per the rubric. The description correctly implies a no-argument introspection call, so there is nothing further the schema could be compensating for.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a verb ('Return') and an object ('SmartScale capabilities and input contract'), so the general intent is legible. However, 'capabilities and input contract' is abstract shorthand that doesn't tell an agent concretely what comes back, and there is no differentiation from the sibling 'health' tool, which could plausibly be confused with a capabilities check.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to call this versus 'health' or the other siblings, and no mention of calling it first to discover the contract. The agent must infer usage entirely from the name and the one-line summary.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

healthB
Read-onlyIdempotent
Inspect

Return SmartScale health status.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
dataNo
errorNo
fieldNo
resultNo
statusYes
messageNo
timestampNo
constraintNo
error_typeNo

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, non-destructive, and closed-world behavior, so the safety profile is known. The description adds only the basic purpose and no further behavioral context, such as what health statuses mean or whether the call has side effects or latency implications.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that front-loads the verb and resource. It contains no redundant or wasted wording.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple zero-parameter health-check tool with an output schema and full annotations, the description is nearly complete. It could clarify what 'health status' entails, but the output schema likely covers return values.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so there are no parameter semantics to document. The baseline score for a zero-parameter tool is 4, and the description does not need to compensate for any schema gaps.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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 does not explicitly distinguish itself from siblings like 'describe', but the health-check framing is sufficiently distinct.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to use this tool versus alternatives such as 'describe' or the scale/credit-card tools. A health check is implied, but no explicit context, exclusions, or prerequisites are provided.

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).
NameRequiredDescriptionDefault
objectsYes
image_idYes
request_idNo
payment_refNo
credit_card_pixel_widthYes
credit_card_pixel_heightNo

Output Schema

NameRequiredDescription
dataNo
errorNo
fieldNo
resultNo
statusYes
messageNo
timestampNo
constraintNo
error_typeNo

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare non-readonly, non-destructive, closed-world behavior. The description adds meaningful context beyond that: no image is uploaded, credit_card_pixel_height is used for a distortion check, payment_ref is consumed as paid escrow, and request_id supports retry-safe idempotency. It does not fully clarify the mutation or return side effects, but the output schema covers the response shape.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core operation and then uses a structured Args list efficiently. It avoids unnecessary prose, though the docstring style is slightly less immediately scannable than concise prose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the output schema exists and annotations cover the safety profile, the description is largely complete. It explains all inputs and notable behaviors such as escrow consumption and distortion checking, but lacks explicit usage guidance and alternative-tool routing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry parameter meaning, and it does. It documents all six parameters, including nested object requirements (pixel_width and pixel_height) and optional object fields, plus limits and purposes for request_id and payment_ref.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence states a specific verb and resource: scaling object pixel dimensions using a CR80 credit card reference. This is clear enough for an agent to understand the tool's core function, though it does not explicitly distinguish itself from sibling tools or explain what is produced.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not state when to use this tool versus alternatives, nor does it provide when-not-to-use guidance. The Args section implies prerequisites such as object pixel dimensions and a card pixel width, but usage context is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 4 tool updates
    • Changedcredit_card_photo_instructions12 fields changed
      • addedOutput schema / properties / constraint
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Constraint"
        +}
      • addedOutput schema / properties / data
        Added value: +{
        +  "default": null,
        +  "title": "Data"
        +}
      • addedOutput schema / properties / error
        Added value: +{
        +  "default": null,
        +  "title": "Error"
        +}
      • addedOutput schema / properties / error_type
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Error Type"
        +}
      • addedOutput schema / properties / field
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Field"
        +}
      • addedOutput schema / properties / message
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Message"
        +}
      • addedOutput schema / properties / result / default
        Added value: +null
      • removedOutput schema / properties / result / type
        Removed value: -"string"
      • addedOutput schema / properties / status
        Added value: +{
        +  "title": "Status",
        +  "type": "string"
        +}
      • addedOutput schema / properties / timestamp
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Timestamp"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "result"
        -]New value: +[
        +  "status"
        +]
      • changedOutput schema / title
        Previous value: -"credit_card_photo_instructionsOutput"New value: +"FleetToolResult"
    • Changeddescribe12 fields changed
      • addedOutput schema / properties / constraint
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Constraint"
        +}
      • addedOutput schema / properties / data
        Added value: +{
        +  "default": null,
        +  "title": "Data"
        +}
      • addedOutput schema / properties / error
        Added value: +{
        +  "default": null,
        +  "title": "Error"
        +}
      • addedOutput schema / properties / error_type
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Error Type"
        +}
      • addedOutput schema / properties / field
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Field"
        +}
      • addedOutput schema / properties / message
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Message"
        +}
      • addedOutput schema / properties / result / default
        Added value: +null
      • removedOutput schema / properties / result / type
        Removed value: -"string"
      • addedOutput schema / properties / status
        Added value: +{
        +  "title": "Status",
        +  "type": "string"
        +}
      • addedOutput schema / properties / timestamp
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Timestamp"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "result"
        -]New value: +[
        +  "status"
        +]
      • changedOutput schema / title
        Previous value: -"describeOutput"New value: +"FleetToolResult"
    • Changedhealth12 fields changed
      • addedOutput schema / properties / constraint
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Constraint"
        +}
      • addedOutput schema / properties / data
        Added value: +{
        +  "default": null,
        +  "title": "Data"
        +}
      • addedOutput schema / properties / error
        Added value: +{
        +  "default": null,
        +  "title": "Error"
        +}
      • addedOutput schema / properties / error_type
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Error Type"
        +}
      • addedOutput schema / properties / field
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Field"
        +}
      • addedOutput schema / properties / message
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Message"
        +}
      • addedOutput schema / properties / result / default
        Added value: +null
      • removedOutput schema / properties / result / type
        Removed value: -"string"
      • addedOutput schema / properties / status
        Added value: +{
        +  "title": "Status",
        +  "type": "string"
        +}
      • addedOutput schema / properties / timestamp
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Timestamp"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "result"
        -]New value: +[
        +  "status"
        +]
      • changedOutput schema / title
        Previous value: -"healthOutput"New value: +"FleetToolResult"
    • Changedscale_objects_from_credit_card14 fields changed
      • addedInput schema / properties / payment_ref
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Payment Ref"
        +}
      • addedInput schema / properties / request_id
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Request Id"
        +}
      • addedOutput schema / properties / constraint
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Constraint"
        +}
      • addedOutput schema / properties / data
        Added value: +{
        +  "default": null,
        +  "title": "Data"
        +}
      • addedOutput schema / properties / error
        Added value: +{
        +  "default": null,
        +  "title": "Error"
        +}
      • addedOutput schema / properties / error_type
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Error Type"
        +}
      • addedOutput schema / properties / field
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Field"
        +}
      • addedOutput schema / properties / message
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Message"
        +}
      • addedOutput schema / properties / result / default
        Added value: +null
      • removedOutput schema / properties / result / type
        Removed value: -"string"
      • addedOutput schema / properties / status
        Added value: +{
        +  "title": "Status",
        +  "type": "string"
        +}
      • addedOutput schema / properties / timestamp
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Timestamp"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "result"
        -]New value: +[
        +  "status"
        +]
      • changedOutput schema / title
        Previous value: -"scale_objects_from_credit_cardOutput"New value: +"FleetToolResult"
  2. 4 tool updates
    • First observedcredit_card_photo_instructions
    • First observeddescribe
    • First observedhealth
    • First observedscale_objects_from_credit_card

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Turns iPhone LiDAR scans, depth maps, room scans and reference-card photos into real-world measurements with uncertainty ranges, letting an AI client size cookware and scale recipes, check room and doorway fit, classify Amazon FBA size tiers and fees, and estimate moving or storage volume. It reports a ± and confidence level with every figure and states plainly when it is guessing.
    34
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Provides an MCP server that lets AI models build and patch typed SVG scenes, compute exact Bézier geometry, perceptual gradients and keyframe or spring motion, then rasterize the result to PNG or animated APNG and diff renders pixel-by-pixel. Ten math-backed tools replace guessed coordinates with deterministic geometry, color and animation output.
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Persistent 3D/2D spatial world model MCP server for AI agents. Entity tracking, object permanence, AABB collision simulation & view frustum projection via local SQLite.
    15
    168 npm
    19
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to build and edit 3D scenes as safe JSON shape recipes over MCP, then render PNG views of their own work on a pure-JavaScript CPU rasterizer with no GPU or browser. Agents can add, update, and remove objects, place them via terrain raycasts, control cameras and environment, and export or import OBJ geometry.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.