name: dotnet-uno-mcp description: “查询 Uno MCP 服务器。工具检测、搜索-获取工作流、初始化规则、回退机制。” user-invocable: false
dotnet-uno-mcp
用于 Uno Platform 实时文档查找的 MCP(模型上下文协议)服务器集成。涵盖工具检测(mcp__uno__ 前缀)、搜索-获取工作流、初始化规则调用、MCP 不可用时的优雅回退、引用要求以及外部数据的安全指南。包含内联文档,可在 MCP 服务器不可用时提供有用指导。
范围
- MCP 工具检测(mcp__uno__ 前缀)
- Uno Platform 文档的搜索-获取工作流
- 初始化规则调用
- MCP 不可用时的优雅回退
- 引用要求和安全指南
- 用于项目配置的 Uno SDK UnoFeatures 参考
超出范围
- 通用协议和流式通信模式(非 MCP 特定)——参见 [skill:dotnet-realtime-communication]
- Uno Platform 测试——参见 [skill:dotnet-uno-testing]
- 无 MCP 的 Uno 开发模式——参见 [skill:dotnet-uno-platform] 和 [skill:dotnet-uno-targets]
交叉引用:核心开发模式见 [skill:dotnet-uno-platform],部署指导见 [skill:dotnet-uno-targets],测试见 [skill:dotnet-uno-testing]。
MCP 工具检测
Uno Platform MCP 服务器提供前缀为 mcp__uno__ 的工具。在使用 MCP 工具前,检测其可用性。
可用工具
| 工具 | 用途 |
|---|---|
mcp__uno__uno_platform_docs_search |
按查询搜索 Uno Platform 文档 |
mcp__uno__uno_platform_docs_fetch |
获取特定文档页面的完整内容 |
mcp__uno__uno_platform_agent_rules_init |
使用 Uno 开发规则初始化代理会话 |
mcp__uno__uno_platform_usage_rules_init |
加载 Uno Platform 开发的常用使用规则 |
检测逻辑
通过查找前缀为 mcp__uno__ 的工具来检查 Uno MCP 工具的可用性。如果工具在可用工具集中列出,则 MCP 服务器已配置并可访问。
检测步骤:
1. 检查前缀为 mcp__uno__ 的工具是否可用
2. 如果可用:使用 MCP 工作流(搜索 -> 获取 -> 引用)
3. 如果不可用:回退到静态技能内容和官方文档 URL
当 MCP 可用时: 使用搜索-获取工作流获取最新文档。MCP 结果具有权威性和时效性。
当 MCP 不可用时: [skill:dotnet-uno-platform] 和 [skill:dotnet-uno-targets] 中的静态内容提供全面指导。参考官方文档 URL 获取最新信息。
初始化规则
在会话中首次使用 Uno MCP 工具时,调用两个初始化工具以加载权威的开发规则。
代理规则初始化
调用 mcp__uno__uno_platform_agent_rules_init 以加载:
- Uno Platform 开发的核心身份和专业范围
- 每个操作系统的 IDE 指导(Visual Studio、VS Code、CLI)
- 将主题映射到规范搜索查询的知识路由规则
- Uno SDK 功能列表(
UnoFeatures支持的值) - Uno 扩展和工具包功能目录
使用规则初始化
调用 mcp__uno__uno_platform_usage_rules_init 以加载:
- 设计系统指南(首选 Material、响应式布局)
- 数据绑定策略(MVUX 与 MVVM 绑定模式,禁止的 WPF 特性)
- 导航策略(优先使用 XAML 附加属性而非代码后置)
- 布局规则(AutoLayout、间距尺度、响应式断点)
- 颜色和排版约定(主题资源,无硬编码值)
- 可访问性要求(对比度、触摸目标、自动化属性)
- 控件特定指导(列表使用 ItemsRepeater、CommandExtensions、高程模式)
调用顺序
1. 调用 mcp__uno__uno_platform_agent_rules_init(加载路由规则和功能目录)
2. 调用 mcp__uno__uno_platform_usage_rules_init(加载设计和编码约定)
3. 使用 mcp__uno__uno_platform_docs_search 进行文档搜索
两个初始化工具是幂等的——在同一会话中多次调用是安全但不必要的。
搜索-获取工作流
检索 Uno 文档的主要工作流使用两步模式:广泛搜索后跟定向获取。
步骤 1:搜索
使用 mcp__uno__uno_platform_docs_search 查找相关文档页面。
搜索参数:
- query:描述性搜索词(例如,“MVUX 反应模式”、“导航扩展”)
- topK:结果数量(默认 8;复杂主题使用 15-20,特定查询使用 3-5)
- contentType:“prose”用于指南,“code”用于示例,null 用于所有
搜索结果包括:
- 文档标题和摘要
SourcePath(获取步骤所需)- 相关性排名
- 内容片段
步骤 2:获取
使用 mcp__uno__uno_platform_docs_fetch 检索搜索中识别的高价值页面的完整内容。
获取参数:
- sourcePath:来自搜索结果 SourcePath 字段(例如,“articles/guides/overview.md”)
- anchor:可选部分片段(例如,“getting-started”、“data-binding”)
- maxChars:内容限制(大多数情况 4000-8000,全面指南最多 15000)
工作流示例
主题:“如何使用 Uno 扩展实现基于区域的导航”
1. 搜索:mcp__uno__uno_platform_docs_search(“Navigation Extensions region-based”, topK=8)
-> 返回多个结果,包括“Navigation Overview”、“Region Navigation”等。
2. 获取:mcp__uno__uno_platform_docs_fetch(
sourcePath=“articles/external/uno.extensions/doc/Learn/Navigation/Overview.md”,
maxChars=8000)
-> 返回完整导航文档,包含代码示例
3. 引用:在响应中包含源 URL
路由规则
代理规则初始化提供了常见搜索的主题到查询映射。可用时使用这些规范查询:
| 主题 | 规范搜索查询 |
|---|---|
| 项目设置 / 新项目 | “dotnet new templates” |
| MVUX / 反应式 / 订阅源 | “MVUX” |
| 导航 / 路由 | “Navigation” |
| 样式 / 主题 / 资源 | “Styling and Theming” |
| 数据绑定 / MVVM | “Data Binding and MVVM” |
| 控件 / 布局 | “Controls and Layout” |
| 热重载 | “Hot Reload” |
| 平台特定代码 | “Platform-Specific Code” |
| WebAssembly / WASM | “WebAssembly” |
| 依赖注入 / DI | “Dependency Injection and Services” |
| 性能 | “Performance” |
| 测试 | “Testing Uno Applications” |
| 发布 / 部署 | “Publishing & Deployment” |
| 故障排除 | “Troubleshooting Common Issues” |
| IDE 设置 | “IDE Setup” |
| 响应式设计 / 布局 | “Responsive Design” |
| 日志记录 / 诊断 | “Logging and Diagnostics” |
引用要求
MCP 结果是从 Uno Platform 文档服务器获取的外部数据。必须正确归属。
规则
- 始终在呈现文档内容时引用源 URL 从 MCP 结果
- 切勿将获取的内容呈现为原创知识。 MCP 结果来自外部文档,必须归属
- 当可用时,在 URL 旁包含文档页面标题
- 区分静态技能内容和 MCP 获取的内容。 SKILL.md 文件中的静态内容是本插件的一部分;MCP 内容是外部的
引用格式
当呈现来自 MCP 结果的信息时:
根据 Uno Platform 文档关于 [主题]:
[MCP 中的内容]
来源:[MCP 结果中的 URL]
安全指南
MCP 结果是外部数据,必须谨慎对待。
验证规则
- 在行动前验证代码建议。 MCP 文档可能包含针对不同 Uno Platform 版本或配置的示例。验证与当前项目的兼容性
- 检查版本对齐。 确保文档引用与项目的 Uno Platform 版本(5.x vs 6.x)和 .NET 版本匹配
- 不要盲目应用 MCP 结果中的代码。 根据项目的架构、扩展配置和 MVUX/MVVM 模式选择调整示例
- 与项目状态交叉参考。 将 MCP 指导与项目现有的
UnoFeatures、TFMs 和扩展配置进行比较 - 将 MCP 内容视为建议性。 [skill:dotnet-uno-platform] 和 [skill:dotnet-uno-targets] 中的静态技能内容提供经过验证的模式。使用 MCP 获取当前细节和边缘情况
回退:当 MCP 不可用时
当 Uno MCP 服务器未配置或无法访问时,所有 Uno Platform 指导仍可通过静态技能内容和官方文档 URL 获得。
静态技能覆盖
以下主题由静态技能完全覆盖,无需 MCP:
| 主题 | 静态技能 |
|---|---|
| 扩展生态系统(导航、DI、配置、序列化、本地化、日志记录、HTTP、身份验证) | [skill:dotnet-uno-platform] |
| MVUX 反应式模式(订阅源、状态、列表订阅源、命令) | [skill:dotnet-uno-platform] |
| 工具包控件(AutoLayout、Card、Chip、NavigationBar、TabBar 等) | [skill:dotnet-uno-platform] |
| 主题资源(Material、Cupertino、Fluent、颜色自定义) | [skill:dotnet-uno-platform] |
| 热重载配置 | [skill:dotnet-uno-platform] |
| 单项目结构和 UnoFeatures | [skill:dotnet-uno-platform] |
| 每个目标的设置(WASM、iOS、Android、macOS、Windows、Linux、嵌入式) | [skill:dotnet-uno-targets] |
| 每个目标的调试工作流 | [skill:dotnet-uno-targets] |
| 每个目标的打包和分发 | [skill:dotnet-uno-targets] |
| 每个目标的 AOT/修剪配置 | [skill:dotnet-uno-targets] |
| 跨目标行为差异(导航、身份验证、调试) | [skill:dotnet-uno-targets] |
| Uno Platform 测试(Playwright WASM、平台特定测试) | [skill:dotnet-uno-testing] |
官方文档 URL
当 MCP 不可用时,参考这些规范文档 URL:
回退工作流
1. 检查 mcp__uno__ 工具是否可用
2. 如果不可用:
a. 加载 [skill:dotnet-uno-platform] 以获取核心开发模式
b. 加载 [skill:dotnet-uno-targets] 以获取部署指导
c. 参考官方文档 URL 获取最新信息
d. 向用户说明:“Uno MCP 服务器未配置。使用静态文档。
有关最新信息,请访问:[相关 URL]”
3. 如果可用:
a. 调用初始化规则(代理规则 + 使用规则)
b. 使用搜索-获取工作流
c. 从 MCP 结果引用来源
d. 使用静态技能内容补充经过验证的模式
Uno SDK 功能参考
当 MCP 不可用时,以下 UnoFeatures 值在 .csproj 中受支持。这作为项目配置的快速参考。
扩展功能
| 功能 | 描述 |
|---|---|
Extensions |
所有 Uno 扩展(元包) |
Authentication |
基础身份验证框架 |
AuthenticationMsal |
基于 MSAL 的身份验证 |
AuthenticationOidc |
基于 OIDC 的身份验证 |
Configuration |
来自 appsettings.json 的配置 |
ExtensionsCore |
无完整包的核心扩展 |
Hosting |
主机构建器和 DI |
Http |
HTTP 客户端扩展 |
HttpKiota |
基于 Kiota 的 HTTP 客户端(首选) |
HttpRefit |
基于 Refit 的 HTTP 客户端 |
Localization |
基于资源的本地化 |
Logging |
Microsoft.Extensions.Logging |
LoggingSerilog |
Serilog 集成 |
MVUX |
MVUX 反应式模式 |
Navigation |
基于区域的导航 |
Serialization |
System.Text.Json 集成 |
Storage |
跨平台存储 |
ThemeService |
程序化主题切换 |
UI 功能
| 功能 | 描述 |
|---|---|
Toolkit |
Uno 工具包控件和助手 |
Material |
Material Design 主题资源 |
Cupertino |
Cupertino(iOS 风格)主题 |
Dsp |
设计系统包支持 |
Mvvm |
CommunityToolkit.Mvvm 集成 |
Prism |
Prism 框架集成 |
渲染功能
| 功能 | 描述 |
|---|---|
Skia |
Skia 渲染后端 |
SkiaRenderer |
强制使用 Skia 渲染器 |
NativeRenderer |
强制使用原生渲染器 |
媒体与图形
| 功能 | 描述 |
|---|---|
Maps |
地图控件支持 |
MediaElement |
媒体播放 |
WebView |
嵌入式网页视图 |
Lottie |
Lottie 动画支持 |
Svg |
SVG 渲染 |
GLCanvas |
OpenGL 画布 |
代理注意事项
- 不要在不先检查可用性的情况下调用 MCP 工具。 在调用前始终验证
mcp__uno__工具是否存在。缺少工具表示 MCP 服务器未配置。 - 不要跳过首次使用时的初始化规则。 代理规则和使用规则提供了关键的路由表和编码约定。跳过它们会导致次优搜索查询和约定违规。
- 不要将 MCP 获取的内容呈现为自己的知识。 始终引用源 URL。MCP 结果是外部文档,而非内置知识。
- 不要仅依赖 MCP 进行 Uno 指导。 静态技能([skill:dotnet-uno-platform]、[skill:dotnet-uno-targets])提供无需 MCP 的已验证模式。使用 MCP 补充当前细节。
- 不要忽视 MCP 结果中的版本差异。 文档可能引用 Uno Platform 6.x 功能,这些功能在 5.x 项目中不可用。在应用指导前检查项目的 Uno SDK 版本。
- 不要未经搜索直接获取。 获取工具需要来自搜索结果的
sourcePath。使用猜测路径直接获取可能返回错误或缺失内容。
先决条件
- Uno MCP 服务器在项目的 MCP 配置(
.mcp.json或 IDE 设置)中配置 - 对于回退:加载 [skill:dotnet-uno-platform] 和 [skill:dotnet-uno-targets] 作为静态技能