Bug: MCP board item labels sent as array instead of string
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-mcptool definitions forcreate_board_itemandupdate_board_item - Ensure the
labelsparameter 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")succeedsupdate_board_item(labels="type:feature,scope:planned")succeeds- Existing single-label items (e.g.
"status:approved") still work
Related
pal-e-docs— projecttemplate-ticket— defines the label conventions this bug blocks- Repos:
forgejo_admin/pal-e-docs-mcp, possiblyforgejo_admin/pal-e-docs-sdk