MCP Skeleton - Template server with example tools (calculator, weather, HTTP, text). Replace this with your actual tools and capabilities.
This is a skeleton/template server with example tools meant to be replaced. All four tools are explicitly marked '[EXAMPLE TOOL]' with instructions to replace them. Descriptions are present but framed as placeholders. Schemas are visible in source code with proper type definitions and parameter descriptions. However, the entire toolset is demonstrative rather than production-ready. Tool names follow verb_noun patterns (calculator, http_request, analyze_text, get_weather) but lack the specificity expected of production tools. Parameter descriptions are adequate but generic. No output schemas are documented. Error handling in calculator and http_request is present but basic. This server should not be deployed as-is; it is explicitly a scaffold for developers to build upon.
[EXAMPLE TOOL] Analyze text and return various statistics. Replace with your actual data processing logic.
[EXAMPLE TOOL] Perform mathematical operations (add, subtract, multiply, divide). Replace with your actual business logic.
[EXAMPLE TOOL] Get weather information for a specific city. This returns mock data - replace with your actual API integration.
[EXAMPLE TOOL] Make HTTP requests to external APIs. Replace with your actual API integration logic.
All tool descriptions are explicitly marked '[EXAMPLE TOOL]' and instruct users to 'Replace with your actual business logic.' This violates the pattern:tool-description requirement that tools have real, actionable descriptions for LLM selection. Placeholder descriptions are 30-45 characters and do not explain when or why an agent should use each tool.
No output schemas are documented for any tool. LLMs cannot plan downstream calls or extract the correct fields without knowing the response structure. The rubric baseline is 100% of A+ tools document return types; this server documents zero.
Tool naming lacks specificity. 'analyze_text' does not clarify what statistics are returned. 'get_weather' is acceptable but 'http_request' is dangerously generic, it does not signal what API integration it performs. Production tools need verb_noun names that disambiguate purpose (e.g., 'get_weather_forecast', 'fetch_external_api_data').
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 44 | <=2025-11-25 | v2 |
http_request tool accepts arbitrary URLs and HTTP methods. No URL validation, scheme whitelist, or request body parameter (POST is hardcoded to null content). This is permissive-by-design for a skeleton but creates security risks in production (SSRF, arbitrary network calls).
analyze_text tool has no visible implementation shown. Parameters are listed (text) but the return structure is not documented. The tool exists in tool registration but implementation details are cut off in source code.