Skip to main content
Glama

plan_file_info

Read-onlyIdempotent

Returns file metadata (content_type, download_url, download_size, expires_at) for the report or zip artifact. Use artifact='report' (default) for the interactive HTML report (~700KB, self-contained with embedded JS for collapsible sections and interactive Gantt charts — open in a browser). Use artifact='zip' for the full pipeline output bundle (md, json, csv intermediary files that fed the report). While the task is still pending or processing, returns {ready:false,reason:"processing"}. Check readiness by testing whether download_url is present in the response. Once ready, present download_url to the user or fetch and save the file locally. Download URLs expire after 15 minutes (see expires_at); call plan_file_info again to get a fresh URL if needed. Terminal error codes: generation_failed (plan failed), content_unavailable (artifact missing). Unknown plan_id returns error code PLAN_NOT_FOUND.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
plan_idYesPlan UUID returned by plan_create. Use it to download the created plan.
artifactNoDownload artifact type: report or zip.report

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -{
      -  "$defs": {
      -    "ErrorDetail": {
      -      "properties": {
      -        "code": {
      -          "title": "Code",
      -          "type": "string"
      -        },
      -        "details": {
      -          "anyOf": [
      -            {
      -              "additionalProperties": true,
      -              "type": "object"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ],
      -          "default": null,
      -          "title": "Details"
      -        },
      -        "message": {
      -          "title": "Message",
      -          "type": "string"
      -        }
      -      },
      -      "required": [
      -        "code",
      -        "message"
      -      ],
      -      "title": "ErrorDetail",
      -      "type": "object"
      -    }
      -  },
      -  "properties": {
      -    "content_type": {
      -      "anyOf": [
      -        {
      -          "type": "string"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ],
      -      "default": null,
      -      "description": "Artifact content type.",
      -      "title": "Content Type"
      -    },
      -    "download_size": {
      -      "anyOf": [
      -        {
      -          "type": "integer"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ],
      -      "default": null,
      -      "description": "Artifact size in bytes.",
      -      "title": "Download Size"
      -    },
      -    "download_url": {
      -      "anyOf": [
      -        {
      -          "type": "string"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ],
      -      "default": null,
      -      "description": "Absolute URL where the requested artifact can be downloaded.",
      -      "title": "Download Url"
      -    },
      -    "error": {
      -      "anyOf": [
      -        {
      -          "$ref": "#/$defs/ErrorDetail"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ],
      -      "default": null
      -    },
      -    "sha256": {
      -      "anyOf": [
      -        {
      -          "type": "string"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ],
      -      "default": null,
      -      "description": "SHA-256 hash of artifact bytes.",
      -      "title": "Sha256"
      -    }
      -  },
      -  "title": "PlanFileInfoOutput",
      -  "type": "object"
      -}New value: +null
  2. Changed3 schema fields changed
    • addedInput schema / properties / plan_id
      Added value: +{
      +  "description": "Plan UUID returned by plan_create. Use it to download the created plan.",
      +  "title": "Plan Id",
      +  "type": "string"
      +}
    • removedInput schema / properties / task_id
      Removed value: -{
      -  "description": "Task UUID returned by plan_create. Use it to download the created plan.",
      -  "title": "Task Id",
      -  "type": "string"
      -}
    • changedInput schema / required
      Previous value: -[
      -  "task_id"
      -]New value: +[
      +  "plan_id"
      +]
  3. Added

TDQS

A4.9/5.0
Behavior5/5

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

The description discloses important behavioral traits not covered by annotations: returns {ready:false,reason:'processing'} while pending, download URLs expire after 15 minutes, terminal error codes (generation_failed, content_unavailable), and PLAN_NOT_FOUND for unknown IDs. This adds substantial context to the benign read-only/idempotent annotation hints.

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 front-loaded with the core purpose, then systematically covers artifact choices, readiness, URL expiration, and error conditions. Every sentence contributes unique information; length is justified by the tool's complexity and no content is redundant.

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

Completeness5/5

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

With no output schema, the description fully documents return values (metadata fields, ready:false response), error codes, and expiration behavior. It also explains how to use the results and the relationship to plan lifecycle. This is comprehensive for a 2-parameter, 1-required-parameter 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 input schema already covers both parameters with descriptions (100% coverage). The tool description goes beyond by explaining the semantic difference between artifact options ('report' = interactive HTML with embedded JS; 'zip' = full pipeline bundle of intermediate files), and describes plan_id as returned by plan_create. This adds value beyond the schema's enum and basic types.

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

Purpose5/5

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

The description states a specific purpose: 'Returns file metadata (content_type, download_url, download_size, expires_at) for the report or zip artifact.' It clearly distinguishes the two artifact types and the tool's role as a file info/download utility, which is distinct from sibling plan-management tools like plan_status or plan_create.

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

Usage Guidelines5/5

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

Detailed usage instructions are provided: when to use artifact='report' vs artifact='zip', how to check readiness by testing for download_url, what to do with the result, and how to handle expired URLs by calling again. This goes beyond simple when-to-use and includes actionable guidance.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.6/5.0
Disambiguation5/5

Each tool has a distinct, non-overlapping purpose within the PlanExe workflow. For example, example_plans and example_prompts serve different preparatory functions, while plan_create, plan_status, plan_stop, plan_resume, and plan_retry handle distinct lifecycle stages of plan generation. No tools appear to duplicate functionality, making selection clear for an agent.

Naming Consistency5/5

Tool names follow a highly consistent verb_noun pattern throughout, with all tools using snake_case and clear action-object pairs (e.g., plan_create, plan_status, plan_stop). The naming is predictable and readable, with no deviations in style or convention across the set.

Tool Count5/5

With 11 tools, the server is well-scoped for its purpose of generating and managing strategic project plans. Each tool serves a specific role in the workflow, from preparation (example_prompts, model_profiles) to creation (plan_create), monitoring (plan_status), lifecycle management (plan_stop, plan_resume, plan_retry), and feedback (send_feedback). The count is appropriate and avoids bloat or gaps.

Completeness5/5

The tool set provides complete coverage for the plan generation domain, including CRUD-like operations (create, list, status, stop, resume, retry) and supporting functions (examples, model selection, file retrieval, feedback). There are no obvious gaps; agents can handle the entire lifecycle from prompt drafting to plan retrieval and error recovery without dead ends.