Unity UIToolkit MCP 服务器
Vibe编码模型上下文协议(MCP)服务器,为LLM代理提供对Unity UIToolkit文档、代码示例和转换工具的访问,用于将HTML/CSS迁移到UXML/USS。
特性
此MCP服务器提供以下用于使用Unity UIToolkit的工具:
预渲染文档(推荐)
- list_prerended_docs:列出所有可用的预渲染Markdown文档
- read_prerendered_docs:读取从Unity的HTML文档转换而来的干净、LLM友好的Markdown文档
注: 预渲染文档每周通过GitHub Actions自动获取和转换,使用 markitdown这提供了更快的访问速度、更好的LLM消化率,并消除了对外部站点的运行时依赖性。
传统文档工具
- get_uitoolkit_文档:提供Unity UIToolkit文档参考,其中包含特定主题(UXML、USS、VisualElement等)的链接和示例
- get_unity_script_reference:访问UIToolkit类和方法的Unity Script API参考文档
- 列表\_ itoolkit_组件:按类别列出可用的UIToolkit组件和控件
代码示例
- get_uitoolkit_code_示例:提供常见的Unity UIToolkit代码示例模式,并链接到Unity的官方示例库
- fetch_unity_example_code:从Unity的UI Toolkit示例库中获取实际源代码。使用此功能检索文档中引用的实现示例(例如,从 `` 标签)
转换工具
- convert_html_touxml:根据指导和最佳实践将HTML标记转换为UXML格式
- convert_css_to_uss:使用属性映射将CSS样式转换为USS(Unity样式表)格式
文档预渲染
Unity UIToolkit文档会自动获取并转换为Markdown:
- 日程:每周一00:00 UTC
- 触发:可以通过GitHub操作手动触发
- 过程:
1. 获取最新的Unity UIToolkit HTML文档 1. 仅筛选到UIToolkit相关页面 1. 使用转换为干净的Markdown markitdown 1. 承诺 docs/ 目录
看 了解实施细节。
安装
npm install
npm run build用法
此MCP服务器使用stdio传输,可以与任何兼容MCP的客户端集成。
配置
添加到您的MCP客户端配置中(例如,Claude Desktop配置):
{
"mcpServers": {
"uitoolkit": {
"command": "node",
"args": ["/path/to/UIToolkitMCP/dist/index.js"]
}
}
}或者使用npx:
{
"mcpServers": {
"uitoolkit": {
"command": "npx",
"args": ["uitoolkit-mcp-server"]
}
}
}可用工具
1.列表_提交_docs
列出所有可用的预渲染文档文件。
参数: 无
例子:
{}2.read_presendered_docs
读取预渲染的Markdown文档。
参数:
doc_type(string):“手动”或“脚本api”doc_name(string):文档文件的名称(例如,“UXML”、“UIElements_VisualElement”)
例子:
{
"doc_type": "manual",
"doc_name": "UXML"
}3.get_uitoolkit_文档
检索特定主题的Unity UIToolkit文档。
参数:
topic(string):要搜索的UIToolkit主题(例如,“UXML”、“USS”、“VisualElement”)
例子:
{
"topic": "UXML"
}4.get_uitoolkit_code_示例
提供常见的Unity UIToolkit代码示例模式,并链接到Unity的官方存储库。
参数:
example_name(string):示例的名称或路径(例如,“简单列表视图”、“自定义控件”)
例子:
{
"example_name": "simple-list-view"
}5.fetch_unity_example_code
从Unity的UI Toolkit示例存储库中获取实际源代码。当您遇到以下情况时,这尤其有用 `` 在scriptapi文档中添加标签,并希望查看实际实现。
参数:
file_path(string):代码文件的路径(例如,“Button_clicked.cs”或“Modules/UElements/Tests/UIElementsExamples/Assets/Examplies/Button_clicked.c”)
例子:
{
"file_path": "Button_clicked.cs"
}注: 该工具将自动搜索多个Unity存储库以查找代码:
- Unity的公共UI工具包手册代码示例库
- Unity的C#参考库(用于内部测试示例)
6.设备_脚本_引用
检索UIToolkit类的Unity Script API引用。
参数:
class_name(string):Unity类名(例如,“VisualElement”、“ListView”、“Button”)
例子:
{
"class_name": "ListView"
}7.转换html_to_uxml
提供将HTML转换为UXML的指导。
参数:
html_snippet(string):要转换的HTML代码
例子:
{
"html_snippet": "
Click Me
"
}8.转换
提供将CSS转换为USS的指导。
参数:
css_snippet(string):要转换的CSS代码
例子:
{
"css_snippet": ".button { background-color: blue; padding: 10px; }"
}9.列表\_ ITOLKIT_组件
列出可用的UIToolkit组件。
参数:
category(字符串,可选):按类别筛选(“容器”、“控件”、“数据绑定”、“高级”)
例子:
{
"category": "controls"
}资源
发展
构建
npm run build观看模式
npm run watch许可证
麻省理工学院
