使用说明
LSP-MCP
Tree-sitter根据AST分析和矢量DB组合Claude Code面向Model Context Protocol (MCP)插件。
概要
LSP-MCP通过集成分析源代码和文档并提供语义搜索Claude Code中描述的场景,使用以下步骤创建明细表,以便在概念设计中分析体量的体积。
主要特征
- 减少标记:将上下文标记使用量减少30-40%
- 高精度検索:混合搜索结果(BM25+Vector)
- 隐私第一:默认情况下执行本地完成(无外部通信)
- 多言语对应:TypeScript/JavaScript、Python、Go、Rust、Java、C/C++/Arduino
- 文档集成: Markdown与源代码自动关联
- 增量更新:自动检测和重新索引文件更改
主要机能
LSP-MCP是以下6个MCP提供工具:
1. index_project
索引整个项目。
- 源代码的AST解析
- Markdown文档结构分析
- 矢量DB・保存到全文检索索引中
- 实时查看进度
2. search_code
执行语义代码搜索。
- 混合搜索(BM25+矢量搜索)
- 使用文件类型语言过滤
- 关联度评分结果
- 代码片段显示
3. get_symbol
查找符号(函数类变量)的定义和引用。
- 确定定义位置
- 浏览参考位置
- 提供范围信息
- 显示类型信息
4. find_related_docs
查找与代码相关的文档。
- 代码-文档之间的自动关联
- 按关联度分数排序
- 解析文件路径引用
- 代码块相似度检测
5. get_index_status
检查索引状态。
- 索引文件数
- 最终更新日时
- 索引大小
- 错误信息
6. clear_index
清除索引。
- 矢量DB清除
- 清除全文索引
- 删除元数据
安装
前提条件
- Node.js 18.0以上
- npm 9.0以上
- Docker & Docker Compose(Milvus使用时、推奨)
npx使用(最简单,推荐)
GitHub您可以直接从存储库运行:
# GitHubリポジトリから直接実行
npx github:windschord/lsp-mcp --help
npx github:windschord/lsp-mcp --version
npx github:windschord/lsp-mcp
# または完全なURL形式
npx git+https://github.com/windschord/lsp-mcp.git
# 特定のブランチ・タグから実行
npx github:windschord/lsp-mcp#main
npx github:windschord/lsp-mcp#v0.1.0
本地安装(开发时)
git clone https://github.com/windschord/lsp-mcp.git
cd lsp-mcp
npm install
npm run build
快速启动
不需要配置文件Docker Compose启动和MCP只需设置即可立即开始使用。
1. Milvus standalone启动
# プロジェクトのルートディレクトリで実行
cd /path/to/your/project
# docker-compose.ymlをダウンロード(初回のみ)
curl -O https://raw.githubusercontent.com/windschord/lsp-mcp/main/docker-compose.yml
# Milvus standalone起動
docker-compose up -d
# 起動確認(milvus-standaloneが起動していることを確認)
docker ps
2. Claude Code的MCP添加设置
方法1:claude mcp add命令添加(推荐)
claude mcp add --transport stdio lsp-mcp \
--env LSP_MCP_MODE=local \
--env LSP_MCP_VECTOR_ADDRESS=localhost:19530 \
--env LOG_LEVEL=INFO \
-- npx github:windschord/lsp-mcp
设置后Claude Code中所述修改相应参数的值。
方法2:JSON直接编辑文件
Claude Code配置文件(macOS: ~/Library/Application Support/Claude/claude_desktop_config.json)中添加以下内容:
{
"mcpServers": {
"lsp-mcp": {
"command": "npx",
"args": ["github:windschord/lsp-mcp"],
"env": {
"LSP_MCP_MODE": "local",
"LSP_MCP_VECTOR_ADDRESS": "localhost:19530",
"LOG_LEVEL": "INFO"
}
}
}
}
设置后Claude Code中所述修改相应参数的值。
3.使用开始
Claude Code中所述的工具,调整墙的布局和几何形状
@lsp-mcp プロジェクトをインデックス化してください
以后,语义搜索可用:
@lsp-mcp 「認証機能」に関連するコードを検索してください
@lsp-mcp getUserById関数の定義と使用箇所を教えてください
(可选)根据设置文件定制
单击功能区上的.lsp-mcp.json创建:
# プロジェクトルートで設定ファイルを作成
cd /path/to/your/project
.lsp-mcp.json示例:
{
"mode": "local",
"vectorStore": {
"backend": "milvus",
"config": {
"address": "localhost:19530"
}
},
"embedding": {
"provider": "transformers",
"model": "Xenova/all-MiniLM-L6-v2"
},
"indexing": {
"excludePatterns": [
"node_modules/**",
".git/**",
"dist/**"
],
"languages": ["typescript", "python", "go"]
}
}
在同时使用设定文件和环境变量时首选环境变量来修改标记元素的显示属性。
Claude Code使用方法
MCP设置详细信息
以下是各模式下的设置示例。说明了命令和设定文件编辑两种方法。
设置示例1:本地模式(仅推荐环境变量)
Docker Compose已启动Milvus standalone对较大场景进行渲染期间已观察到该故障。
claude mcp add命令:
claude mcp add --transport stdio lsp-mcp \
--env LSP_MCP_MODE=local \
--env LSP_MCP_VECTOR_ADDRESS=localhost:19530 \
--env LOG_LEVEL=INFO \
-- npx github:windschord/lsp-mcp
JSON文件编辑:
{
"mcpServers": {
"lsp-mcp": {
"command": "npx",
"args": ["github:windschord/lsp-mcp"],
"env": {
"LSP_MCP_MODE": "local",
"LSP_MCP_VECTOR_ADDRESS": "localhost:19530",
"LOG_LEVEL": "INFO"
}
}
}
}
设置示例2:云模式(使用Zilliz Cloud)
claude mcp add命令:
claude mcp add --transport stdio lsp-mcp \
--env LSP_MCP_MODE=cloud \
--env LSP_MCP_VECTOR_BACKEND=zilliz \
--env LSP_MCP_VECTOR_ADDRESS=your-instance.zilliz.com:19530 \
--env LSP_MCP_VECTOR_TOKEN=your-zilliz-token \
--env LSP_MCP_EMBEDDING_PROVIDER=openai \
--env LSP_MCP_EMBEDDING_API_KEY=your-openai-api-key \
--env LOG_LEVEL=INFO \
-- npx github:windschord/lsp-mcp
JSON文件编辑:
{
"mcpServers": {
"lsp-mcp": {
"command": "npx",
"args": ["github:windschord/lsp-mcp"],
"env": {
"LSP_MCP_MODE": "cloud",
"LSP_MCP_VECTOR_BACKEND": "zilliz",
"LSP_MCP_VECTOR_ADDRESS": "your-instance.zilliz.com:19530",
"LSP_MCP_VECTOR_TOKEN": "your-zilliz-token",
"LSP_MCP_EMBEDDING_PROVIDER": "openai",
"LSP_MCP_EMBEDDING_API_KEY": "your-openai-api-key",
"LOG_LEVEL": "INFO"
}
}
}
}
设置例3:本地开发时
克隆并开发存储库时的设置。
claude mcp add命令:
claude mcp add --transport stdio lsp-mcp \
--env LSP_MCP_MODE=local \
--env LOG_LEVEL=DEBUG \
-- node /path/to/lsp_mcp/bin/lsp-mcp.js
JSON文件编辑:
{
"mcpServers": {
"lsp-mcp": {
"command": "node",
"args": ["/path/to/lsp_mcp/bin/lsp-mcp.js"],
"env": {
"LSP_MCP_MODE": "local",
"LOG_LEVEL": "DEBUG"
}
}
}
}
环境变量引用
|环境变量|说明|默认值|例|
|---------|------|------------|-----|
| LSP_MCP_MODE 动作模式 local | local, cloud |
| LSP_MCP_VECTOR_BACKEND _矢量DB | milvus | milvus, zilliz |
| LSP_MCP_VECTOR_ADDRESS _矢量DB地址| localhost:19530 | localhost:19530 |
| LSP_MCP_VECTOR_TOKEN _矢量DB认证令牌|无|Zilliz Cloud令牌|
| LSP_MCP_EMBEDDING_PROVIDER 嵌入供应商 transformers | transformers, openai, voyageai |
| LSP_MCP_EMBEDDING_API_KEY 嵌入API键|无|OpenAI API关键字
| LOG_LEVEL 日志级别 INFO | DEBUG, INFO, WARN, ERROR |
详情环境变量引用来修改标记元素的显示属性。
确认设置
# 追加されたMCPサーバーを確認
claude mcp list
# 特定のサーバーの詳細を確認
claude mcp show lsp-mcp
# 設定ファイルを直接確認(macOS)
cat ~/Library/Application\ Support/Claude/claude_desktop_config.json
设定后、Claude Code重新启动来修改标记元素的显示属性。
设定
有关详细设置方法,请参阅以下文档:
设定例
本地模式
{
"mode": "local",
"vectorStore": {
"backend": "milvus",
"config": {
"address": "localhost:19530"
}
},
"embedding": {
"provider": "transformers",
"model": "Xenova/all-MiniLM-L6-v2"
}
}
云模式(OpenAI+Zilliz)
{
"mode": "cloud",
"vectorStore": {
"backend": "zilliz",
"config": {
"address": "your-instance.zilliz.com:19530",
"token": "${ZILLIZ_TOKEN}"
}
},
"embedding": {
"provider": "openai",
"model": "text-embedding-3-small",
"apiKey": "${OPENAI_API_KEY}"
}
}
项目状态
开发阶段完成情况
LSP-MCP啊完成阶段1-7中的所有任务是可以正式使用的状态。
- 第1阶段:项目设置和MCP服务器基础(完成)
- 第2阶段: AST分析和文档分析(完成)
- 第3阶段:矢量DB集成和搜索功能(完成)
- 第4阶段: Indexing Service和MCP工具实现(完成)
- 第5阶段:增量更新和文件监视(完成)
- 第6阶段:测试和文档化(完成)
- 第7阶段:优化和发放准备(完成)
已安装功能
MCP工具(6个):
index_project:索引整个项目search_code:语义代码搜索get_symbol:符号定义引用搜索find_related_docs:代码相关文档搜索get_index_status:确认索引状态clear_index:清除索引
对应言语(7言语):
- Types/JavaScript、Python、Go、Rust、Java、C/C++、Arduino
矢量DB:
- Milvus独立版(Docker Compose)
- Zilliz Cloud(云)
嵌入式引擎:
- Transformers.js(本地,默认)
- OpenAI API(云)
- VoyageAI API(云)
性能优化:
- ParserPool: Tree-sitter重新使用解析器
- QueryCache: LRU1000个高速缓存TTL 1时间)
- 批处理嵌入
- Promise并列处理
详细情报
有关详细信息,请参阅以下文档:
开発
构建
# TypeScriptコンパイル
npm run build
# ウォッチモード
npm run dev
测试
# 全テスト実行
npm test
# ウォッチモード
npm run test:watch
# カバレッジレポート
npm run test:coverage
性能测试
# 大規模サンプルプロジェクトの生成(初回のみ)
npm run perf:generate
# パフォーマンステスト実行
npm run test:performance
棉绒和格式
# Lint
npm run lint
npm run lint:fix
# Format
npm run format
npm run format:check
性能
基准目标
- 索引:10000个文件/10分钟以内(本地模式)
- 搜索响应: 2秒以内
- 内存使用量: 2GB以内
- 增量更新:1文件/100ms范围
详情性能报告来修改标记元素的显示属性。
对应言语
优先级:高(完整的树-sitter解析器)
- Types/JavaScript
- python
- 去
- 锈
- Java
- C/C++/Arduino
優先度: 中(将来対応予定)
- 红宝石
- PHP
- C
- 迅速
- 科特林
体系结构
┌─────────────────┐
│ Claude Code │
└────────┬────────┘
│ MCP Protocol
v
┌─────────────────┐
│ MCP Server │
│ Layer │
└────────┬────────┘
│
┌────┴────┐
v v
┌────────┐ ┌────────┐
│Search │ │Indexing│
│Service │ │Service │
└───┬────┘ └───┬────┘
│ │
v v
┌────────────────┐
│ Hybrid Search │
│ (BM25+Vector) │
└────────────────┘
│ │
v v
┌────────┐ ┌────────┐
│Vector │ │Local │
│DB │ │Index │
│(Milvus)│ │(SQLite)│
└────────┘ └────────┘
详情设计书来修改标记元素的显示属性。
隐私
LSP-MCP采用隐私优先设计:
- 默认值为本地运行:无外部通信
- 敏感文件自动排除:
.env,credentials.json等 - 暗号化: API关键点是OS保存到密钥链
- 光入法:云模式需要明确选择
谢辞
本项目包括:Zilliz开发的克劳德上下文中选择另一种天花板类型。混合搜索的有效性MCP感谢您的集成方法。
许可证
MIT License - 详情许可证请参见文件。
分发
欢迎分享!请按照以下步骤操作:
- 分叉此存储库
- 创建特征分支(
git checkout -b feature/amazing-feature) - 提交更改(
git commit -m 'Add some amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 创建拉式请求
