Builds a fresh MCP server per request with seven delegated BFB tools for task management, project listing, and agent context delivery
BFB MCP server has well-structured tool definitions with consistent naming (verb_noun pattern), complete input schemas with type constraints, and clear parameter descriptions. All 7 tools follow the bfb_ prefix convention. However, tool descriptions are brief (avg ~60 chars, below the 194-char baseline), lack WHEN/WHY guidance, and output schemas are not documented. Error handling and recovery guidance are absent. Pagination is implemented (limit/cursor) but result limits are not stated in descriptions. No tool annotations (readOnlyHint/destructiveHint) despite clear risk classifications in metadata.
Add a discussion comment to a task
Read agent-visible context for a task
Get one task by id within the delegated boundary
List projects accessible to the authenticated delegation
List tasks under the delegated boundary
Propose a root task or create a policy-bounded child task
Report bounded progress on a task
Tool descriptions are too brief (avg 60 chars vs 194-char baseline). Missing WHEN/WHY context and prerequisites. E.g., 'List projects accessible to the authenticated delegation' lacks guidance on when to call this vs other discovery tools.
Output schemas are not documented. LLMs cannot infer what fields list_projects returns, what structure get_context provides, or how to chain results to downstream tools. This forces agents to guess or fail.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk classifications in metadata (READ_ONLY vs WRITE). Agents cannot determine which tools are safe to retry or have side effects.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 56 | 2026-07-28+ | v2 |
Pagination limit constraints (1-100) are not stated in tool descriptions. Agents do not know the result cap or when to paginate. Baseline requires stating limits in descriptions.
No error handling or recovery guidance. Tools lack descriptions of failure modes, retryability, or what the LLM should do if a call fails (e.g., 'If task not found, try list_tasks first').