Token导航 LogoToken导航TokenDH.com
Delphi LSP MCP Server logo
AI代理未说明官方级别未说明来源级核验

Delphi LSP MCP Server

MCP Server

一个将语言服务器协议(LSP)功能暴露给AI助手和其他MCP客户端的模型上下文协议(MCP)服务器,支持Delphi的DelphiLSP和Free Pascal的pasls。

工具数

5

提示词数

0

GitHub Stars

19

资源数

0
代码分析ClaudeAI代理Claude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

SkybuckFlying

提供方

SkybuckFlying

最后核验

2026/5/17 20:22

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

Delphi LSP MCP服务器

一种模型上下文协议(MCP)服务器,向AI助手和其他MCP客户端公开语言服务器协议(LSP)功能。支持Delphi的DelphiLSP和Free Pascal的Pascal。

项目信息

作者 Skybuck飞行\ 联系人: skybuck2000@hotmail.com\ 版本: 0.05

存储库: https://github.com/SkybuckFlying/Delphi-LSP-MCP-Server

规格:

  • MCP规范(2025-11-25):https://modelcontextprotocol.io/specification/2025-11-25
  • LSP规范3.17:https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/

概述

此服务器充当以下之间的桥梁:

  • MCP客户端 (如Claude Desktop、Antigravity、Gemini CLI)-通过stdio通过JSON-RPC 2.0进行通信
  • LSP服务器 (DelphiLSP.exe或pasls.exe)-Embarcadero或免费Pascal语言服务器

它允许AI助手对Delphi/Pascal源代码执行代码智能操作,包括:

  • 转到定义
  • 查找引用
  • 悬停信息
  • 代码补全
  • 工作空间符号搜索

AI优化(新)

为了最大限度地提高此服务器与AI代理(如Gemini CLI或Claude Engineer)的效率,可以使用标准化的指导文件:

DelphiLSP.md

该文档为AI代理提供了特定的指令,以优先考虑语义工具(例如。, hovergoto_definition)超过标准的基于文本的搜索。

推荐设置: 将以下代码段添加到 GEMINI.md Delphi项目根目录中的文件,以确保LSP的最佳使用:

# Project Context
Refer to [DelphiLSP.md](./DelphiLSP.md) for instructions on using semantic tools for code analysis. This is essential for accurate type checking and navigation.

需求

  • Delphi 13(RAD Studio 13.0或更高版本)
  • DelphiLSP.exe(RAD Studio附带)或pasls.exe(免费Pascal语言服务器)
  • Windows操作系统

建筑

  1. 打开 DelphiLSPMCPServer.dpr 在Delphi IDE中
  2. 构建项目(project→ 构建)
  3. 可执行文件将在项目目录中创建

或者使用命令行:

dcc64 DelphiLSPMCPServer.dpr

用法

命令行选项

DelphiLSPMCPServer [options]

Options:
  --lsp-path 
      Path to LSP server executable
                         (default: G:\Tools\PascalLanguageServer\git version 26 january 2026\pasls.exe)
  --workspace 
     Static workspace root directory or file:// URI (Optional)
  --log-level     Log level: debug, info, warning, error (default: info)
  --help                 Show help message

动态工作空间配置(v0.05+)

从版本0.05开始,服务器是 环境感知它可以通过两种方式动态确定工作空间:

  1. 初始化嗅探:服务器拦截MCP initialize 请求并寻找 rootUrirootPath。它将自动定位AI客户端提供的文件夹。
  2. CWD默认值:如果没有通过命令行或协议提供工作区,则默认为其自己的当前工作目录。

这使得它非常适合与在不同项目之间切换的AI代理一起使用。

配置示例

反重力/Gemini CLI/代理设置

要将服务器与动态代理一起使用,可以省略 --workspace 参数,以便代理可以提供它:

{
  "mcpServers": {
    "delphi-lsp": {
      "command": "C:\\Tools\\DelphiLSPMCPServer.exe",
      "args": [
        "--log-level", "info",
        "--lsp-path", "G:\\Tools\\PascalLanguageServer\\git version 26 january 2026\\pasls.exe"
      ]
    }
  }
}

克劳德桌面

添加到您的Claude Desktop MCP配置(claude_desktop_config.json):

{
  "mcpServers": {
    "delphi-lsp": {
      "command": "C:\\Tools\\DelphiLSPMCPServer.exe",
      "args": [
        "--workspace", "C:\\MyDelphiProject",
        "--log-level", "info"
      ]
    }
  }
}

可用工具

delphi_goto_definition

在特定位置找到符号的定义。

参数:

  • uri (string):文件URI(例如。, file:///C:/path/to/file.pas)
  • line (整数):从零开始的行号
  • character (整数):从零开始的字符偏移

delphi_find_references

查找对符号的所有引用。

参数:

  • uri (string):文件URI
  • line (整数):从零开始的行号
  • character (整数):从零开始的字符偏移
  • includeDeclaration (boolean,可选):在结果中包含声明(默认值:true)

德尔菲河

获取符号的悬停信息(文档、类型信息)。

delphi_完成

在特定位置获取代码完成建议。

delphi_工作空间_符号

在整个工作空间中搜索符号。

参数:

  • query (string):搜索查询字符串

建筑

┌─────────────────────┐
│  MCP Client         │
│  (AI Assistant)     │
└──────────┬──────────┘
           │ JSON-RPC over stdio
           ▼
┌─────────────────────┐
│  Delphi LSP MCP     │
│  Server (v0.05)     │
│  ┌───────────────┐  │
│  │ MCP Server    │  │
│  │ Component     │  │
│  └───────┬───────┘  │
│          │          │
│  ┌───────▼───────┐  │
│  │ LSP Client    │  │
│  │ Component     │  │
│  └───────┬───────┘  │
└──────────┼──────────┘
           │ LSP JSON-RPC over stdio
           ▼
┌─────────────────────┐
│  DelphiLSP.exe /    │
│  pasls.exe          │
│  (Language Server)  │
└─────────────────────┘

单元结构

单位职责
Common.JsonRpcJSON-RPC 2.0消息类型和解析
Common.Logging线程安全单例记录器
Common.Utils(0.05新增) 集中式路径/URI转换工具
MCP.Protocol.TypesMCP协议类型定义
MCP.ServerMCP服务器核心:动态工作空间发现、工具路由
MCP.Tools.LSP将MCP桥接到LSP的工具实现
MCP.Transport.Stdio带Content-Length标头的MCP stdio传输
LSP.ClientLSP客户端:同步请求、文档同步
LSP.Protocol.TypesLSP协议类型定义
LSP.Transport.ProcessLSP进程传输:子进程管理

版本历史记录

  • 0.01 (2026年1月26日)-首次发布
  • 0.02 (2026年2月2日)-协议合规性改进
  • 0.04 (2026年4月27日)-改进了单元分离和架构

- 添加了LSP重试逻辑和自动打开文档 - 同时支持DelphiLSP和pasls

  • 0.05 (2026年4月27日)——动态工作空间和稳定性

- 动态工作区发现:自动嗅探 rootUri 从初始化请求 - 环境稳定:修复了FPC环境变量继承问题 - 重构实用程序:集中URI/路径处理 Common.Utils - 自动项目搜索:自动查找 .dpr.lpr 在工作区根目录中 - Delphi模式:部队 -Mdelphi 在Free Pascal中实现更好的语法解析 - AI指导:已添加 DelphiLSP.md 用于标准化的AI代理指令 - 扩展测试套件:已更新 SourceForAnalysis.dpr 具有接口、泛型和继承测试

许可证

这是一个示范项目。使用风险自负。

  • 崩溃时自动重新启动LSP服务器
  • 改进了超时处理
  • 瞬态故障的重试逻辑

添加配置选项

  • 项目文件支持
  • 搜索路径配置
  • 编译器设置

性能优化

  • 连接池
  • 响应缓存
  • 异步操作

用于测试

单元测试

  • JSON‑RPC解析
  • 协议类型序列化
  • 消息传输

集成测试

  • 真实的Delphi项目
  • 各种文件类型
  • 边缘案例

目录标签

目录标签

代码分析ClaudeAI代理Pascal本地部署语言服务器DelphiFreePascalAI助手

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

5

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP