返回市场
麦普德尔菲

麦普德尔菲

作者:flydev-fr7 星标更新:2025-08-22

项目介绍

MCP Delphi 构建服务器

这是一个MCP(模型上下文协议)服务器,它提供了使用MSBuild在Windows上构建和清理Delphi项目(.dproj/.groupproj)的工具,并通过rsvars.bat初始化RAD Studio环境。

<a href="https://glama.ai/mcp/servers/@flydev-fr/mcp-delphi"> <img width="380" height="200" src="https://gips2.baidu.com/it/u=1063065971,295472341&fm=3081&app=3081&f=PNG?w=760&h=400" alt="Delphi 构建服务器 MCP 服务器" /> </a>

预备条件

  • Windows
  • Node.js >= 18
  • 已安装Embarcadero RAD Studio(用于rsvars.bat和Delphi工具链)
  • 可用的MSBuild(Visual Studio构建工具或来自RAD Studio工具链)

安装

pnpm install
pnpm run build

或者使用npm:

npm install
npm run build

配置

你可以通过环境变量配置默认值(如果你想的话,在此目录中使用一个.env文件):

  • RSVARS_BAT:rsvars.bat的完整路径(例如,C:\Program Files (x86)\Embarcadero\Studio\23.0\bin\rsvars.bat)
  • MSBUILD_PATH:如果不在PATH中,则为msbuild.exe的完整路径
  • DELPHI_CONFIG:默认配置(Debug/Release)。默认值:Release
  • DELPHI_PLATFORM:默认平台(Win32/Win64)。默认值:Win32

创建一个.env文件如下:

RSVARS_BAT=C:\Program Files (x86)\Embarcadero\Studio\23.0\bin\rsvars.bat
MSBUILD_PATH=C:\Program Files\Microsoft Visual Studio\2022\BuildTools\MSBuild\Current\Bin\MSBuild.exe
DELPHI_CONFIG=Release
DELPHI_PLATFORM=Win32

运行

该服务器通过stdio使用MCP。启动它:

node --env-file=.env dist/server.js

或者,在全局安装后(或作为依赖项),运行二进制文件:

mcp-delphi-server

在开发期间:

pnpm run dev

工具

  • delphi.build
    • 参数:project(字符串,指向.dproj/.groupproj的路径),configuration?(字符串),platform?(字符串),msbuildPath?(字符串),rsvarsPath?(字符串)
    • 使用MSBuild构建项目。如果提供了rsvarsPath(或RSVARS_BAT环境变量),则会在单个shell中调用MSBuild之前调用它。
  • delphi.clean
    • 参数:与delphi.build相同
    • 清理项目。
  • fpc.build
    • 参数:source(字符串,指向.lpr/.pas的路径),output?(字符串),defines?(字符串数组),unitPaths?(字符串数组),includePaths?(字符串数组),cpu?(字符串),os?(字符串),fpcPath?(字符串)
    • 使用Free Pascal编译器编译Pascal程序。你可以传递显式的fpcPath或依赖于PATH。
  • lazarus.build
    • 参数:project(字符串,指向.lpi的路径),buildMode?(字符串),cpu?(字符串),os?(字符串),lazbuildPath?(字符串)
    • 使用lazbuild构建Lazarus项目。可选设置CPU/OS或构建模式。
  • lazarus.clean
    • 参数:project(字符串,指向.lpi的路径),lazbuildPath?(字符串)
    • 使用lazbuild --clean清理Lazarus构建工件。

测试项目和脚本

此仓库包括位于test/projects的小型Delphi测试项目,以及位于test/projects/lazarus的Lazarus示例。辅助脚本位于scripts/

  • 构建所有发布目标:
    • pnpm run test:build:all
  • 单独构建(示例):
    • pnpm run test:build:console:win32
    • pnpm run test:build:console:win64
    • pnpm run test:build:vcl:win32
    • pnpm run test:build:vcl:win64
    • pnpm run test:build:group:win32
    • pnpm run test:build:group:win64
  • 清理变体也存在于test:clean:*下。

示例调用

  • 通过MSBuild的Delphi
{
  "name": "delphi.build",
  "arguments": {
    "project": "C:/path/to/MyApp.dproj",
    "configuration": "Release",
    "platform": "Win64"
  }
}
  • 在Windows上的FPC(使用显式编译器路径)
{
  "name": "fpc.build",
  "arguments": {
    "source": "C:/path/to/lazarus/project1.lpr",
    "cpu": "x86_64",
    "os": "win64",
    "fpcPath": "C:/path/to/fpc.exe"
  }
}
  • 在Windows上的Lazarus通过lazbuild
{
  "name": "lazarus.build",
  "arguments": {
    "project": "C:/path/to/lazarus/project1.lpi",
    "cpu": "x86_64",
    "os": "win64",
    "lazbuildPath": "C:/path/to/lazbuild.exe"
  }
}

注意事项

  • 首先考虑Windows。Delphi集成需要RAD Studio工具链和MSBuild。
  • 对于RAD Studio,rsvars.bat设置了所需的环境变量(如BDS、FrameworkDir、库路径)。建议设置RSVARS_BAT以确保Delphi工具链对MSBuild可用。
  • 支持组项目(.groupproj);MSBuild将遍历包含的项目。
  • 通过fpc和lazbuild支持FPC/Lazarus。在Windows上提供显式路径,如果它们不在PATH中。

发布

  • 确保已构建distpnpm run build
  • 可选地本地测试:pnpm run test:build:all
  • 发布到npm:
    • npm publish(或pnpm publish

如果在作用域下发布,请相应地设置包名并确保您已使用正确的访问权限登录。