Delphi Complier MCP Server for AI agent, Used for compile project and file to check ai code result.
Delphi MCP Server
一个为 AI 助手(如 Claude Desktop、CodeArts Agent 等)提供 Delphi 工程编译能力的 MCP Server。如果您觉得有用,请不要吝啬您的 Star! ⭐
项目简介
Delphi MCP Server 是一个基于 Model Context Protocol (MCP) 的服务器,它允许 AI 助手直接编译 Delphi 项目。通过这个工具,您可以在与 AI 助手的对话中直接编译 Delphi 工程,无需手动切换到 IDE 或命令行。
主要优势:
- 无缝集成到 AI 助手工作流中
- 自动检测和配置 Delphi 编译器
- 支持所有主流 AI 助手平台
- 完整的编译事件支持
- 详细的错误诊断和日志
功能特性
- 工程整体编译: 支持编译完整的 Delphi 工程(.dproj/.dpr),生成可执行文件或动态链接库
- MSBuild 编译: 优先使用 MSBuild 编译,自动处理依赖关系和编译事件
- 单文件编译: 支持编译单个 Delphi 单元文件(.pas),进行语法检查
- 自动检测编译器: 自动从注册表检测已安装的 Delphi 编译器,无需手动配置
- 编译事件支持: 支持 PreBuildEvent、PostBuildEvent、PreLinkEvent,包含完整的参数替换
- 命令行参数生成: 支持生成 Delphi 编译器命令行参数,便于调试和预览
- 编译器配置管理: 支持配置和管理多个 Delphi 编译器版本
- 环境检查: 提供编译器环境状态检查功能
- 丰富的编译选项: 支持条件编译符号、搜索路径、优化选项、调试信息、警告控制等
系统要求
- Python 3.10 或更高版本
- Delphi 编译器(dcc32.exe 或 dcc64.exe)
- Windows 操作系统
安装
1. 克隆或下载项目
git clone <repository-url>
cd delphi_mcp_server
2. 创建虚拟环境
python -m venv venv
3. 激活虚拟环境
Windows:
venv\Scripts\activate
Linux/macOS:
source venv/bin/activate
4. 安装依赖
pip install -r requirements.txt
配置
1. 自动检测 Delphi 编译器
首次使用时,MCP Server 会自动从 Windows 注册表检测已安装的 Delphi 编译器,无需手动配置。
自动检测支持的 Delphi 版本:
- Delphi 13 Florence (37.0)
- Delphi 12 Athens (23.0)
- Delphi 11 Alexandria (22.0)
- Delphi 10.4 Sydney (21.0)
- Delphi 10.3 Rio (20.0)
- Delphi 10.2 Tokyo (19.0)
- Delphi 10.1 Berlin (18.0)
- Delphi 10 Seattle (17.0)
- Delphi XE8 (16.0)
- Delphi XE7 (15.0)
- Delphi XE6 (14.0)
- Delphi XE5 (12.0)
- Delphi XE4 (11.0)
- Delphi XE3 (10.0)
- Delphi XE2 (9.0)
- Delphi XE (8.0)
- Delphi 2010 (7.0)
- Delphi 2009 (6.0)
- Delphi 2007 (5.0)
- Delphi 2006 (4.0)
- Delphi 2005 (3.0)
检测原理: 从注册表 HKEY_CURRENT_USER\SOFTWARE\Embarcadero\BDS 读取所有已安装的 Delphi 版本及其安装路径。
2. 手动配置编译器 (可选)
如果需要手动配置或添加自定义编译器,可以通过 MCP 工具 set_compiler_config 进行配置,或直接编辑 config/compilers.json 文件。
示例配置:
{
"compilers": [
{
"name": "Delphi 11 Alexandria Win64",
"path": "C:\\Program Files (x86)\\Embarcadero\\Studio\\22.0\\bin\\dcc64.exe",
"is_default": true,
"version": "Delphi 11 Alexandria"
},
{
"name": "Delphi 11 Alexandria Win32",
"path": "C:\\Program Files (x86)\\Embarcadero\\Studio\\22.0\\bin\\dcc32.exe",
"is_default": false,
"version": "Delphi 11 Alexandria"
}
],
"default_compiler": "Delphi 11 Alexandria Win64"
}
3. 配置 AI 助手
2.1 Claude Desktop
在 Claude Desktop 的配置文件中添加 MCP Server 配置:
Windows: %APPDATA%\Claude\claude_desktop_config.json
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"delphi-compiler": {
"command": "python",
"args": ["C:\\path\\to\\delphi_mcp_server\\src\\server.py"],
"env": {
"PYTHONUNBUFFERED": "1"
}
}
}
}
2.2 CodeArts Agent
在 CodeArts Agent 的配置文件中添加 MCP Server 配置:
Windows: %APPDATA%\codearts-agent\User\settings.json
{
"mcp": {
"servers": {
"stdio_delphi_compiler": {
"enabled": true,
"type": "stdio",
"command": "python",
"args": ["C:\\path\\to\\delphi_mcp_server\\src\\server.py"],
"env": {
"PYTHONUNBUFFERED": "1"
},
"autoApprovedTools": [
"compile_project",
"compile_file",
"get_compiler_args",
"set_compiler_config",
"check_environment"
]
}
}
}
}
2.3 OpenCode
在 OpenCode 的配置文件中添加 MCP Server 配置:
配置文件位置: ~/.opencode/config.json 或项目根目录的 .opencode/config.json
{
"mcpServers": {
"delphi-compiler": {
"command": "python",
"args": ["C:\\path\\to\\delphi_mcp_server\\src\\server.py"],
"env": {
"PYTHONUNBUFFERED": "1"
}
}
}
}
2.4 通义千问 (Qwen)
在通义千问的配置文件中添加 MCP Server 配置:
配置文件位置: ~/.qwen/config.json
{
"mcp": {
"servers": {
"delphi-compiler": {
"command": "python",
"args": ["C:\\path\\to\\delphi_mcp_server\\src\\server.py"],
"env": {
"PYTHONUNBUFFERED": "1"
}
}
}
}
}
2.5 文心一言 (ERNIE Bot)
在文心一言的配置文件中添加 MCP Server 配置:
配置文件位置: ~/.ernie/config.json
{
"mcpServers": {
"delphi-compiler": {
"command": "python",
"args": ["C:\\path\\to\\delphi_mcp_server\\src\\server.py"],
"env": {
"PYTHONUNBUFFERED": "1"
}
}
}
}
2.6 讯飞星火 (Spark)
在讯飞星火的配置文件中添加 MCP Server 配置:
配置文件位置: ~/.spark/config.json
{
"mcp": {
"servers": {
"delphi-compiler": {
"command": "python",
"args": ["C:\\path\\to\\delphi_mcp_server\\src\\server.py"],
"env": {
"PYTHONUNBUFFERED": "1"
}
}
}
}
}
2.7 智谱清言 (ChatGLM)
在智谱清言的配置文件中添加 MCP Server 配置:
配置文件位置: ~/.chatglm/config.json
{
"mcpServers": {
"delphi-compiler": {
"command": "python",
"args": ["C:\\path\\to\\delphi_mcp_server\\src\\server.py"],
"env": {
"PYTHONUNBUFFERED": "1"
}
}
}
}
2.8 百川智能 (Baichuan)
在百川智能的配置文件中添加 MCP Server 配置:
配置文件位置: ~/.baichuan/config.json
{
"mcp": {
"servers": {
"delphi-compiler": {
"command": "python",
"args": ["C:\\path\\to\\delphi_mcp_server\\src\\server.py"],
"env": {
"PYTHONUNBUFFERED": "1"
}
}
}
}
}
2.9 MiniMax
在 MiniMax 的配置文件中添加 MCP Server 配置:
配置文件位置: ~/.minimax/config.json
{
"mcpServers": {
"delphi-compiler": {
"command": "python",
"args": ["C:\\path\\to\\delphi_mcp_server\\src\\server.py"],
"env": {
"PYTHONUNBUFFERED": "1"
}
}
}
}
2.10 Moonshot AI (Kimi)
在 Moonshot AI 的配置文件中添加 MCP Server 配置:
配置文件位置: ~/.moonshot/config.json
{
"mcp": {
"servers": {
"delphi-compiler": {
"command": "python",
"args": ["C:\\path\\to\\delphi_mcp_server\\src\\server.py"],
"env": {
"PYTHONUNBUFFERED": "1"
}
}
}
}
}
4. 配置说明
注意事项:
- 路径替换: 请将
C:\\path\\to\\delphi_mcp_server替换为实际的项目路径 - Python 环境: 确保使用正确的 Python 环境,建议使用绝对路径指定 Python 解释器
- 环境变量:
PYTHONUNBUFFERED=1确保日志实时输出 - 权限: 确保 Python 脚本有执行权限
- 重启: 配置完成后需要重启 AI 助手应用
使用虚拟环境:
如果使用虚拟环境,请指定虚拟环境中的 Python 解释器:
{
"command": "C:\\path\\to\\delphi_mcp_server\\venv\\Scripts\\python.exe",
"args": ["C:\\path\\to\\delphi_mcp_server\\src\\server.py"]
}
使用方法
编译方式
项目编译优先使用 MSBuild:
- 自动检测系统中的 MSBuild
- 自动处理项目依赖关系
- 自动执行编译事件(PreBuildEvent、PostBuildEvent、PreLinkEvent)
- 如果 MSBuild 不可用,则回退到直接编译器调用
编译事件支持:
- PreBuildEvent: 编译前执行
- PreLinkEvent: 链接前执行
- PostBuildEvent: 编译后执行
- 支持所有 Delphi 编译事件参数(BDS, Config, DEFINES, DIR, INCLUDEPATH, INPUTEXT, INPUTFILENAME, INPUTPATH, LOCALCOMMAND, OUTPUTDIR, OUTPUTEXT, OUTPUTFILENAME, OUTPUTPATH, PATH, Platform, PROJECTDIR, PROJECTFILENAME, PROJECTNAME, PROJECTPATH, SystemRoot, WINDIR)
工具列表
1. compile_project - 工程编译
编译 Delphi 工程。
参数:
project_path(必需): 项目文件路径(.dproj 或 .dpr)target_platform(可选): 目标平台(win32/win64),默认 win32output_path(可选): 输出路径compiler_version(可选): 编译器版本名称timeout(可选): 超时时间(秒),默认 600conditional_defines(可选): 条件编译符号列表unit_search_paths(可选): 单元搜索路径列表resource_search_paths(可选): 资源搜索路径列表optimization_enabled(可选): 是否启用优化,默认 truedebug_info_enabled(可选): 是否生成调试信息,默认 falsewarning_level(可选): 警告级别(0-4),默认 2disabled_warnings(可选): 禁用的警告列表output_type(可选): 输出类型(console/gui/dll),默认 guiruntime_library(可选): 运行时库链接方式(static/dynamic),默认 staticbuild_configuration(可选): 编译配置名称
示例:
请编译项目 C:\Projects\MyApp\MyApp.dproj,使用 64 位目标平台
2. compile_file - 单文件编译
编译单个 Delphi 单元文件(仅语法检查)。
参数:
file_path(必需): 单元文件路径(.pas)unit_search_paths(可选): 单元搜索路径列表warning_level(可选): 警告级别(0-4),默认 2disabled_warnings(可选): 禁用的警告列表
示例:
请检查文件 C:\Projects\MyApp\MainForm.pas 的语法
3. get_compiler_args - 获取命令行参数
获取编译器命令行参数(不执行编译)。
参数: 同 compile_project
示例:
请生成项目 C:\Projects\MyApp\MyApp.dproj 的编译命令行参数
4. set_compiler_config - 配置编译器
配置 Delphi 编译器。
参数:
name(必需): 编译器版本名称path(必需): 编译器可执行文件路径is_default(可选): 是否设为默认编译器,默认 falseversion(可选): 编译器版本号
示例:
请配置 Delphi 11 编译器,路径为 C:\Program Files (x86)\Embarcadero\Studio\22.0\bin\dcc64.exe
5. check_environment - 检查环境
检查编译器环境状态。
参数: 无
示例:
请检查 Delphi 编译器环境
故障排除
1. 编译器未找到
错误: "编译器配置不存在" 或 "编译器文件不存在"
解决方案:
- 检查
config/compilers.json文件中的编译器路径是否正确 - 使用
set_compiler_config工具重新配置编译器 - 确保编译器可执行文件存在且有执行权限
2. 编译超时
错误: "编译超时"
解决方案:
- 增加
timeout参数的值 - 检查项目是否过大或编译器是否卡住
- 检查系统资源使用情况
3. 路径错误
错误: "项目文件不存在" 或 "文件不存在"
解决方案:
- 检查路径是否正确
- 确保使用绝对路径
- 检查文件扩展名是否正确(.dproj/.dpr/.pas)
4. MCP Server 无法启动
错误: Claude Desktop 无法连接到 MCP Server
解决方案:
- 检查 Python 环境是否正确配置
- 检查依赖是否已安装
- 查看 Claude Desktop 日志文件获取详细错误信息
开发
运行测试
pytest tests/
代码风格
使用 Python 标准代码风格(PEP 8)。
许可证
MIT License
Copyright (c) 2026 吉林省左右软件开发有限公司 Copyright (c) 2026 Equilibrium Software Development Co., Ltd, Jilin
详见 LICENSE 文件。
版本历史
v2026.03.10 (2026-03-10)
- 更新项目文档和 README
- 添加项目徽章和简介
- 优化项目结构
- 发布到 GitHub
v2026.03.09 (2026-03-09)
- 初始版本发布
- 支持项目编译和单文件编译
- 支持 MSBuild 编译(优先使用)
- 支持编译事件(PreBuildEvent, PostBuildEvent, PreLinkEvent)
- 支持所有 Delphi 编译事件参数(21个参数)
- 支持自动检测 Delphi 编译器(从注册表)
- 支持 Delphi 2005 到 Delphi 13 的所有版本
- 支持 10+ AI 助手配置
- 自动 .dcu 文件清理(单文件编译前)
贡献
欢迎提交 Issue 和 Pull Request!
联系方式
如有问题或建议,请提交 Issue。