
Dependency picker for coding agents: recommends, compares and scores GitHub repos with a verdict.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Optional. Your own GitHub token for unlimited use (otherwise 50 free calls per day). Used for your request only, never stored.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
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).
Repository names as owner/repo, e.g. ["colinhacks/zod", "fabian-hiller/valibot"]. Not URLs or npm/PyPI package names.
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).
| Argument | Type | Description |
|---|---|---|
| repos* | array | Repository names as owner/repo, e.g. ["colinhacks/zod", "fabian-hiller/valibot"]. Not URLs or npm/PyPI package names. |
{
"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."
}
}
}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).
| Argument | Type | Description |
|---|---|---|
| need* | string | The need in plain words, e.g. "python pdf parser", "react state management". Name the task, not a library. |
| limit | integer | How many repositories to return, 1-10. |
| language | string | 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. |
{
"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."
}
}
}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).
| Argument | Type | Description |
|---|---|---|
| limit | integer | How many repositories to return, 1-100. |
| period | string | "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 | string | GitHub language name, e.g. "TypeScript", "Python", "Rust". Matches that language only. Omit for all languages. |
| withDownloads | boolean |
| Also look up npm/PyPI weekly downloads for each repository. Slower: one registry lookup per repository. |
{
"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."
}
}
}