Skip to main content
Glama

Run Leanfare's parts of a plan

plan_run
Idempotent

Run a plan's parts in the background: free and local parts start immediately, paid parts run only within the user's cap, and progress is checked with plan_status.

Instructions

Start the parts of a plan that Leanfare runs (local, free and pay per use models), in the background: at once where they can, each as soon as the parts it needs are done, with their answers handed on. Returns at once; read the progress and the answers with plan_status. Parts on local or free models run without asking. Paid parts run only within the cap the user set in Leanfare, or when the user said yes: Leanfare asks them itself where this app can show a question; otherwise ask the user, and call again with paid yes only after they agree. The user's monthly budget in Leanfare always holds.

Input Schema

NameRequiredDescriptionDefault
idYesThe plan's id, from plan.
paidNoyes: the user agreed to the paid parts. Default no.
yours_doneNoYour parts that are done: Leanfare keeps them as rows, and the parts that waited for them run now, with these answers in their tasks.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.15.1

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare non-read-only, open-world, idempotent, non-destructive, so the description's job is to add context — and it does: background execution, dependency-ordered scheduling with answers handed downstream, immediate return, and a spending-authorization gate tied to the user's cap and monthly budget. It does not address what a repeat call does to already-finished parts despite the idempotentHint, leaving one behavioral question open.

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 core action and its async nature are front-loaded in the first two clauses, and the paid-gating rules follow in logical order. Sentences are long and clause-heavy, and the closing 'The user's monthly budget in Leanfare always holds' is terse to the point of ambiguity, but nothing is clearly wasted.

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 an async, no-output-schema tool, the description correctly explains that it returns immediately and delegates result-reading to plan_status, and it covers the one risky dimension — spending. Gaps remain around failure modes, what happens if the plan is already running, and re-invocation behavior, which matter for a tool with an idempotent hint.

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%, so the schema already documents id, paid, and yours_done thoroughly, including the enum meaning and default. The description adds workflow meaning around paid ('call again with paid yes only after they agree') and the answer-passing role of completed parts, but does not add syntax or edge-case detail beyond the schema, so this sits at the baseline-plus level.

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 specific verb and scoped resource: 'Start the parts of a plan that Leanfare runs', then narrows scope to local, free and pay-per-use models. It explicitly distinguishes itself from plan_status by naming that sibling as the way to read results, so an agent can tell the two apart without opening either schema.

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 gives a clear operating context: call this to execute, then use plan_status to follow progress, and it spells out the paid-consent procedure (Leanfare asks itself where a question can be shown, otherwise the agent must ask the user and re-call with paid=yes). What's missing is any explicit 'do not call when' condition, such as what to do if the plan is already running or already finished.

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