About Delphi Ide Remote MCP
Delphi Ide Remote MCP is an MCP server in the Files category: [BETA] An MCP server to control Delphi remotely, so you can develop from any platform: safe editing, real MSBuild builds, git, scaffolding, sandboxed run, remote file transfer and compiler-grade semantic navigation via the official DelphiLSP engine (which backs 7 of the 27 tools). Read-only level, workspace jail, 3 hosts.
Install
git clone https://github.com/soporte-defontsoft/delphi-ide-remote-mcpThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Tools (35)
delphi_adb**Android devices for remote development** — the phones/tablets hang off the *server*, you program from anywhere: `discover` (devices announcing wireless debugging on the server's network, via mDNS, each with its `ip:port`), `devices` (what adb has attached — the IDE's deploy-target list), `connect`/`disconnect` (attach one over the network), `install` (put a built `.apk` on a device), `run` (launch the installed app — the IDE's "Deploy and Run"), `logcat` (bounded dump of the device log, optional filter), `screenshot` (the device screen to a PNG you then fetch — your remote **eyes**) and `tap`/`key` (touch and navigation keys — your remote **hands**): enough to deploy, drive and debug the app end to end. Uses the IDE's own Android SDK `adb`, discovered per install
Parameters not published.
delphi_buildReal MSBuild builds with structured errors/warnings; on success it declares the artifact it produced (`output`). `target=Deploy` compiles **and ships**: to the PAServer of the `profile` param on Linux/macOS, or assembling the **Android `.apk`** — the deployment manifest, manifest template and version fallbacks are generated when the project has none (the IDE's own files always win)
Parameters not published.
delphi_changeset**Multi-file transactions**: stage edit/create/delete/move, `preview` resolves every anchor and fingerprints every file, `commit` applies all or nothing — a file changed since preview refuses the batch, any failure restores every file byte-exact
Parameters not published.
delphi_completionCode completion candidates
Parameters not published.
delphi_components**What the server has installed to program with**: every design package registered in the IDE (the list the palette loads), whatever the install channel — GetIt, vendor installers, manual. Description + `.bpl` per entry, disabled ones marked, optional `filter`. Read-only by design — no install (that stays a human decision); a missing library is reported with `delphi_report`. `platform=Linux64` shows instead the IDE's Library Search Path of that platform and the components registered only elsewhere — the porting matrix
Parameters not published.
delphi_configSee and manage a project's build **configurations, target platforms, output folder and search paths**: `view` reports framework/configs/platforms with status and the search paths per platform; `add-platform`/`remove-platform` enable/disable a platform in the `.dproj` (curated edit), refusing platforms the framework can't target (VCL is Windows-only); `set-output` puts every binary under one folder (e.g. `Compiled`); `add-searchpath`/`remove-searchpath` manage a platform's unit search path - the IDE's Project Options > Search path - creating the platform's property groups as the IDE would (the usual fix for "unit not found" on a newly added platform: its third-party components' folders are registered for the other platforms only); `add-deployfile`/`remove-deployfile` ship an extra file with the build on one platform - the IDE's Deployment Manager - for the native library a component loads at runtime; `add-unit`/`remove-unit` are the IDE's Add to project / Remove from project for an existing `.pas` (uses, CreateForm, DCCReference; the file stays on disk)
Parameters not published.
delphi_createScaffold NEW projects (console/VCL/FMX) and NEW forms, frames, data modules and plain units (VCL/FMX) with IDE-equivalent skeletons, registered in the `.dpr` **and** the `.dproj` on creation — buildable immediately
Parameters not published.
delphi_definitionCompiler-grade go-to-definition, cross-unit, into RTL/VCL sources; `kind=declaration` jumps to the interface declaration of the target symbol (on call sites the tool chains definition→declaration, so you get the callee)
Parameters not published.
delphi_deleteDelete a file or folder — into a **recoverable trash** next to it (`__delphi-patch\<date>\deleted\`), not a hard delete; it also drops the unit from the projects that list it. `purge=true` is the one hard delete, allowed only INSIDE that trash, and only for what you put there: every trashed item records who trashed it, and a folder holding somebody else's copies is refused, naming them
Parameters not published.
delphi_designer**Forms and components, structured**: `info`/`prop` answer what a class REALLY publishes (generated RTTI tables), `tree`/`get` walk a text `.dfm`/`.fmx`, `lint` catches non-published properties and invalid enum values before the IDE ever opens the form, and two checks the compiler never makes: `check-binding` (does the `.dfm` agree with the class - a component with no published field, an event naming a method that is not declared **or not published**, a duplicate name; all of which build fine and throw when the form is created) and `layout` (**where things actually end up**: resolves `Align` (the way the VCL does), returns the resolved rectangle of every control in `boxes`, and reports controls that overlap, controls with a side of zero and controls that fall outside their container - a form can bind perfectly and still be unusable)
Parameters not published.
Show all 35 tools
delphi_diagnosticsError Insight on demand: real compiler codes (E/W/H) with exact positions, no build
Parameters not published.
delphi_edit**Safe editing**: one-line anchors, encoding preserved byte-for-byte, atomic writes, automatic backups + 2-step restore, semantic INSERT (global routine / method with both halves — also inside a `.dpr`, and into the implicit published section of forms), line DELETE mode, TPF0 hard-reject, post-write audit; new units use the encoding configured in the IDE
Parameters not published.
delphi_fetchDownload files from the server — "get the deploy" to run GUI apps on the client machine. Every answer carries a **`download` link** (`GET /files?path=...` on the same host, same Bearer, `X-File-SHA256` header): bytes travel as HTTP — a 70 MB installer is one `curl`. Base64 chunks inline remain for small files and clients without a shell; files over 4 MB answer with the link only unless `maxbytes<=1048576` is passed explicitly
Parameters not published.
delphi_gitWhitelisted git operations — including **`clone`/`pull`** (bring a whole repo onto the server in one call, jailed) plus status/diff/log/show/branch/add/commit/init/push/tag/config. Options that write files or read outside the repo (`--output`, `--no-index`, `-c`…) are refused at the gate
Parameters not published.
delphi_help**The map — call this first.** `command=tasks` gives a task -> tool table ("I need to change a form", "the build failed"), `command=tool name=<x>` explains one tool and every parameter it really takes, and `command=conventions` is the house rules: what `RECHAZADO:` means versus `error:`, how the recoverable trash and `purge` work, how agents identify themselves and share the mailbox
Parameters not published.
delphi_hoverType/signature of an identifier usage
Parameters not published.
delphi_installsList every RAD Studio/Delphi installation discovered on the machine (side-by-side versions), flagging which one is active for the LSP engine
Parameters not published.
delphi_listRecursive file listing with size/mtime; `dirs=true` browses subdirectories explorer-style; IDE artifacts are filtered relative to the root and the result says how many entries it hid
Parameters not published.
delphi_messagesThe agents' mailbox: `check` lists what is pending for you, `read` delivers it. Notes from the operator to one agent or to everyone (a restart, a new tool, a convention); your identity comes from the handshake, so you do not type it
Parameters not published.
delphi_moveMove or rename a file or folder inside the workspace — and, for a unit, rename it everywhere it is referenced (`.dpr`, `.dproj`, uses clauses, its `.dfm`). Moving an item OUT of the trash is how you restore it
Parameters not published.
delphi_packageZip a build output folder for download (recursive, `.dcu` and intermediates excluded) — the last step of "build on the server, run it here"
Parameters not published.
delphi_projectsLocate projects (.dproj/.groupproj) by name under a root or under the configured workspace roots (`settings.ini [Workspace] Roots=D:\Projects;E:\More`)
Parameters not published.
delphi_readEncoding-correct numbered reads (CP1252 / UTF-8±BOM detected for real)
Parameters not published.
delphi_referencesFind references (hybrid: text scan + per-candidate `definition` validation — homonyms rejected by the compiler engine)
Parameters not published.
delphi_rename_symbol**Semantic rename, preview only**: every occurrence re-confirmed against the same definition; one unverified reference, a designer or string-literal hit, an RTL symbol or a collision = not applicable, with the reasons. Apply will arrive over `delphi_changeset`
Parameters not published.
delphi_report**Feedback channel**: the agent reports a bug, limitation or suggestion and the server files it as its own dated markdown in `reports/` next to the executable. Works at **every** access level, read-only included
Parameters not published.
delphi_run**OFF by default** — this is a compile-only server, it does not execute programs. Download the artifact (`delphi_package` + `delphi_fetch`) and run it on your machine, or deploy to a real target (PAServer / Android). An operator can opt in with `[Security] AllowRun=1` for CI console runners; even then it is jailed, no shell, hard timeout, and Low-integrity sandboxed
Parameters not published.
delphi_searchRecursive literal search, IDE artifacts skipped
Parameters not published.
delphi_signatureSignature help for the call under the cursor (parameter names/types) — the IDE's Ctrl+Shift+Space
Parameters not published.
delphi_styles**FMX styles by `StyleName`**: view/get/set/clone a style member, `lint` it, and `build` a `.style` into the binary the app loads. The `.rc` include chain is walked so a style cannot pull in a file from outside the jail
Parameters not published.
delphi_symbolsDocument symbol tree of a unit (classes, methods, sections)
Parameters not published.
delphi_test**Does it WORK, not just compile**: `discover` finds the test projects (DUnitX, or console runners named *Test*), `run` builds and runs one in the same low-integrity sandbox and answers structured — total/passed/failed, the failing lines, `exitCode`, duration. A runner whose output cannot be counted is still reported FAILED when its exit code says so. `nobuild`, `timeoutms`, and `countsFormat` for a hand-rolled runner. Own opt-in (`AllowTests`); runs Win64 by default
Parameters not published.
delphi_texteditSafe editing of **non-Delphi text files** (.md .html .js .css .py .ini ... any plain text): same anchor/encoding/backup/atomic discipline, so an agent can maintain docs, tests and web assets too
Parameters not published.
delphi_uploadThe mirror of fetch: send files TO the server in chunks, SHA-256 verified — for binaries you cannot recreate by editing
Parameters not published.
delphi_workspaceThe lay of the land on the server: the configured workspace roots (your allowed universe), the access level, and the active Delphi. Server paths travel with **virtual drive units** (`srvd:`, `srvc:` — they only exist inside this MCP, never on your local disk). Call it first
Parameters not published.
Ask AI
Ask AI about Delphi Ide Remote MCP
Powered by Claude · Grounded in docs
Security checks
6 checks have not been run yet.