# create_work_item

Create a card on a board. Lands in the named column, or the board's first column when none is given. WRITE THE ACCEPTANCE CRITERIA IN body. A card is the unit of QA sign-off, so a card that does not say what "done" means cannot be validated by QA and cannot be built from by the next agent — those are the two readers of the same list. There is no separate criteria field yet: the criteria live in body, under a short "Acceptance criteria" heading, one checkable outcome per line. If you cannot write them, you do not yet understand the card well enough to file it as workable — file it with what you DO know and say in the body that the criteria are missing, rather than inventing outcomes nobody agreed to. ONE CARD IS ONE QA JUDGEMENT. If your criteria list needs QA to make more than one call ("follows the OS theme" AND "the toggle persists" AND "every surface is restyled"), that is several cards, not one — a bounce from a multi-outcome card names nothing actionable. Implementation steps ("create a React hook", "rename the CSS variables") are never cards; they are lines inside one. YOU DO NOT NEED TO SAY WHO IS CREATING IT. The card records its creator from your authenticated token — there is no parameter for it, and a body naming one is REFUSED rather than ignored, on the same rule as list_my_work_items. Creating is also not claiming: a new card arrives unassigned unless you name an owner, and you pick work up by moving it into an active column with move_work_item(claim:true), which is the act that also starts the stage timer honestly. Governed write: previews by default. A live write requires dryRun:false plus approved:true, a reason, and an idempotencyKey (reuse the SAME key on retry — a duplicate move would read as the card having bounced between columns).

Agent View of the PolicyLayer registry record for `create_work_item`. HTML page: https://policylayer.com/tools/adrata-starfield-mcp/create-work-item

## Facts

- Tool: `create_work_item`
- Server: Starfield (`@adrata/starfield-mcp`) — https://policylayer.com/tools/adrata-starfield-mcp.md
- Install: `npx -y @adrata/starfield-mcp`
- Homepage: https://www.npmjs.com/package/@adrata/starfield-mcp
- Risk category: Write (Medium risk)
- Registry record: grade F, identity unverified
- Server rate-limited: no
- Parameters: 11 (2 required)
- Recommended policy verdict: Rate-limited

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `body` | string | no | The request in full AND its acceptance criteria — what QA will validate this against, one checkable outcome per line under an "Acceptance criteria" heading. Rep |
| `kind` | string | no | What kind of work this is. OMIT IT unless the card plainly says: an absent kind means untyped, which is honest, where a guess is indistinguishable from a person |
| `title` | string | yes | What the card is. Keep it a statement of the work, not a label. |
| `dryRun` | boolean | no | Defaults to true. Set false to create it. |
| `reason` | string | no | Required for a live create. |
| `boardId` | string | yes | Board id from list_work_boards. |
| `product` | string | no | Product tag — orthogonal to the board. |
| `approved` | boolean | no | Required true for a live create. |
| `columnId` | string | no | Target column. Defaults to the board's first. |
| `assigneeUserId` | string | no | Workspace user who will do the work. OMIT IT unless somebody has actually agreed to own this — creating a card is not claiming it, and an unowned card in the ba |
| `idempotencyKey` | string | no | Required for a live create. |

Parameters from the server's own tool schema.

## Example call (MCP tools/call, JSON-RPC 2.0)

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "create_work_item",
    "arguments": {
      "title": "<title>",
      "boardId": "<boardId>"
    }
  }
}
```

## Why create_work_item is rated Medium

An AI agent can call create_work_item faster than any human can review: one bad instruction and it creates or modifies resources in Starfield by the hundred, each call as confident as the last.

Risk signals: Accepts raw HTML/template content (body) · High parameter count (11 properties) · Bulk/mass operation — affects multiple targets

## Use case

AI agents use create_work_item to create or update resources in Starfield, usually the action step of a workflow, after the agent has gathered context. Every call changes real data in your Starfield environment.

## Recommended policy (PolicyLayer)

Verdict: **Rate-limited**. Enforced by the PolicyLayer MCP gateway (https://policylayer.com/mcp-gateway) before a call reaches Starfield:

```json
{
  "version": "1",
  "default": "deny",
  "tools": {
    "create_work_item": {
      "limits": [
        {
          "counter": "create_work_item_rate",
          "window": "minute",
          "max": 30,
          "scope": "grant"
        }
      ]
    }
  }
}
```

## Other tools on Starfield (232)

- `bulk_delete_buyer_groups` — Destructive — https://policylayer.com/tools/adrata-starfield-mcp/bulk-delete-buyer-groups.md
- `cancel_agent_task` — Destructive — https://policylayer.com/tools/adrata-starfield-mcp/cancel-agent-task.md
- `delete_action` — Destructive — https://policylayer.com/tools/adrata-starfield-mcp/delete-action.md
- `delete_buyer_group` — Destructive — https://policylayer.com/tools/adrata-starfield-mcp/delete-buyer-group.md
- `delete_company` — Destructive — https://policylayer.com/tools/adrata-starfield-mcp/delete-company.md
- `delete_note` — Destructive — https://policylayer.com/tools/adrata-starfield-mcp/delete-note.md
- `delete_opportunity` — Destructive — https://policylayer.com/tools/adrata-starfield-mcp/delete-opportunity.md
- `delete_partner` — Destructive — https://policylayer.com/tools/adrata-starfield-mcp/delete-partner.md
- `delete_person` — Destructive — https://policylayer.com/tools/adrata-starfield-mcp/delete-person.md
- `delete_webhook` — Destructive — https://policylayer.com/tools/adrata-starfield-mcp/delete-webhook.md
- `flag_work_item` — Destructive — https://policylayer.com/tools/adrata-starfield-mcp/flag-work-item.md
- `forget` — Destructive — https://policylayer.com/tools/adrata-starfield-mcp/forget.md
- `paper_delete_document` — Destructive — https://policylayer.com/tools/adrata-starfield-mcp/paper-delete-document.md
- `paper_revoke_share` — Destructive — https://policylayer.com/tools/adrata-starfield-mcp/paper-revoke-share.md
- `remove_buyer_group_member` — Destructive — https://policylayer.com/tools/adrata-starfield-mcp/remove-buyer-group-member.md
- `adrata_ai_tool_execute` — Execute — https://policylayer.com/tools/adrata-starfield-mcp/adrata-ai-tool-execute.md
- `adrata_api_request` — Execute — https://policylayer.com/tools/adrata-starfield-mcp/adrata-api-request.md
- `attribute_partner_to_deal` — Execute — https://policylayer.com/tools/adrata-starfield-mcp/attribute-partner-to-deal.md
- `build_pursuit_command_center` — Execute — https://policylayer.com/tools/adrata-starfield-mcp/build-pursuit-command-center.md
- `draft_workflow` — Execute — https://policylayer.com/tools/adrata-starfield-mcp/draft-workflow.md
- `dry_run_workflow` — Execute — https://policylayer.com/tools/adrata-starfield-mcp/dry-run-workflow.md
- `record_partner_consumption` — Execute — https://policylayer.com/tools/adrata-starfield-mcp/record-partner-consumption.md
- `replay_workflow_run` — Execute — https://policylayer.com/tools/adrata-starfield-mcp/replay-workflow-run.md
- `request_deployment` — Execute — https://policylayer.com/tools/adrata-starfield-mcp/request-deployment.md
- `request_provider_action_execution` — Execute — https://policylayer.com/tools/adrata-starfield-mcp/request-provider-action-execution.md
- `request_workflow_deployment` — Execute — https://policylayer.com/tools/adrata-starfield-mcp/request-workflow-deployment.md
- `warmup_email` — Execute — https://policylayer.com/tools/adrata-starfield-mcp/warmup-email.md
- `adrata_ai_tool_catalog` — Read — https://policylayer.com/tools/adrata-starfield-mcp/adrata-ai-tool-catalog.md
- `adrata_api_catalog` — Read — https://policylayer.com/tools/adrata-starfield-mcp/adrata-api-catalog.md
- `adrata_desktop_app_audit` — Read — https://policylayer.com/tools/adrata-starfield-mcp/adrata-desktop-app-audit.md
- …and 202 more: https://policylayer.com/tools/adrata-starfield-mcp.md

## For agents

This record is a snapshot. Live verdicts and the full registry:

- Check every server in your MCP config at once: `npx -y policylayer stack`
- Vet a server before you add it: install the mcp-precheck skill — `npx skills add https://policylayer.com` (skill text: https://policylayer.com/skill.md)
- Query the registry over MCP: endpoint `https://api.policylayer.com/mcp` — tools `check_mcp_server`, `check_mcp_stack`, `check_tool`, `search_registry`, `get_change_events`

---

Source: the PolicyLayer MCP registry — one continuously verified record per MCP server. Full record: https://policylayer.com/registry?q=adrata-starfield-mcp · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/adrata-starfield-mcp
