Token导航 LogoToken导航TokenDH.com
mcpls (Bug Ops) logo
开发工具未说明官方级别未说明来源级核验

mcpls (Bug Ops)

MCP Server

mcpls是AI编码助手与语言服务器之间的通用桥接器,通过模型上下文协议暴露LSP的全部功能,使AI代理能够像IDE一样理解代码。

工具数

16

提示词数

0

GitHub Stars

34

资源数

0
代码分析开发工具RustClaudeClaude

安装说明

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

作者 / 组织

bug-ops

提供方

bug-ops

最后核验

2026/5/17 20:21

快速接入

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

详细介绍

mcpls

![Crates.io](https://crates.io/crates/mcpls) ![docs.rs](https://docs.rs/mcpls-core) ![CI](https://github.com/bug-ops/mcpls/actions) ![codecov](https://codecov.io/gh/bug-ops/mcpls) ![MSRV](https://blog.rust-lang.org/2025/02/20/Rust-1.85.0.html) ![License](LICENSE-MIT)

停止将代码视为文本。给你的AI代理一个编译器的理解。

mcpls是人工智能编码助手和语言服务器之间的通用桥梁。它通过模型上下文协议展示了LSP的全部功能——类型推理、交叉引用分析、语义导航,使AI代理能够像IDE一样对代码进行推理。

为什么是mcpls?

人工智能编码助手非常有能力,但他们是盲目工作的。他们将代码视为文本,而不是实际的结构化、类型化、互联的系统。

mcpls改变了这一点。 通过桥接MCP和LSP,它使AI代理能够访问:

  • 类型信息 --确切地知道变量是什么,而不是它可能是什么
  • 交叉引用 --在整个代码库中查找符号的每个用法
  • 语义导航 --跳转到定义、实现、类型声明
  • 真实诊断 --查看实际的编译器错误,而不是幻觉错误
  • 安全重构 --在工作区范围内自信地重命名符号
\[!提示\] Rust项目的零配置。只需安装mcpls和锈蚀分析仪即可。

安装

cargo install mcpls

Pre-built binaries & other methods

下载自 :

平台架构下载
Linuxx86_64mcpls-linux-x86_64.tar.gz
Linuxx86_64(静态)mcpls-linux-x86_64-musl.tar.gz
macOS英特尔mcpls-macos-x86_64.tar.gz
macOS苹果硅mcpls-macos-aarch64.tar.gz
Windowsx86_64mcpls-windows-x86_64.zip

来源:

git clone https://github.com/bug-ops/mcpls
cd mcpls
cargo install --path crates/mcpls-cli

Prerequisites (language servers)

mcpls使用优雅降级——如果一个语言服务器发生故障,它会继续使用可用的服务器。

锈蚀(锈蚀分析仪):

rustup component add rust-analyzer
# Or: brew install rust-analyzer (macOS)

Python(版权):

npm install -g pyright

TypeScript:

npm install -g typescript-language-server typescript

Go(gopls):

go install golang.org/x/tools/gopls@latest
\[!重要\] 必须至少有一个语言服务器可用。

快速开始

1.配置克劳德代码 (~/.claude/claude_desktop_config.json):

{
  "mcpServers": {
    "mcpls": {
      "command": "mcpls",
      "args": []
    }
  }
}

2.体验差异:

You: What's the return type of process_request on line 47?

Claude: [get_hover] It returns Result where:
        - Response is defined in src/types.rs:23
        - ApiError is an enum with variants: Network, Parse, Timeout

You: Find everywhere ApiError::Timeout is handled

Claude: [get_references] Found 4 matches:
        - src/handlers/api.rs:89 — retry logic
        - src/handlers/api.rs:156 — logging
        - src/middleware/timeout.rs:34 — wrapper
        - tests/api_tests.rs:201 — test case

MCP工具

Code Intelligence

工具它做什么
get_hover任何位置的类型签名、文档、推断类型
get_definition跳转到定义符号的位置——跨文件、跨板条箱
get_references工作区中符号的每次使用
get_completions尊重类型和范围的上下文感知建议
get_document_symbols结构化大纲——函数、类型、常量、导入
workspace_symbol_search在整个工作空间中按名称查找符号

Diagnostics & Analysis

工具它做什么
get_diagnostics真正的编译器错误和警告,而不是猜测
get_cached_diagnostics从LSP服务器快速访问基于推送的诊断
get_code_actions快速修复、重构和源代码操作

Refactoring & Call Hierarchy

工具它做什么
rename_symbol带完整引用跟踪的工作区范围重命名
format_document应用特定语言的格式规则
prepare_call_hierarchy在调用层次结构的某个位置获取可调用项
get_incoming_calls查找函数的所有调用者(谁调用此函数?)
get_outgoing_calls查找函数的所有被调用者(这调用什么?)

Server Monitoring

工具它做什么
get_server_logs使用内部日志消息调试LSP问题
get_server_messages来自语言服务器的面向用户的消息

配置

Server Heuristics

mcpls使用智能启发式方法只生成相关的语言服务器。每台服务器在启动前都会检查项目标记。

语言服务器项目标记
锈蚀锈蚀分析仪Cargo.toml, rust-toolchain.toml
Python版权pyproject.toml, setup.py, requirements.txt
TypeScriptTypeScript语言服务器package.json, tsconfig.json
Gogoplsgo.mod, go.sum
C/C++CMakeLists.txt, compile_commands.json, Makefile
Zigzlsbuild.zig, build.zig.zon
\[!提示\] 启发式使用OR逻辑——如果存在任何标记,服务器就会生成。

自定义启发式:

[[lsp_servers]]
language_id = "rust"
command = "rust-analyzer"

[lsp_servers.heuristics]
project_markers = ["Cargo.toml", "rust-toolchain.toml", ".rust-version"]

Environment Variables

变量描述默认值
MCPLS_CONFIG配置文件路径自动检测到
MCPLS_LOG日志级别(跟踪、调试、信息、警告、错误)info
MCPLS_LOG_JSON以JSON格式输出日志false

配置文件位置:

平台默认位置
Linux~/.config/mcpls/mcpls.toml
macOS~/.config/mcpls/mcpls.toml~/Library/Application Support/mcpls/
窗户%APPDATA%\mcpls\mcpls.toml

Full Configuration Example

[workspace]
roots = ["/path/to/project"]
heuristics_max_depth = 10

[[lsp_servers]]
language_id = "rust"
command = "rust-analyzer"
args = []
file_patterns = ["**/*.rs"]
timeout_seconds = 30

[lsp_servers.heuristics]
project_markers = ["Cargo.toml", "rust-toolchain.toml"]

[lsp_servers.initialization_options]
cargo.features = "all"
checkOnSave.command = "clippy"

[[language_extensions]]
extensions = ["nu"]
language_id = "nushell"

配置参考 对于所有选项。

支持的语言服务器

mcpls适用于任何符合LSP 3.17标准的服务器。战斗测试:

View supported servers

语言服务器备注
Rust锈蚀分析仪零配置,内置支持
Python版权全类型推理
TypeScript/JSTypeScript语言服务器JSX/TSX支持
Gogopls模块和工作区
C/C++clangdcompile_commands.json
JavajdtlsMaven/Gradle项目
Zigzlsbuild.zip支持
24+其他任何LSP 3.17服务器请参阅 文档

建筑

View architecture diagram

flowchart TB
    subgraph AI["AI Agent (Claude)"]
    end

    subgraph mcpls["mcpls Server"]
        MCP["MCP Server
(rmcp)"]
        Trans["Translation Layer"]
        LSP["LSP Clients
Manager"]
        MCP --> Trans --> LSP
    end

    subgraph Servers["Language Servers"]
        RA["rust-analyzer"]
        PY["pyright"]
        TS["tsserver"]
        Other["..."]
    end

    AI |"MCP Protocol
(JSON-RPC 2.0)"| mcpls
    mcpls |"LSP Protocol
(JSON-RPC 2.0)"| Servers

关键设计决策:

  • 单个二进制 --没有Node.js、Python或其他运行时依赖项
  • 异步优先 --基于东京,同时处理多个LSP服务器
  • 内存安全 --纯锈,零 unsafe
  • 资源有限 --文档和文件大小的可配置限制

文档

发展

cargo build              # Build
cargo nextest run        # Test
cargo run -- --log-level debug  # Run locally

要求: Rust 1.85+(2024年版)

贡献

欢迎捐款。看 贡献.md 作为指导方针。

许可证

双重许可 Apache 2.0麻省理工学院 由您选择。

______________________________________________________________________

mcpls --因为AI应该理解代码,而不仅仅是阅读它。

目录标签

目录标签

代码分析开发工具RustClaude本地部署语义理解AI辅助编程语言服务器协议开发者工具

支持客户端

Claude

接入字段

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

未说明

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

token

工具数量(toolCount,工具数)

16

资源数量(resourceCount,资源数)

0

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

0

权限和风险

未说明token部署方式未说明

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

安装前确认

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

仍需确认:installCommand

来源信息

继续浏览同类 MCP