OpenVidu Docs
The official OpenVidu documentation, per version, for coding agents.
使うべきか
品質と安全性
検出事項(1)
- LOWresolve_openvidu_version_edition_product 内
ツール定義とプロトコルへの準拠に関する自動分析に基づいています。
コンテキストコスト
これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。
インストール
ワンクリックインストール
これを `claude_desktop_config.json` ファイルに追加してください:
{
"mcpServers": {
"docs": {
"url": "https://docs-mcp.openvidu.io/mcp"
}
}
}リモートエンドポイント
https://docs-mcp.openvidu.io/mcpstreamable-httpできること
ツール一覧
ツール(7)
🟢resolve_openvidu_version_edition_product(livekit_version, commands)
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.
入力スキーマ
{
"type": "object",
"properties": {
"livekit_version": {
"type": "string",
"description": "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."
},
"commands": {
"type": "boolean",
"description": "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.",
"default": false
}
},
"additionalProperties": false
}🟢list_versions
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'.
入力スキーマ
{
"type": "object",
"properties": {},
"additionalProperties": false
}🟢list_doc_sections(version, section)
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.
入力スキーマ
{
"type": "object",
"properties": {
"version": {
"type": "string",
"description": "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."
},
"section": {
"type": "string",
"description": "Name of one section, as the overview lists it (case-insensitive). Omit to get the overview."
}
},
"additionalProperties": false
}🟢get_doc_page(url, urls, heading, version, max_chars, ...)
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.
入力スキーマ
{
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "One page URL, as list_doc_sections or search_docs return it. With a #anchor, only that heading's section."
},
"urls": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"maxItems": 10,
"description": "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."
},
"heading": {
"type": "string",
"description": "With 'url': read only the section under this heading, by its text as 'headings' or search_docs name it, or by its anchor."
},
"version": {
"type": "string",
"description": "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": {
"type": "integer",
"description": "Characters of each page to return, from 'offset'.",
"default": 8000,
"minimum": 1
},
"offset": {
"type": "integer",
"description": "Character of each page to start from. Pass a previous response's 'next_offset' to read on.",
"default": 0,
"minimum": 0
}
},
"additionalProperties": false
}出力スキーマ
{
"type": "object",
"properties": {
"version_used": {
"type": "string",
"description": "Documentation version that answered."
},
"resolved_from": {
"type": "string",
"description": "How it was chosen: default, explicit, normalized, alias_latest, or url (the release a get_doc_page URL names)."
},
"default_version": {
"type": "string"
},
"available_versions": {
"type": "array",
"items": {
"type": "string"
}
},
"url": {
"type": "string",
"description": "The page as a person opens it: link this one."
},
"requested_url": {
"type": "string"
},
"versioned": {
"type": "boolean"
},
"heading": {
"type": "string",
"description": "The heading whose section this is."
},
"intro": {
"type": "string",
"description": "The page's text before its first section, with a section."
},
"page_chars": {
"type": "integer",
"description": "Length of the whole page, when a section was read."
},
"content": {
"type": "string"
},
"total_chars": {
"type": "integer",
"description": "Length of the page, or of the section read."
},
"truncated": {
"type": "boolean",
"description": "The page goes on past this chunk."
},
"next_offset": {
"type": "integer",
"description": "'offset' of the next chunk, when truncated."
},
"headings": {
"type": "array",
"description": "The page's headings, when it is cut, a section of it was read, or the heading asked for is not on it.",
"items": {
"type": "object",
"properties": {
"heading": {
"type": "string"
},
"chars": {
"type": "integer"
}
},
"required": [
"heading",
"chars"
]
}
},
"heading_not_found": {
"type": "string"
},
"error": {
"type": "string",
"description": "Why this page could not be returned."
},
"pages": {
"type": "array",
"items": {
"type": "object",
"properties": {
"version_used": {
"type": "string",
"description": "Documentation version that answered."
},
"resolved_from": {
"type": "string",
"description": "How it was chosen: default, explicit, normalized, alias_latest, or url (the release a get_doc_page URL names)."
},
"url": {
"type": "string",
"description": "The page as a person opens it: link this one."
},
"requested_url": {
"type": "string"
},
"versioned": {
"type": "boolean"
},
"heading": {
"type": "string",
"description": "The heading whose section this is."
},
"intro": {
"type": "string",
"description": "The page's text before its first section, with a section."
},
"page_chars": {
"type": "integer",
"description": "Length of the whole page, when a section was read."
},
"content": {
"type": "string"
},
"total_chars": {
"type": "integer",
"description": "Length of the page, or of the section read."
},
"truncated": {
"type": "boolean",
"description": "The page goes on past this chunk."
},
"next_offset": {
"type": "integer",
"description": "'offset' of the next chunk, when truncated."
},
"headings": {
"type": "array",
"description": "The page's headings, when it is cut, a section of it was read, or the heading asked for is not on it.",
"items": {
"type": "object",
"properties": {
"heading": {
"type": "string"
},
"chars": {
"type": "integer"
}
},
"required": [
"heading",
"chars"
]
}
},
"heading_not_found": {
"type": "string"
},
"error": {
"type": "string",
"description": "Why this page could not be returned."
}
},
"required": [
"url"
],
"anyOf": [
{
"required": [
"content"
]
},
{
"required": [
"error"
]
}
]
}
}
},
"required": [
"default_version",
"available_versions"
],
"anyOf": [
{
"required": [
"version_used",
"resolved_from",
"url"
],
"anyOf": [
{
"required": [
"content"
]
},
{
"required": [
"error"
]
}
]
},
{
"required": [
"pages"
]
}
]
}🟢search_docs(query, queries, version, max_results, page)
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.
入力スキーマ
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Term or phrase to search for (case-insensitive)."
},
"queries": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"maxItems": 5,
"description": "Several queries instead of 'query', up to 5: different phrasings of the same question, or related ones."
},
"version": {
"type": "string",
"description": "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": {
"type": "integer",
"description": "Results per page.",
"default": 5,
"minimum": 1
},
"page": {
"type": "integer",
"description": "Which page of results, from 1.",
"default": 1,
"minimum": 1
}
},
"additionalProperties": false
}出力スキーマ
{
"type": "object",
"properties": {
"version_used": {
"type": "string",
"description": "Documentation version that answered."
},
"resolved_from": {
"type": "string",
"description": "How it was chosen: default, explicit, normalized, alias_latest, or url (the release a get_doc_page URL names)."
},
"default_version": {
"type": "string"
},
"available_versions": {
"type": "array",
"items": {
"type": "string"
}
},
"query": {
"type": "string"
},
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"url": {
"type": "string"
},
"match_type": {
"type": "string"
},
"name": {
"type": "string"
},
"section": {
"type": "string"
},
"heading": {
"type": "string",
"description": "The heading the match is under; 'url' ends in its #anchor."
},
"version_sensitive": {
"type": "boolean",
"description": "Present, and true, when the page changes between versions."
},
"snippet": {
"type": "string"
}
},
"required": [
"url",
"match_type"
]
}
},
"total_matches": {
"type": "integer"
},
"page": {
"type": "integer"
},
"truncated": {
"type": "boolean",
"description": "More results exist beyond this page."
},
"next_page": {
"type": "integer"
},
"livekit": {
"type": "object",
"description": "Pointers to LiveKit's own documentation. NOT OpenVidu results."
},
"searches": {
"type": "array",
"items": {
"type": "object",
"properties": {
"query": {
"type": "string"
},
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"url": {
"type": "string"
},
"match_type": {
"type": "string"
},
"name": {
"type": "string"
},
"section": {
"type": "string"
},
"heading": {
"type": "string",
"description": "The heading the match is under; 'url' ends in its #anchor."
},
"version_sensitive": {
"type": "boolean",
"description": "Present, and true, when the page changes between versions."
},
"snippet": {
"type": "string"
}
},
"required": [
"url",
"match_type"
]
}
},
"total_matches": {
"type": "integer"
},
"page": {
"type": "integer"
},
"truncated": {
"type": "boolean",
"description": "More results exist beyond this page."
},
"next_page": {
"type": "integer"
},
"livekit": {
"type": "object",
"description": "Pointers to LiveKit's own documentation. NOT OpenVidu results."
}
},
"required": [
"query",
"results",
"total_matches"
]
}
}
},
"required": [
"version_used",
"resolved_from",
"default_version",
"available_versions"
],
"anyOf": [
{
"required": [
"query",
"results",
"total_matches"
]
},
{
"required": [
"searches"
]
}
]
}🟢get_changelog(product, version, max_chars)
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.
入力スキーマ
{
"type": "object",
"properties": {
"product": {
"type": "string",
"description": "Restricts the search to sections whose name contains this word, e.g. 'meet' or 'platform'. Omit to return every release-notes page found."
},
"version": {
"type": "string",
"description": "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": {
"type": "integer",
"description": "Characters of each page to return.",
"default": 8000,
"minimum": 1
}
},
"additionalProperties": false
}🟢get_pricing_info(max_chars)
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.
入力スキーマ
{
"type": "object",
"properties": {
"max_chars": {
"type": "integer",
"description": "Characters to return.",
"default": 8000,
"minimum": 1
}
},
"additionalProperties": false
}コミュニティ
エビデンス