内容
# LSP-to-MCP 桥接
一个无头 LSP(语言服务器协议)客户端,通过 MCP(模型上下文协议)向 AI 模型暴露 IDE 功能。
## 快速开始(npm)
**全局安装:**
```bash
npm install -g lsp-index-mcp
```
**或使用 npx(无需安装):**
```bash
npx -y lsp-index-mcp /path/to/your/project
```
安装脚本会自动下载:
- 适用于您平台的 `lsp-index` 二进制文件
- JDT 语言服务器(用于 Java)
- gopls(用于 Go,如果已安装 Go)
- typescript-language-server(用于 TypeScript,如果已安装 npm)
## MCP 配置
**Claude Desktop(`claude_desktop_config.json`):**
```json
{
"mcpServers": {
"lsp-index": {
"command": "npx",
"args": ["-y", "lsp-index-mcp", "/path/to/your/project"]
}
}
}
```
**使用环境变量:**
```json
{
"mcpServers": {
"lsp-index": {
"command": "npx",
"args": ["-y", "lsp-index-mcp"],
"env": {
"LSP_INDEX_WORKSPACE": "/path/to/your/project"
}
}
}
}
```
**Claude Code(项目根目录下的 `.mcp.json`):**
```json
{
"servers": [
{
"name": "lsp-index",
"command": ["npx", "-y", "lsp-index-mcp", "."],
"transport": "stdio"
}
]
}
```
## 功能
- **多语言支持**:Rust(rust-analyzer)、Java(JDT LS)、Go(gopls)、TypeScript(typescript-language-server)
- **混合搜索**:结合 LSP 符号搜索和类似 ripgrep 的文本搜索
- **通过 MCP 暴露 LSP 工具**:
- `lsp_hybrid_search` - 在工作区中搜索符号和文本
- `lsp_goto_definition` - 跳转到符号定义
- `lsp_find_references` - 查找符号的所有引用
- `lsp_hover` - 获取类型信息和文档
- `lsp_workspace_symbols` - 在工作区中搜索符号
- `lsp_get_diagnostics` - 获取 lint/type 错误
- `text_search` - 文本搜索(无需 LSP 即可工作)
- `file_list` - 列出文件(无需 LSP 即可工作)
## 先决条件
- **Rust 项目**:`rustup component add rust-analyzer`
- **Java 项目**:自动(JDT LS 由 npm 包安装)
- **Go 项目**:必须安装 Go
- **TypeScript 项目**:必须安装 npm
## 架构
```
┌─────────────┐ MCP 协议 ┌─────────────────┐ LSP 协议 ┌─────────────┐
│ Claude │ ←───────────────────→ │ MCP 服务器 │ ←──────────────────→ │ LSP 服务器 │
│ (AI) │ (stdio/jsonrpc) │ (lsp-index) │ (stdio/jsonrpc) │(rust-analyzer│
└─────────────┘ └─────────────────┘ │ gopls 等)│
│ └─────────────┘
↓
┌──────────────┐
│ 文件监视器 │
└──────────────┘
```
## 环境变量
| 变量 | 描述 |
|----------|-------------|
| `LSP_INDEX_WORKSPACE` | 项目目录路径(替代 CLI 参数) |
| `RUST_LOG` | 日志级别:`error`、`warn`、`info`、`debug`、`trace` |
| `JDT_LS_PATH` | JDT LS jar 路径(可选,自动检测) |
## 开发
从源代码构建:
```bash
# 先决条件
- Rust 工具链(最新稳定版)
# 构建 CLI
cargo build --release
# 构建 HTTP 服务器(可选)
cargo build --release --bin lsp-index-http
# 构建 GUI(可选)
cargo tauri build
```
## 许可证
MIT