All notable changes to beads-mcp will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
mcp__beads__show()no longer crashes withpydantic literal_errorwhen an issue has dependency types beyond the original four (blocks,related,parent-child,discovered-from).DependencyTypeis nowstr, matching the pattern already used forIssueStatusandIssueType. The bd CLI remains the source of truth for validation. (GH#3133)
- Minor maintenance release
The ready() and list() MCP tools now return list[IssueMinimal] or CompactedResult instead of list[Issue]. This breaking change reduces context window usage by ~80%.
What changed:
ready()returnslist[IssueMinimal] | CompactedResult(waslist[Issue])list()returnslist[IssueMinimal] | CompactedResult(waslist[Issue])show()still returns fullIssue(unchanged)
IssueMinimal includes:
id,title,status,priority,issue_typeassignee,labels,dependency_count,dependent_count
IssueMinimal excludes (use show() for these):
description,design,acceptance_criteria,notescreated_at,updated_at,closed_atdependencies,dependents(full objects)
CompactedResult (returned when >20 results):
{
"compacted": True,
"total_count": 47,
"preview": [/* first 5 IssueMinimal */],
"preview_count": 5,
"hint": "Use show(issue_id) for full details"
}Migration guide:
-
Check for compacted results:
if isinstance(response, dict) and response.get("compacted"): issues = response["preview"] else: issues = response
-
Use
show()for full details:for issue in issues: full_issue = show(issue_id=issue.id) print(full_issue.description)
-
Available options for list operations:
brief=True- ReturnsBriefIssue(id, title, status, priority only)fields=["id", "title"]- Custom field projectionmax_description_length=100- Truncate descriptions
Rationale:
- Reduces context usage from ~400 bytes/issue to ~80 bytes/issue
- Prevents context overflow for large issue lists (>20 items)
- Encourages efficient "list then show" pattern for AI agents
See CONTEXT_ENGINEERING.md for full migration guide.
discover_tools()- Lightweight tool catalog for lazy schema loadingget_tool_info(tool_name)- On-demand tool detailsCompactedResultmodel for large result setsIssueMinimalmodel for list viewsBriefIssuemodel for ultra-compact responsesbrief,fields,max_description_lengthparameters for all list operations- Environment variables for compaction tuning:
BEADS_MCP_COMPACTION_THRESHOLD(default: 20)BEADS_MCP_PREVIEW_COUNT(default: 5)
See git history for changes prior to context engineering optimizations.