Skip to main content
Glama
carve-mcp

carve-mcp

Official
by markup-carve

Check Carve publishing targets

carve_check_targets
Read-only

Compare a Carve document across HTML, Markdown, plain text, ANSI, GitHub, WordPress, and PDF targets to return target-specific warnings, losses, and fallbacks.

Instructions

Compare one Carve document across HTML, Markdown, plain text, ANSI, GitHub, WordPress, and PDF-stage profiles, returning target-specific warnings, losses, and fallbacks.

Input Schema

NameRequiredDescriptionDefault
sourceYesDocument source (maximum 1000000 UTF-8 bytes)
targetsNo

Output Schema

NameRequiredDescriptionDefault
sourceYes
summaryYes
targetsYes
versionsYes
compatibleYes
targetCountYes
receiptVersionYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changedv0.1.9
    • addedOutput schema / properties / receiptVersion
      Added value: +{
      +  "maximum": 1,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • addedOutput schema / properties / source
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "format": {
      +      "const": "carve",
      +      "type": "string"
      +    },
      +    "sha256": {
      +      "pattern": "^[0-9a-f]{64}$",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "format",
      +    "sha256"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / versions
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "engine": {
      +      "type": "string"
      +    },
      +    "mcp": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "engine",
      +    "mcp"
      +  ],
      +  "type": "object"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "compatible",
      -  "targetCount",
      -  "summary",
      -  "targets"
      -]New value: +[
      +  "receiptVersion",
      +  "source",
      +  "versions",
      +  "compatible",
      +  "targetCount",
      +  "summary",
      +  "targets"
      +]
  2. Addedv0.1.5

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, openWorldHint=false, destructiveHint=false, so the agent knows this is a safe, local read-only analysis. The description adds that it returns warnings, losses, and fallbacks per target, which is useful. However, it doesn't clarify the loss/warning severity model or whether it's purely diagnostic vs. mutating (it's clearly read-only per annotations). With annotations carrying the safety profile, a 3 is appropriate.

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, front-loaded sentence that efficiently lists the targets and return values. No wasted text, though it could be slightly more structured with explicit usage guidance.

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?

Output schema exists, so return values needn't be fully explained. The description covers the comparison scope, target list, and nature of results (warnings, losses, fallbacks). For a read-only diagnostic tool with annotations and output schema, this is largely complete, though explicit usage guidance relative to siblings is the main gap.

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

Parameters3/5

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

Schema coverage is 50% – the source parameter has a description (max bytes), but the targets array lacks a schema description, though its enum and default are visible. The description mentions the target profiles by name (HTML, Markdown, plain text, ANSI, GitHub, WordPress, PDF-stage), which aligns with the enum. It doesn't explain the default target set or the maxItems constraint, but adds some meaning by clarifying what each profile represents. Baseline 3 given partial coverage.

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?

States a specific verb (compare) and resource (one Carve document) across named target profiles, returning target-specific warnings/losses/fallbacks. This distinguishes it from siblings like carve_render or carve_format, though it doesn't explicitly name those as alternatives.

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

Usage Guidelines3/5

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

The description implies usage: checking how a document will fare across publishing targets. But it does not explicitly say when to use this versus carve_render, carve_format, or carve_lint, nor does it exclude scenarios. Usage is inferred rather than guided.

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