Skip to main content
Glama
Ownership verified

Server Details

MCP server for generating rough-draft project plans from natural-language prompts.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
PlanExeOrg/PlanExe
GitHub Stars
395
Server Listing
PlanExe

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.5/5 across 11 of 11 tools scored.

Server CoherenceA
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.

Available Tools

11 tools
example_plansA
Read-onlyIdempotent
Inspect

Returns a curated list of example plans with download links for reports and zip bundles. Use this to preview what PlanExe output looks like before creating your own plan. Especially useful when the user asks what the output looks like before committing to a plan. No API key required.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
plansYesCurated example plans with download links for reports and zip bundles.
messageYes
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is clear. The description adds valuable context beyond annotations: 'No API key required' and that the output is a curated preview. This is useful behavioral disclosure without contradicting annotations.

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 three sentences, front-loaded with the core function, then the usage scenario. Every sentence earns its place, with no redundant or filler content.

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?

The tool is simple (0 params, read-only), has an output schema, and annotations describe safety. The description fully covers purpose, usage, and access requirements, making it complete for an agent to decide when and how to invoke it.

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 the schema covers everything. Per the baseline for 0 params, a score of 4 is appropriate. The description adds no parameter-specific meaning, but none is needed.

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 verb ('Returns') and resource ('a curated list of example plans with download links for reports and zip bundles'). It distinguishes from siblings like plan_list by emphasizing 'curated' example plans rather than user-created ones, and the preview purpose is clear.

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

Usage Guidelines4/5

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

The description explicitly tells when to use the tool: 'to preview what PlanExe output looks like before creating your own plan' and 'especially useful when the user asks what the output looks like before committing to a plan.' It does not name alternative tools explicitly but implies the alternative is creating a plan, which is sufficient context.

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

example_promptsA
Read-onlyIdempotent
Inspect

Call this first. Returns example prompts that define what a good prompt looks like. Do NOT call plan_create yet. Optional before plan_create: call model_profiles to choose model_profile. Next is a non-tool step: formulate a detailed prompt (typically ~300-800 words; use examples as a baseline, similar structure) and get user approval. Good prompt shape: objective, scope, constraints, timeline, stakeholders, budget/resources, and success criteria. Write the prompt as flowing prose, not structured markdown with headers or bullet lists. Weave technical specs, constraints, and targets naturally into sentences. Include banned words/approaches and governance preferences inline. The examples demonstrate this prose style — match their tone and density. Then call plan_create. PlanExe is not for tiny one-shot outputs like a 5-point checklist; and it does not support selecting only some internal pipeline steps.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
messageYes
samplesYesExample prompts that define the baseline for what a good prompt looks like. Take inspiration from these when writing your own prompt for plan_create (typically ~300-800 words). Good prompt shape: objective, scope, constraints, timeline, stakeholders, budget/resources, and success criteria.
Behavior5/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds substantial behavioral guidance beyond annotations: it mandates the tool to be called first, warns against calling plan_create prematurely, and outlines the exact downstream workflow and prompt-style expectations. This is valuable context that annotations do not convey.

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 long but every sentence earns its place. It front-loads 'Call this first' and then provides a logically ordered sequence of actions, prompt shape guidelines, stylistic instructions, and a clear next step. Nothing is redundant or filler; the length is justified by the need to explain the non-tool step and workflow.

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?

Given there are no parameters and the tool has an output schema, the description is fully complete. It explains the tool's purpose, its place in the overall workflow, alternatives, and detailed follow-up actions. The agent has everything it needs to correctly invoke and use this 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 has zero parameters, so the baseline is 4. The description doesn't need to explain parameter semantics, and it doesn't; it focuses on usage guidance. Since there are no parameters to misinterpret, this score is appropriate.

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 clearly states that the tool returns example prompts and defines what a good prompt looks like. It also distinguishes this tool from siblings by positioning it as the first step and explicitly telling the agent not to call plan_create yet, making its unique role obvious.

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?

The description provides explicit when-to-use guidance: call this first, do not call plan_create yet, optionally call model_profiles, then follow a non-tool step, and only then call plan_create. It also includes clear exclusions for the overall workflow (PlanExe is not for tiny outputs and doesn't support selecting only some steps), giving an agent all the context needed to decide when this sequence is appropriate.

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

model_profilesA
Read-onlyIdempotent
Inspect

Optional helper before plan_create. Returns model_profile options with plain-language guidance and currently available models in each profile. If no models are available, returns error code MODEL_PROFILES_UNAVAILABLE.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
messageYesCaller guidance for selecting plan_create.model_profile.
profilesYesAvailable profile options and their model inventory.
default_profileYesDefault model profile used when plan_create.model_profile is omitted/invalid.
Behavior4/5

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

Annotations already cover read-only, idempotent, and non-destructive behavior. The description adds value by disclosing the specific error code 'MODEL_PROFILES_UNAVAILABLE' when no models are available, which is useful behavioral context beyond the annotations.

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 two sentences, front-loaded with the primary purpose and usage context, with no wasted words. It efficiently covers what the tool does, when to use it, and the error condition.

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?

Given the tool's simplicity (no params, output schema present, annotations complete), the description fully covers purpose, usage timing, and error behavior. No critical information is missing for an agent to select and invoke the tool correctly.

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 per the rubric the baseline is 4. The description does not need to explain any parameters, and the schema coverage is 100% vacuously.

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 clearly states the verb ('Returns') and resource ('model_profile options') with specific details about guidance and available models. It also positions the tool as a helper before plan_create, distinguishing it from siblings like plan_create and example_plans.

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

Usage Guidelines4/5

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

The phrase 'Optional helper before plan_create' explicitly indicates when to use this tool, and 'optional' implies it can be skipped. However, it doesn't name alternatives or provide exclusion criteria, so it stops short of a full when/when-not guideline.

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

plan_createA
Idempotent
Inspect

Call only after example_prompts and after you have completed prompt drafting/approval (non-tool step). PlanExe turns the approved prompt into a strategic project-plan draft (20+ sections) in ~10-20 min. Sections include: executive summary, interactive Gantt charts, investor pitch, project plan with SMART criteria, strategic decision analysis, scenario comparison, assumptions with expert review, governance structure, SWOT analysis, team role profiles, simulated expert criticism, work breakdown structure, plan review (critical issues, KPIs, financial strategy, automation opportunities), Q&A, premortem with failure scenarios, self-audit checklist, and adversarial premise attacks that argue against the project. The adversarial sections (premortem, self-audit, premise attacks) surface risks and questions the prompter may not have considered. Returns plan_id (UUID); use it for plan_status, plan_stop, plan_retry, and plan_file_info. To track progress, poll plan_status at reasonable intervals (e.g. every 5 minutes). Optionally, run curl -N <sse_url> in a background shell as a completion detector — the stream auto-closes on terminal state (completed/failed/stopped). If you lose a plan_id, call plan_list to recover it. If the same prompt + model_profile is submitted by the same user within a short window, the existing plan is returned (with deduplicated=true) instead of creating a new one. If you are unsure which model_profile to choose, call model_profiles first. If your deployment uses credits, include user_api_key to charge the correct account. Common error codes: INVALID_USER_API_KEY, USER_API_KEY_REQUIRED, INSUFFICIENT_CREDITS.

ParametersJSON Schema
NameRequiredDescriptionDefault
promptYes
start_dateNoOptional plan start date in ISO 8601 format with timezone offset (e.g. '2025-06-15T09:00:00+02:00'). When omitted, the plan starts now. Use this to set a past or future start date for the plan.
model_profileNoModel profile: baseline, premium, frontier, custom. Call model_profiles to inspect options.baseline

Output Schema

ParametersJSON Schema
NameRequiredDescription
plan_idYesPlan UUID returned by plan_create. Stable across plan_status/plan_stop/plan_file_info.
sse_urlNoOptional completion detector. Run `curl -N <sse_url>` in a background shell — the stream auto-closes when the plan reaches a terminal state (completed/failed/stopped). For structured progress data, use plan_status instead.
created_atYes
deduplicatedNoTrue when this response returns an existing plan instead of creating a new one (duplicate prompt + model_profile by the same user within the dedup window). Absent or None for newly created plans.
Behavior5/5

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

Despite idempotent/open-world annotations, description adds rich behavioral detail: async ~10-20 min generation, deduplication on repeated prompts, SSE stream auto-close, and credit/api_key handling. No contradiction with annotations.

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 long description, but the section list and operational details are purposeful for a high-stakes async creation tool. It opens with the most critical prerequisite and keeps related considerations in logical order, though a structured layout would improve scannability.

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?

Covers return value (plan_id), subsequent steps (plan_status, plan_retry, etc.), error codes, dedup behavior, and SSE completion detection. Despite no visible output schema, the description gives enough operational context to invoke and monitor the tool successfully.

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?

Input schema covers prompt, start_date, and model_profile with descriptions; description adds selection guidance for model_profile ('call model_profiles first') and credential handling (user_api_key for credits). This exceeds schema baseline but doesn't deeply explain start_date or prompt formatting.

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?

States a specific action: PlanExe turns the approved prompt into a strategic project-plan draft with 20+ sections. It explicitly differentiates the tool from siblings by requiring prior example_prompts and by returning a plan_id for downstream plan_* tools.

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?

Explicitly says 'Call only after example_prompts and after you have completed prompt drafting/approval.' Also tells when to use model_profiles, plan_status, and plan_list alternatives. Provides strong when-to-use and fallback guidance.

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

plan_file_infoA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
plan_idYesPlan UUID returned by plan_create. Use it to download the created plan.
artifactNoDownload artifact type: report or zip.report
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.

plan_listA
Read-onlyIdempotent
Inspect

List the most recent plans for an authenticated user. Returns up to limit plans (default 10, max 50) newest-first, each with plan_id, state, progress_percentage, created_at (ISO 8601), and a prompt_excerpt (first 100 chars). Use this to recover a lost plan_id or to review recent activity.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of plans to return (1–50). Newest plans are returned first.

Output Schema

ParametersJSON Schema
NameRequiredDescription
plansYesPlans for the authenticated user, newest first.
messageYesHuman-readable summary (e.g. how many plans were returned).
Behavior5/5

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

Annotations already declare readOnlyHint and idempotentHint, but the description adds valuable behavioral details: return fields, newest-first ordering, default/max limit, and 100-character excerpt. No contradictions with annotations.

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?

Two concise sentences with no fluff. Key purpose is front-loaded, and the second sentence adds practical use cases. Every word earns its place.

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?

For a simple list tool with one optional parameter and an output schema, the description is complete. It covers purpose, return format, limit behavior, and use cases, leaving no critical gaps.

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 100% and the schema already describes the limit parameter with default, min, max, and 'newest first' behavior. The description reiterates this without adding significant new meaning, so baseline 3 applies.

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 clearly states the tool lists recent plans for an authenticated user, with specific resource and scope. It also distinguishes from siblings like plan_create and plan_status by focusing on listing/recovering recent activity.

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?

Explicit usage guidance is provided: 'Use this to recover a lost plan_id or to review recent activity.' This tells the agent when to use it and implies alternatives for other operations.

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

plan_resumeAInspect

Resume a failed or stopped plan without discarding completed intermediary files. Plan generation restarts from the first incomplete step, skipping all steps that already produced output files. Use plan_resume when plan_status shows 'failed' or 'stopped' and plan generation was interrupted before completing all steps (network drop, timeout, plan_stop, worker crash). For a full restart or to change model_profile, use plan_retry instead. Only failed or stopped plans can be resumed. Returns PLAN_NOT_FOUND when plan_id is unknown and PLAN_NOT_RESUMABLE when the plan is not in failed or stopped state. Returns PIPELINE_VERSION_MISMATCH when the snapshot was created by a different pipeline version; use plan_retry instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
plan_idYesUUID of the failed plan to resume.
model_profileNoModel profile used for the resumed plan. Defaults to baseline.baseline

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
stateNoCurrent plan state after resume request.
plan_idNoPlan UUID that was resumed (same ID as the failed or stopped plan).
sse_urlNoOptional completion detector. Run `curl -N <sse_url>` in a background shell — the stream auto-closes when the plan reaches a terminal state (completed/failed/stopped). For structured progress data, use plan_status instead.
resumed_atNoUTC timestamp when the resume request was accepted.
resume_countNoNumber of times this plan has been resumed.
model_profileNoModel profile assigned to the resumed run.
Behavior5/5

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

The description provides rich behavioral detail beyond the annotations: it explains that completed files are not discarded, generation resumes from the first incomplete step, and it lists specific error codes (PLAN_NOT_FOUND, PLAN_NOT_RESUMABLE, PIPELINE_VERSION_MISMATCH) with guidance for the version mismatch case. This significantly exceeds the annotation flags and gives the agent a clear picture of the tool's side effects and failure modes.

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 a solid paragraph of seven sentences, each sentence contributing useful information (purpose, mechanics, usage conditions, alternatives, constraints, and errors). It is not as tight as a two-sentence description, but it remains well-structured and free of filler, making it easy to parse.

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?

With a 2-parameter schema fully described and an output schema present, the description covers all essential aspects: purpose, when to use, alternative tools, state constraints, and error conditions. It does not describe the exact return structure, but that is adequately delegated to the output schema. Minor gaps like explicit permission prerequisites are absent, but the error handling and context signals make the tool well-understood.

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?

The input schema already covers both parameters (plan_id and model_profile) with clear descriptions, achieving 100% schema coverage. The tool description adds little beyond the schema—it references model_profile only when directing users to plan_retry for changes, which reinforces but does not extend the schema semantics. Baseline 3 is appropriate.

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 clearly identifies the tool's purpose: resuming a failed or stopped plan while preserving completed intermediate files. It also distinguishes itself from plan_retry by stating that plan_retry is for full restarts or model_profile changes, which helps an agent differentiate between the two.

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?

The description explicitly states when to use plan_resume: when plan_status shows 'failed' or 'stopped' and interruption occurred before all steps completed. It also provides a clear alternative, plan_retry, for full restarts or changing model_profile, and specifies that only failed or stopped plans can be resumed.

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

plan_retryBInspect

Retry a plan that is currently in failed or stopped state. Pass the plan_id and optionally model_profile (defaults to baseline). The plan is reset to pending, prior artifacts are cleared, and the same plan_id is requeued for processing. Returns PLAN_NOT_FOUND when plan_id is unknown and PLAN_NOT_FAILED when the plan is not in failed or stopped state.

ParametersJSON Schema
NameRequiredDescriptionDefault
plan_idYesUUID of the failed plan to retry.
model_profileNoModel profile used for retry. Defaults to baseline.baseline

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
stateNoCurrent plan state after retry request.
plan_idNoPlan UUID that was retried (same ID as the failed or stopped plan).
sse_urlNoOptional completion detector. Run `curl -N <sse_url>` in a background shell — the stream auto-closes when the plan reaches a terminal state (completed/failed/stopped). For structured progress data, use plan_status instead.
retried_atNoUTC timestamp when the retry request was accepted.
model_profileNoModel profile assigned to the retry request.
Behavior1/5

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

This description directly contradicts the annotations: the annotation destructiveHint=false indicates the tool is not destructive, yet the description states 'prior artifacts are cleared'. Clearing artifacts is a destructive action. This is a serious inconsistency that fails to provide trustworthy behavioral disclosure, so the score is the minimum.

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 action and state condition, followed by behavior and error results. It contains no fluff and every sentence adds value. However, it is somewhat long and could be tightened without losing information, so it doesn't achieve a perfect 5.

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?

The description covers the main action, preconditions, behavioral effects, and error conditions. An output schema exists, so return value details are not required. The main gap is the contradiction with the destructiveHint annotation, which undermines trust, but the description itself is otherwise complete for an agent to decide and invoke the tool.

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 description coverage is 100% for both parameters. The description only restates what is already in the schema (e.g., 'model_profile defaults to baseline') without adding extra semantic meaning, such as type constraints, dependencies, or edge cases. Baseline of 3 is appropriate when the schema does the heavy lifting.

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 clearly states the action ('Retry'), the target resource ('a plan'), and the exact condition ('currently in failed or stopped state'). It is specific and unambiguous, but it does not explicitly compare or contrast with the sibling tool plan_resume, so it misses the full 5-point bar for sibling differentiation.

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

Usage Guidelines4/5

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

The description explicitly says the tool should be used when a plan is in 'failed or stopped state', which provides clear context for when to use it. However, it does not mention any alternatives or exclusions (e.g., when to use plan_resume instead), so it lacks explicit 'when-not-to-use' guidance that would earn a 5.

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

plan_statusA
Read-onlyIdempotent
Inspect

Returns status and progress of the plan currently being created. This is the primary way to check progress — it returns structured JSON with all progress fields. Poll at reasonable intervals (e.g. every 5 minutes): plan generation typically takes 10-20 minutes (baseline profile) and may take longer on higher-quality profiles. State contract: pending/processing => keep polling; completed => download is ready; failed => terminal error; stopped => user called plan_stop (consider plan_resume). progress_percentage is 0-100 (integer-like float); 100 when completed. Note: steps vary in duration — early steps complete quickly while later steps (review, report generation) take longer. Do not use progress_percentage to estimate time remaining. steps_completed and steps_total give the number of plan generation steps completed and expected (both nullable). current_step is the human-readable label of the most recently completed step (e.g. 'SWOT Analysis'). timing.last_progress_at is an ISO 8601 timestamp of the last progress update (null until the first worker update); use it to compute time-since-last-progress and detect stalls — a gap > 10 minutes with no progress change is a strong stall signal. files lists the most recent 10 intermediate outputs produced so far (files_count gives the total); use their updated_at timestamps as a secondary stall signal. When state is 'failed', the response includes an error dict with failure diagnostics: error.failure_reason (category: generation_error, worker_error, inactivity_timeout, internal_error, version_mismatch), error.failed_step (pipeline step active at failure), error.message (human-readable message), and error.recoverable (true => plan_resume may work, false => use plan_retry). The error dict is absent for non-failed states. Unknown plan_id returns error code PLAN_NOT_FOUND. Troubleshooting: pending for >5 minutes likely means queued but not picked up by a worker. processing with timing.last_progress_at unchanged for >10 minutes likely means stalled — call plan_stop then plan_retry. Fall back to file updated_at timestamps if last_progress_at is null. Report these issues to https://github.com/PlanExeOrg/PlanExe/issues .

ParametersJSON Schema
NameRequiredDescriptionDefault
plan_idYesPlan UUID returned by plan_create.
Behavior5/5

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

Annotations already declare read-only, idempotent, non-destructive, but the description adds substantial behavioral context: the full state machine (pending/processing/completed/failed/stopped), exact error dict structure, stall detection heuristics (>10 minutes), queuing threshold (>5 minutes), and the note that progress_percentage is an integer-like float. It even discloses that steps vary in duration, so time estimation is unreliable. No contradiction with annotations.

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 long but well-organized into a coherent flow: core purpose, state contract, field explanations, troubleshooting thresholds, and error diagnostics. It front-loads the key message and every sentence carries actionable information. Slight verbosity in repeating timing-related mentions (last_progress_at, updated_at) could be tightened, but the density justifies the length.

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 carries the burden of explaining the response shape, including all progress fields, the error dict, nullable fields, and timing semantics. It covers every state, provides concrete threshold values for detecting stalls/queues, and even links to the issue tracker for troubleshooting. This is complete for a complex state-monitoring tool.

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?

The single parameter plan_id is fully described in the schema ('Plan UUID returned by plan_create'), giving 100% schema coverage. The description adds only a minor behavioral detail about the PLAN_NOT_FOUND error for unknown plan_id, which is useful but not essential. Since the schema already carries the semantic weight, the description provides no significant additional parameter-level meaning.

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 opens with a clear and specific statement: 'Returns status and progress of the plan currently being created.' This names the exact resource (plan status) and the action (returns status/progress), and it differentiates from siblings like plan_list (list plans) and plan_file_info (file info) by highlighting 'currently being created' and 'primary way to check progress.'

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?

Explicitly positions itself as the primary progress-check tool and provides detailed polling guidance (every 5 minutes), state-contract triggers (keep polling, download ready, terminal error), and remediation steps (use plan_stop then plan_retry on stall; plan_resume on recoverable failure). It also advises using file updated_at as a fallback, giving clear when-to-use and when-to-alternate guidance.

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

plan_stopA
DestructiveIdempotent
Inspect

Request the plan generation to stop. Pass the plan_id (the UUID returned by plan_create). Stopping is asynchronous: the stop flag is set immediately but the plan may continue briefly before halting. A stopped plan will transition to the stopped state. If the plan is already completed or failed, stop_requested returns false (the plan already finished). Unknown plan_id returns error code PLAN_NOT_FOUND.

ParametersJSON Schema
NameRequiredDescriptionDefault
plan_idYesPlan UUID returned by plan_create. Use it to stop the plan creation.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
stateNoCurrent plan state after stop request.
stop_requestedNoTrue when stop request flag was set for a pending/processing task.
Behavior5/5

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

The description discloses asynchronous behavior (stop flag set immediately, plan may continue briefly), state transition to 'stopped', return semantics ('stop_requested returns false' for already finished plans), and error handling (PLAN_NOT_FOUND). These go far beyond the annotations, which only indicate destructive and idempotent 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 four sentences, front-loaded with the core action, and each sentence adds distinct value: usage, async behavior, state transition, and error cases. No redundant content.

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 one parameter, complete schema coverage, annotations, and an output schema, the description covers all necessary context: how to invoke, what to expect, edge cases, and error codes. It is fully sufficient for an agent to use the tool correctly.

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?

The schema description for plan_id already explains it as the UUID returned by plan_create. The tool description mirrors this without adding extra details about format or additional constraints. With 100% schema coverage, a baseline of 3 is appropriate.

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 clearly states the action 'Request the plan generation to stop' with a specific verb and resource. It distinguishes from siblings by focusing on the stop operation, whereas siblings like plan_create, plan_list, and plan_resume handle other phases.

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

Usage Guidelines4/5

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

The description provides clear context on when to use the tool: pass the plan_id from plan_create, and notes that already completed/failed plans don't need stopping. It does not explicitly name alternative tools or list when not to use it, but the behavior is well implied.

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

send_feedbackA
Idempotent
Inspect

Submit feedback about PlanExe — issues, impressions, or suggestions. Callable at any point in the workflow; fire-and-forget, never blocks. Use category to classify: mcp (MCP tools, SSE, plan_status, workflow), plan (the generated output files), code (PlanExe source), docs (documentation), other. Optionally attach to a plan via plan_id. Use rating (1-5) for sentiment: 1=strong negative, 3=neutral, 5=strong positive. Especially useful for reporting: SSE streams that close before plan completion, plan_status returning stale or inconsistent data, queue delays where workers are slow to pick up plans, and impressions of plan output quality after reviewing reports. Include specific details (plan_id, percentages, timestamps) when reporting issues.

ParametersJSON Schema
NameRequiredDescriptionDefault
ratingNoSentiment: 1=strong negative, 2=weak negative, 3=neutral, 4=weak positive, 5=strong positive.
messageYesFree-text feedback. Include environment context if reporting an issue.
plan_idNoOptional plan UUID to attach this feedback to.
categoryYesFeedback category: mcp, plan, code, docs, or other.

Output Schema

ParametersJSON Schema
NameRequiredDescription
messageYesConfirmation message.
feedback_idYesServer-generated UUID for this feedback entry.
received_atYesUTC timestamp when the feedback was received (ISO 8601).
Behavior4/5

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

Beyond the annotations (readOnlyHint=false, idempotentHint=true, destructiveHint=false), the description adds 'fire-and-forget, never blocks' and 'callable at any point', which are useful behavioral traits. These enrich the agent's understanding of side effects and execution semantics without contradicting any annotation.

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 a single, well-organized paragraph that front-loads the purpose. Each sentence contributes unique information: what, when, categories, rating, plan_id, use cases, and reporting tips. It is dense but not bloated, with every sentence earning its place.

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 presence of an output schema and annotations, the description does not need to explain return values or safety profiles. It thoroughly covers when to use, how to categorize, rating semantics, plan_id linkage, and practical examples of useful feedback. It omits error handling or prerequisites, but these are less critical for a feedback submission 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?

Schema coverage is 100%, so the baseline is 3, but the description adds significant value by expanding the category values (mcp, plan, code, docs, other) with practical sub-contexts (e.g., mcp includes SSE and plan_status). It also clarifies the rating scale and advises including plan_id and specific details, which goes beyond the schema descriptions.

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 opens with 'Submit feedback about PlanExe' — a specific verb and resource, which clearly distinguishes it from sibling tools focused on plan management, models, and examples. It also mentions the range of feedback (issues, impressions, suggestions) and states it is callable at any point, making its purpose unmistakable.

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

Usage Guidelines4/5

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

It explicitly states when to use the tool ('Callable at any point in the workflow') and enumerates concrete scenarios (SSE streams closing, stale plan_status, queue delays, reviewing plan output quality). While it does not provide explicit exclusions or alternatives, the unique nature of a feedback tool means alternatives are unnecessary; the context is clear enough.

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

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.