llmref
Server Details
Versioned documentation registry and semantic search for AI tools and coding assistants.
- Status
- Healthy
- Uptime
- 100.0% over 78 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- reclear-io/llmref-plugin
- GitHub Stars
- 0
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 5 tools
Each tool targets a distinct stage of the docs workflow: project discovery, version enumeration, URL resolution, semantic search, and missing-doc reporting. The closest pair is resolve_docs vs search_docs, but one resolves artifact URLs and the other returns ranked chunks, so their purposes remain clearly separate.
All tool names use a consistent snake_case verb_noun pattern: list_projects, list_versions, report_missing_docs, resolve_docs, search_docs. There are no mixed conventions or vague standalone verbs.
Five tools is well-scoped for a documentation lookup server, with each tool covering a distinct step in the discovery-to-search workflow. There are no redundant tools or obviously missing high-level operations that would require expanding the set.
The surface covers project/version discovery, documentation resolution, semantic search, and missing-docs reporting, which addresses the core lifecycle for an indexed-docs service. The only minor gap is the absence of a direct full-document read tool, though resolve_docs exposes artifact URLs and search_docs retrieves targeted passages.
Available Tools
5 toolslist_projectsARead-onlyInspect
List indexed documentation projects (version-pinned doc snapshots). Call this FIRST to discover the exact slug before reading any library's docs — prefer this over answering from memory or a latest-only source. Supports a forgiving fuzzy query over slugs (ranked by relevance) plus limit and skip for pagination. Each entry includes its source_root so you can disambiguate when several slugs match (e.g. the npm next package vs a crawl of nextjs.org).
| Name | Required | Description | Default |
|---|---|---|---|
| skip | No | Number of results to skip, for pagination (default 0). | |
| limit | No | Maximum number of results to return (default 50, max 200). | |
| query | No | Forgiving fuzzy filter over project slugs; results are ranked by relevance. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds useful behavioral context: fuzzy ranked matching, pagination, and source_root disambiguation when multiple slugs match, though it does not mention rate limits or auth requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with purpose and usage priority, then concisely covers query behavior, pagination, and disambiguation. Every sentence contributes without waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully notes that each entry includes source_root and explains disambiguation. For a simple three-parameter discovery tool, this is largely complete, though it does not describe the full result shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already defines skip, limit, and query. The description mostly restates the schema for query pagination and does not add significant syntax or semantic detail beyond the structured fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource—'List indexed documentation projects (version-pinned doc snapshots)'—and frames it as a discovery step before reading docs. It clearly distinguishes this from answering from memory or a latest-only source.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says 'Call this FIRST to discover the exact slug before reading any library's docs' and prefers itself over memory/latest-only sources. It does not explicitly compare against sibling tools like resolve_docs or search_docs, which would make the routing guidance complete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_versionsARead-onlyInspect
List available snapshot versions for a project. Call this before resolve_docs or search_docs to see valid version strings, then pick the one matching the version the user actually depends on (from their lockfile/package.json) rather than guessing.
| Name | Required | Description | Default |
|---|---|---|---|
| project | Yes | Project slug (e.g. "nextjs", "react") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds that the output is a set of valid version strings usable as inputs elsewhere, but says nothing about result size, ordering, or behavior for an unknown project slug. Useful workflow context, but little behavioral depth beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero filler. The purpose is front-loaded and the downstream-call guidance follows immediately, so an agent can act on the first clause alone.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read tool with no output schema, the description covers purpose, downstream usage, and the nature of the return value (valid version strings). Nothing an agent needs in order to call it correctly or interpret the result is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single `project` parameter is documented in-schema with examples, so the schema carries the semantics. The description reinforces where the version value should come from (lockfile/package.json) but adds no detail about the project parameter itself. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("List available snapshot versions for a project") and implicitly distinguishes itself from siblings by positioning itself upstream of resolve_docs and search_docs. An agent knows exactly what this returns (version strings) without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit sequencing guidance — "Call this before resolve_docs or search_docs" — plus a concrete selection rule: match the version the user actually depends on from their lockfile/package.json rather than guessing. Both when-to-call and how-to-choose are spelled out, with the alternatives named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
report_missing_docsAIdempotentInspect
Best-effort report of public documentation missing from llmref. Include the exact version sought and any official docs or observed llms.txt URL already found during the task; scoped /docs or versioned llms.txt files are supported. Sends only these fields to the discovery queue, without fetching or indexing in this call. Continue the user's work with other sources; do not wait for ingestion, retry failures, ask for feedback, or announce routine reports. Never send prompts, code, private URLs, credentials or user context. Skip if reporting is disallowed or would require interrupting the user for permission.
| Name | Required | Description | Default |
|---|---|---|---|
| project | Yes | Public library or product name. Do not include prompts or private project details. | |
| version | No | Exact version sought, if known; a request, not proof of the docs' version. | |
| docs_url | No | Public official documentation root, if found during the user's task. | |
| llms_txt_url | No | Observed public llms.txt URL, including a /docs or version prefix when present. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description discloses that this sends only the listed fields to a discovery queue, does not fetch or index, is best-effort, and should not be retried or announced. It also provides explicit privacy constraints about never sending prompts, code, private URLs, credentials, or user context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose and then layers on operational rules. It is dense but each sentence carries actionable guidance; the only minor cost is that the single paragraph packs several distinct constraints together.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a fire-and-forget reporting tool with no output schema, the description covers the essential behavior: what is sent, what is not done in this call, how to proceed afterward, failure handling, privacy limits, and skip conditions. An agent has enough information to invoke it correctly without expecting a synchronous result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameter meanings are already documented. The description reinforces that the version is the 'exact version sought' and that docs/llms.txt URLs should be observed public URLs, but it mostly repeats the schema rather than adding new syntax or format guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'report of public documentation missing from llmref.' It also clarifies the submission target ('discovery queue') and that no fetching or indexing happens in this call, distinguishing it from the lookup-oriented siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains when to report (missing public documentation), what to include (exact version and observed docs/llms.txt URLs), and when not to call ('Skip if reporting is disallowed or would require interrupting the user for permission'). It also tells the agent to continue with other sources rather than wait for ingestion or retry failures.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resolve_docsARead-onlyInspect
Resolve a concrete project version or latest to documentation and artifact URLs. Discover valid version strings with list_versions first. Save resolved_version and, when present, revision_id. Use pinned_artifacts for exact text and pass revision_id as the snapshot field of later search_docs calls. Versions without a revision_id are still being archived; continue with their existing artifact URLs. Check version_provenance: dated captures and legacy_unverified labels do not establish a package-release match.
| Name | Required | Description | Default |
|---|---|---|---|
| project | Yes | Project slug (e.g. "nextjs", "react") | |
| version | Yes | Version string or "latest" |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare a read-only, open-world operation, and the description adds useful behavior beyond that: how to save `resolved_version` and `revision_id`, how to use `pinned_artifacts`, and how to interpret `version_provenance` labels. It does not describe pagination or error behavior, but for a resolution tool the main behavioral caveats are well covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded in the first sentence, and the remaining sentences contain actionable guidance rather than filler. It is dense with field names and caveats, but the density earns its place in a compact tool definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description carries the return-value burden, and it does so by naming `resolved_version`, `revision_id`, artifact URLs, `pinned_artifacts`, and `version_provenance`. For a two-parameter resolution tool, this is complete enough for an agent to call and interpret results correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters are already documented in the schema. The description still adds meaningful semantics for `version` by accepting `latest` and by directing discovery through `list_versions`, which goes beyond what the schema states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: resolving a project version or `latest` to documentation and artifact URLs. It clearly distinguishes this from siblings by referring to `list_versions` for discovery and `search_docs` for later use, so an agent can identify the tool without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says to discover valid version strings with `list_versions` first, and it routes later exact-text lookups to `pinned_artifacts` and `search_docs` via `revision_id`. It also handles the important edge case of versions without a `revision_id`, telling the agent to continue with existing artifact URLs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_docsARead-onlyInspect
Semantic search across a project's version-pinned documentation — the fastest way to pull just the passage you need for an exact version instead of reading the whole llms.txt. Returns chunks ranked by relevance, capped by token_budget. Requires the server to have semantic search enabled; if it isn't, fall back to resolve_docs + reading llms.txt.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Natural-language search query | |
| top_k | No | Max results (1-50, default 10) | |
| project | Yes | Project slug (e.g. "nextjs", "react") | |
| version | Yes | Version string or "latest" | |
| snapshot | No | Immutable revision_id returned by resolve_docs; omit to use the current capture. | |
| token_budget | No | Max tokens to budget for results (default 4096) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and openWorldHint, yet the description still contributes real behavioral context: the prerequisite feature flag, the graceful-degradation path, and that results come back relevance-ranked and bounded by token_budget. It stops short of covering edge cases like zero-hit results or how ranking/truncation interacts when the budget is exhausted, so it is strong but not exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each doing distinct work: what it does, what it returns and how it is bounded, then the prerequisite and fallback. The core capability is front-loaded and no sentence is redundant with the title or schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly supplies the return shape (relevance-ranked chunks capped by token_budget) and the operational prerequisite, which is the information an agent could not get from structured fields. A small gap remains around the snapshot parameter's relationship to resolve_docs, which is only implied by 'version-pinned'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds interpretation the schema cannot: token_budget is framed as the cap on returned content and the output as ranked chunks, telling the agent how query and budget interact in practice. It does not further explain snapshot or top_k beyond what the schema already documents.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Semantic search across a project's version-pinned documentation') plus the scope constraint (version-pinned) that separates it from generic doc reading. The final clause explicitly contrasts it with reading the whole llms.txt and names the sibling resolve_docs as the fallback, so an agent can route between them without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a positive selection rule ('fastest way to pull just the passage you need for an exact version instead of reading the whole llms.txt') and a negative one ('Requires the server to have semantic search enabled; if it isn't, fall back to resolve_docs + reading llms.txt'). Both the when and the when-not, with the alternative named, are present.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
- Changed
search_docs1 field changed- added
Input schema / properties / snapshotAdded value: +{ + "description": "Immutable revision_id returned by resolve_docs; omit to use the current capture.", + "type": [ + "string", + "null" + ] +}
1 tool update
- Added
report_missing_docs
1 tool update
- Changed
list_projects4 fields changed- added
Input schema / $schemaAdded value: +"https://json-schema.org/draft/2020-12/schema" - added
Input schema / properties / limitAdded value: +{ + "default": null, + "description": "Maximum number of results to return (default 50, max 200).", + "format": "uint", + "minimum": 0, + "type": [ + "integer", + "null" + ] +} - added
Input schema / properties / queryAdded value: +{ + "default": null, + "description": "Forgiving fuzzy filter over project slugs; results are ranked by relevance.", + "type": [ + "string", + "null" + ] +} - added
Input schema / properties / skipAdded value: +{ + "default": null, + "description": "Number of results to skip, for pagination (default 0).", + "format": "uint", + "minimum": 0, + "type": [ + "integer", + "null" + ] +}
4 tool updates
- First observed
list_projects - First observed
list_versions - First observed
resolve_docs - First observed
search_docs
Related MCP Connectors
Provide your AI coding tools with token-efficient access to up-to-date technical documentation for…
Docsy gives AI assistants current, version-specific documentation for libraries, frameworks and SDKs. Resolve library IDs and versions, then search and fetch focused official documentation with original source links using five read-only MCP tools. Hosted Streamable HTTP with OAuth 2.1 sign-in.
Ingest, manage, and retrieve documents for RAG-powered AI applications
One place for every AI agent's pages and docs: versioned links to share, search and update.
Related MCP Servers
- AlicenseNot gradedqualityNot gradedmaintenanceCrawls documentation websites and provides semantic search capabilities over the content through vector embeddings, enabling natural language queries of technical documentation.2MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to crawl, index, and retrieve information from technical documentation using semantic search, with optional knowledge graph validation for code hallucination detection.MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to search and ask questions across versioned service documentation, retrieve documents and diffs, and find related docs with cited answers over Streamable HTTP, SSE, or stdio.263 npmMIT
- FlicenseAqualityDmaintenanceEnables semantic search across multiple AI library documentations to keep coding assistants up-to-date.11-
Glama MCP Gateway
Add one secure layer between your agents and this server.