Exposes Brief functionality as MCP tools for AI assistants to read, update, validate, and manage instruction files across multiple AI coding assistants (Claude, Copilot, Cursor, etc.)
Brief MCP Server has clear, well-structured tool definitions with good descriptions (avg 180 chars, within 10-1024 baseline). All 5 tools have explicit schemas with typed parameters. However, several tools lack parameter descriptions (e.g., brief.context has no description for 'project_path'), and output schemas are not documented. Error handling is minimal, no recovery guidance or actionable error messages. Tool naming follows verb_noun convention (read, update, validate, list, context) but lacks specificity about what 'context' returns. No tool annotations (readOnlyHint, destructiveHint) despite clear read/write distinctions. Composition is sound, tools chain logically (read → update, list → validate). Security model is documented but not enforced in visible code.
Analyze project context (languages, frameworks, test tools). Returns structured data about the project for context-aware updates. Safe read-only operation.
List all instruction files in a project. Returns file paths, types, and sizes. Safe read-only operation.
Read current instruction files in a project. Returns content of all discovered instruction files (AGENTS.md, CLAUDE.md, copilot-instructions.md, etc.). Safe read-only operation, no modifications made.
Update all instruction files with a new instruction. Adds the instruction to all discovered files with project context. WRITE OPERATION: Modifies files on disk. Use brief.read first to understand current state. Includes duplicate prevention and smart section detection.
Validate instruction file consistency. Checks that all files are syntactically valid and consistent. Safe read-only operation.
Output schemas not documented. LLMs cannot plan downstream calls or extract required fields. brief.read, brief.update, brief.validate, brief.list, brief.context all lack return type documentation.
Parameter descriptions missing or incomplete. 'project_path' in brief.context has no description. LLMs cannot infer what 'context' means or what format it expects.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). brief.update is clearly destructive but unmarked. brief.read is read-only but unmarked. Agents cannot infer safety properties.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 57 | <=2025-11-25 | v2 |
Error handling lacks recovery guidance. No error responses shown in code. Agents will not know whether to retry, ask user, or abort on failure.
brief.context description is vague ('Analyze project context'). Does not explain what 'context' means, what fields are returned, or when to call it instead of brief.list.