OpenVidu Docs
Server Details
The official OpenVidu documentation, per version, for coding agents.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 7 tools
Most tools target clearly distinct operations (search, browse, fetch, list versions, resolve environment), but get_changelog and get_pricing_info are convenience shortcuts that overlap with get_doc_page. Their descriptions explicitly clarify the boundaries (changelog avoids URL guessing, pricing is non-versioned), so misselection is unlikely but not impossible.
All names are snake_case following a verb_noun pattern: get_changelog, get_doc_page, get_pricing_info, list_doc_sections, list_versions, search_docs, resolve_openvidu_version_edition_product. The last name is verbose but still conforms to the same convention.
Seven tools is well within the sweet spot and each maps to a distinct documentation task (discovery, retrieval, versioning, environment resolution). No redundant or filler tools for the stated scope.
The surface covers the full documentation lifecycle: search, section browsing, page retrieval (single and batch), version listing, changelog, pricing, and version/edition/product resolution. Generic page retrieval fills any remaining content gaps, leaving no obvious dead ends.
Available Tools
7 toolsget_changelogGet release notesARead-onlyIdempotentInspect
Returns the release notes / changelog page(s) already indexed for a version (e.g. 'OpenVidu Meet release notes', 'OpenVidu Platform release notes'), without having to guess the URL via search_docs or list_doc_sections. A page cut at 'max_chars' carries 'truncated', 'next_offset' and 'headings': pass its 'url' to get_doc_page with that offset to read on, or with one of those headings to read just that release. The response includes 'version_used': always tell the user which documentation version what you're telling them corresponds to. If it also carries 'version_warning', or 'version_sensitive': true on a result or in a page's 'version_note', the page changes between versions: say so explicitly and explain how to specify a different one. The index has no notion of edition or product, so if the answer depends on either, say which one you assumed.
| Name | Required | Description | Default |
|---|---|---|---|
| product | No | Restricts the search to sections whose name contains this word, e.g. 'meet' or 'platform'. Omit to return every release-notes page found. | |
| version | No | Version of the OpenVidu SERVER the project's deployment runs, as the deployment reports it ('3.9.0', '3.9.1'): documentation is published per minor release, so it resolves to '3.9'. DO NOT INFER it from the project's dependencies (livekit-client, livekit-server-sdk, web components): their versions do NOT correspond to the server's, and passing one here returns documentation for the wrong version. To find out for real, call 'resolve_openvidu_version_edition_product' with no arguments: it returns the procedure to obtain the version, the edition (ce/pro) and the product (Platform/Meet) from the deployment itself. Cheaper first check: the project's AGENTS.md/CLAUDE.md, where it may already be pinned. If you have none of these, OMIT the parameter: the default version is used and the response tells you whether that matters for the page being queried. Don't guess. | |
| max_chars | No | Characters of each page to return. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety (readOnly/idempotent/non-destructive), yet the description adds substantial behavior: the '"truncated'/next_offset/headings' structure of a cut page, the 'version_used' field that must be surfaced, and the 'version_warning'/'version_sensitive' signals that indicate edition/product ambiguity in the index. This is real context beyond the structured fields.
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?
Front-loads the purpose, then layers continuation and version-handling guidance. It is long and dense for a 3-parameter tool, but nearly every sentence carries actionable instruction (truncation handling, version disclosure, edition/product caveat), so little is wasted.
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?
No output schema exists, but the description explains the response fields (version_used, version_warning, version_sensitive, truncated, next_offset, headings) and covers the index's lack of edition/product awareness. An agent has everything needed to call and interpret the 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 schema already documents product, version, and max_chars fully. The description's version guidance largely reiterates the schema's warning against inferring versions from dependencies, adding routing advice rather than new parameter semantics. Baseline 3 is appropriate.
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 opens with a specific verb+resource: it returns release notes/changelog pages already indexed for a version, and explicitly contrasts this with guessing a URL via search_docs or list_doc_sections. That is enough to distinguish it from every sibling without opening a 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 states when to use it (to avoid URL-guessing via search_docs/list_doc_sections), how to continue reading a truncated page (get_doc_page with next_offset or a heading), and names the alternative tool (resolve_openvidu_version_edition_product, plus AGENTS.md/CLAUDE.md first check) for resolving the version. Explicit alternatives and conditions are all present.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_doc_pageGet a documentation pageARead-onlyIdempotentInspect
Returns the content of a page of the OpenVidu documentation (openvidu.io) for a specific version, or of several pages at once with 'urls' (one round trip instead of several). Pass exactly one of 'url' and 'urls'. A URL ending in a #anchor, as search_docs returns for a match under a heading, returns only that heading's section, subsections included; 'heading' does the same by name, and comes with the page's 'intro' and 'headings': when the answer may also depend on setup or context described elsewhere, read those sections too, or drop the anchor to read the whole page. A page longer than 'max_chars' comes back cut: 'truncated' is true, 'total_chars' is its full length, 'next_offset' is the 'offset' that reads the next chunk, and 'headings' lists its sections and their sizes, so you can read only the one you need. Every URL returned is the page as a person opens it: link those in answers. list_doc_sections with 'section' gives valid URLs; so does search_docs. The response includes 'version_used': always tell the user which documentation version what you're telling them corresponds to. If it also carries 'version_warning', or 'version_sensitive': true on a result or in a page's 'version_note', the page changes between versions: say so explicitly and explain how to specify a different one. The index has no notion of edition or product, so if the answer depends on either, say which one you assumed.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | One page URL, as list_doc_sections or search_docs return it. With a #anchor, only that heading's section. | |
| urls | No | Several page URLs instead of 'url', up to 10. Each comes back under 'pages', with its own error if it is not in the index, and a #anchor reads that section only. | |
| offset | No | Character of each page to start from. Pass a previous response's 'next_offset' to read on. | |
| heading | No | With 'url': read only the section under this heading, by its text as 'headings' or search_docs name it, or by its anchor. | |
| version | No | Version of the OpenVidu SERVER the project's deployment runs, as the deployment reports it ('3.9.0', '3.9.1'): documentation is published per minor release, so it resolves to '3.9'. DO NOT INFER it from the project's dependencies (livekit-client, livekit-server-sdk, web components): their versions do NOT correspond to the server's, and passing one here returns documentation for the wrong version. To find out for real, call 'resolve_openvidu_version_edition_product' with no arguments: it returns the procedure to obtain the version, the edition (ce/pro) and the product (Platform/Meet) from the deployment itself. Cheaper first check: the project's AGENTS.md/CLAUDE.md, where it may already be pinned. If you have none of these, OMIT the parameter: the default version is used and the response tells you whether that matters for the page being queried. Don't guess. | |
| max_chars | No | Characters of each page to return, from 'offset'. |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | No | The page as a person opens it: link this one. |
| error | No | Why this page could not be returned. |
| intro | No | The page's text before its first section, with a section. |
| pages | No | |
| content | No | |
| heading | No | The heading whose section this is. |
| headings | No | The page's headings, when it is cut, a section of it was read, or the heading asked for is not on it. |
| truncated | No | The page goes on past this chunk. |
| versioned | No | |
| page_chars | No | Length of the whole page, when a section was read. |
| next_offset | No | 'offset' of the next chunk, when truncated. |
| total_chars | No | Length of the page, or of the section read. |
| version_used | No | Documentation version that answered. |
| requested_url | No | |
| resolved_from | No | How it was chosen: default, explicit, normalized, alias_latest, or url (the release a get_doc_page URL names). |
| default_version | Yes | |
| heading_not_found | No | |
| available_versions | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, but the description goes well beyond them: truncation mechanics ('truncated', 'total_chars', 'next_offset'), the meaning of #anchor vs 'heading', the one-round-trip batching tradeoff, and the version-reporting contract ('version_used', 'version_warning', 'version_sensitive'). That is exactly the kind of operational context structured fields cannot express.
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?
Purpose is front-loaded in the first clause and each subsequent sentence carries distinct payload (batching, anchors, truncation, versioning). It is nonetheless a dense, prose-heavy block, and the version guidance is longer than strictly needed, which keeps it short of a 5.
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?
Even though an output schema exists, the description anticipates the agent's real failure modes: version inference from unrelated dependencies, silent truncation, and unstated edition/product assumptions. Nothing an agent needs to call this correctly or report results faithfully 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 schema descriptions are already rich, so the baseline is 3. The description still adds non-schema constraints, notably the mutual exclusivity of 'url' and 'urls', anchor-vs-heading equivalence, and how 'offset'/'max_chars' chain across responses.
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 ('Returns the content of a page of the OpenVidu documentation (openvidu.io) for a specific version') and explicitly covers the batch variant via 'urls'. It also distinguishes itself from siblings by naming search_docs and list_doc_sections as the sources of valid URLs.
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 an explicit selection rule ('Pass exactly one of url and urls'), explains when to read only a heading section vs. dropping the anchor to read the whole page, and routes to the right siblings (list_doc_sections, search_docs, resolve_openvidu_version_edition_product). Both when-to-use and when-to-widen are covered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pricing_infoGet pricing informationARead-onlyIdempotentInspect
Returns the content of OpenVidu's pricing page (editions, plans, cost model). Not versioned: pricing is the same across every indexed documentation version, so this tool takes no 'version' argument. When cut at 'max_chars' it carries 'truncated', 'next_offset' and 'headings': pass its 'url' to get_doc_page with that offset to read on, or with a heading to read just that section.
| Name | Required | Description | Default |
|---|---|---|---|
| max_chars | No | Characters to return. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already certify read-only, idempotent, non-destructive behavior, so the bar is lower. The description adds genuinely useful non-structured context: pricing is version-invariant and the response can be truncated ('truncated', 'next_offset', 'headings'), which an agent cannot learn from annotations or schema.
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, front-loaded with the purpose before the version caveat and truncation contract. Dense but nearly every clause carries distinct information; the final sentence is packed with field names and could be marginally tighter.
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 carries the return-shape burden and does so, naming the truncation fields and the continuation path. Combined with annotation-covered safety semantics, an agent has everything needed to invoke it 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% and the single 'max_chars' param is already documented, so baseline is 3. The description goes further by explaining the consequence of the parameter (what truncation metadata appears and how to resume), which adds meaning beyond the schema.
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?
Opens with a specific verb+resource: 'Returns the content of OpenVidu's pricing page (editions, plans, cost model)'. The enumerated scope distinguishes it cleanly from siblings like get_doc_page, get_changelog, and search_docs.
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?
Explicitly routes the agent: when the page is cut at max_chars, pass the retrieved 'url' to get_doc_page with 'next_offset' (or a heading) to continue. It also explains why no 'version' argument exists, which preempts a wrong call against list_versions/get_doc_page.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_doc_sectionsList documentation sectionsARead-onlyIdempotentInspect
Browses the indexed documentation of a version. Without arguments it returns an overview: every section and how many pages it holds. With 'section' it returns that section's pages, with their URLs and descriptions. Use it to find out what exists before requesting a specific page. The response includes 'version_used': always tell the user which documentation version what you're telling them corresponds to. If it also carries 'version_warning', or 'version_sensitive': true on a result or in a page's 'version_note', the page changes between versions: say so explicitly and explain how to specify a different one. The index has no notion of edition or product, so if the answer depends on either, say which one you assumed.
| Name | Required | Description | Default |
|---|---|---|---|
| section | No | Name of one section, as the overview lists it (case-insensitive). Omit to get the overview. | |
| version | No | Version of the OpenVidu SERVER the project's deployment runs, as the deployment reports it ('3.9.0', '3.9.1'): documentation is published per minor release, so it resolves to '3.9'. DO NOT INFER it from the project's dependencies (livekit-client, livekit-server-sdk, web components): their versions do NOT correspond to the server's, and passing one here returns documentation for the wrong version. To find out for real, call 'resolve_openvidu_version_edition_product' with no arguments: it returns the procedure to obtain the version, the edition (ce/pro) and the product (Platform/Meet) from the deployment itself. Cheaper first check: the project's AGENTS.md/CLAUDE.md, where it may already be pinned. If you have none of these, OMIT the parameter: the default version is used and the response tells you whether that matters for the page being queried. Don't guess. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile (readOnly, idempotent, not destructive), and the description goes further by disclosing response-level behavior: version_used, version_warning, and per-result version_sensitive/version_note semantics, plus the admission that the index has no notion of edition or product. That is real behavioral context an agent would otherwise only discover by inspecting raw output.
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?
It is front-loaded correctly — mode behavior first, then routing, then output-handling obligations. It runs long, and the version-reporting instructions (how to phrase things to the user) drift toward prompt-engineering rather than tool documentation, but each sentence still serves correct invocation.
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, yet the description compensates fully by naming the significant response fields and what they obligate the agent to do. Combined with sibling-tool routing, an agent has everything needed to call this correctly and interpret the 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% and the schema's own parameter descriptions are extremely detailed, including the version-inference warning and the pointer to resolve_openvidu_version_edition_product. The description's 'Without arguments it returns an overview / With section it returns that section's pages' largely restates what the schema already documents, so the baseline 3 is appropriate.
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 precise verb and resource ('Browses the indexed documentation of a version') and describes both operating modes: overview of all sections, or one section's pages with URLs. It implicitly distinguishes itself from get_doc_page by framing itself as the discovery step ('find out what exists before requesting a specific page').
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 explicit routing: use this to see what exists before calling get_doc_page, and it points at resolve_openvidu_version_edition_product for resolving the version parameter. The 'Don't guess' instruction and the fallback ('OMIT the parameter') tell the agent exactly what to do in the ambiguous case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_versionsList documentation versionsARead-onlyIdempotentInspect
Lists the available documentation versions and the default one, plus where to look for the user's version-edition-product. Use it if you don't know what value to pass for 'version'. It does NOT establish the user's deployment: for the procedure that does, and for the snippet that pins the result in their AGENTS.md/CLAUDE.md, call 'resolve_openvidu_version_edition_product'.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint, idempotentHint, and openWorldHint=false, so the safety profile is covered. The description adds useful non-obvious context: that it also returns the default version and hints where to look for the version-edition-product tuple, and clarifies a tempting but wrong inference (it does NOT determine deployment). It stops short of describing the return shape or ordering.
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 compact sentences, front-loaded with what it returns and immediately followed by the routing guidance. The exclusions run slightly dense but every clause is load-bearing.
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 zero-param, read-only discovery tool with a fully-covered (empty) schema and clear annotations, the description answers what it returns, when to call it, and which sibling to use instead. Nothing an agent needs to invoke it correctly 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?
Zero parameters, so the baseline is 4. The description sensibly explains the output's role as an input value for 'version', which is the salient semantic for a no-arg discovery tool.
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 (Lists) and resource (documentation versions plus the default), and explicitly names the sibling it is not (resolve_openvidu_version_edition_product). An agent can distinguish it from siblings 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?
Gives an explicit triggering condition ("Use it if you don't know what value to pass for 'version'") and an explicit exclusion with the correct alternative named ("It does NOT establish the user's deployment... call 'resolve_openvidu_version_edition_product'"). This is a textbook when/when-not/alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resolve_openvidu_version_edition_productResolve version, edition and productARead-onlyIdempotentInspect
Answers "which OpenVidu version, edition and product does this project use?". Called with NO arguments, it returns the full procedure a coding agent follows to find out from the deployment itself: telling OpenVidu Platform (LiveKit SDKs) from OpenVidu Meet, locating the deployment URL and its credentials, querying the endpoint that reports version and edition, the fallbacks when that endpoint is unavailable, and the security rules that apply throughout. Use it before answering anything version-, edition- or product-dependent, unless the project's AGENTS.md/CLAUDE.md already pins it. Called WITH 'livekit_version', it additionally translates a LiveKit Server version (as printed in OpenVidu LiveKit Server's startup log) into the OpenVidu version(s) built on it — the fallback path of the procedure for deployments before 3.9.0, which cannot report their own version. Called with 'commands': true, it returns the exact commands that ask a deployment for its version and edition, keeping its credentials out of sight. Never infer any of the three facts from the project's client SDK dependency versions.
| Name | Required | Description | Default |
|---|---|---|---|
| commands | No | true: the exact commands that ask the deployment for its version and edition, Step 3 of the procedure. Only once there is a deployment to ask. | |
| livekit_version | No | Optional. LiveKit Server version the deployment is built on, e.g. '1.9.8', as printed in OpenVidu LiveKit Server's startup log. Only for deployments before 3.9.0, which cannot report their own version. Omit it to get the detection procedure. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only cover the safety profile (read-only, idempotent, closed-world); the description adds substance beyond that, disclosing that the return value is a multi-step procedure including endpoint queries, fallbacks and security rules, that a credential-hiding mode exists via 'commands', and that the tool acts as the documented fallback path for pre-3.9.0 deployments that cannot self-report.
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 clause and every subsequent sentence carries distinct information (modes, fallbacks, security, prohibition), so little is wasted. It is nonetheless a single dense paragraph with long em-dash clauses that would scan faster if the three invocation modes were broken out.
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 zero required parameters and no output schema, the description still covers what is returned (a procedure and, optionally, commands), the conditions under which each mode applies, the security handling of credentials, and the explicit non-inference rule. Nothing an agent needs in order to call it correctly 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%, so the baseline is 3, but the description meaningfully exceeds the schema: it explains that the no-argument call yields the detection procedure, that 'livekit_version' triggers version translation and is only valid for pre-3.9.0 deployments, and that 'commands' maps to Step 3 of the procedure. It adds routing and eligibility meaning the plain schema does not.
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 precise, narrow purpose in the form of the question it answers ('which OpenVidu version, edition and product does this project use?') and distinguishes itself from plain documentation lookups by describing a procedure derived from the deployment itself. It never names or contrasts with sibling tools such as list_versions or get_doc_page, so an agent must infer the boundary rather than being told it.
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 an explicit trigger ('before answering anything version-, edition- or product-dependent'), an explicit exclusion ('unless the project's AGENTS.md/CLAUDE.md already pins it'), and per-argument conditions ('only for deployments before 3.9.0', 'only once there is a deployment to ask'). It also states a hard prohibition on an alternative inference path ('never infer ... from the project's client SDK dependency versions').
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_docsSearch the documentationARead-onlyIdempotentInspect
Searches for a term in the indexed documentation of a version. Applies stemming and domain synonyms, so morphological variants and synonyms also match. Pass exactly one of 'query' and 'queries' — the latter runs several searches in one call, each under 'searches'. When 'truncated' is true, 'next_page' is the value of 'page' for the next results. A match under a heading names it in 'heading', and its 'url' ends in that section's #anchor: get_doc_page on that URL reads just the section. May also return a livekit block: pointers to LiveKit's SDK documentation, which is NOT OpenVidu documentation and carries its own version caveat — read that block's own guidance before using it. The response includes 'version_used': always tell the user which documentation version what you're telling them corresponds to. If it also carries 'version_warning', or 'version_sensitive': true on a result or in a page's 'version_note', the page changes between versions: say so explicitly and explain how to specify a different one. The index has no notion of edition or product, so if the answer depends on either, say which one you assumed.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Which page of results, from 1. | |
| query | No | Term or phrase to search for (case-insensitive). | |
| queries | No | Several queries instead of 'query', up to 5: different phrasings of the same question, or related ones. | |
| version | No | Version of the OpenVidu SERVER the project's deployment runs, as the deployment reports it ('3.9.0', '3.9.1'): documentation is published per minor release, so it resolves to '3.9'. DO NOT INFER it from the project's dependencies (livekit-client, livekit-server-sdk, web components): their versions do NOT correspond to the server's, and passing one here returns documentation for the wrong version. To find out for real, call 'resolve_openvidu_version_edition_product' with no arguments: it returns the procedure to obtain the version, the edition (ce/pro) and the product (Platform/Meet) from the deployment itself. Cheaper first check: the project's AGENTS.md/CLAUDE.md, where it may already be pinned. If you have none of these, OMIT the parameter: the default version is used and the response tells you whether that matters for the page being queried. Don't guess. | |
| max_results | No | Results per page. |
Output Schema
| Name | Required | Description |
|---|---|---|
| page | No | |
| query | No | |
| livekit | No | Pointers to LiveKit's own documentation. NOT OpenVidu results. |
| results | No | |
| searches | No | |
| next_page | No | |
| truncated | No | More results exist beyond this page. |
| version_used | Yes | Documentation version that answered. |
| resolved_from | Yes | How it was chosen: default, explicit, normalized, alias_latest, or url (the release a get_doc_page URL names). |
| total_matches | No | |
| default_version | Yes | |
| available_versions | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Very rich disclosure beyond annotations: stemming/synonym behavior, one-of query/queries constraint, pagination semantics via truncated/next_page, heading/anchor navigation, a livekit block warning that is NOT OpenVidu documentation, and version_used/version_warning/version_sensitive handling. Annotations cover readOnly/idempotent/openWorld, and the description adds substantial operational context without contradicting them.
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?
Front-loads the core purpose and search behavior well, but grows long with several distinct concerns (query/queries, truncation, headings, livekit block, version_used/warnings, edition/product caveat). Each sentence is useful, but the structure is dense and some guidance is buried mid-paragraph rather than cleanly separated.
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?
Given five parameters, an output schema present, and a search tool with subtle version/edition behaviors, the description covers the key quirks an agent needs. It leaves some details to the output schema but fills in behavioral gaps the schema cannot express, such as version assumptions and the livekit block caveat.
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 schema already documents parameters well. The description adds task-relevant semantics for query vs queries, truncated/next_page, heading/url anchor behavior, and the version_used/version_warning fields. That goes beyond the schema for response-driven parameters, meeting the 'high schema coverage = baseline 3' bar and exceeding it where it matters.
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 clear verb+resource ('Searches for a term in the indexed documentation') and adds scoping detail (per version, stemming and synonyms). It distinguishes itself from siblings like get_doc_page and list_doc_sections implicitly through 'search' behavior. Sibling differentiation is present but not as explicit as routing language would be.
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 concrete usage guidance: 'Pass exactly one of query and queries'. Explains when to use queries (several searches at once) and gives a strong instruction to call resolve_openvidu_version_edition_product when the version is unknown. No explicit when-not-to-use or sibling alternatives, but the conditions are clear enough for the agent to act.
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.
7 tool updates
- First observed
get_changelog - First observed
get_doc_page - First observed
get_pricing_info - First observed
list_doc_sections - First observed
list_versions - First observed
resolve_openvidu_version_edition_product - First observed
search_docs
Related MCP Connectors
Latest versions, changes and error fixes for CLIs and SDKs agents use, plus posts. Read-only.
Verified, version-pinned answers about fast-moving frameworks for coding agents.
MCP server for agentverse documentation, generated by doc2mcp.
- TinOAuthcomputer.tin
Open-source marketing system, designed for coding agents.
Related MCP Servers
- AlicenseAqualityDmaintenanceTracks latest versions and breaking changes for popular SDKs, enabling agents to check version updates and potential breaking changes efficiently.461 npmApache 2.0
- AlicenseAqualityAmaintenanceEnables coding agents to develop Open77 server resources with the full Lua API, permissions, events, game data, guides, and schemas pinned to a specific server build, plus validation and live server tools.2735 npm1MIT
- FlicenseNot gradedqualityDmaintenanceProvides AI agents with professional coding standards, development best practices, and context-aware guidance through static documentation and AI-powered custom recommendations. Enables agents to access comprehensive development guidelines including coding rules, debugging techniques, and AI steering instructions.-
- AlicenseNot gradedqualityCmaintenanceProvides a local, vendor-agnostic control room where coding agents can be assigned tasks, exchange scoped messages, submit claims, and have work reviewed across different models, with a voxel-world interface for inspecting sessions and evidence.4MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.