Fix beads-mcp workspace context persistence and buffer overflow

Fixes bd-ww0g - Two critical bugs in beads-mcp v0.21:

1. "No workspace set" error after successful set_context:
   - Root cause: os.environ doesn't persist across MCP tool calls
   - Solution: Added module-level _workspace_context dict (server.py)
   - Modified set_context(), with_workspace(), where_am_i() to use persistent storage

2. "chunk longer than limit" MCP buffer overflow:
   - Root cause: Large issue lists exceed MCP stdio buffer limits
   - Solution: Reduced default list limit from 50 to 20
   - Strip dependencies/dependents from list() and ready() responses
   - Full details still available via show() command

Files changed:
- integrations/beads-mcp/src/beads_mcp/server.py
- integrations/beads-mcp/src/beads_mcp/models.py

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Steve Yegge
2025-11-07 16:54:17 -08:00
parent f1f144dbf3
commit c81c1653fd
3 changed files with 217 additions and 163 deletions

View File

@@ -119,7 +119,7 @@ class ListIssuesParams(BaseModel):
priority: int | None = Field(default=None, ge=0, le=4)
issue_type: IssueType | None = None
assignee: str | None = None
limit: int = Field(default=50, ge=1, le=1000)
limit: int = Field(default=20, ge=1, le=100) # Reduced to avoid MCP buffer overflow
class ShowIssueParams(BaseModel):