A collection of MCP server implementations demonstrating various use cases including stock price tracking, weather forecasting, file operations, and PDF document processing
This server has significant structural and quality issues. Tool definitions are present but lack depth. Descriptions are minimal (10-50 chars, well below the 194-char baseline). Parameters have types but lack descriptions in most cases. Critical issue: 8 of 12 tools are duplicates (get_stock_price, stock_resource, get_stock_history, compare_stocks appear twice). No output schemas documented. Error handling is minimal. The server appears to be a demonstration/learning project rather than production-grade.
Compare the current stock prices of two ticker symbols. Returns a formatted message comparing the two stock prices.
Compare the current stock prices of two ticker symbols. Returns a formatted message comparing the two stock prices.
Count the number of files on the desktop
Fetch content from a leave policy PDF for leave-related queries
Get weather alerts for a US state.
Get weather forecast for a location.
Retrieve historical data for a stock given a ticker symbol and a period. Returns the historical data as a CSV formatted string.
Duplicate tool definitions: get_stock_price, stock_resource, get_stock_history, and compare_stocks are registered twice (tools 1-4 and 5-8). This violates single-responsibility and creates ambiguity for LLM tool selection.
Minimal parameter descriptions: Most tools lack descriptions for their input parameters. E.g., 'symbol' in get_stock_price has description 'The stock ticker symbol' (28 chars), but no guidance on format, valid range, or examples. LLMs cannot infer constraints.
No output schemas documented: Tools return floats, strings, or CSV data, but no structured schema is declared. LLMs cannot plan downstream tool calls or extract fields reliably. E.g., get_stock_price returns float but no error handling documented.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 52 | 2026-07-28+ | v2 |
Retrieve historical data for a stock given a ticker symbol and a period. Returns the historical data as a CSV formatted string.
Retrieve the current stock price for the given ticker symbol. Returns the latest closing price as a float.
Retrieve the current stock price for the given ticker symbol. Returns the latest closing price as a float.
Expose stock price data as a resource. Returns a formatted string with the current stock price for the given symbol.
Expose stock price data as a resource. Returns a formatted string with the current stock price for the given symbol.
Weak error handling: Tools return -1.0 or generic error strings without recovery guidance. E.g., get_stock_price returns -1.0 on error with no message. LLMs cannot determine if the error is retryable or user-fixable.
Vague tool names and descriptions: 'stock_resource' is ambiguous (is it a resource or a tool?). 'count_desktop_files' lacks context on what 'desktop' means. 'fetch_context' is generic, context for what? Descriptions are 30-50 chars, well below the 194-char baseline.