Composite MCP server providing writing tools, stock analysis tools, and weather tools with support for sampling-based LLM integration
This server exhibits significant quality issues across naming, descriptions, and schema completeness. While tool schemas are present and mostly well-formed (JSON Schema with types and descriptions), there are critical problems: (1) Duplicate tool names ('generate_poem' appears twice with different signatures), creating LLM confusion about which variant to call. (2) Descriptions are present but often generic and lack actionable context, e.g., 'Ping endpoint to verify MCP compose is operational' does not explain WHEN or WHY an LLM should call it. (3) Several tools lack proper error recovery guidance. (4) The 'ping' tool should not exist in a production MCP server (removed in current spec). (5) Parameter descriptions are minimal in some cases (e.g., 'topic' in generate_poem lacks context about length, style, or expected output format). (6) No tool demonstrates idempotency hints, destructive action warnings, or recovery guidance. Stock tools are well-structured but writing_tools are incomplete (chat_with_docs function body cuts off mid-implementation). Average tool score: 38/100.
Allows users to ask questions about documents in the 'docs' resource. 'doc_name' can be a full or partial filename (e.g. 'paul_graham').
Generates a short poem about a given topic
Generates a short poem about a given topic
Generates a summary based on a document
Computes the compounded annual growth rate (CAGR) of a stock ticker of interest.
Gets stock prices for tickers of interest. Args: ticker_list (TickerList): A TickerList schema containing the stock tickers of interest and the price period of interest.
Ping endpoint to verify MCP compose is operational
Duplicate tool name 'generate_poem' with incompatible signatures (sampling_tools.py: 1 param vs writing_tools.py: 2 params). LLMs cannot reliably distinguish which to call, causing selection errors and wasted retries.
Tool 'ping' should not exist in production MCP servers. It was removed from the current spec (2026-07-28) and serves no purpose for agent-driven interactions. Agents do not need to verify server liveness, that is a client concern.
Tool descriptions lack actionable context for LLM selection. E.g., 'Generates a short poem about a given topic' does not explain when to call this vs. another writing tool, expected output length, style constraints, or language support. Descriptions should be 10 - 1024 chars and answer: WHAT, WHEN to use it instead of similar tools, WHAT it returns.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 46 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 34 | - | v1 |
Parameter descriptions are minimal or missing context. E.g., 'topic' in generate_poem lacks guidance on length limits, style constraints, or examples. 'doc_uri' in generate_summary does not document supported file formats, maximum size, or error handling for unsupported types.
Output schemas are not documented for any tool. Tools return data structures (dicts, strings, objects) but the shape is inferred from implementation, not documented in tool definition. LLMs cannot plan downstream calls without knowing what fields to expect.
No error recovery guidance. Tools do not document error cases, recovery steps, or actionable feedback for LLMs. E.g., get_stock_price may fail for invalid tickers but does not guide the LLM to retry with a corrected ticker or call a discovery tool first.
Implementation of chat_with_docs is incomplete (source code cuts off mid-function). Cannot verify actual behavior, error handling, or return schema. This tool is either unfinished or source listing is truncated.
No tool demonstrates idempotency, destructiveness warnings, or read-only hints in annotations. All tools are marked as READ_ONLY risk, but this is a generic label, not a tool annotation (toolAnnotations feature is marked false). Modern MCP servers should use idempotentHint, destructiveHint, and readOnlyHint in tool metadata.