A workshop MCP server demonstrating tool integration with FastMCP and Semantic Kernel
Single tool 'check_phone' has critical definition gaps. Description is present (58 chars) but vague, does not explain WHAT data is returned, WHEN to use it, or what the user can do with results. Input schema is empty object {} with no parameters documented. No output schema visible. Tool name lacks action verb (should be 'get_phone_photos' or 'list_phone_photos'). No error handling guidance. Fails baseline: 100% of A+ tools have documented return types; 100% of A+ tool params have descriptions (this has zero params but also zero output docs).
Check the photos on the user's phone, in this case there is a photo of two cars.
Tool name 'check_phone' lacks action verb. Should be 'get_phone_photos', 'list_phone_photos', or 'retrieve_phone_photos' to signal intent.
Input schema is empty object {}. No parameters documented. Cannot assess parameter descriptions, types, or constraints.
No output schema visible. LLM cannot know what fields to expect (e.g., photo URLs, timestamps, metadata). Breaks downstream tool chaining.
Description (58 chars) is vague: 'Check the photos on the user's phone, in this case there is a photo of two cars.' Does not explain return structure, when to call it, or what the agent should do with results.
No error handling guidance. What happens if the phone is locked, offline, or has no photos? LLM has no recovery path.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 37 | 2026-07-28+ | v2 |