Skip to main content
Glama

Delphi Build Server

by flydev-fr
README.md4.65 kB
# MCP Delphi Build Server An MCP (Model Context Protocol) server that exposes tools to build and clean Delphi projects (.dproj/.groupproj) on Windows using MSBuild, initializing the RAD Studio environment via rsvars.bat. <a href="https://glama.ai/mcp/servers/@flydev-fr/mcp-delphi"> <img width="380" height="200" src="https://glama.ai/mcp/servers/@flydev-fr/mcp-delphi/badge" alt="Delphi Build Server MCP server" /> </a> ## Prerequisites - Windows - Node.js >= 18 - Embarcadero RAD Studio installed (for rsvars.bat and Delphi toolchain) - MSBuild available (Visual Studio Build Tools or from RAD Studio toolchain) ## Installation ``` pnpm install pnpm run build ``` Or with npm: ``` npm install npm run build ``` ## Configuration You can configure defaults via environment variables (use an .env file in this directory if you want): - RSVARS_BAT: Full path to rsvars.bat (e.g., C:\Program Files (x86)\Embarcadero\Studio\23.0\bin\rsvars.bat) - MSBUILD_PATH: Full path to msbuild.exe if not in PATH - DELPHI_CONFIG: Default config (Debug/Release). Default: Release - DELPHI_PLATFORM: Default platform (Win32/Win64). Default: Win32 Create a .env file like: ``` 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 ``` ## Running This server speaks MCP over stdio. Start it with: ``` node --env-file=.env dist/server.js ``` Or, after installing globally (or as a dependency), run the bin: ``` mcp-delphi-server ``` During development: ``` pnpm run dev ``` ## Tools - delphi.build - params: project (string, path to .dproj/.groupproj), configuration? (string), platform? (string), msbuildPath? (string), rsvarsPath? (string) - Builds the project using MSBuild. If rsvarsPath (or RSVARS_BAT env) is provided, it will be called before MSBuild in a single shell. - delphi.clean - params: same as delphi.build - Cleans the project. - fpc.build - params: source (string, path to .lpr/.pas), output? (string), defines? (string[]), unitPaths? (string[]), includePaths? (string[]), cpu? (string), os? (string), fpcPath? (string) - Compiles a Pascal program using Free Pascal Compiler. You can pass an explicit fpcPath or rely on PATH. - lazarus.build - params: project (string, path to .lpi), buildMode? (string), cpu? (string), os? (string), lazbuildPath? (string) - Builds a Lazarus project using lazbuild. Optionally set CPU/OS or build mode. - lazarus.clean - params: project (string, path to .lpi), lazbuildPath? (string) - Cleans Lazarus build artifacts via lazbuild --clean. ### Test projects and scripts This repo includes small Delphi test projects in `test/projects`, and a Lazarus sample in `test/projects/lazarus`. Helper scripts live in `scripts/`. - Build all Release targets: - `pnpm run test:build:all` - Build individually (examples): - `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` - Clean variants also exist under `test:clean:*`. ## Example invocations - Delphi via MSBuild ``` { "name": "delphi.build", "arguments": { "project": "C:/path/to/MyApp.dproj", "configuration": "Release", "platform": "Win64" } } ``` - FPC on Windows (using explicit compiler path) ``` { "name": "fpc.build", "arguments": { "source": "C:/path/to/lazarus/project1.lpr", "cpu": "x86_64", "os": "win64", "fpcPath": "C:/path/to/fpc.exe" } } ``` - Lazarus via lazbuild on Windows ``` { "name": "lazarus.build", "arguments": { "project": "C:/path/to/lazarus/project1.lpi", "cpu": "x86_64", "os": "win64", "lazbuildPath": "C:/path/to/lazbuild.exe" } } ``` ## Notes - Windows-first. Delphi integration requires RAD Studio toolchain and MSBuild. - For RAD Studio, rsvars.bat sets required environment variables (like BDS, FrameworkDir, Library path). It is recommended to set RSVARS_BAT to ensure the Delphi toolchain is available to MSBuild. - Group projects (.groupproj) are supported; MSBuild will traverse contained projects. - FPC/Lazarus support is included via fpc and lazbuild. Provide explicit paths on Windows if they are not in PATH. ## Publish - Ensure `dist` is built: `pnpm run build` - Optionally test locally via: `pnpm run test:build:all` - Publish to npm: - `npm publish` (or `pnpm publish`) If publishing under a scope, set the package name accordingly and ensure you are logged in with proper access.

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/flydev-fr/mcp-delphi'

If you have feedback or need assistance with the MCP directory API, please join our Discord server