Skip to content

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 步(①环境检查→②查KB→③写代码→④格式化→⑤编译→⑥审计→⑦清理)

完整版本历史详见 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。

About

Daofy for Delphi — MCP Server that compiles Delphi projects and queries knowledge base for AI assistants.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors