mcp server
MARS
REST framework for Delphi: JAX-RS style resources and routes, servers and clients, JWT, OpenAPI 3, FireDAC and Devart UniDAC/MyDAC/IBDAC, SSE, MCP servers for AI agents. Windows, Linux, Docker.
Set up
Runs on your computer. Pick your agent and operating system.
This project does not publish an install method we can turn into a config. Follow the README instead.
README
synced Oct 14, 2026
MARS-Curiosity: REST library for Delphi
MARS-Curiosity is an open source (MPL 2.0) library to build REST servers and REST clients with Embarcadero Delphi. Endpoints are plain Delphi classes with attributes (JAX-RS style): MARS does routing, parameter binding, JSON serialization, JWT authentication, OpenAPI 3 and hosting, on Windows and Linux.
📖 Documentation: andrea-magni.github.io/MARS · Why MARS? · FAQ · Release notes
type
TPerson = record
Name: string;
Age: Integer;
end;
[Path('people'), RolesAllowed('standard')]
TPeopleResource = class
public
[GET, Path('{id}'), Produces(TMediaType.APPLICATION_JSON)]
function GetPerson([PathParam] id: Integer): TPerson;
end;
curl -H "Authorization: Bearer $TOKEN" http://localhost:8080/rest/default/people/1
# {"Name":"Andrea","Age":42}
Features
- Declarative REST resources:
[Path],[GET]/[POST]/[PUT]/[PATCH]/[DELETE]/[QUERY],[Produces],[Consumes], path/query/header/cookie/form/body parameters, dependency injection with[Context]. - Or routes in code (Express style):
R.Get<TPerson>('people/{id:int}', ...), with path constraints, groups, middlewares and OpenAPI, next to the resources. - JSON to and from records, objects, arrays and datasets, with options per application; YAML and XML writers too.
- Security: JWT authentication (Bearer header or cookie, key rotation, token renewal), role based authorization (
[RolesAllowed],[Authenticated],[PermitAll],[DenyAll]). - OpenAPI 3 generated from your code, Swagger UI included; and the other way round, MARSgen: Delphi types and MARS servers (or whole projects) from OpenAPI 3.0/3.1 documents, types from JSON samples, a conformance check of a server against its document.
- Data access with FireDAC and Devart UniDAC, MyDAC, IBDAC: return datasets as JSON, XML or native formats, parameters from the request, transactions, connections from the configuration; FireDAC clients send back deltas.
- MCP servers for AI agents: expose Delphi methods and data as Model Context Protocol tools, resources and prompts (Claude, ChatGPT, Copilot, local models), with roles and OAuth 2.1.
- Server-sent events, HTML and templates (WebStencils, htmx), static files.
- Logging: JSON request/response logs for Grafana/Loki; client side logging of every request.
- Client library: RAD components to call MARS and any other REST API, typed records, tokens, async calls, dataset sync with FireDAC, UniDAC, MyDAC and IBDAC.
- Hosting: console, VCL/FMX, Windows service, Linux daemon (systemd, Docker), IIS ISAPI, Apache module, FastCGI; Indy or Delphi Cross Socket with HTTPS. See Deployment.
- Tooling: setup with IDE integration, TMS Smart Setup, the MARSCmd project bootstrapper (also from the command line), Agent Skills for AI coding agents.
Delphi 10.4 Sydney to Delphi 13 Florence.
Installation
- Run the setup of the latest release
- Or use TMS Smart Setup (Delphi 10.4 and newer):
tms server-enable community true, thentms install andreamagni.mars - More info at documentation page
Get started
Bootstrap with MARSCmd
Run MARSCmd, pick a template (MARSTemplate with Indy, MARSTemplateDCS with Delphi Cross Socket, MARSTemplateRoutes with Indy and routes in code) and a name: you get a ready project group with the server in several flavors, a client and a test project. Then follow Your First Server.
AI Agent Skills
MARS ships Agent Skills for Claude Code and other AI coding agents: scaffold a new server or develop REST APIs (resources, JWT, FireDAC and Devart datasets, SSE, MCP, ...) with an AI assistant that knows MARS. From Claude Code:
/plugin marketplace add andrea-magni/MARS
/plugin install mars-curiosity@mars
See the Skills folder or the documentation page for manual installation and usage examples.
Documentation
- 📖 MARS Documentation Site — guide, server & client reference, features, deployment and demos
- For AI tools:
llms.txt(index) andllms-full.txt(the whole documentation in one file) - Demos (
Demosfolder): templates, MCP server, SSE, JWT token renewal, OTP, WebStencils, htmx, error objects - Andrea Magni Blog
- Andrea Magni YouTube channel
The documentation site is built with VitePress from the docs/ folder and is published automatically to GitHub Pages on every change.
Forum
Official MARS Curiosity forum at Delphi-Praxis International
Contribution
It would be great if you would like to support this project. It's quite easy, and you can become better at Git, too.
Thanks
Most of the code has been written by the author (Andrea Magni) with some significant contributions by Nando Dessena, Stefan Glienke and Davide Rossi. Some of my customers actually act as beta testers and early adopters. I want to thank them all for the trust and effort.
Related Links
Embarcadero Delphi is a modern, powerful and effective language and development tool. Learn more about it at the following links:
Copyrights
- The Delphi stylized helmet icon is trademark of Embarcadero Technologies.