DMCPServer

mcp
Guvenlik Denetimi
Gecti
Health Gecti
  • License — License: MIT
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Community trust — 34 GitHub stars
Code Gecti
  • Code scan — Scanned 4 files during light audit, no dangerous patterns found
Permissions Gecti
  • Permissions — No dangerous permissions requested
Purpose
This project provides a framework for developers to build a Model Context Protocol (MCP) server using Delphi. It allows you to transform Delphi code into executable actions that an AI can trigger and interact with.

Security Assessment
Overall risk: Low. Based on a light code scan covering four files, no dangerous patterns, hardcoded secrets, or risky permission requests were found. The README example demonstrates building actions that make network requests (such as fetching weather data), but this is entirely dependent on how the developer implements their own code. The core library itself does not inherently access sensitive system data or execute arbitrary shell commands.

Quality Assessment
The project is active, recently updated, and protected by a standard MIT license. It has gathered a modest but positive level of community trust with 34 GitHub stars, indicating that several developers find it useful. The documentation is clear, providing straightforward installation instructions and practical examples for registering custom server actions and protocols.

Verdict
Safe to use.
SUMMARY

Dinos MCP Server, make your code, on MCP Action and execute by AI

README.md

Dinos MCPServer - Version 1.0.1

DMCPServer


Transform your Delphi code into a MCP-server with DMCPServer.


🎯 About

DMCPServer is a master control protocol server developed in Delphi.

⚙️ Installation

Installation is done using the boss install command:

boss install github.com/Daniel09Fernandes/DMCPServer

⚙️ Protocol

| Protocol | Supported |
|----------- |----------- |
| HTTP | ✅ |
| STDIO | ✅ |

Tested Delphi version

| Version | Supported |
|---------- |----------- |
| > 10.x | ✅ |
| > 11.x | ✅ |
| > 12.x | ✅ |
| > 13.X | ✅ |

🚀 Register your Action

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;

📋 Create and register your server informations

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;

image 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.'))

Attach on Claude AI

Access the configuration on developer and edit config

image

image

In mcpServers node, attach your MCPServer(STDIO)

image

To HTTP:

image

Flow

image

Documentation

📖 Read the complete documentation here: DMCPServer-docs

🎬 Watch on Youtube DMCPServer - PT-BR

🎬 Watch on Youtube, Full explanation of MCP DMCPServer - EN-US


O componente é totalmente free, se ele foi muito útil para você, que tal me pagar um café para incentivar o projeto?

PIX:

Star History

Star History Chart

Yorumlar (0)

Sonuc bulunamadi