LPC MCP服务器
将LPC发展带入2025年 具有AI驱动的代码智能。
此MCP(模型上下文协议)服务器封装了 jlchmura/lpc语言服务器 并将其暴露给人工智能助手,通过真实的语言服务器驱动的理解,实现对LPC代码库的自然语言查询。
这能带来什么
AI助手现在可以:
- 通过语言服务器了解LPC代码结构
- 从悬停信息中获取真实文档
- 跳转到定义并查找参考文献
- 回答有关mudlib的自然语言问题
- 跟踪继承链和函数调用
- 解释复杂的代码模式
在整个对话过程中,由实际的代码智能而不是模式匹配提供支持。
特性
lpc_hover:获取符号的文档/悬停信息lpc_definition:跳转到符号的定义lpc_references:查找对符号的所有引用lpc_diagnostics:从语言服务器获取实时错误、警告和提示- 工作区感知:阅读您的
lpc-config.json为了获得适当的符号分辨率 - 快:与语言服务器直接JSON-RPC通信
先决条件
1.安装Node.js
需要Node.js 20+:
node --version # Should be v20.0.0 or higher2.安装LPC语言服务器扩展
扩展必须安装在VS Code中(服务器二进制文件与之捆绑在一起):
code --install-extension jlchmura.lpc验证安装:
ls ~/.vscode/extensions/jlchmura.lpc-*/out/server/src/server.js3.安装依赖项
cd /path/to/lpc-mcp
npm install4.创建 lpc-config.json 在你的Mudlib
语言服务器需要mudlib根目录下的这个配置文件来理解includes、simul_efuns等。
示例 /path/to/your/mudlib/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/"
]
}不同AI工具的设置
翘曲(终端)
添加到曲速MCP配置中:
位置:设置→ AI → 模型上下文协议
{
"lpc": {
"command": "node",
"args": ["/absolute/path/to/lpc-mcp/index.js"],
"env": {
"LPC_WORKSPACE_ROOT": "/path/to/your/mudlib"
}
}
}重要:使用绝对路径!替换:
/absolute/path/to/lpc-mcp/index.js此仓库的实际路径/path/to/your/mudlib目录中包含您的lpc-config.json
添加配置后重新启动Warp。
克劳德桌面版
添加 ~/Library/Application Support/Claude/claude_desktop_config.json (macOS)或同等版本:
{
"mcpServers": {
"lpc": {
"command": "node",
"args": ["/absolute/path/to/lpc-mcp/index.js"],
"env": {
"LPC_WORKSPACE_ROOT": "/path/to/your/mudlib"
}
}
}
}配置后重新启动Claude Desktop。
Cline(VS代码扩展)
添加到您的Cline MCP设置中:
{
"mcpServers": {
"lpc": {
"command": "node",
"args": ["/absolute/path/to/lpc-mcp/index.js"],
"env": {
"LPC_WORKSPACE_ROOT": "/path/to/your/mudlib"
}
}
}
}GitHub副本(VS代码)
先决条件:
- 安装 副驾驶MCP扩展:
code --install-extension automatalabs.copilot-mcp
配置: 添加 ~/Library/Application Support/Code/User/mcp.json (macOS)或同等版本:
{
"servers": {
"lpc": {
"type": "node",
"command": "node",
"args": ["/absolute/path/to/lpc-mcp/index.js"],
"env": {
"LPC_WORKSPACE_ROOT": "/path/to/your/mudlib"
}
}
},
"inputs": []
}其他MCP兼容工具
任何MCP兼容工具的配置都是相同的:
- 将服务器添加到MCP配置中
- 提供Node.js命令和路径
index.js - 集
LPC_WORKSPACE_ROOTmudlib根目录的环境变量
可选环境变量(LPC_DEBUG, LPC_LSP_PATH)可以添加到 env 以同样的方式阻止。请参阅 环境变量 完整列表的部分。
使用示例
配置后,您可以向AI助手提出自然语言问题:
“什么是 query_short() 房间里有什么功能?" → AI使用 lpc_hover 获取文档
“在哪里 STD_OBJECT 定义?" → AI使用 lpc_definition 查找文件
“找到所有打电话的地方 set_room_size()" → AI使用 lpc_references 查找所有呼叫者
“解释迷宫生成算法的工作原理” → AI读取代码并使用悬停信息来理解功能
“房间的继承树是什么?” → AI痕迹 inherit 语句和跳转到定义
“检查此LPC文件是否有任何语法错误” → AI使用 lpc_diagnostics 验证代码
“为什么这个LPC代码不能编译?” → AI检查诊断是否存在未声明的变量或类型不匹配等错误
测试
要验证服务器是否正常工作,请执行以下操作:
# Set workspace root for testing
export LPC_WORKSPACE_ROOT=/path/to/your/mudlib
# Start the server (it will wait for MCP protocol messages)
node index.js服务器应输出:
Starting LPC Language Server...
Initializing LSP...
LPC Language Server started successfully
LPC MCP Server running on stdio故障排除
服务器无法启动
检查LPC扩展是否已安装:
code --list-extensions | grep jlchmura.lpc检查日志 (适用于曲速):
tail -f ~/.local/state/warp-terminal/mcp/*.log语言服务器无法解析符号
验证工作区根目录:
- 确保
LPC_WORKSPACE_ROOT指向以下目录lpc-config.json - 使用绝对路径,而不是相对路径
检查你的lpc-config.json:
cat $LPC_WORKSPACE_ROOT/lpc-config.json扩展版本不匹配
如果扩展路径不匹配,请更新中的第40行 index.js:
const lspPath = path.join(
process.env.HOME,
".vscode/extensions/jlchmura.lpc-VERSION/out/server/src/server.js"
);查找您的版本:
ls ~/.vscode/extensions/ | grep jlchmura.lpc环境变量
| 变量 | 必填 | 描述 |
|---|---|---|
LPC_WORKSPACE_ROOT | 是 | mudlib根目录的绝对路径(包含 lpc-config.json) |
LPC_DEBUG | 否 | 设置为 true 或 1 启用调试模式,该模式加载LPC语言服务器的本地开发版本,而不是已安装的VS Code扩展 |
LPC_LSP_PATH | 否 | 自定义的绝对路径 server.js 用于LPC语言服务器。仅在以下情况下使用 LPC_DEBUG 已启用。如果未设置,调试模式将回退到 out/server/src/server.js 相对于 process.cwd() |
调试模式示例
外壳/端子:
# Use a local checkout of the LPC language server
export LPC_DEBUG=true
export LPC_LSP_PATH=/path/to/lpc-language-server/out/server/src/server.js
export LPC_WORKSPACE_ROOT=/path/to/your/mudlib
node index.jsMCP配置文件(.mcp.json, claude_desktop_config.json等等):
{
"mcpServers": {
"lpc": {
"command": "node",
"args": ["/absolute/path/to/lpc-mcp/index.js"],
"env": {
"LPC_WORKSPACE_ROOT": "/path/to/your/mudlib",
"LPC_DEBUG": "true",
"LPC_LSP_PATH": "/path/to/lpc-language-server/out/server/src/server.js"
}
}
}
}运作原理
AI Assistant
↓ (natural language)
MCP Protocol
↓ (tool calls: lpc_hover, lpc_definition, lpc_references)
This Server
↓ (JSON-RPC: textDocument/hover, etc.)
LPC Language Server
↓ (parses LPC, reads lpc-config.json)
Your Mudlib- AI助手发送MCP工具请求
- 服务器读取文件并发送
textDocument/didOpen到LSP - 服务器翻译MCP→ LSP JSON-RPC请求
- LSP使用您的
lpc-config.json - 服务器将LSP响应作为MCP结果返回
- AI理解你的代码结构!
学分
- 约翰(jlchmura) -这位技能出众的大师级程序员 LPC语言服务器 从1995年开始拯救LPC的发展。如果没有他的伟大、善良和全能的帅哥风度,我们仍然会
grep-像穴居人一样在泥地里穿行。这个MCP服务器只是他天才的一个不起眼的包装。 - 模型上下文协议 -使这成为可能的协议
- 内置于2025年一小时的灵感黑客
许可证
@gesslar/lpc-mcp 根据 0BSD.
此软件包包含或依赖于第三方组件 许可证:
| 依赖关系 | 许可证 |
|---|---|
| @gesslar/toolkit | 0BSD |
| @石膏板/更丑 | 0BSD |
| @模型上下文协议/sdk | 麻省理工学院 |
| vscode jsonrpc | 麻省理工学院 |
| 黄道带 | 麻省理工学院 |
备注
LPC语言服务器本身 (jlchmura/lpc语言服务器) 它有自己的许可证。
