MCP部分KDE GTK
一个几乎自动的工具,用于将GTK/GNOME应用程序移植到KDE,实现为MCP(模型上下文协议)服务器。
描述
此MCP服务器提供了帮助将GTK/GNOME应用程序移植到KDE/Qt的工具。它包括用于分析GTK应用程序结构、转换UI文件、处理依赖关系和生成KDE应用程序结构的存根函数。
目前,所有函数都是带有注释的存根,用于实现实际功能。
安装
- 克隆存储库
- 跑
npm install - 跑
npm run build
用法
服务器可以使用以下方式运行:
node build/index.js或者使用垃圾箱:
npx mcp-portion-kde-gtk工具
analyze_gtk_app:分析GTK应用程序结构
- analyze_gtk_app 支持可选 options 带字段的对象: maxScanFiles, maxCategoryList, maxSamplePerCategory, excludeDirs, excludePatterns, asJson. - analyze_kde_app:分析KDE/Qt应用程序结构(具有相同的可选结构 options 作为 analyze_gtk_app).
convert_ui:将GTK UI转换为KDE/Qt
- convert_ui 支持可选 options 带字段的对象: target (ui 或 qml),以及 outputPath. - 转换当前使用基本的小部件名称映射,并返回 resource JSON格式 converted 内容和 matches 描述替换的GTK小部件名称。
handle_dependencies:处理GTK依赖关系generate_kde_app:生成KDE应用程序结构
- generate_kde_app 支持可选 options 带字段的对象: useQml, useCMake, initGit, license, sourceAppPath, convertUi,以及 convertOptions. - 新选项: targetFramework (“qt6”|“kf5”|“kf6”), includeKf (布尔值), includeKfModules (字符串数组),以及 includeUiLayout (布尔值)。 - targetFramework:在纯Qt之间进行选择(qt6)或KDE框架(kf5/kf6)预设——这会影响生成的构建文件(CMake)以及KDE库的链接方式。 - includeKf:当为true时,将KDE Frameworks(默认模块)添加到生成的CMake和链接行中。 - includeKfModules:提供一系列特定的KF模块供使用(例如。, ['KIO', 'KCoreAddons']). - includeUiLayout:如果为true,则生成的项目包括一个基本项目 QMainWindow 带着一个 QVBoxLayout, QLabel,以及 QPushButton,以及匹配 ui/main.ui 文件,或QML a Column 带着一个 Button. - sourceAppPath:从中复制资产的现有GTK项目的路径。 - convertUi:boolean(true尝试转换 .ui/.glade 文件来自 sourceAppPath 进入生成 ui/ 文件夹)。 - convertOptions:选项已转发至 convert_ui 当执行转换时(例如。, target 或 mapping).
分析输出
analyze_gtk_app和analyze_kde_app返回acontent两个数组text条目:简短摘要和JSON:正文包含完整的结构化分析。当options.asJson是真的,aresource内容项mimeType: application/json也被退回。- 结构化分析(JSON)包括
indicators,其中包括:
- detected --boolean表示是否有任何指标匹配 - matches --模式键到找到匹配项的文件路径数组的映射 - counts --模式键与匹配出现次数的映射(有助于加权启发式) - summary --每个图案都有一个紧凑的物体 count 以及一小部分样本 files 用于快速检查 - gtk, gnome, kde --平台级布尔值分别表示GTK/GNOME/KDE的整体检测 - kde_desktop --桌面特定标志(如果为true OnlyShowIn=KDE 或 X-KDE 发现指标)。这避免了覆盖常规 kde 标志: kde 覆盖任何KDE/Qt指示符,同时 kde_desktop 专门标记桌面文件检测。
您可以使用以下命令覆盖扫描/配置默认值 options: maxScanFiles, maxCategoryList, maxSamplePerCategory, excludeDirs, excludePatterns,以及 asJson.
检测改进说明:
- 头文件(
.h,.hpp,.hh)现在扫描了GTK,这提高了C/C++项目的检测能力,其中GTK的使用是在头文件中声明的。 - GTK++(
gtkmm)增加了检测以捕捉Gtk::使用和#include或 `` 包括。 - 其他模式,如
g_signal_connect,GtkBuilder,以及WebKit跟踪使用情况,为移植和依赖关系提供更精细的指导。
MCP配置
添加到您的MCP客户端配置中(例如,VS代码 .vscode/mcp.json):
{
"servers": {
"mcp-portion-kde-gtk": {
"type": "stdio",
"command": "node",
"args": ["build/index.js"]
}
}
}发展
- 使用TypeScript和Node.js构建
- 使用@modelcontextprotocol/sdk
- Zod用于模式验证
许可证
\[在此处添加许可证\]
