GitHub Trending page content extraction tool supporting MCP Server and WorkBuddy Skill
Three tools with basic schemas and descriptions, but significant gaps in parameter documentation and output schema clarity. All tools have descriptions (10-20 chars baseline met), but lack depth on WHEN to use them and what they return. Parameter descriptions are minimal, 'Programming language filter' doesn't explain valid formats, ranges, or examples. No output schemas documented. Error handling returns JSON but lacks recovery guidance. Tools follow verb_noun naming (getTrending*) but descriptions are generic and don't differentiate use cases.
Get GitHub Trending page metadata, including page title, description, and current applied filters.
Get GitHub Trending repository list. Can filter by time range, programming language, and developer spoken language.
Get GitHub Trending statistics, including total repositories, language distribution, total stars and forks.
Output schemas not documented. LLMs cannot plan downstream calls or extract fields without knowing what getTrendingRepositories, getTrendingMetadata, and getTrendingStatistics return. Code shows result objects are constructed but no schema is published to clients.
Parameter descriptions lack actionable constraints. 'Programming language filter, e.g.: python, javascript, typescript, rust, go, java, c, c++, c#' uses examples instead of enums. LLMs may hallucinate unsupported languages. Should declare enum or regex pattern.
Metadata and Statistics tool descriptions are vague. 'Get GitHub Trending page metadata' and 'Get GitHub Trending statistics' don't explain WHEN to call them vs getTrendingRepositories, what fields they return, or why an agent would choose one over the other.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 51 | 2026-07-28+ | v2 |
Error handling returns isError flag and JSON message but provides no recovery guidance. 'Unknown tool' or network errors don't tell the LLM what to do next or whether to retry.
spokenLanguageCode parameter description lists examples ('en, zh, ja, fr') instead of declaring an enum. LLMs may pass invalid codes like 'es' or 'de' without validation.