Custom MCP Server for BSV development providing context and tools for development
This MCP server has significant definition quality gaps. Three tools are implemented (brc_lookup, code_search, find_function_definition), but all suffer from incomplete parameter descriptions and missing output schema documentation. The source code shows tool definitions via server.tool() calls, but parameter descriptions are truncated with '...' placeholders in the visible code. Tool names are reasonably verb-forward (brc_lookup, code_search, find_function_definition), but lack the clarity needed for LLM selection. Error handling exists (try/catch blocks, error responses) but error messages are often generic. No tool annotations (readOnlyHint, destructiveHint) are present despite all being READ_ONLY tools. Output schemas are not documented, callers cannot know what fields to expect. The brc_lookup tool shows the best structure with category-aware searching and identifier normalization, but lacks comprehensive parameter documentation.
Retrieve the content of a specific BRC (Bitcoin Request for Comment) from the local clone of bitcoin-sv/BRCs repository.
Search for code snippets in BSV repositories
Locate potential definitions of a function across BSV repositories
Parameter descriptions are incomplete or placeholder text ('...'), visible in code for all three tools. LLMs cannot determine what values are valid or expected.
Output schemas are not documented. Callers cannot know what fields the tools return, making it impossible for LLMs to chain calls or extract the right data for downstream operations.
All three tools are READ_ONLY but lack tool annotations (readOnlyHint). LLMs cannot determine safety status without examining implementation details.
brc_lookup and code_search descriptions are present but generic (60-80 chars). code_search description is truncated in the source: 'Search for code snippets...', incomplete and vague about repository scope, search semantics, and output format.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 45 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 45 | - | v1 |
code_search and find_function_definition accept optional repository_name parameter but no description of valid repository names or how to discover them. LLMs cannot know what values to pass.
code_search accepts file_extension parameter but no constraints documented (e.g., does it accept '.ts' or 'ts'? Does it support wildcards?). Implementation uses '-g' with filePattern but description provides no guidance.
brc_lookup accepts brc_identifier parameter with description placeholder. No clear format guidance (does it accept '1', '0001', 'BRC-1'? All three?). Code handles normalization internally, but LLM won't know valid formats without description.
Error messages are helpful in brc_lookup (e.g., 'BRCs repository directory not found at...') but code_search and find_function_definition error handling is minimal. No recovery guidance for 'search command failed' or similar errors.