[Debug] Projman MCP tool issues discovered during Sprint 6 #281

Closed
opened 2026-01-28 20:52:21 +00:00 by lmiranda · 0 comments
Owner

Summary

Issues discovered while running projman commands during Sprint 6 execution.

Issues

1. list_issues Token Overflow

Symptom: list_issues(state="all") returned 123,350 characters, exceeding Claude's token limit.

Current workaround: Pipe output through jq to filter by milestone.

Suggested fix: Add milestone parameter to list_issues to filter server-side:

list_issues(state="all", milestone="Sprint 6 - Visual Branding Overhaul")

Files: mcp-servers/gitea/src/gitea_mcp/server.py


2. get_milestone Type Validation Inconsistency

Symptom: First call with milestone_id=22 failed with:

Input validation error: '22' is not of type 'integer'

Behavior: Second identical call worked without changes.

Likely cause: MCP parameter serialization - sometimes passes as string instead of integer.

Suggested fix: Add type coercion in the handler:

milestone_id = int(milestone_id)

Files: mcp-servers/gitea/src/gitea_mcp/server.py


3. Sprint Approval Check Not Enforced

Observation: sprint-start command documentation says it should check for ## Sprint Approval section in milestone description, but:

  • Sprint 6 milestone has no approval section
  • Execution proceeded anyway without warning

Suggested fix: Either:

  1. Enforce the check and block execution without approval
  2. Or remove the requirement from documentation if not implemented

Files: plugins/projman/commands/sprint-start.md


4. create_issue Labels Parameter Type Error

Symptom: Creating issue with labels array fails:

Input validation error: '["Type/Bug", "Complexity/Moderate"]' is not of type 'array'

Likely cause: Same MCP serialization issue - array passed as string.

Files: mcp-servers/gitea/src/gitea_mcp/server.py

Priority

Medium - These are quality-of-life improvements, not blockers.

Labels

Type/Bug, Complexity/Moderate, Priority/Medium

## Summary Issues discovered while running projman commands during Sprint 6 execution. ## Issues ### 1. list_issues Token Overflow **Symptom:** `list_issues(state="all")` returned 123,350 characters, exceeding Claude's token limit. **Current workaround:** Pipe output through jq to filter by milestone. **Suggested fix:** Add `milestone` parameter to `list_issues` to filter server-side: ```python list_issues(state="all", milestone="Sprint 6 - Visual Branding Overhaul") ``` **Files:** `mcp-servers/gitea/src/gitea_mcp/server.py` --- ### 2. get_milestone Type Validation Inconsistency **Symptom:** First call with `milestone_id=22` failed with: ``` Input validation error: '22' is not of type 'integer' ``` **Behavior:** Second identical call worked without changes. **Likely cause:** MCP parameter serialization - sometimes passes as string instead of integer. **Suggested fix:** Add type coercion in the handler: ```python milestone_id = int(milestone_id) ``` **Files:** `mcp-servers/gitea/src/gitea_mcp/server.py` --- ### 3. Sprint Approval Check Not Enforced **Observation:** `sprint-start` command documentation says it should check for `## Sprint Approval` section in milestone description, but: - Sprint 6 milestone has no approval section - Execution proceeded anyway without warning **Suggested fix:** Either: 1. Enforce the check and block execution without approval 2. Or remove the requirement from documentation if not implemented **Files:** `plugins/projman/commands/sprint-start.md` --- ### 4. create_issue Labels Parameter Type Error **Symptom:** Creating issue with labels array fails: ``` Input validation error: '["Type/Bug", "Complexity/Moderate"]' is not of type 'array' ``` **Likely cause:** Same MCP serialization issue - array passed as string. **Files:** `mcp-servers/gitea/src/gitea_mcp/server.py` ## Priority Medium - These are quality-of-life improvements, not blockers. ## Labels Type/Bug, Complexity/Moderate, Priority/Medium
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: personal-projects/leo-claude-mktplace#281