Skip to main content
Glama

instantiate_plan

Build a complete project plan in Onplana in one call: the project, its tasks and subtasks, epics and risks, with a start and due date on every task. Fits "plan a website launch", "turn this goal into a project with tasks and dates" and "set up a project plan for our office move". A first draft written from the conversation is a valid plan; every task stays editable afterwards. Each task carries estimatedDays, and every task gets a start and due date computed from it, laid out one after another, so the project opens with a filled timeline. This call takes no predecessors; link_dependency adds them afterwards. By default it CREATES A NEW PROJECT for the plan. Pass projectId to add the plan to a project that ALREADY EXISTS instead. Because it creates a project by default, calling create_project first and then this tool WITHOUT projectId produces two projects, one of them empty. When a project already exists, whether just created or named by the user, its id belongs in projectId. Attaching appends only: it never renames the project, never changes its owner, and never reschedules tasks that were already there. The plan carries projectTitle, scopeSummary, estimatedStart, estimatedEnd, tasks[] (title, priority, estimatedDays, optional description, subtasks[] and collaborators) and risks[]. On the create path the caller becomes project owner; attaching leaves the existing owner alone. A task the plan does not name an assignee for goes to the person the call is made for, not to the agent persona, so generating a plan does not put its tasks in the agent work queue that list_assigned_tasks reads. Optional epics[] group the tasks into phases or themes ("Design", "Build", "Launch"): each epic has a caller-defined ref, and a task joins one through task.epicRef. When epics is omitted, every task lands in the default "Initial Scope" epic (legacy behaviour). UNDO SEMANTICS DIFFER BY PATH, and the difference is destructive: a project this call CREATED is fully reversed by delete_project, because nothing else is in it. A project this call ATTACHED to is not, because delete_project destroys the pre-existing project and everything that was already in it, not just what this call added; on that path only the individual tasks this call created are safely removable. createdProject in the result distinguishes the two. Limits: up to 20 epics and 100 tasks per call (each task may carry subtasks[]); split a larger plan across calls or extend it afterward with bulk_create_tasks / add_subtasks. The result includes url, a direct link to the project in Onplana, and createdProject, false when the plan was added to a project that already existed, in which case the plan is an addition to the user's project rather than a new one. ALWAYS show that link in your reply: the user is working inside another app and has no other way to find the plan you just built.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "plan": "<plan>"
    },
    "name": "instantiate_plan"
  }
}

Input Schema

NameRequiredDescriptionDefault
planYes
projectIdNoOptional. Add this plan to an EXISTING project instead of creating one. Use it whenever the project is already there, including one you just created. Appends only: the project keeps its name, owner, description and existing task dates.
projectNameNoOptional override for the auto-derived name. Ignored when projectId is set, an existing project keeps its own name.
idempotencyKeyNoOptional idempotency key. Pass a stable unique value (e.g. a UUID) to make this create safe to retry: calling again with the same key within 24h - even from a new session after a reconnect - replays the original result and creates no duplicate. Org-scoped; works across conversations.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / idempotencyKey
      Added value: +{
      +  "description": "Optional idempotency key. Pass a stable unique value (e.g. a UUID) to make this create safe to retry: calling again with the same key within 24h - even from a new session after a reconnect - replays the original result and creates no duplicate. Org-scoped; works across conversations.",
      +  "type": "string"
      +}
  2. Changed3 schema fields changed
    • addedInput schema / properties / plan / properties / tasks / items / properties / collaborators
      Added value: +{
      +  "description": "People who work on this task besides its assignee, by user id, name or email. Added after the plan is built; anyone who cannot be added is reported in warnings.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / projectId
      Added value: +{
      +  "description": "Optional. Add this plan to an EXISTING project instead of creating one. Use it whenever the project is already there, including one you just created. Appends only: the project keeps its name, owner, description and existing task dates.",
      +  "type": "string"
      +}
    • changedInput schema / properties / projectName / description
      Previous value: -"Optional override for the auto-derived name."New value: +"Optional override for the auto-derived name. Ignored when projectId is set, an existing project keeps its own name."
  3. Added

TDQS

A4.8/5.0
Behavior5/5

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

Beyond annotations, the description discloses create-vs-attach behavior, append-only semantics on attach, ownership effects, default assignee behavior, default 'Initial Scope' epic behavior, task limits, and destructive undo differences between paths. These are exactly the behavioral details an agent needs before invoking a mutating tool, and they do not contradict 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.

Conciseness4/5

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

The description is front-loaded with purpose and examples, and most sentences carry operational value such as undo semantics, limits, and the required URL. It is still a long, dense paragraph with some repetition around projectId/createdProject behavior, so it could be tightened without losing meaning.

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 complex nested create/attach tool with no output schema, it supplies the missing context: result fields url and createdProject, undo caveats, owner/assignee behavior, epic defaults, limits, and dependency handling. An agent has enough information to choose the right path and avoid the most serious misuse.

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 description coverage is 75%, and the description adds substantial meaning beyond the schema: projectId changes the operation from create to attach, estimatedDays drives sequential start/due dates, epicRef links tasks to epics, and omitted assignees go to the call's subject. It does not discuss idempotencyKey or projectName in the main description, though both are documented in the schema, leaving a minor gap.

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 uses a specific verb and resource: 'Build a complete project plan in Onplana in one call' and enumerates the project, tasks, subtasks, epics, and risks. It distinguishes the tool from siblings by warning against calling create_project first without projectId and by noting link_dependency/bulk_create_tasks/add_subtasks as follow-up 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?

It gives explicit usage examples ('plan a website launch', 'set up a project plan for our office move') and states the key branching condition: default creates a new project, while projectId attaches to an existing one. It also warns against a common erroneous sequence with create_project and points to alternatives for larger plans or dependencies.

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.