Collection of MCP server examples demonstrating integration with various APIs including stocks (yfinance), GitHub, Sysdig, SWAPI, and financial services (Up Bank)
This server exhibits severe quality gaps across naming, descriptions, and schemas. Of 8 tools, 3 share identical descriptions ('Get name from swapi api.') which are misleading and uninformative. Tool naming is inconsistent (duplicate 'get_swapi_character' at tools 4 and 7). Parameter descriptions are minimal or generic. No input validation guidance, no error handling documentation, and no output schemas are visible in the code. The yfinance tools (1-2) show basic structure but lack proper parameter validation. The github_deploy tool (3) has a description mismatch (claims to 'Get name from swapi api' when it actually triggers GitHub dispatch). Overall, the server reads like a collection of half-finished examples rather than production-ready tools.
Get all people from SWAPI
Get Current Stock Price for a given Ticker Symbol
Get list of historical stock splits
Get name from swapi api. Args: id: exact name match
Get character information from SWAPI
Get name from swapi api.
Get name from swapi api. Args: id: exact name match
Systematic description mismatches: 3 tools (sysdig, up_accounts, get_swapi_character #4) have identical copy-pasted description 'Get name from swapi api.Args: id: exact name match' which is completely wrong for their actual functionality. github_deploy also has this error. This makes tools undiscoverable and misleads LLMs.
Duplicate tool registration: 'get_swapi_character' appears twice (tools 4 and 7) with different descriptions. LLMs cannot disambiguate and may select the wrong variant. This violates single-responsibility principle.
Missing or inadequate naming conventions: 'sysdig' lacks a verb prefix, 'up_accounts' is not verb+noun, 'github_deploy' is ambiguous (deploy vs trigger?). These fail the 90% production baseline of starting with action verbs.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 44 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 43 | - | v1 |
Get name from swapi api. Args: id: exact name match
No output schemas documented: All 8 tools lack visible output schema definitions in the source code. Callers must reverse-engineer return types from implementation, inviting errors. Production tools document return types explicitly.
No error handling guidance: Tools provide no documentation of failure modes, recovery strategies, or error classification (retryable vs. user-fixable vs. fatal). An LLM hitting 'User not found' or 'API rate limit' has no guidance on what to do next.
No input validation constraints: Parameters like 'ticker', 'id', and 'event_message' lack format specs, length bounds, or enum constraints. LLMs may pass invalid values; tools do not pre-validate. E.g., what ticker symbols are valid? What is the max length of event_message?
get_all_swapi_people has no pagination or result limits: Unbounded 'get all' operations blow context windows. Production tools cap results (e.g., 20-50 items) and offer pagination. No limit, no offset/page parameters, no next_cursor.
Parameter descriptions too generic: Many params described in one or two words ('Stock ticker symbol', 'GitHub repository owner') lack context for LLM selection. Missing guidance on format, examples (without showing literal values), dependencies, and constraints.