Transform your Delphi code on MCPServer wih DMCPServer.
DMCPServer is a master control protocol server developed in Delphi.
Installation is done using the boss install command:
boss install github.com/Daniel09Fernandes/DMCPServer| Protocol | Supported |
|---|---|
| HTTP | ✅ |
| STDIO | ✅ |
var
lCallbackGetWeather : TMCPAction;
begin
lCallbackGetWeather :=
procedure(var Params: TJSONObject; out Result: TDMCPCallToolsResult; out Error: TDMCPCallToolsContent)
var
Location: string;
EnableLog: Boolean;
WeatherService: IWeatherService;
WeatherData: string;
begin
try
try
// Extract parameters
Location := Params.GetParam('location');
EnableLog := Params.GetParam('EnableLog', trBool);
// Validation of required parameters
if Location.Trim = '' then
raise Exception.Create('Location parameter is required');
WeatherService := TMockWeatherService.Create;
WeatherData := WeatherService.GetWeatherData(Location);
if EnableLog then
TDMCPServer.WriteToLog(Format('Weather data requested for %s', [Location]));
// Assemble the result - There's no need to release it from memory; it's done automatically.
Result := TDMCPCallToolsResult.Create;
Result.Content.AddRange(TDMCPCallToolsContent.Create(ptText, WeatherData));
Error := nil;
finally
Params.Free;
end;
except
on E: Exception do
begin
// Handles exceptions. to MCPServers Defaults
Error := TDMCPCallToolsContent.Create(ptText,
'Weather service error: ' + E.Message);
TDMCPServer.WriteToLog('Error in get_weather: ' + E.Message);
Result := nil;
end;
end;
end;
end;var
lDMCP: IDMCPServerRegister;
begin
lDMCP := TDMCPServerRegister.New
.SetLogs(True); //Set Logs Request
lDMCP
.RegisterAction('get_weather', 'Get current weather information', lCallbackGetWeather)
.ServerInfo
.SetServerName('DinosMCPServer')
.SetVersion('0.1.0')
.Tools(TMCPServerTools.New
.SetName('get_weather')
.InputSchema
.SetType(ptObject)
.SetProperties('location', ptString)
.SetProperties('Conditions', ptString)
.SetProperties('EnableLog', ptBoolean)
.SetRequired(['location'])
.SetAdditionalProperties(False)
.&End);
lDMCP.Run;
end;
To add more resources to LLM memories for use with MCP
.ServerInfo
.SetServerName('DinosMCPServer')
.SetVersion('0.1.0')
.Resources(TMCPServerResources.New
.SetUri('file:///C:/Users/danie/Downloads/teste/fatura-exemplo.csv')
.SetName('Model to create sales order')
.SetDescription('Standard budget template to be followed for sales orders.'))Access the configuration on developer and edit config
In mcpServers node, attach your MCPServer(STDIO)
To HTTP:
📖 Read the complete documentation here: DMCPServer-docs
🎬 Watch on Youtube DMCPServer - PT-BR
O componente é totalmente free, se ele foi muito útil para você, que tal me pagar um café para incentivar o projeto?
PIX:


