Bug: board item labels parameter sent as array instead of string #41
Labels
No labels
domain:backend
domain:devops
domain:frontend
status:approved
status:in-progress
status:needs-fix
status:qa
type:bug
type:devops
type:feature
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
forgejo_admin/pal-e-mcp#41
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Lineage
bug-mcp-board-labels-array(pal-e-docs bug note). Discovered during first real use oftemplate-ticketlabel conventions.Repo
forgejo_admin/pal-e-docs-mcpUser Story
As Betty Sue triaging board items
I want to set labels via
create_board_itemandupdate_board_itemMCP toolsSo that the traceability triangle label conventions from
template-ticketcan be appliedContext
create_board_item(labels="arch:deployment,track:backend,type:bug")returns 422: "Input should be a valid string." The pal-e-docs API receives an array["arch:deployment","track:backend","type:bug"]instead of the string"arch:deployment,track:backend,type:bug". Even single-value strings get wrapped:["value"]. Thetagsparameter oncreate_noteworks correctly with commas — same description, different behavior.Root cause is likely in how the MCP tool definition or SDK serializes the
labelsparameter. The SDK'screate_board_itemandupdate_board_itemmay havelabelstyped aslistinstead ofstr, or the MCP bridge infers list type from the comma-separated description.File Targets
Files to investigate and fix:
src/pal_e_docs_mcp/tools/boards.py(or wherever board item tools are defined) — checklabelsparameter type annotationpal-e-docs-sdk) also has the wrong type — if so, fix there tooFiles to compare:
src/pal_e_docs_mcp/tools/notes.py— thetagsparameter oncreate_noteworks correctly. Compare howtagsis typed vs howlabelsis typed.Acceptance Criteria
create_board_item(labels="arch:deployment,track:backend,type:bug")succeeds and stores labels as stringupdate_board_item(labels="type:feature,scope:planned")succeeds and replaces existing labels"status:approved") still worktagsparameter oncreate_notestill works (regression check)Test Expectations
create_board_itemwith multi-value labels string returns 200update_board_itemwith labels string returns 200PALDOCS_BASE_URL=... pytest tests/ -vConstraints
tagsis handled oncreate_note— use the same patternpal-e-docs-sdkif the SDK typeslabelsas listuvnot pip for dependency managementChecklist
Related
bug-mcp-board-labels-array— pal-e-docs bug note with full diagnosistemplate-ticket— blocked by this bug (label conventions can't be applied via MCP)