Skip to main content
Glama

Assign or unassign (assignee null)

assign_issue

Assign or unassign (assignee null).

assignee is a user id (usr_…) or null to unassign.

WRITE: version = from your latest read (get_issue, list_comments, list_sprints, get_doc, read_file). 409 version_conflict (details.current, details.current_version): re-read, re-apply your change, retry — never overwrite blindly; when the changes disagree, ask the user.

Input Schema

NameRequiredDescriptionDefault
reasonNoSpec D144: why you make this change (≤ 200 characters). Optional, but give it when you act as an agent account — it is shown in the agent's run log ("moved KJ-12 To Do → In Progress because <reason>"). board-mcp records it in `agent.run`; board-core / board-files accept it and ignore it (it never changes the file, the version or the history).
versionYesOptimistic-lock version of the file; +1 on every write. Every write must send the version it read.
assigneeYesA person `usr_…` or an agent account `agt_…` (D144) that list_people shows for this project; anyone else → 400 validation_failed.
issue_keyYesIssue key `{PROJECT}-{n}`, e.g. `KJ-101`.
project_keyYesProject key, e.g. `KJ`. 2–10 chars, uppercase letters and digits, starts with a letter.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • changedInput schema / properties / assignee / anyOf
      Previous value: -[
      -  {
      -    "description": "User id: `usr_` + ULID.",
      -    "pattern": "^usr_[0-9A-HJKMNP-TV-Z]{26}$",
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "description": "Who an issue can be assigned to or @mentioned (spec D144): a person `usr_…` or an agent account `agt_…` listed by list_people for the project. One pattern (not anyOf) so generated types and MCP tool inputs stay a plain string.",
      +    "pattern": "^(usr|agt)_[0-9A-HJKMNP-TV-Z]{26}$",
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedInput schema / properties / assignee / description
      Added value: +"A person `usr_…` or an agent account `agt_…` (D144) that list_people shows for this project; anyone else → 400 validation_failed."
    • addedInput schema / properties / reason
      Added value: +{
      +  "description": "Spec D144: why you make this change (≤ 200 characters). Optional, but give it when you act as an agent account — it is shown in the agent's run log (\"moved KJ-12 To Do → In Progress because <reason>\"). board-mcp records it in `agent.run`; board-core / board-files accept it and ignore it (it never changes the file, the version or the history).",
      +  "maxLength": 200,
      +  "type": "string"
      +}
  2. First observed

TDQS

A4/5.0
Behavior4/5

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

Annotations declare readOnlyHint=false and destructiveHint=false, so the write safety profile is covered; the description adds real value beyond that with the optimistic-lock protocol and the 409 conflict recovery procedure. It does not address whether a new assignment notifies the assignee, which is the main behavioral unknown left.

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 action and the null-unassign rule, then the write/version protocol as a clearly separated block. Efficient, with no filler sentences; the only small cost is the redundant restatement of the title line.

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?

With a fully documented 5-param schema, annotations present, and no output schema to explain, the description covers everything an agent needs to invoke correctly: the unassign sentinel, version sourcing, and conflict handling. Missing notification semantics is a minor nicety, not a blocker.

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 coverage is 100%, so the baseline is 3. The description does add meaning beyond the schema for `version` (which tools to read it from, what to do on conflict), but its statement that assignee is 'a user id (`usr_…`) or null' omits the `agt_…` agent-account form the schema explicitly allows — slightly narrowing rather than enriching the parameter definition.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Assign or unassign') and pins the unassign case to assignee=null. It does not, however, distinguish itself from the sibling update_issue, which can plausibly also change an assignee — an agent must infer the difference.

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?

Gives explicit operational guidance: pass null to unassign, source `version` from a prior read (naming the specific read tools), and on 409 re-read/re-apply rather than overwrite, escalating to the user when changes conflict. It lacks a when-to-use-this-vs-update_issue statement.

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.

Resources