본문으로 건너뛰기

© 2026 Molayo

GitHub요약2026. 06. 22. 05:39

GDKsoftware/Delphi-MCP-Server

요약

Delphi 개발 환경을 위해 설계된 Model Context Protocol(MCP) 서버 구현체입니다. Claude Code, Codex 등 MCP 호환 클라이언트와 통합하여 AI 기반의 Delphi 개발 워크플로우를 지원합니다.

핵심 포인트

  • Claude Code 및 Codex와 호환되는 MCP 서버 구현
  • HTTP(SSE 포함) 및 STDIO 이중 전송 모드 지원
  • RTTI 기반의 확장 가능한 도구 및 리소스 시스템 제공
  • Windows 및 Linux 크로스 플랫폼 지원

AI 기반 Delphi 개발 워크플로우를 위해 Claude Code, Codex 및 기타 MCP 호환 클라이언트와 통합되도록 설계된 Delphi 기반 Model Context Protocol (MCP) 서버 구현체입니다.

  • 특징 (Features)
  • 요구 사항 (Requirements)
  • 설치 (Installation)
  • 전송 모드 (Transport Modes)
  • 라이브러리로 사용하기 (Using as a Library)
  • Claude Code와의 통합 (Integration with Claude Code)
  • Codex와의 통합 (Integration with Codex)
  • MCP Inspector를 통한 테스트 (Testing with MCP Inspector)
  • 사용 가능한 예제 도구 (Available Example Tools)
  • 사용 가능한 예제 리소스 (Available Example Resources)
  • 설정 (Configuration)
  • 라이선스 (License)
  • 기여하기 (Contributing)
  • GDK Software 소개 (About GDK Software)
  • 지원 (Support)

전체 MCP 프로토콜 지원 (Full MCP Protocol Support): Streamable HTTP 및 SSE를 포함한 MCP 사양 2025-06-18 구현
이중 전송 지원 (Dual Transport Support): HTTP (SSE를 포함한 Streamable HTTP) 및 STDIO (stdin/stdout)
이중 응답 모드 (Dual Response Mode): 동일한 서버 내에서 JSON-RPC와 Server-Sent Events (SSE)를 모두 지원
도구 시스템 (Tool System): RTTI 기반의 탐색 및 실행을 지원하는 확장 가능한 도구 시스템
리소스 관리 (Resource Management): 다양한 콘텐츠 유형을 지원하는 모듈형 리소스 시스템
보안 (Security): CORS 설정을 포함한 내장 보안 기능
고성능 (High Performance): keep-alive를 지원하는 Indy HTTP Server를 사용한 네이티브 구현
선택적 매개변수 (Optional Parameters): 커스텀 속성(Attributes)을 사용한 선택적 도구 매개변수 지원
크로스 플랫폼 (Cross-Platform): Windows (Win32/Win64) 및 Linux (x64) 지원

  • Delphi 12 Athens 이상

  • Windows (Win32/Win64) 또는 Linux (x64)

  • 외부 종속성 없음 (모든 필수 라이브러리 포함)

  • 저장소 복제 (Clone the repository):

git clone https://github.com/GDKsoftware/delphi-mcp-server.git
cd delphi-mcp-server
  • 프로젝트 빌드 (Build the project):

build.bat

또는 구성 및 플랫폼 지정:

build.bat Debug Win32
build.bat Release Win64

사전 요구 사항 (Prerequisites):

  • Linux 플랫폼 지원이 포함된 Delphi Enterprise
  • Linux 대상 머신에서 실행 중인 PAServer
  • RAD Studio에 구성된 Linux SDK

배치 파일에서:

build.bat Release Linux64

또는 RAD Studio IDE에서:

  • MCPServer.dproj 열기
  • Linux64 플랫폼 선택
  • 빌드

서버는 두 가지 전송 모드를 지원합니다:

Server-Sent Events (SSE)를 사용하는 HTTP 전송 모드로 인자 없이 서버를 시작합니다:

Win32\Debug\MCPServer.exe

서버는 기본적으로 http://localhost:3000/mcp에서 대기합니다 (settings.ini를 통해 설정 가능).

다음의 경우 HTTP 전송을 사용하세요:

  • Claude Code (SSE 지원)
  • MCP Inspector
  • 웹 기반 클라이언트 (Web-based clients)
  • 원격 연결 (Remote connections)

stdin/stdout 통신을 위해 --stdio 플래그와 함께 서버를 시작합니다:

Win32\Debug\MCPServer.exe --stdio

서버는 다음과 같이 동작합니다:

  • stdin으로부터 JSON-RPC 요청을 읽음 (한 줄에 하나씩)
  • stdout으로 JSON-RPC 응답을 작성 (한 줄에 하나씩)
  • stderr로 진단 메시지 (diagnostic messages)를 로그로 남김

다음의 경우 STDIO 전송을 사용하세요:

  • Codex (OpenAI)
  • 프로세스 스폰 (process spawning)을 사용하는 로컬 MCP 클라이언트
  • 자동화된 테스트 및 스크립팅

지원되는 플래그 변형: --stdio, -stdio, /stdio

Delphi MCP Server는 독립형 애플리케이션 (standalone application)과 사용자 정의 MCP 서버 구현을 위한 라이브러리 양쪽 모두로 사용할 수 있도록 설계되었습니다. 이 섹션에서는 기존 Delphi 프로젝트에 이를 통합하는 방법을 다룹니다.

# MCPServer를 프로젝트의 서브모듈 (submodule)로 추가
git submodule add https://github.com/GDKsoftware/delphi-mcp-server.git lib/mcpserver
git submodule update --init --recursive

MCPServer의 src 폴더를 프로젝트로 복사하고 uses 절에 유닛들을 추가하세요.

검색 경로 (Search Paths): MCPServer 소스 디렉토리를 프로젝트 검색 경로에 추가하세요:
lib\mcpserver\src\Core
lib\mcpserver\src\Managers
lib\mcpserver\src\Protocol
lib\mcpserver\src\Server
lib\mcpserver\src\Tools
lib\mcpserver\src\Resources

필수 유닛 (Required Units): 프로젝트에 다음 핵심 유닛들을 포함하세요:
MCPServer.Types, MCPServer.Settings, MCPServer.Registration, MCPServer.ManagerRegistry, MCPServer.IdHTTPServer, // HTTP 전송용
MCPServer.StdioTransport, // STDIO 전송용
MCPServer.JsonRpcProcessor // 공통 JSON-RPC 처리

프로젝트 설정이 완료되면, 애플리케이션에 MCP 기능을 추가하는 가장 간단한 방법은 다음과 같습니다:

program YourMCPServer;
{$APPTYPE CONSOLE}
uses
...
unit YourProject.Tool.Custom;
interface
uses
...
unit YourProject.Resource.Custom;
interface
uses
...

Streamable HTTP 전송 (transport) 방식을 사용하여 구성합니다:

# 기본 구성
claude mcp add --transport http delphi-mcp-server http://localhost:3000/mcp
# 인증을 사용하는 경우 (설정된 경우)
...

Claude Code에 연결하기 전에 서버가 실행 중인지 확인하십시오.

Codex가 STDIO 전송 (transport) 방식을 사용하도록 구성합니다. Codex 설정 파일(~/.codex/config.toml)을 편집하십시오:

[mcp_servers.delphi-mcp-server]
command = 'C:\path\to\MCPServer.exe'
args = ["--stdio"]

또는 Linux/macOS의 경우:

[mcp_servers.delphi-mcp-server]
command = '/path/to/MCPServer'
args = ["--stdio"]

중요: 서버는 컴파일되어 있어야 하며, 실행 파일(executable) 경로는 절대 경로여야 합니다.

구성 후:

  • Codex를 재시작합니다.
  • /mcp 명령어를 사용하여 서버가 연결되었는지 확인합니다. - 사용 가능한 도구(tools)가 Codex 인터페이스에 나타납니다.

서버는 SSL 인증서로 구성된 경우 HTTPS 연결을 지원합니다:

  • SSL 인증서 생성: # 자체 서명 인증서 생성 (개발용) generate-ssl-cert.bat

이는 certs 디렉토리에 인증서를 생성합니다.

  • settings.ini에서 SSL 구성:
    [SSL]
    Enabled=1 ; 1 (true) 또는 0 (false) 사용
    CertFile=C:\path\to\server.crt
    KeyFile=C:\path\to\server.key
    RootCertFile=C:\path\to\ca.crt ; 선택 사항

  • 서버 시작: SSL이 활성화되면 서버가 자동으로 HTTPS를 사용합니다.

참고: 운영 환경(production)에서는 자체 서명 인증서 대신 신뢰할 수 있는 인증 기관(CA)에서 발급한 인증서를 사용하십시오.

MCP 서버를 테스트하고 디버깅하는 가장 쉬운 방법은 공식 MCP Inspector를 사용하는 것입니다:

  • 서버 시작: # 서버 빌드 및 실행 build.bat Win32\Debug\MCPServer.exe

  • MCP Inspector 실행: # MCP Inspector 설치 및 실행 npx @modelcontextprotocol/inspector

  • 서버에 연결:
    전송 (Transport): HTTP
    URL: http://localhost:3000/mcp

  • 클릭
    연결 (Connect)

기능 테스트 (Test functionality):

  • 사용 가능한 도구 (tools) 및 리소스 (resources) 탐색

  • 다음과 같은 도구 실행:
    echo
    , get_time
    , calculate

  • 다음과 같은 리소스 확인:
    project://info
    , server://status

  • JSON-RPC 메시지의 요청/응답 (request/response) 모니터링

Inspector는 MCP 서버와 상호작용할 수 있는 웹 인터페이스를 제공하여 개발 및 디버깅 (debugging)에 매우 적합합니다.

echo: 사용자에게 메시지를 다시 에코 (Echo) 함
get_time: 현재 서버 시간 가져오기
list_files: 디렉토리 내 파일 목록 나열
calculate: 기본적인 산술 계산 수행

서버는 URI를 통해 접근 가능한 네 가지 필수 리소스를 제공합니다:

project://info- 프로젝트 정보 (컬렉션이 포함된 JSON 메타데이터)
project://readme- 이 README 파일 (마크다운 (markdown) 콘텐츠)
logs://recent- 모든 카테고리의 최근 로그 항목 (스레드 안전 (thread safety) 보장)
server://status- 현재 서버 상태 및 상태 정보 (health information)

서버는 settings.ini 파일을 통해 설정을 지원합니다. 저장소에 기본 settings.ini.example 파일이 제공됩니다.

Delphi MCP Server는 두 가지 SSL/TLS 구현을 지원합니다:

Standard Indy SSL- OpenSSL 1.0.2를 사용 (TaurusTLS를 사용할 수 없는 경우 기본값)
TaurusTLS- 현대적인 사이퍼 (cipher) 지원을 갖춘 OpenSSL 3.x를 사용 (권장)

TaurusTLS는 Cloudflare와 같은 서비스에서 요구하는 현대적인 ECDHE 사이퍼 스위트 (cipher suites)를 포함하여 OpenSSL 3.x 지원을 제공합니다.

GetIt 패키지 매니저를 통한 설치 (가장 쉬운 방법):

  • Delphi IDE 열기
  • Tools > GetIt Package Manager로 이동
  • "TaurusTLS" 검색
  • Install 클릭

수동 설치:

src\Server\MCPServer.IdHTTPServer.pas 파일을 편집합니다:

// TaurusTLS (OpenSSL 3.x)를 사용하려면:
{$DEFINE USE_TAURUS_TLS} // 이 라인의 주석을 해제된 상태로 유지하세요
// Standard Indy SSL (OpenSSL 1.0.2)를 사용하려면:
...

TaurusTLS의 경우:

Windows:

  • OpenSSL 3.x DLL이 필요합니다:

  • Win32: libcrypto-3.dll, libssl-3.dll

  • Win64:
    libcrypto-3-x64.dll

libssl-3-x64.dll

  • Win32:
  • 사전 컴파일된 바이너리 (Pre-compiled binaries):
  • 현재 버전: 3.0.17, 3.2.5, 3.3.4, 3.4.2, 3.5.1, 3.5.2
  • DLL 파일을 실행 파일과 동일한 디렉토리에 배치하세요

Linux:

  • OpenSSL이 보통 기본적으로 설치되어 있습니다
  • 필요한 경우 업데이트:
    sudo apt-get install libssl-dev

(Debian/Ubuntu) 또는 sudo yum install openssl-devel

(RHEL/CentOS) - 사전 컴파일된 바이너리 (Pre-compiled binaries): https://github.com/TurboPack/OpenSSL-Distribution/releases

macOS:

  • OpenSSL 3.x의 경우 정적 라이브러리 (.a 파일)를 사용하세요

  • Homebrew를 통해 설치:
    brew install openssl@3

  • 또는 TaurusTLS 배포판의 사전 컴파일된 라이브러리를 사용하세요

  • 사전 컴파일된 바이너리 (Pre-compiled binaries): https://github.com/TurboPack/OpenSSL-Distribution/releases

Standard Indy 사용 시:

  • OpenSSL 1.0.2 DLLs (libeay32.dll, ssleay32.dll)가 필요합니다 - 암호화 알고리즘 (cipher) 지원이 제한적이므로 현대적인 클라이언트에는 권장되지 않습니다.

Cloudflare Tunnel: Standard Indy SSL은 ECDHE 암호화 알고리즘 지원이 부족합니다. TaurusTLS를 사용하거나 Cloudflare Tunnel을 HTTP로 실행하세요: cloudflared tunnel --url http://localhost:8080

자가 서명 인증서 (Self-Signed Certificates): Claude Desktop은 자가 서명 인증서를 허용하지 않습니다. Cloudflare Tunnel을 사용하거나 신뢰할 수 있는 CA로부터 발급받은 유효한 인증서를 사용하세요.

"No shared cipher" 에러: 현대적인 암호화 알고리즘 지원을 위해 TaurusTLS를 설치하고 활성화하세요.

이 프로젝트는 MIT 라이선스 하에 라이선스가 부여됩니다 - 자세한 내용은 LICENSE 파일을 참조하세요.

기여를 환영합니다! 도움을 주는 방법은 다음과 같습니다:

  • 버그 및 기능 요청에는 GitHub Issues를 사용하세요

  • Delphi 버전, 플랫폼 및 재현 단계를 포함하세요

  • 저장소를 포크(Fork)하세요

  • 기능 브랜치(feature branch)를 생성하세요:
    git checkout -b feature/my-feature

  • 기존 코드 스타일(inline vars, named constants)을 따르세요

  • 변경 사항을 테스트하세요

  • 풀 리퀘스트 (pull request)를 제출하세요

  • Delphi 12 이상이 필요합니다

  • MCPServer.dproj를 열거나
    build.bat으로 빌드하세요

  • npx @modelcontextprotocol/inspector로 테스트하거나
    Claude Code 또는 유사한 도구를 사용하세요

GDK Software는 Delphi 개발, 업그레이드 및 마이그레이션 (migration)을 전문으로 하는 소프트웨어 기업입니다. 당사는 Delphi 개발, 업그레이드, 유지보수 및 애플리케이션 서비스의 현대화 (modernization)를 제공합니다. 또한 GDK Software는 Delphi 및 Codolex를 활용한 로우코드 (low-code) 개발과 관련된 컨설팅 및 교육을 제공합니다. 당사는 네덜란드, 영국, 미국, 브라질에 사무소를 두고 글로벌 시장에서 활동하고 있습니다.

  • GitHub에서 이슈 (issue) 생성
  • 웹사이트 방문: www.gdksoftware.com
  • 상업적 지원 (commercial support) 문의

AI 자동 생성 콘텐츠

본 콘텐츠는 GitHub AI Tools의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0