fix(gitea-mcp): address MCP tool issues from Sprint 6
Fixes #281 - Multiple MCP tool issues discovered during sprint execution ## Changes 1. **list_issues Token Overflow** (Issue 1) - Added `milestone` parameter to filter issues server-side - Reduces response size by filtering at API level instead of client-side 2. **Type Coercion for MCP Serialization** (Issues 2 & 4) - Added `_coerce_types()` helper function in server.py - Handles integers passed as strings (milestone_id, issue_number, etc.) - Handles arrays passed as JSON strings (labels, tags, etc.) - Applied to all tool calls automatically 3. **Sprint Approval Check Clarification** (Issue 3) - Updated sprint-start.md to clarify approval is RECOMMENDED, not enforced - Changed STOP/block language to WARN/suggest language - Added note explaining this is workflow guidance, not code-enforced ## Files Changed - mcp-servers/gitea/mcp_server/gitea_client.py: Added milestone param - mcp-servers/gitea/mcp_server/tools/issues.py: Pass milestone param - mcp-servers/gitea/mcp_server/server.py: Type coercion + milestone schema - plugins/projman/commands/sprint-start.md: Clarified approval check Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -98,6 +98,7 @@ class IssueTools:
|
||||
self,
|
||||
state: str = 'open',
|
||||
labels: Optional[List[str]] = None,
|
||||
milestone: Optional[str] = None,
|
||||
repo: Optional[str] = None
|
||||
) -> List[Dict]:
|
||||
"""
|
||||
@@ -106,6 +107,7 @@ class IssueTools:
|
||||
Args:
|
||||
state: Issue state (open, closed, all)
|
||||
labels: Filter by labels
|
||||
milestone: Filter by milestone title (exact match)
|
||||
repo: Override configured repo (for PMO multi-repo)
|
||||
|
||||
Returns:
|
||||
@@ -124,7 +126,7 @@ class IssueTools:
|
||||
loop = asyncio.get_event_loop()
|
||||
return await loop.run_in_executor(
|
||||
None,
|
||||
lambda: self.gitea.list_issues(state, labels, repo)
|
||||
lambda: self.gitea.list_issues(state, labels, milestone, repo)
|
||||
)
|
||||
|
||||
async def get_issue(
|
||||
|
||||
Reference in New Issue
Block a user