whichlib
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| DO_NOT_TRACK | No | Set to 1 to disable anonymous call counting. What is counted: tool name, a random install id, version, platform and Node major version. Never queries, repository names or results. | |
| GITHUB_TOKEN | No | Raises GitHub's limits (search 10 to 30 per minute). A fine-grained token with no permissions is enough. Recommend makes three searches per call, so without a token it allows about three recommendations per minute. | |
| WHICHLIB_TELEMETRY | No | Set to off to disable anonymous call counting. What is counted: tool name, a random install id, version, platform and Node major version. Never queries, repository names or results. | |
| FRESH_REPOS_DATA_DIR | No | Points at a folder of daily snapshots. The default is whichlib/data/snapshots, filled by npm run pull-data. With two or more days present, momentum uses real 7-day stars gained. | whichlib/data/snapshots |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| recommend_reposA | Find the best open-source library for a need before adding a dependency. Give the need in plain words and get up to |
| compare_reposA | 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. |
| trending_reposA | 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. Without a GitHub token GitHub allows about 10 searches per minute; when the limit is hit the tool returns an error saying when it resets. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 3 tools
Each tool targets a distinct stage of the dependency-adoption workflow: recommend_repos finds candidates from a plain-language need, compare_repos evaluates known names, and trending_repos surfaces new/rising projects. The descriptions explicitly cross-reference each other ('use compare_repos when you already have names', 'not the right tool for picking a dependency'), leaving no realistic overlap.
All three names are lowercase snake_case and share the '_repos' noun suffix, which makes the set easy to scan. The only minor deviation is 'trending_repos', which uses a gerund/adjectival modifier rather than the verb_noun pattern of recommend/compare_repos.
Three tools is exactly the right scope for a narrow library-selection server: discover, compare, and browse trends. Nothing looks padded or missing at the surface level, and each tool earns its place with a distinct workflow role.
The lifecycle (find candidates -> compare shortlist -> discover new projects) is well covered, including scoring, tiers, and registry download data. The main gap is a single-repository detail lookup: compare_repos requires 2-10 repos, so an agent cannot inspect one already-chosen dependency's full breakdown through a dedicated path.