Educational repository demonstrating agentic AI patterns, tool use, MCP server implementation, and Claude API integration across multiple chapters and projects
This server exhibits significant definition quality gaps. Tool descriptions are present but often generic or incomplete (e.g., 'Make an HTTP request to a pre-configured API' lacks specifics on available APIs, authentication, or error handling). Schemas are partially defined but lack rigor: the api_request tool has an empty enum for 'api' parameter, making it unusable. Two tools (read_file at positions 5 and 13) are duplicated with identical names but different descriptions, creating ambiguity. Parameter descriptions are sparse or missing context (e.g., 'Request body for POST/PUT/PATCH' doesn't specify format or constraints). Output schemas are not documented for any tool. Error handling guidance is absent, tools like execute (write SQL) and process_refund (business logic) lack recovery hints. Security concerns: api_request and execute expose potentially dangerous operations without clear permission gates or dry-run options. Overall, this reads like educational material (from the 'Building MCP Servers' course structure) rather than production-grade tooling.
Make an HTTP request to a pre-configured API. Available APIs: (configured via environment). Authentication headers are handled automatically.
Check real-time inventory for a product across all warehouses. Returns stock levels, incoming shipments, and estimated restock dates.
Execute a write SQL statement (INSERT, UPDATE, DELETE, CREATE). Returns the number of rows affected. Use 'query' for SELECT.
Get current weather for a city.
List the contents of a directory with file sizes and types.
List all tables in the database with their column definitions. Use this to understand the database schema before writing queries.
Duplicate tool 'read_file' defined twice (positions 5 and 13) with different descriptions. LLMs cannot disambiguate which to call.
api_request tool has empty enum for 'api' parameter, no valid values are defined. Tool is non-functional as specified.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields (e.g., what does process_refund return?).
Destructive tools (execute, write_file, process_refund) lack error recovery guidance and confirmation/dry-run patterns. No guidance on retryability or side effects.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 54 | 2026-07-28+ | v2 |
Look up an order by ID or customer email. Returns order details including items, status, shipping, and payment information.
Process a refund for an order. Validates refund eligibility based on business rules: within 30 days, item not final-sale, order is delivered. Returns the refund amount and confirmation number.
Execute a read-only SQL query against the SQLite database. Returns results as JSON. Use this for SELECT statements and data analysis. The query is run in a read-only transaction.
Read the contents of a file from the local filesystem.
Read a file's contents. Access is restricted to configured directories and sensitive files (.env, .key, credentials) are blocked.
Search for files matching a glob pattern within allowed directories.
Write content to a file. Creates the file if it doesn't exist. Cannot write to sensitive locations.
api_request description is vague ('pre-configured API', 'configured via environment') with no details on which APIs are available, auth mechanism, or error handling.