vrchat-udon-mcp
An MCP server that indexes, searches, explains, and validates VRChat UdonSharp documentation from the live agent-skills-vrc-udon repository.
Search docs —
search_documentation,search_referencewith keyword/heading/fuzzy matching, SDK version filters, and limitsExplain topics —
explain_topic(brief/detailed/expert depth) with citations to file paths and line numbersBrowse skills & rules —
list_skills,read_skill,list_rules,read_rulefor metadata, constraints, examples, and related rulesRetrieve code templates —
list_templates,get_templatefor full UdonSharp source codeValidate code —
validate_codeagainst repository-parsed rules, plusexplain_validationto diagnose failures by rule IDSDK & feature lookup —
sdk_matrixfor version compatibility,search_sdk_featurefor NetworkCallable, PlayerData, PhysBones, etc.Targeted topic searches —
search_constraints(List<T>, Coroutine…),search_networking(ownership, sync, late joiners, serialization)Learning aids —
search_examples,search_best_practice,search_antipatternfor patterns and pitfallsRuntime-sourced — all content comes from the remote repo via MiniSearch weighted ranking and a file watcher, no hardcoded docs
Provides documentation, skills, rules, templates, and code validation for UdonSharp development in VRChat.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@vrchat-udon-mcpFind a skill for player teleportation in UdonSharp"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
``` ██╗ ██╗██████╗ ██████╗██╗ ██╗ █████╗ ████████╗ ██╗ ██╗██████╗ ██████╗ ███╗ ██╗ ███╗ ███╗ ██████╗██████╗ ██║ ██║██╔══██╗██╔════╝██║ ██║██╔══██╗╚══██╔══╝ ██║ ██║██╔══██╗██╔═══██╗████╗ ██║ ████╗ ████║██╔════╝██╔══██╗ ██║ ██║██████╔╝██║ ███████║███████║ ██║ ██║ ██║██║ ██║██║ ██║██╔██╗ ██║ ██╔████╔██║██║ ██████╔╝ ██║ ██║██╔══██╗██║ ██╔══██║██╔══██║ ██║ ██║ ██║██║ ██║██║ ██║██║╚██╗██║ ██║╚██╔╝██║██║ ██╔═══╝ ╚██████╔╝██║ ██║╚██████╗██║ ██║██║ ██║ ██║ ╚██████╔╝██████╔╝╚██████╔╝██║ ╚████║ ██║ ╚═╝ ██║╚██████╗██║ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═══╝ ╚═╝ ╚═╝ ╚═════╝╚═╝
# VRChat Udon MCP
[](https://github.com/MauDevVR/vrchat-udon-mcp/releases)
[](LICENSE)
[](https://nodejs.org/)
[](https://modelcontextprotocol.io)
**MCP server for VRChat UdonSharp development** — exposes the [agent-skills-vrc-udon](https://github.com/niaka3dayo/agent-skills-vrc-udon) knowledge base to AI assistants via the [Model Context Protocol](https://modelcontextprotocol.io).
---
## 🌐 Documentation
| Language | README | Description |
|----------|--------|-------------|
| 🇺🇸 **English** | [docs/README.en.md](docs/README.en.md) | Full guide — installation, MCP setup, tools |
| 🇪🇸 **Español** | [docs/README.es.md](docs/README.es.md) | Guía completa en español |
| 🇫🇷 **Français** | [docs/README.fr.md](docs/README.fr.md) | Guide complet en français |
| 🇯🇵 **日本語** | [docs/README.ja.md](docs/README.ja.md) | 日本語の完全ガイド |
| 🇰🇷 **한국어** | [docs/README.ko.md](docs/README.ko.md) | 한국어 전체 가이드 |
---
## What is this?
`vrchat-udon-mcp` is a **stdio MCP server** that indexes, searches, and validates UdonSharp documentation from the `agent-skills-vrc-udon` repository at runtime. No hardcoded docs — the remote repo is the single source of truth.
| | |
|---|---|
| **18 MCP tools** | Search, explain, validate, templates, SDK matrix |
| **Dynamic resources** | Skills, rules, cheatsheets, templates |
| **Live indexing** | MiniSearch with weighted ranking + file watcher |
| **IDE support** | Cursor, Claude Desktop, ChatGPT Desktop |
---
## Quick start
**Install into Cursor MCP config** (portable `npx` entry, merge-safe):
```bash
npx -y github:MauDevVR/vrchat-udon-mcp -- installThen Refresh MCP in Cursor. Optional: add --claude for Claude Desktop.
Develop from source:
git clone https://github.com/MauDevVR/vrchat-udon-mcp.git
cd vrchat-udon-mcp
pnpm install
pnpm update-docs && pnpm build-index && pnpm build
pnpm startSee docs/mcp-config.example.json and the language READMEs for workspace, npx, global install, submodule, and git dependency options.
Table of contents
Related MCP server: aiskillstore
Screenshots
Placeholder — add screenshots of MCP tools in Cursor, search results, or validation output here.
MCP connected in Cursor |
|
Screenshot pending | Screenshot pending |
License
MIT — Documentation and skills by niaka3dayo/agent-skills-vrc-udon. MCP server by MauDevVR.
Available Tools
18 toolsexplain_topicA
Explain a Udon/VRChat topic citing indexed repository sections with path and line numbers
| Name | Required | Description | Default |
|---|---|---|---|
| depth | No | detailed | |
| topic | Yes | Topic to explain | |
| sdkVersion | No | Target SDK version |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes output behavior (citations with path/line numbers) but no annotation is provided. Lacks details on safety, authorization, or side effects, leaving room for improvement.
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?
Single, front-loaded sentence with no redundant words, effectively conveying the core functionality.
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?
Adequately describes the main action but lacks details about output format and usage context among 17 sibling tools. Could be more complete with examples or when-to-use instructions.
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 covers 67% of parameters with descriptions; the tool description does not add extra context for the parameters, staying at baseline for schema coverage.
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 clearly states the tool explains Udon/VRChat topics with citations from indexed repository sections, distinguishing it from sibling tools like 'explain_validation' and search-based tools.
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?
No guidance on when to use this tool versus siblings such as 'search_documentation' or 'explain_validation'. The description lacks explicit context for appropriate scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
explain_validationA
Explain a validation failure by referencing the repository rule that caused it
| Name | Required | Description | Default |
|---|---|---|---|
| ruleId | Yes | Validation rule ID from validate_code |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose how the tool accesses the repository rule, what happens if the rule is missing, or any side effects. It is adequate but lacks depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 13 words with no wasted words. It is front-loaded and efficiently conveys the purpose.
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 simple tool with one parameter and no output schema, the description is sufficient. It explains the tool's role in the validation workflow, though it could mention what the output looks like.
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% with the single parameter 'ruleId' described as 'Validation rule ID from validate_code'. The description adds minimal extra meaning; the baseline of 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 clearly states the verb 'Explain' and the resource 'validation failure' and specifies the mechanism 'by referencing the repository rule that caused it'. It differentiates from sibling tools like 'validate_code' which perform validation, not explanation.
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 implies use after a validation failure, but does not explicitly state when to use this tool versus alternatives. It lacks guidance on prerequisites or exclusions, such as when a rule ID is invalid.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_templateA
Get a specific UdonSharp template with full source code
| Name | Required | Description | Default |
|---|---|---|---|
| templateId | Yes | Template identifier or filename |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It implies a non-destructive read operation by stating 'Get', but does not disclose authorization needs, rate limits, or response size. For a simple read, this is adequate but minimal.
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 clear sentence with no unnecessary words. Efficient and directly conveys the tool's action.
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 simple retrieval tool with one parameter, no output schema, and a clear sibling 'list_templates', the description is complete enough. It states the resource and what is returned.
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% with one parameter described. The description adds 'specific UdonSharp template' context but no additional semantics beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get', the resource 'UdonSharp template', and the scope 'specific with full source code'. It effectively differentiates from the sibling tool 'list_templates' which lists templates.
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 provides no guidance on when to use this tool versus alternatives such as 'list_templates'. No when-not-to-use or prerequisite information is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_rulesB
List all UdonSharp rules from the repository
| Name | Required | Description | Default |
|---|---|---|---|
| skillId | No | Filter rules by skill |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, description only states listing behavior; lacks details on pagination, side effects, or data handling.
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?
Single concise sentence with no redundancy.
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 simplicity, covers basic purpose but misses return format hint and usage context relative to 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 covers 100%, description adds minimal context about optional filtering but no details on filter matching.
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 explicit action 'list all rules' and specific repository context, but does not differentiate from sibling list tools like list_skills or list_templates.
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?
No guidance on when to use listing vs searching or reading individual rules; alternative tools present.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_skillsB
Auto-discover all skills from the repository
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the full burden but offers minimal behavioral detail. 'Auto-discover' hints at dynamic detection but does not explain permissions, performance, or what the retrieval entails. Critical traits like mutability or side effects are not addressed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It efficiently communicates the tool's purpose given its simplicity.
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 parameterless list tool without an output schema, the description is minimal but adequate. However, it lacks details on return format, scope of 'repository', and what 'auto-discover' specifically means, leaving some ambiguity.
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?
There are no parameters (0 params), so schema description coverage is trivially 100%. According to the rubric, 0 params has a baseline of 4. The description adds no parameter information because none is needed.
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 clearly states the tool lists all skills from the repository, using the verb 'discover' which implies retrieval. However, it does not differentiate itself from sibling tools like list_rules or list_templates, which have similar listing purposes.
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?
No guidance is provided on when to use this tool versus alternatives. There is no mention of context, prerequisites, or exclusions, leaving the agent to infer usage without explicit direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_templatesB
List UdonSharp code templates from the repository
| Name | Required | Description | Default |
|---|---|---|---|
| skillId | No | Filter templates by skill |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose behavioral traits beyond 'list'. It omits whether the operation is read-only, whether pagination exists, or what the return format is. For a tool with no annotations, the description carries full burden and is insufficient.
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?
Single sentence, 8 words, very concise but lacks detail. While concise, it sacrifices informativeness.
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?
Tool is simple (one optional param, no output schema, no annotations). Description could be more complete by noting that it returns a list of templates, that omitting filter shows all, and that it pulls from a repository. Current description is minimal and leaves many aspects unclear.
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% (one parameter fully described in schema). The description adds the filtering context ('Filter templates by skill'), but does not explain expected values or behavior when omitted. 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?
Description clearly states the action (list) and resource (UdonSharp code templates from the repository). It distinguishes from sibling 'get_template' which implies fetching a single template, and 'list_skills' which lists skills.
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?
No guidance on when to use this tool versus alternatives like 'get_template' or 'search_examples'. No mention of when filtering by skill is appropriate or what happens without a filter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_ruleB
Read a rule with purpose, constraints, examples, and related rules
| Name | Required | Description | Default |
|---|---|---|---|
| ruleId | Yes | Rule identifier or filename |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
While it lists returned fields, it does not disclose behavior such as whether the rule must exist, error handling, or safety. No annotations provided, so description carries full burden but only minimally informs about the return content.
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?
Single sentence, no unnecessary words. Front-loaded and clear.
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 gives a reasonable idea of the return content (purpose, constraints, examples, related rules). However, it does not mention the full structure or error conditions, so not fully complete.
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% with one parameter described. The description does not add extra meaning beyond the schema, so baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states verb 'Read' and resource 'rule'. Mentions what the rule contains (purpose, constraints, examples, related rules). Distinguishes from siblings like list_rules or search_* by being a direct read operation.
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?
No guidance on when to use this tool versus alternatives like list_rules or search_*. Does not specify context or prerequisites (e.g., that ruleId must exist).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_skillA
Read full SKILL.md with metadata, rules, references, and templates
| Name | Required | Description | Default |
|---|---|---|---|
| skillId | Yes | Skill identifier (e.g. unity-vrc-udon-sharp) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must fully convey behavior. It states a read operation with no side effects, but lacks details on error handling (e.g., missing skill, permissions) and does not confirm idempotence. Adequate but minimal.
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 that efficiently conveys the tool's purpose and scope without unnecessary words.
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 single-parameter, no-output-schema tool, the description specifies the returned content. Lacks details on output format or error conditions, but sufficient for basic use.
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 covers the sole parameter 'skillId' with a clear description and example. The description adds no extra meaning beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Read' and resource 'full SKILL.md' with details on content (metadata, rules, references, templates). It clearly distinguishes from siblings like read_rule (reads a single rule) or get_template (reads a template).
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 implies use when needing the full skill content but provides no explicit guidance on when to choose this tool over alternatives (e.g., for individual rules use read_rule, for templates use get_template).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sdk_matrixB
Get SDK version matrix from repository documentation
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It only states 'get' (implying a read), but fails to mention any side effects, authentication requirements, or result format. For a tool with no parameters, this is minimally adequate but not transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence with no redundancy. It earns its place but could be more structured (e.g., bullet points for output details).
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 no parameters and no output schema, the description minimally covers purpose. However, it does not explain what the matrix contains or its format, leaving some ambiguity for the agent.
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?
No parameters exist in the schema, and schema description coverage is 100%. Per baseline rule, a score of 4 is appropriate since no parameter information is needed.
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?
Clearly states the tool retrieves an SDK version matrix from repository documentation. The verb 'get' and resource 'SDK version matrix' are specific, and no sibling tool duplicates this exact purpose.
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?
No guidance on when to use this tool versus alternatives like search_reference or list_tools. Lacks context for when the version matrix is needed over other documentation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_antipatternC
Search anti-patterns and common mistakes to avoid
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes | Anti-pattern to search |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only states it searches. It does not disclose any behavioral traits such as return format, required permissions, or performance considerations. The description fails to compensate for missing annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, efficient and to the point. However, it could be slightly more informative without sacrificing conciseness.
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 the low complexity (2 parameters, no output schema), the description is minimally adequate. It covers the basic purpose but lacks information about return values and differentiation from siblings, leaving gaps for an AI agent.
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% (limit parameter lacks description), and the tool description adds no additional context beyond what the schema already provides. The description does not help clarify parameter usage or constraints.
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 clearly states it searches anti-patterns and common mistakes, providing a specific verb and resource. However, it does not differentiate itself from sibling search tools like search_best_practice or search_constraints.
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 offers no guidance on when to use this tool over alternatives. With many similar sibling search tools, the lack of usage context is a significant gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_best_practiceC
Search recommended patterns and best practices
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes | Best practice topic to search |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose all behavioral traits. It only states it is a search operation but omits important details such as idempotency, read-only nature, rate limits, or side effects. This is minimal 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?
The description is a single concise sentence with no wasted words. However, it lacks structure such as separate sentences for purpose and usage, which could improve clarity without significant length increase.
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 search tool with two parameters and no output schema, the description does not cover return value expectations, result format, or how results are ordered. This leaves significant gaps in understanding the tool's behavior and output.
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?
Although the schema describes the 'query' parameter, the tool description does not add any additional meaning. The 'limit' parameter is undocumented in both schema and description, and the description fails to explain parameter roles or constraints.
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 clearly states the verb 'Search' and the resource 'recommended patterns and best practices', making the tool's purpose understandable. However, it does not distinguish it from sibling search tools like 'search_antipattern' or 'search_documentation', which share a similar purpose.
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 provides no guidance on when to use this tool versus alternatives. It does not specify the ideal context, when not to use it, or list any prerequisites, leaving the agent without decision-making support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_constraintsB
Search UdonSharp constraints (List, Dictionary, Coroutine, etc.) with alternatives
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes | Constraint to search (e.g. List<T>, Coroutine) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must bear the full burden. It only states the purpose and does not disclose any behavioral traits like read-only nature, rate limits, or what the response 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?
The description is a single sentence with no wasted words, but it lacks structure such as separate sections for usage and behavior.
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 the simple tool with two parameters and no output schema, the description fails to cover behavioral aspects (e.g., read-only) or output format, leaving gaps for the agent.
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 50%: the query parameter has a description in the schema, but limit does not. The description adds no details about parameters beyond mentioning 'alternatives'.
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 clearly states it searches UdonSharp constraints and provides examples (List<T>, Dictionary, Coroutine) and mentions alternatives, which distinguishes it from sibling search tools that target different resources.
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 indicates it is for searching constraints with alternatives, but does not explicitly specify when to use this tool versus other search tools or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_documentationC
Search agent-skills-vrc-udon documentation with keyword, heading, and fuzzy matching
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes | Search query for documentation | |
| sdkVersion | No | Filter by SDK version |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries the full burden. It mentions matching modes but does not disclose whether the tool is read-only, whether authentication is required, what happens with no results, or how results are ordered. Minimal behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no wasted words. However, it could be more informative while remaining concise.
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 search tool with 3 parameters, no output schema, and many siblings, the description is too brief. It lacks information on return format, pagination, default behavior, and how it differs from other search_* tools. Incomplete for effective selection and use.
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 67% (2 of 3 parameters have descriptions). The description adds no additional parameter semantics beyond what is in the schema. Baseline score 3 is appropriate since coverage is above 50%.
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?
Description clearly states the tool searches 'agent-skills-vrc-udon documentation' with three matching types (keyword, heading, fuzzy). It is specific about the action and resource. However, it does not explicitly differentiate from sibling search tools like search_antipattern or search_best_practice, which are more specific.
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?
No guidance on when to use this tool versus alternatives. Given many sibling search tools with specific scopes, the description could indicate that this is a general documentation search. Without such context, the agent may select it incorrectly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_examplesC
Search UdonSharp code examples and patterns from the repository
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes | Search query for code examples |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description bears full responsibility for behavioral disclosure. It fails to mention whether the tool is read-only, how results are returned, or any limitations. The bare statement 'Search from the repository' does not convey side effects or constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the core action. It is concise with no redundant phrases. However, it could include more detail without losing brevity.
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 the existence of many sibling search tools and the lack of an output schema, the description is insufficient. It does not explain the search scope, result format, or how it differs from similar tools, leaving the agent with incomplete context.
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 50% (only the 'query' parameter has a description). The tool description adds no additional semantics for either 'query' or 'limit' beyond what the schema states. The 'limit' parameter's default and bounds are in the schema but not explained in context.
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 clearly specifies the verb 'search' and the resource 'UdonSharp code examples and patterns from the repository', distinguishing it from other search siblings focused on different content types like antipatterns or documentation.
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 provides no guidance on when to use this tool versus alternatives (e.g., search_antipattern, search_best_practice). No prerequisites or exclusion criteria are mentioned, leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_networkingC
Search networking topics: ownership, sync modes, late joiners, serialization
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes | Networking topic to search |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only lists example topics and omits any behavioral traits (e.g., read-only, auth requirements, rate limits, pagination). This leaves the agent with no understanding of side effects or constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise, but it lacks structure (e.g., bullet points or sections). It is front-loaded with the verb, but the content is sparse.
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 no annotations, no output schema, and 50% parameter coverage, the description is severely incomplete. It does not specify what the search returns, how results are formatted, or any behavioral details, leaving the agent with insufficient information to use the tool 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 50% (query described, limit not). The description adds context for query via examples but does not explain the limit parameter. Overall, parameter meaning beyond schema is minimal.
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?
Description clearly states it searches networking topics and provides specific examples (ownership, sync modes, late joiners, serialization), effectively distinguishing it from sibling search tools like search_antipattern or search_best_practice.
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?
No explicit guidance on when to use this tool versus alternatives. The examples imply a scope, but the agent receives no direct 'use this for networking, use others for other topics' instruction, which is critical given the many sibling search tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_referenceC
Search reference documentation in the repository
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes | Search query for references | |
| skillId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavior. It only states 'search reference documentation', with no mention of side effects, permissions, or return characteristics. The minimal information is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, but it is under-specified given the tool's context. Conciseness should not come at the expense of clarity, and here it leaves important details unstated.
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 many sibling tools and no output schema, the description lacks context about what 'reference documentation' entails and how it differs from other documentation searches. The tool's completeness is inadequate for proper selection.
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?
Only 33% of parameters have descriptions in the schema. The tool description does not add any additional meaning to the parameters beyond what the schema provides, failing to compensate for the low coverage.
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 'Search reference documentation in the repository', clearly specifying the verb (search) and resource (reference documentation). However, it does not differentiate from similar sibling tools like search_documentation or search_examples, which may cause ambiguity.
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 provides no guidance on when to use this tool versus alternatives. Given many sibling search tools, the lack of usage context is a significant gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_sdk_featureC
Search SDK features like NetworkCallable, PlayerData, PhysBones
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes | SDK feature to search (e.g. NetworkCallable, PlayerData) | |
| sdkVersion | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits. It only says 'Search' which implies read-only, but doesn't confirm non-destructiveness, authentication needs, or response format. Minimal transparency.
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?
Extremely concise single sentence, no wasted words. However, brevity sacrifices necessary details for a three-parameter tool. Could benefit from additional structure.
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, no annotations, and only 33% parameter coverage. The description does not address return format, error handling, or behavior edge cases (e.g., empty results). Incomplete for reliable agent use.
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 33% (only query has schema description). The tool description adds examples for query but nothing for limit (e.g., pagination) or sdkVersion. Three parameters are inadequately explained 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?
The description states the tool searches for SDK features and gives concrete examples (NetworkCallable, PlayerData, PhysBones), making its purpose clear and distinct from sibling tools like search_documentation or search_examples.
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?
No guidance on when to use this tool versus alternatives, no context about prerequisites or when not to use it. The agent must infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_codeC
Validate UdonSharp code using rules parsed from the repository
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | UdonSharp C# code to validate | |
| sdkVersion | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for behavioral disclosure. It only hints at validation logic ('using rules parsed from the repository') but does not describe side effects, error states, permissions required, return behavior, or any constraints. This is insufficient for a mutation-like operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence. While concise, it omits critical operational details (e.g., output format, error handling) that would be expected for a validation tool. The brevity comes at the cost of usefulness.
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 the lack of an output schema and annotations, the description should fully describe the tool's behavior and results. It fails to specify what 'validation' entails (e.g., returns errors, passes, warnings). The 2-parameter tool with 50% schema coverage is inadequately documented for an agent to invoke 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 description coverage is 50% (only 'code' has a description; 'sdkVersion' does not). The tool description adds no information about parameters beyond what the schema provides. It does not explain the purpose or format of 'sdkVersion', nor does it clarify any nuances of 'code'. This fails to compensate for the schema gaps.
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 explicitly states 'Validate UdonSharp code using rules parsed from the repository', providing a specific verb (validate), resource (UdonSharp code), and a distinguishing mechanism (rules from repository). It clearly differentiates from sibling tools like explain_validation or search_best_practice.
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?
No guidance is given on when to use this tool versus alternatives. There's no mention of prerequisites, context, or when to avoid it. The description lacks any comparative or conditional usage advice.
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.
18 tool updates
v2.1.0- First observed
explain_topic - First observed
explain_validation - First observed
get_template - First observed
list_rules - First observed
list_skills - First observed
list_templates - First observed
read_rule - First observed
read_skill - First observed
sdk_matrix - First observed
search_antipattern - First observed
search_best_practice - First observed
search_constraints - First observed
search_documentation - First observed
search_examples - First observed
search_networking - First observed
search_reference - First observed
search_sdk_feature - First observed
validate_code
TDQS
Scored across 18 tools
Most tools have distinct purposes, but the large number of search tools (e.g., search_documentation, search_reference, search_examples) could cause some confusion despite differentiated descriptions.
The vast majority follow a consistent verb_noun pattern (e.g., explain_topic, list_rules). Only 'sdk_matrix' deviates by omitting a verb, slightly breaking the pattern.
With 18 tools, the set covers a wide range of functionalities for UdonSharp assistance—explanations, validation, templates, rules, and various searches—without feeling excessive or insufficient.
The tool surface appears comprehensive for its domain, covering explainability, validation, templates, rules, skills, SDK info, and multiple search categories with no obvious gaps in read-only knowledge retrieval.
Maintenance
Related MCP Connectors
Official MCP server for subfeed.app — the cloud for agents. 15+ tools for AI agents to register, build, and deploy other agents. Zero human required. Start here: subfeed.app/skill.md
Capability registry for the agentic economy. Semantic search over verified MCP server listings.
- UnifAPIOAuthcom.unifapi
Hosted MCP server for live public-data APIs and Skills for AI agents.
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
Related MCP Servers
AlicenseAqualityFmaintenanceMCP server for discovering and installing AI agent skills from agentskill.sh. Search skills across platforms, browse trending skills, and install them with built-in security scanning.417 npm3MIT- AlicenseAqualityFmaintenanceAgent-first skill marketplace MCP server. AI agents discover, install, and share skills across 7 platforms via MCP protocol. 15 tools including skill search, download, upload, and agent discovery.184MIT
- AlicenseAqualityCmaintenanceThis MCP server enables AI agents to search, discover, and install skills from the SkillsMP marketplace, with support for keyword and semantic search, skill content retrieval, and installation to various coding agents.5144 npm3MIT
- AlicenseNot gradedqualityCmaintenanceMCP server for SkillDB that enables AI assistants to search, load, and manage AI agent skills directly.51 npmMIT