by dotpas
Dext - Modern Full Stack Framework for Delphi
# Add to your Claude Code skills
git clone https://github.com/dotpas/dextGuides for using mcp servers skills like dext.
Last scanned: 8/27/2026
{
"issues": [],
"status": "PASSED",
"scannedAt": "2026-08-27T15:01:45.607Z",
"npmAuditRan": true,
"pipAuditRan": true,
"promptInjectionRan": true
}dext is an open-source mcp servers skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by dotpas. Dext - Modern Full Stack Framework for Delphi. It has 314 GitHub stars.
Yes. dext passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.
Clone the repository with "git clone https://github.com/dotpas/dext" and add it to your Claude Code skills directory (see the Installation section above).
dext is primarily written in Pascal. It is open-source under dotpas on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other MCP Servers skills you can browse and compare side by side. Open the MCP Servers category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh dext against similar tools.
No comments yet. Be the first to share your thoughts!
⚠️ Third-Party Software Notice
This skill is third-party open-source software developed and hosted independently on GitHub. SkillsLLM is an informational directory and does not control or maintain the underlying repository.
Any security checks, ratings, or warnings displayed by SkillsLLM are automated and limited in scope. They do not constitute a security certification or guarantee that the software is safe, error-free, or free from malicious code, vulnerabilities, compromised dependencies, or prompt-injection risks.
Review the source code, permissions, dependencies, and configuration before installing or running any third-party skill. Use is at your own risk. To the maximum extent permitted by applicable law, SkillsLLM is not liable for losses arising from third-party software.
Lê em português? Este README está em inglês. A versão completa em português — com os mesmos exemplos, o livro e o mapa de features — está em README.pt-br.md. Se o português for mais confortável, clique e leia o documento inteiro por lá, em vez de passar o olho num atalho.
Native full-stack for Delphi.
The Delphi compiler was never the bottleneck. The missing piece was the infrastructure.
For years, a modern Object Pascal backend meant stitching a dozen libraries: one for DI, one for HTTP, one for ORM, one for tests. Each with its own dialect. None of them slept in the same house.
Dext 1.0 is that infrastructure. One ecosystem — dependency injection, ORM, web pipeline, telemetry, and testing — compiled native. No JIT. No cold start. No patchwork.
"Simplicity is Complicated." — Rob Pike
A Minimal API fits on one screen because the engine underneath does not. UTF-8 JSON, DI, binding, validation, Direct-to-JSON: the ceremony lives in the framework.
"Make what is right easy and what is wrong difficult." — Steve "Ardalis" Smith
Reading a catalog is an entity. Changing the world is a command with a rule. The test is born in the constructor. With Dext, the right path is the short one.
And it is Apache 2.0: free for the twenty-year ERP and for the product that does not have a name yet.
If the team is glancing at C# because “Delphi has no industry-standard stack,” Dext closes that gap without rewriting the system.
Functional parity with ASP.NET Core and Entity Framework Core, in the language you already ship, plus what the managed runtime does not give away: a native binary, a small memory footprint, instant startup.
This is not a feature catalog. It is a real corporate product — Dext Faturamento — built from scratch across five labs: Minimal APIs, persistence, multi-tenant SaaS, JWT, jobs, Redis, Hubs, Docker, gRPC, and tools for AI agents. The model stays yours. The agent does not get to invent SQL.
Desenvolvimento Web Profissional com Delphi e Dext Framework — Cesar Romero, 1st edition, 2026. ISBN 978-65-02-32503-2.
The English edition is in final review.
The README is the taste. The map lives under Docs.
The Portuguese editions of the same docs live under Docs/Book.pt-br and Docs/Features_Implemented_Index.pt-br.md.
[DataApi] generating REST from the entity.TAsyncTask, cancellation tokens, async REST client. No hand-rolled TThread.An endpoint with DI and model binding does not ask for ceremony:
program MyAPI;
uses Dext.Web;
begin
var App := WebApplication;
App.MapGet('/hello', function: string
begin
Result := 'Hello from Dext! Modern full-stack for Delphi.';
end);
App.MapPost<TUserDto, IEmailService, IResult>('/register',
function(Dto: TUserDto; EmailService: IEmailService): IResult
begin
EmailService.SendWelcome(Dto.Email);
Result := Results.Created('/login', 'User successfully registered');
end);
App.Run(8080);
end.
Convention over Configuration. The class becomes a table — and, if you want, an API:
[Table]
[DataApi('/api/orders')]
TOrder = class
private
FId: IntType;
FStatus: Prop<TOrderStatus>;
FNotes: StringType;
FTotal: Nullable<CurrencyType>;
FItems: Lazy<IList<TOrderItem>>;
public
[PK, AutoInc]
property Id: IntType read FId write FId;
property Status: Prop<TOrderStatus> read FStatus write FStatus;
property Notes: StringType read FNotes write FNotes;
property Total: Nullable<CurrencyType> read FTotal write FTotal;
property Items: Lazy<IList<TOrderItem>> read FItems write FItems;
end.
No more magic strings that fail in production. Dext builds the query AST in Pascal:
var O := Prototype.Entity<TOrder>;
var Orders := DbContext.Orders
.Where((O.Status = TOrderStatus.Paid) and (O.Total > 1000))
.Include('Customer')
.Include('Items')
.OrderBy(O.Date.Desc)
.Take(50)
.ToList;
DbContext.Products
.Where(Prototype.Entity<TProduct>.Category = 'Outdated')
.Update
.Execute;
TThread complexity becomes a pipeline. Thread pool, chaining, a safe return to the UI:
var CTS := TCancellationTokenSource.Create;
TAsyncTask.Run<TStream>(
function: TStream
begin
Result := AsyncClient.DownloadStream('https://api.company.com/data', CTS.Token);
end)
.Then<TReport>(
function(Stream: TStream): TReport
begin
Result := JsonSerializer.Deserialize<TReport>(Stream);
Stream.Free;
end)
.OnComplete(
procedure(Report: TReport)
begin
ShowReport(Report);
end)
.OnException(
procedure(Ex: Exception)
begin
ShowError('Process failed: ' + Ex.Message);
end)
.Start;
JSON, YAML, User Secrets, environment variables, command line — Twelve-Factor order:
var Builder := WebApplication.CreateBuilder;
Builder.Configuration
.AddJsonFile('appsettings.json')
.AddYamlFile('config.yaml')
.AddEnvironmentVariables;
Builder.Services
.Configure<TDatabaseSettings>(Builder.Configuration.GetSection('Database'))
.AddSingleton<IEmailService, TSmtpEmailService>
.AddScoped<IOrderRepository, TDbOrderRepository>;
var App := Builder.Build;
TEntityDataSet puts POCOs on the DBGrid, FastReport, and the Object Inspector. Real design-time: TFields and live data in the IDE, without compiling the project.
Everyone ships CRUD. 1.0 was built for what comes next: scale, governance, and the rest of the week.
Full REST from the entity — paging, filters, roles, and Swagger — with one attribute:
[Table, DataApi('/api/products')]
TProduct = class
private
FId: IntType;
[Required, MaxLength(100)]
FName: StringType;
FPrice: CurrencyType;
public
[PK, AutoInc]
property Id: IntType read FId write FId;
property Name: StringType read FName write FName;
property Price: CurrencyType read FPrice write FPrice;
end;
App.MapDataApis.Configure<TProduct>(
DataApiOptions.RequireAuth.RequireWriteRole(['admin'])
);
Dext exposes Delphi business rules as tools for agents (Claude, Cursor, Antigravity) over MCP, in the same process:
type
[MCPTool('search_products', 'Search active products with price filters')]
[MCPParam('query', 'Product search query term')]
[MCPParam('maxPrice', 'Optional maximum price filter')]
TSearchProductsTool = class
public
function Execute(const AQuery: string; AMaxPrice: Currency): TList<TProduct>;
end;
Decoupling does not have to kill RAD. Context-menu scaffolding, metadata in the Object Inspector, a DBGrid with real rows before you press F9.