Bug: MCP board item labels sent as array instead of string

bug-mcp-board-labels-array Doc

bug resolved

Bug: MCP board item labels sent as array instead of string

Problem

create_board_item and update_board_item MCP tools return 422 when labels are provided: "Input should be a valid string". The API receives an array like ["arch:deployment","track:backend"] instead of the string "arch:deployment,track:backend". Even single-value strings get wrapped: ["value"].

Root Cause

The pal-e-docs-mcp tool layer is wrapping the labels parameter value in a list before sending it to the pal-e-docs API. The API's Pydantic model expects a plain string. Likely a type coercion issue in the MCP tool's parameter handling or SDK serialization.

Fix

  • Check pal-e-docs-mcp tool definitions for create_board_item and update_board_item
  • Ensure the labels parameter is passed as a string, not wrapped in an array
  • May also be an SDK issue in pal-e-docs-sdk — check how the SDK serializes the labels field

Impact

Blocks the template-ticket label conventions from being applied via MCP tools. Labels can only be set via direct API curl. First discovered during real-world ticket creation for Phase F12.

Acceptance Criteria

  • create_board_item(labels="arch:deployment,track:backend,type:bug") succeeds
  • update_board_item(labels="type:feature,scope:planned") succeeds
  • Existing single-label items (e.g. "status:approved") still work
  • pal-e-docs — project
  • template-ticket — defines the label conventions this bug blocks
  • Repos: forgejo_admin/pal-e-docs-mcp, possibly forgejo_admin/pal-e-docs-sdk