项目简介

LPC MCP 服务器是一个基于 Model Context Protocol (MCP) 构建的应用后端,旨在将传统的LPC语言服务器(LSP)的强大功能,如代码结构理解、文档获取、定义跳转和引用查找,提供给AI助手。它充当LSP与AI助手之间的桥梁,使得AI可以通过自然语言查询来理解和分析LPC代码库。

主要功能点

  • 代码文档获取 ('lpc_hover'): AI助手可以获取LPC代码中任何符号的详细悬停信息或文档。
  • 定义跳转 ('lpc_definition'): 能够找到并跳转到LPC代码中变量、函数等符号的定义位置。
  • 查找引用 ('lpc_references'): 帮助AI助手查找LPC代码中某个符号的所有使用之处。
  • 实时诊断 ('lpc_diagnostics'): 提供LPC代码的实时错误、警告和提示,帮助AI助手理解代码中存在的问题。
  • 工作区感知: 读取你的 'lpc-config.json' 文件,以确保正确的符号解析和代码理解。
  • 高效通信: 直接与LPC语言服务器进行 JSON-RPC 通信,响应迅速。

安装步骤

在开始使用LPC MCP服务器之前,你需要完成以下准备工作:

  1. 安装 Node.js: 确保你的系统安装了 Node.js 16 或更高版本。

    node --version # 检查版本是否为 v16.0.0 或更高
  2. 安装 LPC 语言服务器扩展: 在 VS Code 中安装 'jlchmura.lpc' 扩展,该扩展包含了LPC语言服务器的二进制文件。

    code --install-extension jlchmura.lpc

    你可以通过以下命令验证是否安装成功:

    ls ~/.vscode/extensions/jlchmura.lpc-*/out/server/src/server.js
  3. 安装项目依赖: 克隆 'lpc-mcp' 仓库到本地,并安装其依赖。

    git clone https://github.com/gesslar/lpc-mcp.git
    cd lpc-mcp
    npm install
  4. 创建 'lpc-config.json': 在你的LPC mudlib项目的根目录下创建一个名为 'lpc-config.json' 的配置文件。这个文件会告诉语言服务器如何解析你的代码(例如,包含路径、模拟函数等)。

    例如,一个简单的 'lpc-config.json' 可能如下所示:

    {
      "driver": {
        "type": "fluffos"
      },
      "libFiles": {
        "master": "adm/obj/master.c",
        "simul_efun": "adm/obj/simul_efun.c",
        "global_include": "include/global.h"
      },
      "libInclude": [
        "include",
        "include/driver",
        "adm/include"
      ],
      "exclude": [
        ".git/",
        "tmp/"
      ]
    }

服务器配置(供 MCP 客户端使用)

LPC MCP 服务器本身通过标准输入输出(Stdio)运行,并等待 MCP 客户端的连接。要让你的AI工具(如 Warp、Claude Desktop、Cline、GitHub Copilot 等)使用这个服务器,你需要在AI工具的 MCP 配置中添加以下信息。

请将以下JSON配置添加到你的AI工具的MCP配置中(具体位置请参考你所使用的AI工具的文档),并务必将路径替换为实际的绝对路径:

{
  "lpc": {
    "command": "node",
    "args": ["/绝对/路径/到/lpc-mcp/index.js"],
    "env": {
      "LPC_WORKSPACE_ROOT": "/绝对/路径/到/你的/mudlib"
    }
  }
}
  • 'lpc': 这是你为这个 MCP 服务器定义的名称,你可以自定义。AI助手将通过这个名称来调用服务器提供的能力。
  • 'command': 这是用于启动 MCP 服务器的可执行命令。对于LPC MCP 服务器,它是一个Node.js应用,所以这里填写 'node'。
  • 'args': 这是传递给 'command' 的参数列表。 '/绝对/路径/到/lpc-mcp/index.js' 应替换为 'lpc-mcp' 仓库中 'index.js' 文件的绝对路径。
  • 'env': 这是一个环境变量对象。
    • 'LPC_WORKSPACE_ROOT': 这是 必须 设置的环境变量,其值应替换为你的LPC mudlib项目的根目录的绝对路径,即包含 'lpc-config.json' 文件的目录。服务器将使用此路径来定位你的代码库。

配置完成后,通常需要重启你的AI工具,以使其加载新的MCP服务器配置。

基本使用方法

一旦LPC MCP服务器配置并运行,你就可以通过自然语言向你的AI助手提问,让它利用LPC代码的智能分析能力:

  • 提问: "房间(room.c)中的 'query_short()' 函数是做什么用的?"
    • → AI助手将调用 'lpc_hover' 工具获取函数文档。
  • 提问: "'STD_OBJECT' 在哪里定义的?"
    • → AI助手将调用 'lpc_definition' 工具查找其定义位置。
  • 提问: "找到所有调用 'set_room_size()' 的地方。"
    • → AI助手将调用 'lpc_references' 工具定位所有引用。
  • 提问: "检查这个LPC文件有没有语法错误。"
    • → AI助手将调用 'lpc_diagnostics' 工具获取代码诊断信息。
  • 提问: "为什么这段LPC代码编译不过去?"
    • → AI助手会查看诊断结果,找出未声明变量或类型不匹配等错误。

通过这些交互,AI助手能够更深入地理解你的LPC代码库,并提供更智能的帮助。

信息

分类

开发者工具