MCP server that feeds coding agents the REAL exported API surface and type signatures of any npm package@version — straight from its bundled .d.ts — so agents stop inventing functions that don't exist.
Three well-named, read-only tools with strong descriptions (194 - 250 chars each) and complete input schemas using Zod. All parameters are typed and described. However, output schemas are not formally documented, responses are text-only with no structured field definitions. Error handling is present but generic ('Could not resolve', 'Could not read'). Tool names follow verb_noun pattern (package_api, package_types, list_type_files) and are action-oriented. No security concerns (read-only, no secrets). Composition is clean, each tool has one responsibility. Missing: explicit output schema documentation, actionable error recovery guidance, and per-parameter constraints (e.g., version format, entry path pattern).
List every TypeScript declaration (.d.ts) file shipped in an npm package@version. Use when package_api can't find the entry, when a package splits its types across many files, or to locate the declaration for one submodule/export.
Get the REAL exported API — functions, classes, constants, interfaces, types — of an npm package at a specific version, extracted from its published TypeScript declarations (.d.ts). Reach for this WHENEVER you're about to call into a library and aren't 100% certain a function/option exists with that exact name and signature. It is the antidote to inventing APIs: if it isn't in this list, the package doesn't export it. Grouped by kind, with one-line signatures.
Return the raw .d.ts declaration text for an npm package@version — the ground-truth type definitions. Use when you need exact signatures, generic parameters, overloads, or option-object shapes that a summary can't capture (e.g. the precise props of a component or the full options of a function). Defaults to the package's types entry; pass `file` (from list_type_files) to read a specific declaration file.
Output schemas not formally documented. Tools return text-only responses with no structured field definitions. LLMs cannot plan downstream operations or extract typed data.
Error messages are generic and do not guide recovery. 'Could not resolve' or 'Could not read' do not tell the LLM what to try next or whether the error is retryable.
Parameter constraints not specified. 'version' accepts 'latest', 'next', or exact semver, but no enum or pattern is declared. 'entry' path format is undocumented.
No pagination or result limits documented for list_type_files. If a package ships hundreds of .d.ts files, the response could exhaust context window.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 63 | 2026-07-28+ | v2 |
package_api truncates output silently at MAX_CHARS (default 16000) with a hint to use package_types. This forces a second call and wastes tokens. Consider returning structured summaries (exports grouped by kind with counts) instead.