{"server":"io.github.josifb/whichlib","count":3,"tools":[{"name":"compare_repos","title":"Compare repositories","description":"Compare 2-10 known GitHub repositories side by side, best score first: score and tier, stars, forks, open issues, last push, license, npm/PyPI weekly downloads (only when the registry links back to the repository) and a verdict. Each result has a 0-100 score (momentum 40% (stars gained per week; without history, lifetime stars per week scaled by the npm/PyPI download trend), maintenance 25%, adoption incl. npm/PyPI weekly downloads 25%, license 10%), a tier (Strong >=75, Solid >=50, Watch >=25, Avoid <25; New for repos under 30 days old, too new to judge), a one-line verdict and the full breakdown. Use this to choose between candidates you already have (for example zod vs valibot) or to check a dependency the project already uses; use recommend_repos to find candidates. One GitHub API call per repository plus npm/PyPI lookups. A repository that does not exist is listed under notFound and the rest are still compared; the call fails only if none can be fetched, or when GitHub's rate limit is reached or the token is rejected. Hosted: 50 free tool calls per day per user; send header X-GitHub-Token with your own GitHub token for unlimited use, or run the npm package locally (npx -y whichlib).","input_schema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["repos"],"properties":{"repos":{"type":"array","items":{"type":"string","maxLength":140,"minLength":3},"maxItems":10,"minItems":2,"description":"Repository names as owner/repo, e.g. [\"colinhacks/zod\", \"fabian-hiller/valibot\"]. Not URLs or npm/PyPI package names."}}},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true},"source":"probe","observed_at":"2026-10-19T20:58:31.189Z"},{"name":"recommend_repos","title":"Recommend repositories","description":"Find the best open-source library for a need before adding a dependency. Give the need in plain words and get up to `limit` GitHub repositories ranked by fit = score x relevance to the need. Each result has a 0-100 score (momentum 40% (stars gained per week; without history, lifetime stars per week scaled by the npm/PyPI download trend), maintenance 25%, adoption incl. npm/PyPI weekly downloads 25%, license 10%), a tier (Strong >=75, Solid >=50, Watch >=25, Avoid <25; New for repos under 30 days old, too new to judge), a one-line verdict and the full breakdown. Use this when you do not yet have candidates; use compare_repos when you already have names. Makes 3 GitHub searches plus npm/PyPI lookups for the shortlist. Hosted: 50 free tool calls per day per user; send header X-GitHub-Token with your own GitHub token for unlimited use, or run the npm package locally (npx -y whichlib).","input_schema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["need"],"properties":{"need":{"type":"string","maxLength":200,"minLength":2,"description":"The need in plain words, e.g. \"python pdf parser\", \"react state management\". Name the task, not a library."},"limit":{"type":"integer","default":5,"maximum":10,"minimum":1,"description":"How many repositories to return, 1-10."},"language":{"type":"string","maxLength":40,"minLength":1,"description":"GitHub language name, e.g. \"TypeScript\", \"Python\", \"Rust\", \"C++\". JavaScript also matches TypeScript repositories and the reverse; Python also matches Jupyter Notebook. Omit to search all languages."}}},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true},"source":"probe","observed_at":"2026-10-19T20:58:31.189Z"},{"name":"trending_repos","title":"Trending repositories","description":"Discover projects: the most-starred GitHub repositories created in the last day, week or month, or with period \"rising\" repositories of any age that gained the most stars this week (like GitHub Trending; risingRank keeps that order). Optionally one language; each scored and returned sorted by score (starsRank keeps the stars order). Each result has a 0-100 score (momentum 40% (stars gained per week; without history, lifetime stars per week scaled by the npm/PyPI download trend), maintenance 25%, adoption incl. npm/PyPI weekly downloads 25%, license 10%), a tier (Strong >=75, Solid >=50, Watch >=25, Avoid <25; New for repos under 30 days old, too new to judge), a one-line verdict and the full breakdown. Not the right tool for picking a dependency, since new repositories have little maintenance history; use recommend_repos for that. One GitHub search (rising: one download of the daily list from raw.githubusercontent.com instead), plus one npm/PyPI lookup per repository when withDownloads is true. Hosted: 50 free tool calls per day per user; send header X-GitHub-Token with your own GitHub token for unlimited use, or run the npm package locally (npx -y whichlib).","input_schema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"limit":{"type":"integer","default":20,"maximum":100,"minimum":1,"description":"How many repositories to return, 1-100."},"period":{"enum":["day","week","month","rising"],"type":"string","default":"week","description":"\"day\", \"week\" or \"month\": repos created in the last 24 hours, 7 days or 30 days. \"rising\": repos of any age by stars gained this week (the top 1,000 repos per language plus new ones are tracked)."},"language":{"type":"string","maxLength":40,"minLength":1,"description":"GitHub language name, e.g. \"TypeScript\", \"Python\", \"Rust\". Matches that language only. Omit for all languages."},"withDownloads":{"type":"boolean","default":false,"description":"Also look up npm/PyPI weekly downloads for each repository. Slower: one registry lookup per repository."}}},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true},"source":"probe","observed_at":"2026-10-19T20:58:31.189Z"}],"next_cursor":null,"next_actions":[{"action":"get_connection","description":"Connection block to call these tools","href":"/v1/servers/io.github.josifb%2Fwhichlib/connection?target=mcpServers","arguments":{"name":"io.github.josifb/whichlib","target":"mcpServers"}},{"action":"get_server","description":"Full descriptor with trust and connectability","href":"/v1/servers/io.github.josifb%2Fwhichlib","arguments":{"name":"io.github.josifb/whichlib"}}]}