Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

chinawsb/daofy

Repository files navigation

Daofy for Delphi

License: MIT Python 3.10+ Delphi 2005-13

一个为 AI 助手(如 Claude Desktop、CodeArts Agent 等)提供 Delphi 工程编译能力和知识库查询功能的 MCP Server。如果您觉得有用,请不要吝啬您的 Star! ⭐

Daofy(道飞)——为创意插上翅膀。

项目简介

Daofy for Delphi 是一个基于 Model Context Protocol (MCP) 的 MCP Server,它允许 AI 助手直接编译 Delphi 项目并查询 Delphi 知识库。通过这个工具,您可以在与 AI 助手的对话中直接编译 Delphi 工程、查询 API 文档、搜索代码示例,无需手动切换到 IDE 或命令行。

主要优势:

  • 无缝集成到 AI 助手工作流中
  • 自动检测和配置 Delphi 编译器
  • 内置 Delphi 源码知识库,支持语义搜索
  • 项目级知识库,自动追踪三方库和项目源码
  • 通用文档知识库支持 Delphi CHM 帮助文档全文搜索
  • 支持所有主流 AI 助手平台
  • 完整的编译事件支持
  • 详细的错误诊断和日志

功能特性

编译功能

  • 工程整体编译: 支持编译完整的 Delphi 工程(.dproj/.dpr),生成可执行文件或动态链接库
  • MSBuild 编译: 优先使用 MSBuild 编译,自动处理依赖关系和编译事件
  • 单文件编译: 支持编译单个 Delphi 单元文件(.pas),进行语法检查
  • 自动检测编译器: 自动从注册表检测已安装的 Delphi 编译器,无需手动配置
  • 智能库路径解析: 自动分析项目依赖,智能选择需要的第三方库路径,避免命令行过长
  • 编译事件支持: 支持 PreBuildEvent、PostBuildEvent、PreLinkEvent,包含完整的参数替换
  • 命令行参数生成: 支持生成 Delphi 编译器命令行参数,便于调试和预览
  • 编译器配置管理: 支持配置和管理多个 Delphi 编译器版本
  • 环境检查: 提供编译器环境状态检查功能
  • 丰富的编译选项: 支持条件编译符号、搜索路径、优化选项、调试信息、警告控制等

知识库功能

  • Delphi 源码知识库: 内置 Delphi 官方源码知识库,支持类、函数搜索和语义搜索
  • 项目知识库: 为每个项目构建独立知识库,自动追踪三方库和项目源码
  • 三方库知识库: 从 .dproj 文件自动提取三方库路径并构建知识库
  • 增量更新: 自动检测源码变动,增量更新项目知识库
  • 通用文档知识库: 支持 txt/md/html/docx/doc/pdf/epub/hlp/chm 和网页文档的扫描与搜索
    • 必需依赖: beautifulsoup4, html2text, lxml, requests (已在 requirements.txt)
    • 可选依赖: python-docx (Word .docx 支持), antiword/catdoc (旧版 Word .doc 支持), PyMuPDF (PDF 支持,推荐) 或 pdfplumber (PDF 支持,备选)
  • 智能去重: 基于完整路径去重,正确处理同名不同目录的文件

构建 Delphi 帮助文档知识库

用户首次使用或需要重建 Delphi API 文档时,调用 delphi_kb 工具构建文档知识库:

delphi_kb(
 action="build",
 kb_type="document",
 async_mode=true
)

说明:

  • 不传 directory 时自动检测最新安装的 Delphi 帮助目录(通过注册表或默认路径)
  • 也可手动指定:directory="C:\Program Files (x86)\Embarcadero\Studio\<版本>\Help\Doc"
    • 版本对照:37.0=Delphi 13, 23.0=Delphi 12, 22.0=Delphi 11, 21.0=Delphi 10.4, 20.0=Delphi 10.3
  • extensions=[".chm"]:只扫描 CHM 文件,工具会自动解压并导入 HTML 文档
  • async_mode=true:异步执行(耗时数分钟),提交后返回 task_id,通过 async_task(action=status, task_id=...) 轮询进度
  • 需要系统安装 7-Zip(可放在 tools/7z/ 目录下免安装)

编码规范功能

  • 编码规则查询: 获取 Delphi 源码编码规则,供 AI 助手用于代码审核和生成
  • 默认规则支持: 内置默认编码规则文件,包含命名规则、格式化规则、修改规则和审核规则
  • 自定义规则支持: 支持项目级别的自定义编码规则,优先于默认规则
  • 规则优先级: 项目自定义规则 > 默认规则

MCP 工具列表

工具名称 功能描述
project 项目全生命周期管理:编译(compile)/配置(info/set/create)/审计(audit/ast/runtime)
check_environment 诊断编译环境、检测编译器、安装 pasfmt
package 组件包管理:安装(action=install) / 列出已安装(action=list)
get_coding_rules 获取 Delphi 编码规范,支持按章节分段获取
delphi_kb 搜索代码/类/函数/文档,查看统计或构建知识库
delphi_file Delphi 文件专用操作:读/写/批量写入(batch_write)/格式化/备份管理(编码检测+自动备份+DFM转换)
manage_component DFM 组件增/删/改/生成 + PAS 自动同步
code_hosting 统一操作 Gitea/GitHub/GitLab/Gitee/GitCode 平台 + Git 本地操作
async_task 管理后台任务(构建知识库等)
tool_help 获取任意工具的完整帮助文档(按需,含参数说明/示例/触发词)
experience 经验记忆管理:保存/搜索/更新/合并/删除 AI 成功解决问题的做法;定期清理低价值条目(prune);模型加载后重建缺失向量(rebuild_embedding)

系统要求

  • Python 3.10-3.14
  • Delphi 编译器(dcc32.exe 或 dcc64.exe)
  • Windows 操作系统
  • Git
  • 7-Zip (用于解压 CHM 帮助文件,可选)

知识库存储位置

所有知识库数据存储在项目根目录的 data/ 文件夹下:

知识库类型 存储路径 说明
Delphi 源码知识库 data/delphi-knowledge-base/ Delphi 官方源码 (RTL/VCL/FMX 等)
第三方库知识库 data/thirdparty-knowledge-base/ 第三方组件库源码
通用文档知识库 data/document-knowledge-base/ Delphi CHM 帮助文档 + 通用文档
项目知识库 <项目目录>/.delphi-kb/ 项目级知识库,存放在项目目录下
经验知识库 data/experience-knowledge-base/ AI 经验记忆(experiences.sqlite)

每个知识库目录包含:

  • documents.sqlite / knowledge_base.sqlite / knowledge.sqlite - SQLite 数据库文件
  • experiences.sqlite - 经验记忆数据库
  • config.json - 知识库配置文件

知识库配置说明

每个知识库通过 config.json 文件进行配置,支持自定义数据库、源码路径、构建参数等。

知识库类型 配置位置
Delphi 源码 data/delphi-knowledge-base/config.json
第三方库 data/thirdparty-knowledge-base/config.json
通用文档 data/document-knowledge-base/config.json
项目级 <项目目录>/.delphi-kb/config.json
经验库 data/experience-knowledge-base/(纯 SQLite,无 config.json)

配置文件在首次构建时自动生成,通常无需手动修改。

安装

方式一:pip 安装(推荐)

pip install daofy-for-delphi

安装完成后直接进入 → 配置 AI 助手 步骤即可。

国内用户可使用镜像源加速:

pip install daofy-for-delphi -i https://pypi.tuna.tsinghua.edu.cn/simple

方式二:源码安装

AI 助手自动安装提示词

请按以下步骤安装 Daofy:

[] 检查并安装 Git/Python 3.10-3.14/7-Zip

[] 安装 https://github.com/chinawsb/daofy.git(国内用户可用镜像: https://gitee.com/zuoyouruanjian/daofy.git)

[] 安装完成后验证结果并帮我配置当前客户端

手动安装步骤

1. 克隆或下载项目
git clone https://github.com/chinawsb/daofy.git
# 国内用户可用 Gitee 镜像加速:
# git clone https://gitee.com/zuoyouruanjian/daofy.git
cd daofy
2. 创建虚拟环境
python -m venv venv
3. 激活虚拟环境

Windows:

venv\Scripts\activate

Linux/macOS:

source venv/bin/activate
4. 安装依赖 (使用国内镜像源加速)
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

可选国内镜像源:

配置 AI 助手

自动检测 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)

手动配置编译器 (可选)

如果需要手动配置或添加自定义编译器,可以直接编辑 config/compilers.json 文件,或使用 check_environment 工具的 detect action 重新检测。

通用配置(pip 安装)

如果通过 pip install daofy-for-delphi 安装,配置最简:

{
 "mcpServers": {
 "daofy": {
 "command": "daofy",
 "env": {
 "PYTHONUNBUFFERED": "1",
 "PYTHONIOENCODING": "utf-8",
 "PYTHONUTF8": "1"
 }
 }
 }
}

源码安装配置

以下配置适用于通过 git clone 源码安装的用户,请将路径替换为实际安装路径。

Claude Desktop

Windows: %APPDATA%\Claude\claude_desktop_config.json

{
 "mcpServers": {
 "daofy": {
 "command": "python",
 "args": ["C:\\path\\to\\daofy\\src\\server.py"],
 "env": {
 "PYTHONUNBUFFERED": "1",
 "PYTHONIOENCODING": "utf-8",
 "PYTHONUTF8": "1"
 }
 }
 }
}

Trae

Windows: C:\Users\<用户名>\.trae-cn\mcp_config.json

{
 "mcpServers": {
 "daofy": {
 "command": "F:\\ProPlus\\DelphiPlus\\Experts\\DelphiMCPServer\\delphi-complier-mcp-server\\venv\\Scripts\\python.exe",
 "args": [
 "F:\\ProPlus\\DelphiPlus\\Experts\\DelphiMCPServer\\delphi-complier-mcp-server\\src\\server.py"
 ],
 "env": {
 "PYTHONUNBUFFERED": "1",
 "PYTHONIOENCODING": "utf-8",
 "PYTHONUTF8": "1"
 }
 }
 }
}

注意: 请将路径修改为您的实际安装路径。

CodeArts Agent

Windows: ~/.codeartsdoer/mcp/mcp_settings.json

{
 "mcpServers": {
 "daofy": {
 "command": "python",
 "args": ["src\\server.py"],
 "cwd": "C:\\path\\to\\daofy",
 "env": {
 "PYTHONUNBUFFERED": "1",
 "PYTHONIOENCODING": "utf-8",
 "PYTHONUTF8": "1"
 }
 }
 }
}

使用方法

知识库统计

知识库 文件数 类数量 函数数量 数据库大小
Delphi 源码 2,798 163,737 300,228 260 MB
三方库 1,800 5,724 28,801 27 MB
通用文档 160,328 - - 1,306 MB

故障排除

1. 编译器未找到

解决方案:

  • 检查 config/compilers.json 文件中的编译器路径是否正确
  • 使用 check_environment 工具 action=detect 重新检测编译器

2. MCP Server 无法启动

解决方案:

  • 检查 Python 环境是否正确配置
  • 检查依赖是否已安装: pip install -r requirements.txt
  • 检查 MCP 库版本: pip show mcp

3. 知识库搜索无结果

解决方案:

  • 确保已构建知识库: 使用 delphi_kb 工具的 action=build 构建
  • 检查知识库目录是否存在

许可证

MIT License

Copyright (c) 2026 吉林省左右软件开发有限公司 Copyright (c) 2026 Equilibrium Software Development Co., Ltd, Jilin

详见 LICENSE 文件。

版本历史

v2026.06.08.1 (最新)

  • delphi_file 全操作 RWLock 防并发文件损坏:read/write/batch_write/format/backup/uses 全部引入多读单写锁,并发写入返回明确错误引导合并 batch_write
  • tools/7z/ 补齐 7z.dll,release 包开箱可用
  • tool_docs.py 约束强化:batch_write 标注"⭐ 优先使用",新增并行写入禁令
  • .gitignore 排除 dot-prefixed 目录,清理 AI 工作目录追踪

v2026.06.03

  • delphi_file 新增 batch_write action:一次传入多个 edit,内部按 start_line 升序排列,以备份文件为参照系,内存中累积偏移量后一次性写出(配套 18 个测试用例)
  • compilers.json 路径自愈:检测到不在 src/config/ 时自动回退到项目根 config/,避免 MCP 启动时因路径差异直接报错
  • 18 处 except Exception: pass 添加 logger.debug 异常日志,便于调试时定位失败原因
  • search_knowledge 重构:597→37 行,拆 16 个模块级子函数,行为完全等价
  • 全量测试 727 passed

v2026.06.01

  • delphi_file 部分写入行号修正:0-indexed 文档纠偏,写入后返回偏移量+后续行号调整公式
  • delphi_file(action="uses") 同步返回偏移量信息
  • AGENTS.md 新增部分写入规则章节:0-indexed 语义 + 连续编辑偏移算法
  • 全量测试 684 passed, 6 skipped

v2026.05.14

  • 新增 manage_component 工具:DFM 组件增/删/改/生成 + PAS 自动同步(替代原 generate_component_dfm)
  • delphi_file 重命名+增强:DFM 二进制自动转换、备份管理、搜索定位(原名 file_tool,旧名仍兼容)
  • get_coding_rules 增强:支持按章节分段获取,节省 token
  • 新增 code_hosting 工具:统一 Gitea/GitHub/GitLab 操作
  • 工作流从 6 步扩展为 7 步(1环境检查→2查KB→3写代码→4格式化→5编译→6审计→7清理)

完整版本历史详见 CHANGELOG.md

贡献

欢迎提交 Issue 和 Pull Request!

赞助

如果您觉得 Daofy for Delphi 对您有帮助,欢迎通过以下方式赞助支持我们。 您的支持让项目走得更远!❤️

支付宝

账号: guansonghuan@sina.com(姓名:管耸寰,请标明QQ号)

支付宝收款码

微信

账号: wangshengbo(发送红包或转账)

微信收款码

QQ

直接群支付,或给群主发红包

QQ收款码

QQ官方群: 250530692

银行卡

银行 户名 账号 开户行
光大银行 王胜波 6226 6208 0391 5552 光大银行长春人民大街支行
建设银行 管耸寰 4367 4209 4324 0179 731 建设银行长春团风储蓄所

联系方式

如有问题或建议,请提交 Issue。

AltStyle によって変換されたページ (->オリジナル) /