Delphi Build Server
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.
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 buildOr with npm:
npm install
npm run buildConfiguration
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=Win32Running
This server speaks MCP over stdio. Start it with:
node --env-file=.env dist/server.jsOr, after installing globally (or as a dependency), run the bin:
mcp-delphi-serverDuring development:
pnpm run devTools
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:win32pnpm run test:build:console:win64pnpm run test:build:vcl:win32pnpm run test:build:vcl:win64pnpm run test:build:group:win32pnpm 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
distis built:pnpm run buildOptionally test locally via:
pnpm run test:build:allPublish to npm:
npm publish(orpnpm publish)
If publishing under a scope, set the package name accordingly and ensure you are logged in with proper access.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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