Farm.js Docs
Server Details
Search and read the Farm.js docs: pages, sections, code examples and config options.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP ยท MCP 2025-11-25
- URL
- Repository
- farming-labs/farm.js
- GitHub Stars
- 576
TDQS
Scored across 16 tools
Most tools target a distinct action+resource (search_docs, read_page, list_page_sections, get_navigation, submit_feedback), but list_docs (grouped by section) and list_pages (flat titles/slugs/URLs) overlap noticeably, and get_context vs read_page/read_pages requires careful reading to distinguish. Overlap is manageable but these few pairs could cause misselection.
Names follow a consistent verb_noun snake_case pattern throughout: get_*, list_*, read_*, search_docs, submit_feedback, hydrate_content_changes. No mixing of camelCase or vague single-word verbs.
16 tools is slightly on the heavy side for a docs server but each covers a real capability (search, read, sections, nav, code, config, tasks, change-sync, feedback). Reasonable, if a touch inflated by the list_* family.
Coverage is strong: discovery (search/facets/navigation/sections), reading (single/bulk/context), specialized content (code examples, config schema, tasks), incremental sync, and feedback. Minor gaps exist, e.g. no explicit version/release lookup, but these are workable.
Available Tools
16 toolsget_code_examplesGet docs code examplesBRead-onlyInspect
Return fenced code examples from the docs with parsed metadata such as title, framework, packageManager, and runnable.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | ||
| limit | No | ||
| query | No | ||
| locale | No | ||
| language | No | ||
| runnable | No | ||
| framework | No | ||
| packageManager | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| examples | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already establishes the safe read profile, and the description adds context by saying it returns fenced code examples with parsed metadata. It still omits behavioral details like pagination/limit behavior and whether the optional filters narrow results, so it adds some value but not rich disclosure.
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?
A single sentence with zero waste, front-loading the resource and the metadata it returns. Nothing is repeated or padded.
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 8 optional filters, an output schema, and no sibling differentiation, the description is too thin for an agent to invoke the tool confidently. It says what is returned but not how the filtering parameters interact or when this tool is preferred over the other docs retrieval tools.
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?
All 8 parameters have 0% schema description coverage, so the description carries full burden. It mentions framework, packageManager, and runnable only as returned metadata, which does not explain whether those are also filter parameters, and leaves path, query, limit, locale, and language entirely undocumented.
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: 'Return fenced code examples from the docs,' plus the metadata it exposes. It does not, however, differentiate this retrieval from siblings like search_docs, list_docs, or read_page, so it stays at clear-but-ungrounded.
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?
There is no when-to-use statement, no prerequisites, and no mention of alternatives such as search_docs or read_page. The tool's purpose implies its use, but nothing explicit tells an agent when to pick it over sibling retrieval tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_config_schemaGet docs config schemaBRead-onlyInspect
Return structured docs.config.ts option metadata, optionally filtered by option path or query.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | ||
| option | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| filters | No | |
| options | Yes | |
| examples | Yes | |
| configFile | Yes | |
| description | Yes | |
| resultCount | Yes | |
| schemaVersion | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already establishes this as a safe read, and the description's 'Return structured ... metadata' is consistent with that. It adds that filtering is optional, but says nothing about output shape beyond what the output schema provides, so with annotations carrying the safety signal a 3 is appropriate.
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?
A single front-loaded sentence with no waste: verb and resource come first, and the optional filtering clause is properly subordinated at the end.
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?
The tool is low-complexity: read-only, two optional params, and an output schema that already documents the return structure. Purpose and filtering are covered, so no return-value documentation is needed; only filter semantics remain thin, which keeps it from a 5.
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 0%, so the description must compensate, and it partially does by naming both filter modes ('option path' and 'query'). However it never explains the expected format of an option path, what 'query' matches against, or whether the two filters combine, leaving real ambiguity for two undocumented parameters.
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 ('Return') and a specific resource ('docs.config.ts option metadata'), which is clearly distinct from the docs-content siblings like get_context and get_navigation. It stops short of explicitly positioning itself relative to those adjacent getters, so it lands just under a 5.
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?
The only guidance is about optional filtering ('optionally filtered by option path or query'), which is parameter behavior, not when-to-use guidance. There is no statement of when an agent should reach for this tool versus get_context or get_navigation, and no prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_contextGet budgeted docs contextCRead-onlyInspect
Build deterministic, section-level documentation context for a query within a conservative UTF-8 byte ceiling derived from the requested token budget, with source URLs and accounting metadata.
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | ||
| query | Yes | ||
| locale | No | ||
| package | No | ||
| version | No | ||
| framework | No | ||
| tokenBudget | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| query | Yes | |
| budget | Yes | |
| context | Yes | |
| filters | Yes | |
| sources | Yes | |
| resultCount | Yes | |
| candidateCount | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds genuine behavioral context: output is deterministic, section-level, bounded by a 'conservative UTF-8 byte ceiling' derived from the token budget, and includes source URLs plus accounting metadata. It stops short of saying what happens on truncation or how sections are ranked.
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?
A single front-loaded sentence with no wasted filler. It is dense with jargon ('conservative UTF-8 byte ceiling', 'accounting metadata'), which slightly taxes readability, but it stays compact.
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?
The existence of an output schema excuses explaining return values, but six of seven parameters (tags, locale, package, version, framework) go undocumented in both schema and description. For a tool whose usefulness depends on scoping by package/framework/version, the definition is materially incomplete.
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 0% across 7 parameters, so the description must carry the burden and largely doesn't. It indirectly conveys the meaning of query and tokenBudget (the byte ceiling), but gives zero guidance on tags, locale, package, version, or framework โ parameters whose filtering semantics are entirely undocumented.
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+resource ('Build deterministic, section-level documentation context for a query') and distinguishes itself from data-listing siblings like list_docs/read_page by emphasizing section-level, budgeted retrieval. However it never explicitly differentiates itself from search_docs or get_code_examples, which an agent could plausibly confuse it with.
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?
There is no when-to-use guidance and no named alternatives. With siblings such as search_docs, read_page, and get_code_examples in the same family, the agent gets no signal about when this budgeted-context tool is preferable over plain search or page reads.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hydrate_content_changesHydrate docs content changesARead-onlyInspect
Fetch only added and changed agent-facing sections after list_content_changes. Returns deletion tombstones and digest-bound continuation cursors under a conservative token budget.
| Name | Required | Description | Default |
|---|---|---|---|
| since | Yes | ||
| cursor | No | Opaque nextCursor from the preceding response page. | |
| locale | No | ||
| tokenBudget | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| mode | Yes | |
| since | Yes | |
| total | Yes | Items in the complete filtered result set. |
| budget | Yes | |
| counts | Yes | |
| format | Yes | |
| locale | No | |
| content | Yes | |
| hasMore | Yes | Whether another response page is available. |
| audience | Yes | |
| nextCursor | No | Opaque cursor to pass as cursor on the next request. |
| tombstones | Yes | |
| resultCount | Yes | Items returned in this response page. |
| documentCount | Yes | |
| resetRequired | Yes | |
| indexGeneration | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint, so the description carries most of the burden and does add real traits: it returns only added/changed sections (unchanged content is omitted), produces deletion tombstones, and honors a conservative token budget with continuation behavior. It doesn't mention auth or failure/expiry semantics for the cursors, keeping it below a 5.
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 tight, front-loaded sentences with no filler; the scoping behavior is stated first. Slightly dense phrasing ('digest-bound continuation cursors') compresses some explanation that is never expanded.
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?
An output schema exists so return values need not be detailed, and readOnlyHint covers the safety profile. The description adequately ties the tool to its prerequisite and its incremental/diff nature, though the required 'since' parameter's expected value remains unspecified.
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 only 25%, so the description should compensate more. It does explain cursor (continuation) and tokenBudget (conservative budget) in behavior terms, but leaves 'since' and 'locale' entirely unexplained โ 'since' is the required parameter and gets no format or provenance hints.
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?
Specific verb (fetch/hydrate) plus a precise resource (added and changed agent-facing sections) and explicit sequencing with the sibling list_content_changes. An agent can distinguish it from list_content_changes and read_page without opening schemas.
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?
The phrase 'after list_content_changes' clearly establishes the prerequisite call and ordering, which is valuable usage guidance. It does not state when NOT to use it or name other alternatives (e.g., read_page for full content), so it falls short of the explicit-exclusions bar.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_content_changesList docs content changesARead-onlyInspect
Synchronize body-free document metadata. Save indexGeneration and pass it as since on the next poll. A reset response means the named snapshot is no longer available.
| Name | Required | Description | Default |
|---|---|---|---|
| since | No | ||
| locale | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| mode | Yes | |
| added | Yes | |
| since | Yes | |
| counts | Yes | |
| format | Yes | |
| locale | No | |
| changed | Yes | |
| deleted | Yes | |
| audience | Yes | |
| documentCount | Yes | |
| resetRequired | Yes | |
| indexGeneration | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint already establishes a safe read operation. The description adds useful behavior beyond annotations: changes are body-free metadata, the since token drives incremental polling, and reset responses indicate an expired snapshot. Permission and rate-limit details are absent but not essential here.
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, no filler, and the core synchronization purpose is front-loaded. It is terse but efficient; slightly more explicit front-loading of the listing/changes framing would improve it.
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?
An output schema is present, so return values need not be described. The description covers the polling lifecycle and reset condition well for a two-parameter read tool. It still omits locale semantics and sibling-tool routing.
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 0%, so the description must compensate. It explains the critical since parameter as the prior indexGeneration token, but gives no meaning for the locale parameter, leaving one of two parameters undocumented.
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?
It states a specific operation on a specific resource ('Synchronize body-free document metadata') and implies change tracking through the polling token. It does not explicitly name the listing behavior or differentiate from hydrate_content_changes, which would fetch full content.
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 gives concrete operational guidance: save indexGeneration and pass it as since on the next poll, and interpret a reset response as an unavailable snapshot. It does not say when to use this versus the sibling hydrate_content_changes or list_docs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_docsList docs by sectionBRead-onlyInspect
List documentation pages grouped by section, optionally narrowed to one section.
| Name | Required | Description | Default |
|---|---|---|---|
| cursor | No | Opaque nextCursor from the preceding response page. | |
| locale | No | ||
| section | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| pages | Yes | |
| total | Yes | Items in the complete filtered result set. |
| hasMore | Yes | Whether another response page is available. |
| section | No | |
| sections | Yes | |
| rootPages | Yes | |
| nextCursor | No | Opaque cursor to pass as cursor on the next request. |
| resultCount | Yes | Items returned in this response page. |
| sectionCount | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, and the description adds the grouping-by-section behavior, which is genuine context beyond the annotation. It says nothing about pagination despite a cursor parameter, nor about what the grouping structure or default locale behavior looks like.
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?
A single front-loaded sentence with no filler, and the section-scoping behavior is placed where it is read first. Slightly terse given the tool's unaddressed paging and locale semantics, but structurally clean.
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?
An output schema exists so return values need not be explained, but with three parameters of which two are undocumented in the schema and unmentioned in the description, the definition is only minimally sufficient for correct invocation.
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 only 33% (only cursor is documented). The description partially compensates by explaining that 'section' narrows the result set, but it says nothing about locale or how cursor paging interacts with the grouped output.
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 documentation pages') plus a distinguishing behavior ('grouped by section'). However, it never differentiates itself from siblings like list_pages or list_page_sections, which an agent could plausibly confuse it with.
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?
The phrase 'optionally narrowed to one section' hints at how the section filter works, but there is no guidance on when to choose this tool over list_pages, list_page_sections, or search_docs, and no exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_pagesList docs pagesCRead-onlyInspect
List the known documentation pages with titles, slugs, and URLs.
| Name | Required | Description | Default |
|---|---|---|---|
| cursor | No | Opaque nextCursor from the preceding response page. | |
| locale | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| pages | Yes | |
| total | Yes | Items in the complete filtered result set. |
| hasMore | Yes | Whether another response page is available. |
| nextCursor | No | Opaque cursor to pass as cursor on the next request. |
| resultCount | Yes | Items returned in this response page. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already establishes this as a safe read. The description adds nothing beyond the annotation: no note on pagination semantics, whether the list is complete or partial ('known' is ambiguous), or scoping to a locale. It restates a return shape that the output schema already provides.
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?
A single front-loaded sentence with zero filler; the core action and payload are stated immediately.
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?
An output schema exists, so return values need not be re-explained, and a cursor param signals pagination. However, the unexplained locale parameter and the failure to distinguish this from read_pages/list_docs leave real gaps for a tool sitting among 15 siblings.
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 only 50%: cursor is documented in the schema but locale has no description anywhere. The description does not compensate, saying nothing about how locale filters results or how cursor paging works.
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 (List) and resource (documentation pages) and even names the returned fields (titles, slugs, URLs). It does not distinguish itself from semantically close siblings like read_pages or list_docs, so an agent cannot fully resolve routing from the description alone.
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?
There is no when-to-use guidance, no prerequisites, and no named alternative. The agent must infer from the name alone whether this or read_pages/list_page_sections is the right tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_page_sectionsList sections in a docs pageARead-onlyInspect
Discover a page's canonical headings, anchors, hierarchy, line ranges, size estimates, and budget-aware fetch URLs without returning the page body.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| cursor | No | Opaque nextCursor from the preceding response page. | |
| locale | No | ||
| byteBudget | No | ||
| tokenBudget | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| total | Yes | Items in the complete filtered result set. |
| format | Yes | |
| hasMore | Yes | Whether another response page is available. |
| sections | Yes | |
| utf8Bytes | Yes | |
| nextCursor | No | Opaque cursor to pass as cursor on the next request. |
| fetchBudget | No | |
| markdownUrl | Yes | |
| resultCount | Yes | Items returned in this response page. |
| canonicalUrl | Yes | |
| sectionCount | Yes | |
| lineNumbering | Yes | |
| schemaVersion | Yes | |
| estimatedTokens | Yes | |
| sectionIndexUrl | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already declares this as a safe read, and the description adds meaningful behavior by clarifying that the page body is excluded and that returned URLs are budget-aware. It does not cover pagination mechanics or authentication needs, but it adds useful context beyond the annotation.
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 definition is a single, front-loaded sentence that lists the key outputs and the body-exclusion constraint without filler. Every phrase carries information about the tool's scope and return shape.
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?
Output schema presence means return values need not be explained, and the description adequately frames the output and read-only nature. However, with five input parameters and only 20% schema description coverage, the definition is not complete enough to guide correct invocation of the budget, locale, and path arguments.
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 only 20%, with just the cursor parameter documented in the schema, so the description should compensate for path, locale, byteBudget, and tokenBudget. The mention of 'budget-aware fetch URLs' hints at the budget parameters but does not explain their semantics, and path/locale remain entirely undifferentiated.
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+resource: discovering sections of a docs page by headings, anchors, hierarchy, line ranges, and fetch URLs. It implicitly separates itself from body-reading siblings by stating 'without returning the page body,' though it does not name a specific sibling tool.
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?
The phrase 'without returning the page body' implies when to prefer this over a full page read, but the description never explicitly states when to use it, when not to use it, or which alternative to choose. Usage must be inferred from the output summary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_search_facetsList documentation search facetsARead-onlyInspect
List valid framework, version, package, and tag filters with matching page counts before calling search_docs. Use facet, limit, and cursor to continue a large facet without document bodies.
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | ||
| facet | No | ||
| limit | No | ||
| cursor | No | Opaque nextCursor from the preceding response page. | |
| locale | No | ||
| package | No | ||
| version | No | ||
| audience | No | ||
| framework | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| facets | Yes | |
| format | Yes | |
| filters | Yes | |
| audience | Yes | |
| indexGeneration | Yes | |
| matchedPageCount | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already covers the safety profile, and the description adds genuinely new behavior: facet results include matching page counts and carry no document bodies, and large facets are paginated via cursor. It stops short of describing error or empty-facet behavior, so not a 5.
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, front-loaded with the purpose and the relationship to search_docs. No wasted words; each clause carries distinct information.
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?
An output schema exists, so return values need no explanation, and the core call-then-paginate workflow is conveyed. However, for a 9-parameter tool with near-zero schema documentation, the description leaves a lot of interactive behavior (how filters narrow the facet listing) unexplained.
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?
With only 11% schema description coverage across 9 parameters, the description must carry more weight than it does. It explains facet, limit, and cursor (continuation), and the facet enum is self-documenting, but the filter parameters (framework, version, package, tags, locale, audience) and how they scope the returned facets are never described.
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 valid framework, version, package, and tag filters with matching page counts') and explicitly positions itself relative to a sibling by saying to call it 'before calling search_docs.' An agent can distinguish it from search_docs and list_docs without opening any 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?
The sequencing guidance ('before calling search_docs') and the pagination instruction ('Use facet, limit, and cursor to continue a large facet without document bodies') give clear usage context. There are no explicit when-not conditions, but the workflow role is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_tasksList documented tasksBRead-onlyInspect
List pages with actionable agent contracts, optionally filtered by text or applicability.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | ||
| cursor | No | Opaque nextCursor from the preceding response page. | |
| locale | No | ||
| package | No | ||
| version | No | ||
| framework | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| tasks | Yes | |
| total | Yes | Items in the complete filtered result set. |
| hasMore | Yes | Whether another response page is available. |
| nextCursor | No | Opaque cursor to pass as cursor on the next request. |
| resultCount | Yes | Items returned in this response page. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already declares the safe-read profile, so the description only needs to add contextual behavior. It adds that results are limited to pages carrying actionable contracts, which is useful, but says nothing about pagination despite a cursor parameter, nor about result ordering or volume.
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?
A single well-formed sentence, front-loaded with the verb and core behavior. Tight, though the trailing filter clause is too abstract to earn its place as written.
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?
An output schema exists, so return values needn't be explained, and annotations cover safety. However, with five of six parameters undocumented and the tasks-vs-pages framing unresolved, an agent still lacks enough to call it correctly with filters.
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 only 17% โ only 'cursor' is documented. The description's vague 'filtered by text or applicability' does not map onto the six parameters: query, locale, package, version, and framework are left entirely unexplained as to meaning or effect.
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 concrete verb and result set ('List pages with actionable agent contracts'), which is more specific than the bare name list_tasks and separates it from generic listers like list_pages or list_docs. The only friction is the terminology shift from 'tasks' in the name/title to 'pages' in the description, which slightly blurs what a returned item actually is.
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 says results can be 'optionally filtered by text or applicability' but never states when to choose this over list_pages, list_docs, or read_task in the sibling set. No prerequisites, no exclusions, no guidance on combining filters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_pageRead a docs pageBRead-onlyInspect
Read a documentation page by slug or URL path, optionally selecting one heading and limiting returned characters.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| locale | No | ||
| section | No | ||
| maxChars | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| page | Yes | |
| chars | Yes | |
| anchor | No | |
| section | No | |
| document | Yes | |
| truncated | Yes | |
| totalChars | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, so the safety profile is already covered and the description does not contradict it. It adds useful behavioral context about scoping output to one heading and capping returned characters, but says nothing about what happens for an unknown slug, missing section, or truncation.
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?
A single front-loaded sentence with no filler; each clause maps to a distinct capability (identifier form, heading selection, output capping). Nothing needs to be cut.
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?
An output schema exists, so return values need not be described, and readOnlyHint covers safety. However, for a 4-parameter tool with 0% schema coverage, leaving locale undefined and omitting error/truncation behavior leaves the definition only minimally viable.
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 0%, so the description must carry the load: it clarifies path accepts a slug or URL path, that section selects one heading, and that maxChars limits returned characters. It leaves locale entirely unexplained, so one of four parameters is undocumented in both schema and description.
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 ('Read a documentation page') and clarifies the accepted identifier form ('by slug or URL path'), which lets an agent distinguish it from list_pages or get_navigation. It stops short of explicitly contrasting with its closest sibling, read_pages, so sibling differentiation is implied rather than stated.
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?
There is no when-to-use guidance, no statement of when to prefer this over read_pages (plural) or list_page_sections, and no mention of prerequisites or failure behavior for a bad slug. The optional behaviors are mentioned but never framed as selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_pagesRead several docs pagesBRead-onlyInspect
Read up to 20 documentation pages in one round trip. Results preserve request order and share a conservative UTF-8 token budget.
| Name | Required | Description | Default |
|---|---|---|---|
| paths | Yes | Page slugs or URL paths to read in the requested order. | |
| locale | No | ||
| tokenBudget | No | ||
| maxCharsPerPage | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| pages | Yes | |
| budget | Yes | |
| errors | Yes | |
| format | Yes | |
| resultCount | Yes | |
| remainingPaths | Yes | |
| requestedCount | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the description does not need to explain safety. It does add useful behavior beyond annotations: results preserve request order and share a conservative UTF-8 token budget. However, it remains vague about budget defaults, truncation behavior, and what happens when the budget is exceeded.
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, front-loaded with the core action and scope, with no filler or repetition. The second sentence adds distinct behavioral information about ordering and token budgeting. Every sentence earns its place.
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?
Although an output schema exists so return values need not be explained, the input schema has three undocumented parameters and the description does not compensate. It also omits usage guidance against siblings like read_page. For a multi-page read tool with a token budget and per-page character limit, this leaves key invocation details uncovered.
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 only 25%, with just the paths parameter documented. The description repeats the 20-page limit and request-order behavior already stated in the schema, and only vaguely gestures at tokenBudget. It does not explain locale, maxCharsPerPage, or how the shared token budget is applied or overridden.
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: read documentation pages, with a clear batch scope of up to 20 pages in one round trip. It implicitly distinguishes itself from read_page by emphasizing multiple pages, but does not explicitly name or contrast with the sibling. This is clear but lacks the explicit sibling differentiation seen in top-tier definitions.
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?
The description gives no when-to-use guidance and does not mention alternatives such as read_page or list_pages. The batch limit implies a multi-page use case, but an agent receives no explicit rule for choosing this tool over its siblings. This is a significant gap given the presence of closely related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_taskRead a documented taskCRead-onlyInspect
Read the full structured agent contract for a page by slug or URL path.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| locale | No | ||
| section | No | ||
| maxChars | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| page | Yes | |
| contract | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already establishes the safe-read profile, lowering the bar, but the description adds almost nothing beyond that. It does not disclose pagination, size limits, or auth needs, and 'full structured agent contract' is vague about what is actually returned.
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?
A single sentence with no waste, but it is under-specified rather than efficiently complete. The one clarifying detail (slug or URL path) is useful yet insufficient for the tool's complexity.
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?
An output schema exists so return values need not be explained, but with 4 parameters at 0% coverage and a page/task naming mismatch, the description is not complete enough for an agent to invoke the tool confidently. It should at least cover the core parameters and the task-vs-page distinction.
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 0% across 4 parameters. The phrase 'by slug or URL path' only loosely maps to the required 'path' parameter, and locale, section, and maxChars are entirely undocumented in both schema and description. The description fails to compensate for the coverage gap.
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 verb (Read) and a resource (the full structured agent contract), but the noun 'page' conflicts with the tool name read_task and title 'Read a documented task', and it doesn't distinguish itself from the sibling read_page. An agent cannot easily tell when to use read_task versus read_page based on this text.
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?
There is no indication of when to use this tool versus alternatives like read_page or list_tasks, and no prerequisites or context are given. Usage is left entirely to inference from the sibling names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_docsSearch documentationBRead-onlyInspect
Search the docs by keyword with optional framework, version, package, and tag filters. Returns structured ambiguity and metadata warnings.
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | ||
| limit | No | ||
| query | Yes | ||
| cursor | No | Opaque nextCursor from the preceding response page. | |
| locale | No | ||
| explain | No | Include matched terms, scope decisions, ambiguity, and ranking reasons. | |
| package | No | ||
| version | No | ||
| audience | No | ||
| framework | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| query | Yes | |
| total | Yes | Items in the complete filtered result set. |
| format | Yes | |
| filters | Yes | |
| hasMore | Yes | Whether another response page is available. |
| results | Yes | |
| audience | Yes | |
| warnings | Yes | |
| nextCursor | No | Opaque cursor to pass as cursor on the next request. |
| resultCount | Yes | Items returned in this response page. |
| indexGeneration | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already establishes the safety profile, so the bar is lower. The description adds one genuinely useful behavioral detail - that results carry ambiguity and metadata warnings - but says nothing about pagination behavior, ranking, or result volume even though paging params exist.
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 tight sentences that front-load the action and the filter list, then note the distinctive return behavior. No filler, though the second sentence could be more specific about what a 'metadata warning' means.
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?
An output schema exists, so return values need not be spelled out, and the description reasonably covers the primary filter set. It is still thin for a 10-parameter search tool, omitting any mention of paging, the audience enum, or how limit interacts with results.
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 only 20% across 10 params, so the description must compensate. It names five filter dimensions (keyword, framework, version, package, tags) but is silent on limit, cursor, locale, audience, and explain, leaving half the surface undocumented in prose.
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 (search the docs by keyword) and enumerates the filter dimensions, so it is clearly a query tool rather than a lister. It stops short of naming how it differs from siblings like list_docs or list_search_facets.
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?
The word 'search ... by keyword' implies the usage context but there is no explicit when-to-use, no condition selecting this over list_docs/list_search_facets, and no note on prerequisites. An agent must infer the routing itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
submit_feedbackSubmit documentation feedbackAInspect
Submit machine-readable documentation feedback. The payload is validated against the site's configured agent feedback schema before delivery.
| Name | Required | Description | Default |
|---|---|---|---|
| context | No | ||
| payload | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| message | Yes | |
| accepted | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=false, and destructiveHint=false, establishing this as a non-idempotent, non-destructive write. The description contributes real beyond-annotation detail: the payload is validated against a site-configured agent feedback schema before delivery, so the agent knows submissions can be rejected. It does not say what happens on validation failure or where feedback is delivered.
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, no filler, and the key fact (schema validation before delivery) is stated up front. Nothing could be cut without losing information.
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?
An output schema exists, so return values need not be explained. However, for a non-idempotent mutation with an opaque payload, the description omits the most operationally important detail: that the agent should retrieve the feedback schema first (notably via the sibling get_config_schema) and what the context fields are for.
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 0% for two parameters, including a nested context object (url, page, slug, locale, source) and an open-ended payload object with additionalProperties. The description explains that the payload shape is governed by an external site-configured schema, which is genuinely useful framing, but it says nothing about the context fields the agent is expected to populate.
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 ("Submit ... documentation feedback") with the qualifier "machine-readable." It is clearly the only write/submit tool among a set of read-only siblings, though it never explicitly contrasts itself with them.
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?
The description never says when to call this tool, what conditions require feedback submission, or what alternatives exist. The agent must infer usage purely from the name and the fact that all siblings are read operations.
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.
16 tool updates
- First observed
get_code_examples - First observed
get_config_schema - First observed
get_context - First observed
get_navigation - First observed
hydrate_content_changes - First observed
list_content_changes - First observed
list_docs - First observed
list_page_sections - First observed
list_pages - First observed
list_search_facets - First observed
list_tasks - First observed
read_page - First observed
read_pages - First observed
read_task - First observed
search_docs - First observed
submit_feedback
Related MCP Connectors
Search and read the Lium GPU rental docs: pods, CLI, SDK, REST API and agent guides.
Search and read Vector Panda docs: API operations, pricing, storage tiers, measured benchmarks.
Search and read the Metabind documentation: MCP Apps, BindJS, the SDKs, the CLI, and the APIs.
Search and read documentation about NServiceBus and the Particular Service Platform.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables searching and fetching documentation pages from a wide range of programming languages, frameworks, game engines, and tools. Supports multiple sources and returns relevant documentation snippets.1-

docs-mcpofficial
AlicenseAqualityAmaintenanceLets AI agents search and read a folder of Markdown documentation at query time, exposing heading-level search, whole-page or section retrieval, and page listing as tools and resources over stdio or Streamable HTTP. Can run as a CLI, a hosted endpoint, or a library inside an existing Node or Next.js site.3706 npmMIT- AlicenseAqualityBmaintenanceSearch and retrieve Agent2Agent (A2A) protocol documentation using full-text search and section filtering.2MIT
- AlicenseAqualityBmaintenanceAccess to 819+ documentation sources from devdocs.io with semantic search capabilities.9MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.