DelphiMCP-Delphi模型上下文协议框架
 ](https://www.embarcadero.com/products/delphi)  ](https://github.com/JavierusTk/DelphiMCP/issues)  
Delphi中构建MCP(模型上下文协议)服务器的半成品框架
✅ 版本3.3.0-增强模态支持 模态窗口自动化现在支持{SPACE}键和增强的焦点检测。有关详细信息,请参阅CHANGELOG.md。
概述
DelphiMCP是一个 正在进行的通用VCL自动化框架 对于Delphi应用程序,通过模型上下文协议(MCP)实现AI驱动的自动化。
这是什么:
- 自动化框架:30个VCL自动化专业工具(目视检查、控制交互、键盘/鼠标、同步)
- MCP电桥:通过HTTP/SSE和命名管道将框架连接到Claude Code
- 在开发中:与CyberMAX ERP系统一起开发
- 独立:除了Delphi RTL/VCL之外没有外部依赖关系
当前状态:
- ✅ 模态窗口支持 -现在使用{SPACE}键支持非VCL对话框(MessageDlg、TOpenDialog)
- ✅ 增强焦点检测 -ui_focus_get现在显示按钮标题和控件类型
- ✅ 三层焦点管理 -Windows 11上可靠的窗口激活
- ⚠️ 进行中 -一些边缘病例可能需要人工干预
架构组件
此存储库包含三个主要组件:
- 自动化工具 (初级产品)
- 地点: Source/AutomationTools/ - 2封装架构: - 自动化桥 (13个基础设施单元):配置、日志记录、注册表、服务器、实用程序 - 自动化工具 (30个自动化工具):目视检查、控制交互、键盘/鼠标、同步 - JSON-RPC命名管道服务器 - 独立式VCL自动化(约6000条生产线) - 线程安全VCL交互 - 适用于任何Delphi VCL应用程序
- MCPBridge
- 地点: Source/MCPbridge/ - HTTP/SSE服务器(连接到Claude Code) - 动态工具代理(通过命名管道转发调用) - 9个附加实用工具(调试捕获等) - 基于Delphi MCP Server框架构建
- 示例应用程序
- 地点: Examples/SimpleVCLApp/ - 演示框架集成 - 显示典型使用模式 - 准备运行和测试
主要特点
- ✅ 30个自动化工具 -目视检查、控制交互、键盘/鼠标、同步
- ✅ 模态窗口支持 -完全支持非VCL对话框(MessageDlg、TOpenDialog)
- ✅ 增强焦点检测 -ui_focus_get显示按钮标题和控件类型(v3.3.0)
- ✅ {SPACE}关键支持 -Windows对话框中的正确按钮激活(v3.3.0)
- ✅ 独立 -Delphi RTL/VCL之外没有外部依赖
- ✅ 易于集成 -双线设置:
RegisterCoreAutomationTools; StartAutomationServer; - ✅ 线程安全 -所有VCL访问都通过TThread。同步
- ✅ 可扩展 -轻松添加自定义工具
- ✅ HTTP/MCP网桥 -无缝连接到Claude Code
工具类别
目视检查(9个工具): 截图、获取表单信息、列出打开的表单、列出控件、查找控件、获取控件、ui_get_tree_diff、ui_focus_get、ui_value_get
控制交互(7个工具): 设置控件值,ui_set_text_verified,单击按钮,选择组合项,选择选项卡,关闭窗体,设置焦点
键盘/鼠标(5个工具): ui_send_keys、ui_mouse_move、ui-mouse-click、ui_mouse_dblclick、ui_mouse_wheel
同步(4个工具): wait_idle、wait_focus、wait_text、wait_when
开发(2个工具): 分析表格taborder,列出可聚焦的表格
实用工具(2个工具): echo,列表工具
桥接工具(9个工具): 调试捕获工具、连接测试
快速集成
最小集成 (2行):
uses AutomationServer, AutomationCoreTools;
begin
Application.Initialize;
Application.CreateForm(TfmMain, fmMain);
RegisterCoreAutomationTools; // Register 30 tools
StartAutomationServer; // Start server
Application.Run;
end.依赖项
必修的:
- 德尔福12 (RAD工作室12雅典)或更高版本
- Delphi MCP服务器 框架(用于桥梁组件)
- 存储库:https://github.com/GDKsoftware/delphi-mcp-server - 本地路径: /mnt/w/Delphi-MCP-Server/ - HTTP/SSE服务器(使用Indy,Delphi附带) - MCP协议处理(JSON-RPC 2.0)
无其他依赖关系:
- Automation Framework是自包含的(仅限RTL/VCL)
- 不需要外部库或组件
5分钟快速入门
只需几个步骤,即可让DelphiMCP与Claude Code一起运行:
步骤1:克隆存储库
git clone https://github.com/JavierusTk/DelphiMCP.git
cd DelphiMCP步骤2:配置依赖关系
- 安装 Delphi MCP服务器 框架
- 更新路径
Packages/DelphiMCP.dpk(参见 软件包/配置.md)
步骤3:构建网桥服务器
# Open in Delphi IDE
Source/MCPserver/DelphiMCPserver.dproj
# Or compile from command line
cd Source/MCPserver
dcc32 DelphiMCPserver.dpr步骤4:运行服务器
cd Binaries
./DelphiMCPserver.exe步骤5:连接克劳德代码
从命令行添加MCP服务器:
# Add DelphiMCP server to Claude Code configuration
claude mcp add delphi-mcp http://localhost:3001/mcp -t http测试一下: 询问克劳德代码: *“列出delphi mcp中的可用工具”*
______________________________________________________________________
兼容性
| 组件 | 版本 | 状态 | 注释 |
|---|---|---|---|
| 德尔斐 | 12 (29.0) | ✅ 测试 | RAD Studio 12雅典 |
| 德尔斐 | 11 | ⚠️ 未测试 | 应该有效,未验证 |
| 德尔斐 | 10.4+ | ⚠️ 未测试 | 可能需要调整 |
| 视窗 | 10 (1809+) | ✅ 支持 | 需要Windows 10或更高版本 |
| 视窗 | 11 | ✅ 支持 | 经过全面测试 |
| Windows 服务器 | 2019+ | ✅ 支持 | 支持命名管道 |
| 印地 | 10.6+ | ✅ 必需 | 包含在Delphi中 |
| MCP协议 | 2024-11-05 | ✅ 支持 | 最新规格 |
平台说明
- 命名管道是特定于Windows的 -此框架需要Windows
- Indy捆绑在一起 使用Delphi-无需单独安装
- 64位编译 支持(Win64平台)
______________________________________________________________________
详细设置
先决条件
- 德尔福12 (RAD Studio 12)或更高版本
- 视窗 (命名管道是特定于Windows的)
- Delphi MCP服务器 框架
- 存储库:https://github.com/GDKsoftware/delphi-mcp-server - 使用Indy提供HTTP/SSE服务器(包含在Delphi中)
- 目标应用程序 使用MCP服务器实现(您的Delphi应用程序)
运行DelphiMCP服务器
- 启动目标应用程序 (启用MCP服务器)
- 运行网桥服务器:
cd Binaries
./DelphiMCPserver.exe- 配置Claude代码:
claude mcp add delphi-mcp http://localhost:3001/mcp -t http- 测试连接:
Claude, can you list the available tools?建筑
Claude Code (AI Assistant)
↓ MCP Protocol (HTTP/SSE)
┌─────────────────────────────────────────┐
│ DelphiMCPserver.exe │
│ │
│ ┌────────────────────────────────────┐ │
│ │ Delphi-MCP-Server (HTTP/Protocol) │ │
│ │ - HTTP/SSE Server (Indy) │ │
│ │ - MCP JSON-RPC 2.0 handling │ │
│ │ - Tool/Resource management │ │
│ └────────────────────────────────────┘ │
│ ↓ │
│ ┌────────────────────────────────────┐ │
│ │ DelphiMCP (Tools & Proxy) │ │
│ │ - Dynamic proxy logic │ │
│ │ - Named pipe client │ │
│ │ - Debug capture engine │ │
│ │ - 9 built-in tools │ │
│ └────────────────────────────────────┘ │
└─────────────────────────────────────────┘
↓ Named Pipe (\\.\pipe\YourApp_MCP_Request)
Target Application (your Delphi application)
↓ JSON-RPC 2.0
Internal MCP Server (embedded in target)依赖结构:
- DelphiMCPserver.exe =Delphi MCP服务器(HTTP层)+DelphiMCP(工具/代理层)
- Indy HTTP服务器 (包含在Delphi中)提供HTTP/SSE传输
- 命名管道 为IPC提供目标Delphi应用程序
看 文档/架构.md 详细的架构。
安装
选项1:用作包装
在Delphi IDE中安装DelphiMCP包:
1. Open Packages/DelphiMCP.dpk in Delphi
2. Build the package
3. Add to your project's required packages看 软件包/README.md 了解详细的安装说明。
选项2:直接来源使用(推荐)
将MCPautomationBridge包添加到您的项目中:
Project → Options → Packages → Runtime Packages
Add: MCPautomationBridge
Or add source directories to search path:
$(DelphiMCP)\Source\MCPbridge\Core;$(DelphiMCP)\Source\MCPbridge\Tools核心组件
MCPautomationBridge软件包(源/MCPbridge)
将Delphi应用程序连接到MCP服务器的自动化桥库。
核心组件 (Source/MCPbridge/Core/):
- MCP服务器。应用程序。DynamicProxy.pas -工具发现的动态代理
- MCPServer。应用程序。Pipeclient.pas -为目标应用程序命名管道客户端
- MCP。工具。适配器。Indy.pas -SharedTools集成适配器
共享工具 (从 DelphiMCPbridge/Source/SharedTools/):
Indy和mORMot服务器之间共享的后端无关工具:
- mcp_hello -测试连接性
- mcp-echo -回显消息(可选大写)
- mcp-time -通过格式化获取系统时间
- start_debug_capture -开始捕获调试输出
- get_debug_消息 -通过过滤检索捕获的邮件
- stop_debug_capture -停止捕获会话
- get_capture_status -获取捕获会话统计信息
- 缺货捕获 -暂停/恢复捕获
- get_process_summary -过程统计
另请参见: DelphiMCPbridge 用于共享工具的实现。
调试捕获功能
该框架包括一个强大的调试输出捕获系统:
// Start capturing debug output from all processes
start_debug_capture
// Filter by process name
get_debug_messages(processname="YourApp.exe")
// Filter by message content
get_debug_messages(messagecontains="[ERROR]")
// Filter by regex pattern
get_debug_messages(messageregex="\\[MCP\\].*")
// Get statistics
get_process_summary看 文档/调试.md 以获取完整的文档。
扩展框架
添加自定义工具
- 在中创建新单元
Source/Tools/:
unit MCPServer.Tool.MyCustomTool;
interface
uses MCPServer.Types;
procedure RegisterMyCustomTool(Server: TMCPServer);
implementation
procedure RegisterMyCustomTool(Server: TMCPServer);
begin
Server.RegisterTool('my-custom-tool',
procedure(Params: TJSONObject; out Result: TJSONObject)
begin
// Your tool implementation
end,
'Description of my custom tool'
);
end;
end.- 注册
DelphiMCPserver.dpr:
MCPServer.Tool.MyCustomTool.RegisterMyCustomTool(Server);连接到不同的应用程序
修改 MCPServer.Application.PipeClient.pas 管道名称:
const
PIPE_NAME = '\\.\pipe\MyApp_MCP_Request';配置
编辑 Examples/DelphiMCPserver/settings.ini:
[Server]
Port=3001
Host=localhost
Name=delphi-auto
Version=2.1.0
Endpoint=/mcp
[CORS]
Enabled=1
AllowedOrigins=http://localhost,http://127.0.0.1,https://localhost,https://127.0.0.1例子
DelphiMCP服务器
Delphi应用程序的完整MCP桥示例。
特性:
- 端口3001上的HTTP服务器
- 命名管道通信(可配置)
- 已注册所有9个内置工具
- 调试捕获已启用
位置: Examples/DelphiMCPserver/
备注:示例使用 \\.\pipe\YourApp_MCP_Request 作为默认管道名称。在源代码中修改此项以匹配应用程序的管道名称。
文档
核心文件
- 建筑.md -框架架构和设计
- DYNAMIC-PROXY.md -动态代理实现细节
- DEBUG-CAPTURE.md -调试捕获系统文档
- 安装指南.md -完整的设置和配置指南
- 实施.md -实施历史和决策
- 控制面板和模块.md -控制路径分辨率和模态窗口支持(v2.2)
- NEXT-STEPS.md -发展路线图和优先事项
研究文件
- 电梯-电梯-搜索.md -针对Windows 11焦点管理的UIAccess/admin-helper应用程序的研究(结论:不推荐)
- 风能服务-风能研究.md -Windows服务方法分析
- 焦点解决方案-COMPARISON.md -焦点管理解决方案的比较
开发示例
该框架正在积极开发,并在现实世界的应用程序中进行测试。
开发用例:CyberMAX ERP
DelphiMCP正在与CyberMAX ERP系统一起开发,用于人工智能自动化:
规模:
- 28个核心工具 (通过目标应用程序)
- 9桥梁工具 (调试捕获、回声、时间)
- 413次操作 可通过内部执行访问
- 100+命令 通过命令处理器
当前状态:
- ✅ 非模态形状控制和检查工作
- ⚠️ 模态对话框导致阻塞(开发中)
- ✅ 70%的代币优化,实现API的高效使用
- ⚠️ 由于模式窗口限制,尚未准备好生产
注: CyberMAX是一个私有系统。该框架正在与它一起开发,并推广供公众使用。
测试
# Build the example
cd /mnt/w/Public/DelphiMCP/Examples/DelphiMCPserver/
# Use compiler-agent to compile
# Run tests
cd /mnt/w/Public/DelphiMCP/Binaries/
./DelphiMCPserver.exe
# Test with curl
curl http://localhost:3001/mcp需求
发展
- 德尔福12 (RAD Studio 12)或更高版本
- Windows 10/11
- Delphi MCP服务器 框架(必需的依赖关系)
- 地点: /mnt/w/Delphi-MCP-Server/ - 提供:HTTP/SSE服务器、MCP协议、工具管理 - 用途:Indy(包含在Delphi中)
运行时
- Windows 10/11
- Delphi MCP服务器 二进制文件
- 目标应用程序 使用MCP服务器实现(您的Delphi应用程序)
- 网络端口3001 可用(可通过settings.ini配置)
许可证
此项目根据Mozilla公共许可证2.0(MPL-2.0)获得许可。 看 许可证 文件以获取完整详细信息。
社区与支持
获取帮助
贡献
我们欢迎捐款!看 贡献.md 关于以下方面的指导方针:
- 报告问题
- 提交拉取请求
- 代码风格和测试要求
- 开发工作流程
保持更新
- ⭐ 标记此存储库 表示支持并保持更新
- 👀 观看发布 对于新版本和功能
- 🔔 查看存储库 关于问题和PR的通知
成功案例
在生产中使用DelphiMCP?我们很想听听!打开一个问题或讨论来分享你的经验。
版本
当前版本:v3.2.0(2025-10-12)
学分
最初是为CyberMAX ERP开发的,现在可用作通过模型上下文协议将AI助手连接到Delphi应用程序的通用框架。
关键技术:
- 模型上下文协议(MCP)-https://modelcontextprotocol.io/
- Delphi MCP服务器-HTTP/SSE服务器实现
- Windows命名管道-带目标应用程序的IPC
- Claude Code-AI编码助手集成
已知限制
关键问题
- ⚠️ 不支持模态窗口:当通过以下方式显示模态表单时,框架当前会阻止
ShowModal()。这会影响:
- 消息框(ShowMessage、MessageDlg等) - 模态对话框(ShowModal显示的形式) - 任何阻塞UI操作 - 影响:这是一个关键的限制,在许多情况下阻碍了生产使用
次要限制
- 单个连接:命名管道仅支持每根管道一个连接(不支持多连接)
- 仅限Windows:命名管道是特定于Windows的(不计划跨平台支持)
- 手动重新启动:目标应用程序重新启动时,网桥服务器需要手动重新启动
路线图
模态窗口问题是主要的发展重点。一旦解决,该框架将被视为生产就绪。
______________________________________________________________________
状态: ⚠️ 正在进行中(不支持模态窗口) 版本: 3.2 最后更新: 2025-10-12
