A collection of machine learning agent implementations and reference designs using various frameworks (smolagents, OpenAI agents, LangChain, browser-use, diffusers, Gradio). Includes audio agents, code agents, retrieval agents, RAG implementations, sentiment analysis, and more.
Scoring was not performed
Repository is a multi-project reference design collection, not a cohesive MCP server. 12 of 14 tools are from unrelated example projects (C# echo tools, birthday tools, smol-agent utilities) bundled under a misleading 'weather' label.
C# tools (Echo, ReverseEcho, GetMonkeys, GetMonkey) have NO visible input schemas in source code. Schemas are inferred from method signatures, not explicitly defined.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 16 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 38 | - | v1 |
Tool descriptions are generic and too short. Examples: 'Echoes the message back to the client.' (50 chars), 'Get weather forecast for a location' (36 chars), 'A tool that does nothing yet' (28 chars). Rubric baseline: 194 chars avg, p10=34, p90=392. Most descriptions lack context for LLM selection.
Output schemas are entirely undocumented. No tool documents what it returns. Rubric requires: 'Document the output schema. LLMs need to know what fields to expect so they can plan downstream tool calls.' This breaks tool chaining.
No error handling or recovery guidance. Tools provide no actionable error messages. Rubric requires: 'Error responses must tell the LLM what to do next' and 'Categorize errors as retryable, user-fixable, or fatal.'
Parameter descriptions are minimal or missing. Examples: 'state' param in get-alerts lacks format guidance; 'message' param in Echo tools has no context; 'date' param in birthday tools has no format specification. Rubric requires descriptions for every parameter explaining what it controls.
No parameter constraints. Numeric params (latitude, longitude, timezone) lack min/max bounds. String params lack enums or length limits. Rubric baseline: 'Specify minimum and maximum for numeric parameters (e.g. page_size 1 - 100, days 1 - 365). Unbounded numbers let LLMs pass absurd values.'
No pagination support for list operations. get_birthdays and get_alerts could return unbounded lists. Rubric requires: 'Tools returning lists should accept page/offset and limit parameters and return a total count or next_cursor.'
No security measures. No secret injection pattern, no permission gating, no scope declarations, no audit logging. Rubric requires: 'Credentials must never appear as tool parameters. Use server-side secret injection via environment variables or vault.'
Tools lack idempotency guarantees. Destructive operations (remove_birthday, add_birthday) have no deduplication or transactional support. Rubric requires: 'Make tools produce the same result on repeated calls with the same input. Agents retry on ambiguous failures, non-idempotent tools risk duplicate side effects.'
Duplicate tool names and conflicting registrations. Echo and ReverseEcho appear in both Inventory and MyFirstMCP projects. LLM would be unable to distinguish which implementation to invoke.
Trivial 'demo' tools with placeholder implementations. my_custom_tool description: 'A tool that does nothing yet' is not production-ready. GetMonkeys, Echo, and ReverseEcho are educational examples that add no real value to a weather server.