Token导航 LogoToken导航TokenDH.com
Avalonia MCP logo
开发工具未说明官方级别未说明来源级核验

Avalonia MCP

MCP Server

AvaloniaMcp是一个用于调试Avalonia UI应用程序的服务器工具,提供实时检查、调试和交互功能,适用于AI编码代理和开发者。

工具数

15

提示词数

0

GitHub Stars

8

资源数

0
调试工具开发工具C#VS CodeVS Code

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

adirh3

提供方

adirh3

最后核验

2026/5/17 20:21

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

AvaloniaMcp

它的作用

在Avalonia应用程序中添加一行,即可获得一个完整的诊断服务器,AI代理(或通过CLI的人类)可以使用该服务器:

  • 检查 视觉/逻辑树、控件属性、样式和资源
  • 调试 数据绑定、ViewModel和绑定错误
  • 互动 --单击按钮、键入文本、在运行时更改属性
  • 截图 --将窗口或单个控件捕获为PNG

建筑

┌─────────────────────────┐          Named Pipe          ┌──────────────────────┐
│   Your Avalonia App     │  ◄──── (avalonia-mcp-{pid}) ──── │   MCP Server         │
│                         │                               │                      │
│  ┌───────────────────┐  │     JSON request/response     │  ┌────────────────┐  │
│  │ .UseMcpDiagnostics()│ │  ◄─────────────────────────  │  │ 15 MCP Tools   │  │
│  │ DiagnosticServer  │  │          (stdio)              │  │ CLI mode       │  │
│  └───────────────────┘  │                               │  └────────────────┘  │
└─────────────────────────┘                               └──────────────────────┘
                                                                    ▲
                                                                    │ MCP (stdio)
                                                               ┌────┴────┐
                                                               │ VS Code │
                                                               │ Copilot │
                                                               └─────────┘
项目描述
AvaloniaMcp。诊断库已添加到您的Avalonia应用程序中。启动命名管道诊断服务器。
AvaloniaMcp。服务器MCP服务器(stdio)+CLI。连接到应用程序并显示所有工具。
AvaloniaMcp。演示Avalonia应用程序示例,包括数据绑定、列表、样式——用于测试。

快速开始

1.将诊断添加到Avalonia应用程序

添加引用 AvaloniaMcp.Diagnostics 还有一行给你 Program.cs:

using AvaloniaMcp.Diagnostics;

public static AppBuilder BuildAvaloniaApp()
    => AppBuilder.Configure()
        .UsePlatformDetect()
        .UseMcpDiagnostics()   // ← add this line
        .LogToTrace();

这将在启动时在应用程序内启动一个命名管道服务器。它对UI没有任何影响——所有的自检都是通过管道按需进行的。

2.将MCP服务器安装为.NET工具

# From the repo root:
dotnet pack src/AvaloniaMcp.Server -o nupkg
dotnet new tool-manifest   # if you don't already have one
dotnet tool install AvaloniaMcp --add-source ./nupkg

验证:

dotnet avalonia-mcp cli --help

3.在VS Code/GitHub Copilot中配置

添加到您的 全球 MCP设置(Settings → MCP~/.vscode/mcp.json):

{
  "servers": {
    "avalonia-mcp": {
      "type": "stdio",
      "command": "dotnet",
      "args": ["avalonia-mcp"]
    }
  }
}

或按工作区 .vscode/mcp.json:

{
  "servers": {
    "avalonia-mcp": {
      "type": "stdio",
      "command": "dotnet",
      "args": ["avalonia-mcp"]
    }
  }
}

服务器会自动发现正在运行的Avalonia应用程序。如果多个应用程序正在运行,请传递PID:

"args": ["avalonia-mcp", "--pid", "12345"]

使用CLI

该工具还可以作为独立的CLI进行快速调试:

# Start your Avalonia app first, then:
dotnet avalonia-mcp cli list_windows
dotnet avalonia-mcp cli get_visual_tree --maxDepth 5
dotnet avalonia-mcp cli find_control --typeName Button
dotnet avalonia-mcp cli get_control_properties --controlId "#MyButton"
dotnet avalonia-mcp cli get_data_context
dotnet avalonia-mcp cli get_binding_errors
dotnet avalonia-mcp cli click_control --controlId "#MyButton"
dotnet avalonia-mcp cli input_text --controlId "#MyTextBox" --text "Hello"
dotnet avalonia-mcp cli set_property --controlId "#MyButton" --propertyName IsVisible --value false
dotnet avalonia-mcp cli take_screenshot

内置自动发现功能——如果只有一个应用程序在运行,则没有 --pipe--pid 需要。

工具参考

检查

工具参数说明
list_windows--列出所有打开的窗口,包括标题、大小、位置和状态
get_visual_treemaxDepth?具有类型、名称、边界和可见性的完整视觉元素层次结构
get_logical_treemaxDepth?XAML意图逻辑树(您声明的控件,而不是模板内部)
find_controlname?, typeName?, text?按名称搜索(#MyBtn),类型(Button),或文本内容
get_control_propertiescontrolId所有Avalonia属性:值、类型、是否显式设置

数据和绑定

工具参数说明
get_data_contextcontrolId?ViewModel类型和所有公共属性,序列化为JSON
get_binding_errors--所有带有错误消息和时间戳的断开绑定

视觉和风格

工具参数说明
take_screenshotcontrolId?将窗口或特定控件捕获为base64 PNG格式
get_applied_stylescontrolIdCSS类、伪类(:pointerover, :pressed),风格设定者
get_resourcescontrolId?资源字典条目(画笔、模板、转换器)
get_focused_element--当前关注的元素信息

交互

工具参数说明
click_controlcontrolId模拟点击——对按钮执行绑定命令
set_propertycontrolId, propertyName, value在运行时设置任何Avalonia属性
input_textcontrolId, text在TextBox或输入控件中键入文本

发现

工具参数说明
discover_apps--查找启用了MCP诊断的Avalonia应用程序

控制标识符

许多工具接受 controlId 参数。支持三种格式:

格式示例它匹配什么
#Name#MyButton控制与 Name="MyButton"
TypeNameButton视觉树中该类型的第一个控件
TypeName[n]Button[2]该类型的第N个控件(0索引)

运作原理

  1. 初创公司UseMcpDiagnostics() 启动命名管道服务器(avalonia-mcp-{pid})并将发现文件写入 %TEMP%/avalonia-mcp/{pid}.json
  2. 连接 --MCP服务器(或CLI)读取发现文件以查找管道名称,然后连接
  3. 请求/响应 --命名管道上以换行符分隔的JSON: {"method":"list_windows","params":{}}
  4. 界面线程 --为了安全起见,所有可视化树操作都被编组到Avalonia调度线程
  5. MCP协议 --服务器将管道响应封装到MCP中 tools/call 结果超过stdio

需求

  • .NET 10 SDK(预览版)
  • 阿瓦罗尼亚11.2+

建筑

dotnet build

运行演示

# Terminal 1: Start the demo app
dotnet run --project src/AvaloniaMcp.Demo

# Terminal 2: Interact via CLI
dotnet avalonia-mcp cli list_windows
dotnet avalonia-mcp cli find_control --typeName Button
dotnet avalonia-mcp cli click_control --controlId "#IncrementBtn"
dotnet avalonia-mcp cli get_data_context
dotnet avalonia-mcp cli take_screenshot

许可证

麻省理工学院

目录标签

目录标签

调试工具开发工具C#VS Code本地部署UI开发实时检查Avalonia开发辅助

支持客户端

VS Code

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

15

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP