Repository navigation
Releases: josifb/whichlib
Release list
whichlib 0.2.4
Agents now find and use whichlib more reliably.
- Server instructions: whichlib tells the agent when to call it (before adding a dependency, when unsure a package exists). Claude Code loads these even when tool search hides tool definitions.
- recommend_repos loads up front in Claude Code 2.1.285+ (
anthropic/alwaysLoad). - Install line in results: each result shows
Install: npm install <name>/pip install <name>from the registry, so agents install the verified name instead of one typed from memory. - Security: zod 4.6.7 (fixes a high-severity memory-exhaustion bug in validating oversized collections).
- MCP TypeScript SDK v2 2.4.0.
whichlib 0.2.3
A ranking fix for the word-match ranking (the npm package, and hosted calls made with your own GitHub token). The tools, their inputs and their results are unchanged.
Changes
- Repositories that never mention the need rank after those that do. A repository whose name, description and topics say nothing about what you asked for already had its relevance halved, but a very high score could still lift it above real, smaller libraries: for "html sanitizer" a storefront ranked second. Such repositories now sort after every repository that mentions the need, then by fit. "html sanitizer" now gives DOMPurify, isomorphic-dompurify, vue-sanitize, the same as the default hosted ranking. The default hosted ranking (with the fit judgment) is unchanged.
Eval (right library ranked first), npm package: 90% of 20 popular needs, 70% of 20 held-out niche needs, unchanged by this release (hit@3, hit@5 and MRR also unchanged).
Full changelog: v0.2.2...v0.2.3
whichlib 0.2.2
A ranking fix for needs that start with "html", plus small clean-ups. The tools, their inputs and their results are unchanged.
Changes
- Better candidates for "html …" needs. The topic search treated
htmlas a specific subject, so "html sanitizer" searchedtopic:html(every web project) and the word-match ranking put a video framework first.htmlis now handled likexmlandjson: the search uses the phrase (topic:html-sanitizer), and DOMPurify ranks first. This affects the npm package and hosted calls made with your own GitHub token; the default hosted ranking was already right. - Anonymous call counting sends the MCP protocol version only when it is a dated revision (for example
2026-07-28); anything else is sent as unknown. Nothing else changed; see PRIVACY.md. - Internal: one shared protocol-version check for the server, the hosted service and the call counter; the smoke test reports the negotiated protocol version.
Eval (right library ranked first), npm package: 90% of 20 popular needs, 70% of 20 held-out niche needs (was 65%; the gain is the "html sanitizer" need itself). Hosted: 100% / 85%, unchanged.
Full changelog: v0.2.1...v0.2.2
whichlib 0.2.1
Full Changelog: v0.2.0...v0.2.1
whichlib 0.2.0
whichlib now speaks MCP 2026-07-28, the latest protocol revision. Older clients keep working: the npm package and the hosted server at https://whichlib.com/mcp answer both the 2026-07-28 protocol and the 2025 initialize handshake.
The three tools, their inputs and their results are unchanged.
Changes
- Built on the MCP TypeScript SDK v2 (
@modelcontextprotocol/server2.3.1), replacing@modelcontextprotocol/sdk1.x, which does not support 2026-07-28. - Clients on 2026-07-28 may cache the tool list for an hour.
- Hosted server: 2025-era requests are now answered as a single SSE event instead of plain JSON. MCP clients read both; if you wrote your own client, send
Accept: application/json, text/event-streamas the docs say. - Anonymous call counting now also records the MCP protocol version of each call (for example
2026-07-28). Nothing else changed; see PRIVACY.md. Turn it off withWHICHLIB_TELEMETRY=off.
Install
claude mcp add whichlib -- npx -y whichlib
or the hosted server: claude mcp add --transport http whichlib https://whichlib.com/mcp
Full changelog: v0.1.5...v0.2.0
whichlib 0.1.5
Full Changelog: v0.1.4...v0.1.5
whichlib 0.1.4
Full Changelog: v0.1.3...v0.1.4
whichlib 0.1.3
Full Changelog: v0.1.2...v0.1.3
whichlib 0.1.2
Full Changelog: v0.1.1...v0.1.2
whichlib 0.1.1
Clearer tools for agents, and no more hanging calls on GitHub rate limits.
- Tool definitions now say when to use each tool, what the score means, how many GitHub/npm/PyPI calls each makes and the rate limit without a token; every parameter is described; all tools are annotated read-only (
readOnlyHint,openWorldHint). trending_reposstates that results are sorted by score (starsRankkeeps the stars order).- When GitHub's rate limit is exhausted, a tool call now returns an error within 15 s saying when the limit resets and that a GITHUB_TOKEN raises it, instead of waiting up to an hour.
compare_reposrejectsowner/.andowner/...
Install: claude mcp add whichlib -- npx -y whichlib · Claude Code plugin: /plugin marketplace add josifb/whichlib