Model Context Protocol (MCP) server that loads and executes WASM-based plugins
Two tools with minimal documentation. crypto-price has a basic description (47 chars) and a single required parameter with minimal context. fetch has a longer description (127 chars) but both tools lack parameter descriptions explaining format, constraints, or usage context. No output schemas are documented. Tool names lack action verbs (crypto-price should be get_crypto_price; fetch should be fetch_url). No error handling guidance, no pagination support, no idempotency markers. The plugin architecture via Extism WASM is innovative but tool definitions themselves are underdeveloped for LLM consumption.
Get the current price of a cryptocurrency in USD
Enables to open and access arbitrary text URLs. Fetches the contents of a URL and returns its contents converted to markdown
Tool names lack action verbs. 'crypto-price' should be 'get_crypto_price'; 'fetch' should be 'fetch_url'. LLMs infer intent from verb-noun patterns.
Parameter descriptions missing or trivial. 'symbol' param in crypto-price has only 'the cryptocurrency symbol/id (e.g., bitcoin, ethereum)', no format constraints, no list of valid symbols, no guidance on case sensitivity. 'url' param in fetch has no description at all.
No output schemas documented. LLMs cannot plan downstream calls or extract structured data. What fields does crypto-price return? Is it {price: number, symbol: string, timestamp: string}? Unknown.
No error handling guidance. If crypto-price receives an invalid symbol or fetch hits a 404, what does the tool return? How should the LLM recover? No recovery hints provided.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 37 | <=2025-11-25 | v2 |
fetch tool accepts arbitrary URLs with no rate limiting, timeout, or size constraints documented. Risk of runaway requests or context window exhaustion from large responses.