MCP server for Bitcoin Benji API — dual-rail paid tools (Lightning L402 sats + x402 USDC on Base with autopay). Sovereign on-prem AI + mempool intelligence.
Bitcoin Benji MCP exposes 26 tools via STDIO. Tool definitions are hardcoded in the TOOLS array with basic metadata (name, description, method, path, args). Critical deficiencies: (1) Most tool descriptions lack actionable context, they describe WHAT the tool does but not WHEN to use it or WHAT constraints apply. Example: 'ai_agent' has only 47 chars; 'ai_vision' lacks detail on image formats, size limits, or expected output structure. (2) Parameter schemas are present but many lack critical constraints, numeric params (since_seconds, max_sources) have no min/max bounds; string enums (max_length) are declared but other string params lack format/length constraints. (3) No output schemas documented anywhere, agents cannot predict response structure. (4) Security baseline unmet: no evidence of input validation, rate limiting, or credential isolation. (5) Error handling non-existent, no recovery guidance, no categorization of errors as retryable vs fatal. (6) Tool composition violates single-responsibility: ai_agent is a generic catch-all that duplicates ai_summarize, ai_translate, ai_extract, etc. (7) Parameter naming inconsistent: some tools use natural language (text, url), others use opaque API paths (path: '/bitcoin/tx-status'). (8) 16 of 26 tools are AI inference wrappers with generic descriptions borrowed from API docs, not optimized for LLM decision-making. Baseline expectation (from rubric) is 194 chars average for descriptions; this server averages ~80 chars with minimal disambiguation. No per-tool validation, no idempotency guarantees, no chaining IDs returned in responses.
General-purpose AI agent — handles any text task.
Classify text into your provided categories.
Generate code from a natural-language spec.
Code review for bugs, security, and performance issues.
768-dim embedding vector for RAG (single text or batch).
Explain any topic at the requested level.
Extract structured data from text (entities/contacts/dates/custom schema).
No output schemas documented. Agents cannot predict response structure, field names, or types. Required for tool chaining and error recovery.
Descriptions undersized and generic. Baseline is 194 chars average (rubric p90=392); this server averages ~80 chars. Descriptions lack WHEN to use, prerequisites, or disambiguation from similar tools. 18 tools have descriptions under 50 chars.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | 2026-07-28+ | v2 |
Fix grammar, spelling, and punctuation.
Summarize huge documents (~50K words) in one flat-fee call.
Extract all visible text from an image URL.
Multi-step web research + cited synthesis.
Rewrite text in a different style/tone.
Scrape & extract clean readable text from any URL.
Sentiment analysis with confidence score.
Summarize text (short/medium/long).
Convert a table image into JSON rows.
Translate between 100+ languages.
Vision QA over an image URL (Qwen3-VL, sovereign).
Exact fee quote for a planned tx: {inputs, outputs, target_blocks, input_type}.
Bitcoin fee estimates with trend analysis (next-block, 30-min, 1-hour) from a full node mempool.
Rolling 24h snapshots of mempool size and fees.
Live Bitcoin mempool state: tx count, byte size, fee histogram.
Recent Bitcoin block data: heights, tx counts, timestamps.
Recent whale alerts: large transfers, consolidations, distributions in the mempool.
EMA-based fee prediction with confidence + direction (rising/falling).
Lookup a Bitcoin transaction by txid: confirmations, fee, block height, mempool ETA.
Numeric parameters lack min/max bounds. since_seconds, max_sources, inputs, outputs, target_blocks have no constraints. Agents may pass invalid values (e.g. max_sources=-1, inputs=999999) without validation guidance.
No error handling or recovery guidance. Agents have no way to know if a failure is retryable, user-fixable, or fatal. No actionable error messages documented.
ai_agent is a catch-all generic tool that duplicates functionality of ai_summarize, ai_translate, ai_extract, ai_code_generate, etc. Violates single-responsibility principle and adds ambiguity to agent decision-making.
No input validation or security boundaries documented. No evidence of rate limiting, credential isolation, or protection against prompt injection. Tools accept free-form strings without sanitization hints.
Parameter descriptions missing or trivial for 14+ tools. 'max_length': 'string enum...' lacks guidance on output size expectations. 'question' in ai_vision lacks format or length constraints.
No idempotency guarantees documented. For write-capable tools (if any exist downstream), agents retrying on ambiguous failures risk duplicate side effects.
API key credential (BITCOIN_BENJI_API_KEY) hardcoded in environment variable exposure. No documentation on secure handling or secret injection best practices.
No pagination support documented for list tools. get_mempool_history, get_recent_blocks, get_whales could return large result sets. No limit/offset parameters visible.