updateImprovement
Update an improvement (or a task — tasks share this row, but prefer the symmetric updateTask alias when working from getTask). Supports the full field set including checklist (tick-boxes with due dates + completion attribution) and acceptance_criteria (objects with per-row updated_by/at attributi...
This record as markdown: /tools/io-stablebaseline-sb/updateimprovement.md
What updateImprovement does on Stable Baseline
AI agents use updateImprovement to create or update resources in Stable Baseline, usually the action step of a workflow, after the agent has gathered context. Every call changes real data in your Stable Baseline environment.
| Parameter | Type | Required | Description |
|---|---|---|---|
type | string | — | |
title | string | — | |
status | string | — | |
is_task | boolean | — | Mark as task. Prefer setting type='task' instead — is_task is kept in sync from the type enum by a DB trigger. |
plan_id | string | — | Link to plan. Null to unlink. |
urgency | string | — | |
why_now | string | — | |
end_date | string | — | YYYY-MM-DD. |
metadata | object | — | |
owner_id | string | null | — | User UUID to assign as owner, or null to unassign. MUTUALLY EXCLUSIVE with owner_team_id — when switching from a user to a team owner, send `owner_id: null` in |
phase_id | string | — | Assign to phase. Null to unassign. |
position | number | — |
Parameters from the server's own tool schema.
Why updateImprovement is rated Medium
This tool creates or modifies data reversibly within a project/task management system. It updates task metadata, checklists, acceptance criteria, and work assignments—all standard Write operations. The versionTimestamp requirement indicates data changes are tracked and reversible rather than destructive.
From the tool's definition Tool explicitly performs update operations: 'Update an improvement', modifies 'the full field set including checklist and acceptance_criteria', assigns work via owner_id/owner_team_id parameters.
Risk signalsHigh parameter count (56 properties)
Attacks that exploit this kind of access
The rule that runs updateImprovement safely
PolicyLayer is an MCP gateway: it sits between your AI agents and Stable Baseline, and checks every tool call against a rule you set before the call runs. Nothing changes on the server itself. For updateImprovement, this is the rule to start with:
updateImprovement stays usable, but capped: an agent stuck in a loop can't make hundreds of changes a minute. Everything else on the server is denied unless you say otherwise.
The button opens the PolicyLayer dashboard: create your workspace, connect Stable Baseline, apply this rule, and every updateImprovement call is checked against it from then on.
Questions about updateImprovement
Update an improvement (or a task — tasks share this row, but prefer the symmetric updateTask alias when working from getTask). Supports the full field set including checklist (tick-boxes with due dates + completion attribution) and acceptance_criteria (objects with per-row updated_by/at attribution). Requires versionTimestamp from getImprovement for optimistic locking. Status transitions: blocked needs blocked_comment, rejected needs rejection_comment, done needs completion_comment. Assignment: pass owner_id=<uuid> to assign to a user, owner_team_id=<uuid> to assign to a team (mutually exclusive — a DB CHECK constraint enforces this). To unassign, pass owner_id=null AND owner_team_id=null. To switch from a user owner to a team owner, send owner_id=null, owner_team_id=<uuid> in the SAME call (sending only one side leaves the stale value and triggers the XOR check). Use listAssignablePrincipals or listTeams to discover valid IDs. It is categorised as a Write tool in the Stable Baseline MCP Server, which means it can create or modify data. Consider rate limits to prevent runaway writes.
updateImprovement accepts 12 parameters: type, title, status, is_task, plan_id, urgency, why_now, end_date, metadata, owner_id, phase_id, position. The full parameter table on this page comes from the server's own tool schema.
Register the Stable Baseline MCP server in PolicyLayer and add a rule for updateImprovement: allow, deny, rate-limit, or require approval. Point your MCP client at the PolicyLayer proxy URL and the rule is enforced on every call, before it reaches Stable Baseline. Nothing to install.
updateImprovement is a Write tool with medium risk. Write tools should be rate-limited to prevent accidental bulk modifications.
Yes. Add a rate_limit block to the updateImprovement rule in your PolicyLayer policy. For example, setting max: 10 and window: 60 limits the tool to 10 calls per minute. Rate limits are tracked per agent session and reset automatically.
Set action: deny in the PolicyLayer policy for updateImprovement. The AI agent will receive a policy violation error and cannot call the tool. You can also include a reason field to explain why the tool is blocked.
updateImprovement is provided by the Stable Baseline MCP server (https://api.stablebaseline.io/functions/v1/cloud-serve/mcp). PolicyLayer sits as a proxy in front of this server to enforce policies before tool calls reach the server.
More on Stable Baseline, and thousands of servers like it.
This server
Across the catalogue