Skip to main content
Glama

Pull board

pull
Idempotent

Bring online board tasks and file bytes into the local project, merging fields without deleting local-only data; use it after working in another checkout or on the web.

Instructions

Pull the online board into the local task store: the inverse of a push. ADDITIVE and never destructive — tasks and files the board holds are added or merged field-by-field into .vibeflow/, local-only data is never dropped, and nothing is ever deleted. On a conflicting field the LOCAL value wins by default, except status, which follows the remote record (the board is truth for workflow state) unless preferLocal restores local-wins for it; pass preferRemote to let the remote value win on every conflicting field instead. A second pull of an unchanged board is a byte-no-op (unchanged tasks are not rewritten, identical files untouched). Pass dryRun to preview the pull without writing anything. Use it to bring a board's tasks and file bytes local after working in another checkout or on the web; use list_tasks to browse without writing, and push to send local work up.

Input Schema

NameRequiredDescriptionDefault
outNoProject root to write into instead of the server's own project (same as the CLI's --out flag). Omit to pull into the current project.
boardNoBoard to pull from. Omit to use the saved board (same rule as the CLI's --board flag).
dryRunNoPreview only: report what WOULD be pulled without writing anything (same as the CLI's --dry-run flag).
preferLocalNoRestore local-wins for `status` (same as the CLI's --prefer-local flag). Default false: status follows the remote record.
preferRemoteNoOn a conflicting field the REMOTE value wins (same as the CLI's --prefer-remote flag). Default false: the local value wins and nothing is ever deleted. `status` always follows the remote record unless preferLocal is set.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.22.0

TDQS

A4.7/5.0
Behavior5/5

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

Annotations say only that it is non-destructive and idempotent; the description earns its keep by spelling out the merge model (field-by-field, local-only data retained), the conflict-resolution rule with the `status` exception, and that a repeat pull is a byte-no-op. That is exactly the behavioral detail annotations cannot express.

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?

Front-loaded with the core action and the additive guarantee, and each subsequent sentence carries a distinct rule. It runs long as a single dense paragraph, and the nesting of preferLocal/preferRemote/status takes re-reading, costing a point.

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 a zero-required-param, no-output-schema tool, the description covers mutation semantics, conflict policy, idempotency and dryRun preview. The remaining gap is what the dryRun report or pull result actually contains, which nothing else documents.

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 real semantic value the schema cannot: how preferLocal and preferRemote interact on conflicting fields and that `status` is the exception. It doesn't explain `out` beyond what the schema already says, so not a 5.

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 verb and resource ('Pull the online board into the local task store') and immediately frames it as 'the inverse of a push', which anchors it against a sibling. An agent can distinguish it from push and list_tasks without inspecting any schema.

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 names the situations to use it (after working in another checkout or on the web) and routes the agent to alternatives: list_tasks for browsing without writing, push for sending work up. This is genuine when/when-not guidance, not implied usage.

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