Token导航 LogoToken导航TokenDH.com
MCP Lsp logo
开发工具未说明官方级别未说明来源级核验

MCP Lsp

MCP Server

一个将语言服务器协议(LSP)功能与Claude集成的MCP服务器,提供跨编程语言的智能代码分析、导航和开发辅助功能。

工具数

0

提示词数

0

GitHub Stars

21

资源数

0
代码分析代码导航TypeScriptClaude开发工具Claude

安装说明

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

作者 / 组织

axivo

提供方

axivo

最后核验

2026/5/17 20:22

快速接入

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

详细介绍

语言服务器协议MCP服务器

![License: BSD 3-Clause](https://github.com/axivo/mcp-lsp/blob/main/LICENSE) ](https://www.npmjs.com/package/@axivo/mcp-lsp) ](https://nodejs.org/) ![TypeScript](https://www.typescriptlang.org/) ![LSP](https://microsoft.github.io/language-server-protocol/)

一个全面的MCP(模型上下文协议)服务器,将语言服务器协议(LSP)功能与Claude连接起来,实现跨多种编程语言的智能代码分析、导航和开发协助。

特性

核心能力

  • 多语言支持:Go、Helm、Kotlin、Python、Terraform、TypeScript和 更多
  • 智能代码分析:符号定义、引用、实现和类型层次结构
  • 高级导航:调用层次结构、文档符号和工作区范围内的符号搜索
  • 代码智能:悬停信息、补全、签名帮助和嵌入提示
  • 格式化和重构:文档格式、范围格式和代码操作建议
  • 项目管理:具有全面文件索引的多项目工作区支持

安全与性能

  • 进程隔离:每个语言服务器都在具有适当生命周期管理的隔离进程中运行
  • 速率限制:可配置的请求限制(默认值:100个请求/分钟)
  • 资源管理:并发文件读取限制和优雅的关机处理
  • 错误恢复:具有自动服务器重启功能的强大错误处理

语言服务器设置

先决条件

brew install JetBrains/utils/kotlin-lsp

配置文件

创建一个MCP服务器配置文件,定义您的语言服务器和项目。

\[!注意\] A. lsp.json 提供了一个包含流行开发语言和多个项目的配置示例作为入门指南。

语言服务器配置具有以下格式:

{
  "servers": {
    "language-id": {                                # Required unique language identifier
      "command": "language-server-binary",          # Required language server binary
      "args": [                                     # Optional language server arguments
        "--stdio"
      ],
      "configuration": {},                          # Optional language server configuration
      "env": {},                                    # Optional environment variables
      "extensions": [                               # Required language server extensions
        ".extension"
      ],
      "init": [],                                   # Optional language server initialization commands
      "projects": [                                 # Required language server list of projects
        {
          "name": "project-name",                   # Required unique project name
          "description": "A description",           # Optional description
          "url": "https://github.com/org/project",  # Optional project URL
          "path": "/Users/username/github/project"  # Required project local path
          "patterns": {                             # Optional exclude or include patterns
            "exclude": [
              "**/directory",
              "**/file.extension"
            ],
            "include": [
              "**/directory",
              "**/file.extension"
            ],
          }
        }
      ],
      "settings": {                                 # Optional language server settings
        "maxConcurrentFileReads": 10,
        "messageRequest": true,
        "preloadFiles": true,
        "rateLimitMaxRequests": 100,
        "rateLimitWindowMs": 60000,
        "registrationRequest": true,
        "shutdownGracePeriodMs": 100,
        "timeoutMs": 600000,
        "workspace": true
      }
    }
  }
}

可选语言服务器配置

语言服务器通常需要特定的配置才能最佳运行。配置要求记录在每台服务器的 官方存储库.

例如, pyright-langserver 需要以下设置:

"configuration": {
  "settings": {
    "python": {
      "analysis": {
        "autoSearchPaths": true,
        "diagnosticMode": "workspace"
      }
    }
  }
}

可选语言服务器设置

这些设置控制LSP协议行为和服务器兼容性:

  • maxConcurrentFileReads -打开项目文件时并发读取的最大文件数,控制项目初始化期间的内存使用和性能(默认值: 10)
  • messageRequest -控制语言服务器是否可以发送 window/showMessage 请求显示用户对话框,禁用无头操作或自动化环境(默认: true)
  • preloadFiles -控制是在项目初始化期间还是之后加载项目文件(默认值: true)
  • rateLimitMaxRequests -每个速率限制窗口允许的最大请求数,防止语言服务器因太多并发请求而不堪重负(默认值: 100)
  • rateLimitWindowMs -速率限制的时间窗口(以毫秒为单位),请求在此滑动窗口内计数(默认值: 60000 -1分钟)
  • registrationRequest -控制语言服务器是否可以发送 client/registerCapability 请求动态注册功能,对于忽略客户端功能声明的服务器禁用(默认: true)
  • shutdownGracePeriodMs -在发送关闭请求后强制终止进程之前等待的时间(毫秒),允许语言服务器完成清理操作(默认值: 100)
  • timeoutMs -等待语言服务器初始化的最长时间(毫秒),防止挂在无响应的服务器上(默认值: 600000 -10分钟)
  • workspace -控制语言服务器初始化是否发送 workspace/symbol 测试工作区功能的请求,对于不支持工作区操作或导致初始化失败的服务器禁用(默认值: true)

可选语言服务器项目文件模式

文件模式使用 fast-glob 语法。默认情况下 . 点前缀, __ 双下划线前缀, bin, build, cache, coverage, dist, docs, excludes, log, node_modules, obj, out, target, temp, tests, tmp, vendorvenv 目录被排除在外。使用 includeexclude 用于管理特定目录或文件的模式(例如。, **/dist, **/dist/**/*.d.ts, **/*.test.js).

MCP服务器配置

添加到您的 mcp.json MCP服务器配置:

{
  "mcpServers": {
    "language-server": {
      "command": "npx",
      "args": [
        "-y",
        "@axivo/mcp-lsp"
      ],
      "env": {
        "LSP_FILE_PATH": "/Users/username/github/mcp-lsp/.claude/lsp.json"
      }
    }
  }
}

环境变量

  • LSP_FILE_PATH -LSP服务器配置JSON文件的绝对路径

多语言服务器使用情况

同时运行多个语言服务器以分析不同的项目:

✅ ansible (k3s-cluster) + typescript (k3s-cluster-actions)
✅ go (helm) + kotlin (ktor) + python (fastapi)

语言服务器只能运行 一次一个项目:

❌ typescript (mcp-lsp) + typescript (typescript-sdk)

要切换项目,请使用所需的项目名称重新启动语言服务器。

入门指南

请Claude解释LSP工具的工作原理:

  • *使用以下命令启动TypeScript语言服务器 typescript-sdk 项目并检查服务器功能。*
  • *请解释LSP工具如何帮助您理解和审查源代码。*

要开始执行代码审查,请让Claude:

  • *使用以下命令启动TypeScript语言服务器 typescript-sdk 项目并检查服务器功能。*
  • *阅读 /Users/username/github/mcp-lsp/.claude/templates/code-review.md 模板预先代码审查。*
  • *使用LSP工具对项目源代码进行详细审查,并告诉我您的发现。*
\[!注意\] 语言服务器的启动时间因语言和项目大小而异,对于包含数千个文件的项目,通常为几秒钟。一些语言服务器,如 Kotlin 初始化大型项目可能需要几分钟的时间。增加 timeoutMs 如果达到默认超时,则相应地设置值。

克劳德的评论

工作流模板

查看可用 模板 Claude可用于系统开发工作流。

MCP工具

服务器管理工具

  1. start_server

- 通过项目选择启动语言服务器 - 输入: language_id, project (可选) - 返回:带有进程信息的服务器启动确认

  1. stop_server

- 停止正常运行语言服务器 - 输入: language_id - 返回:带有清理详细信息的关机确认

  1. restart_server

- 使用可选项目选择重新启动语言服务器 - 输入: language_id, project - 返回:使用新流程信息重新启动确认

  1. get_server_status

- 检查语言服务器的运行状态 - 输入: language_id (可选) - 返回:详细状态,包括正常运行时间、项目关联和运行状况

  1. get_server_capabilities

- 获取语言服务器功能和工具映射 - 输入: language_id - 返回:包含可用MCP工具映射的全面功能列表

  1. get_server_projects

- 列出语言服务器的可用项目 - 输入: language_id - 返回:包含路径和描述的已配置项目数组

项目和工作区工具

  1. get_project_files

- 列出项目工作区中所有带分页的文件 - 输入: language_id, project, limit (可选), offset (可选) - 返回:带路径的项目文件分页列表

  1. get_project_symbols

- 使用分页在整个项目工作区中搜索符号 - 输入: language_id, project, query, limit (可选), offset (可选), timeout (可选) - 返回:分页工作区符号搜索结果

代码分析工具

  1. get_hover

- 在光标位置显示类型信息和文档 - 输入: file_path, line, character - 返回:类型信息、文档和上下文详细信息

  1. get_symbol_definitions

- 导航到最初定义符号的位置 - 输入: file_path, line, character - 返回:包含文件路径和位置的定义位置数组

  1. get_symbol_references

- 查找使用或引用符号的所有位置 - 输入: file_path, line, character, include_declaration (可选) - 返回:整个工作区的参考位置数组

  1. get_implementations

- 查找实现接口或抽象方法的所有位置 - 输入: file_path, line, character - 返回:具体实现位置数组

  1. get_type_definitions

- 导航到定义符号类型的位置 - 输入: file_path, line, character - 返回:类型定义位置数组

导航工具

  1. get_call_hierarchy

- 构建显示呼叫者和被呼叫者关系的呼叫层次结构 - 输入: file_path, line, character - 返回:调用层次结构准备数据

  1. get_incoming_calls

- 显示调用此符号的所有函数 - 输入: item (来自get_call_hierchy) - 返回值:传入呼叫关系数组

  1. get_outgoing_calls

- 显示此符号调用的所有函数 - 输入: item (来自get_call_hierchy) - 返回值:呼出关系数组

  1. get_type_hierarchy

- 构建显示继承关系的类型层次结构 - 输入: file_path, line, character - 返回:类型层次结构准备数据

  1. get_supertypes

- 查找此类型继承的所有父类型 - 输入: item (来自get_type_hierchy) - 返回:父类型项的数组

  1. get_subtypes

- 查找从该类型继承的所有子类型 - 输入: item (来自get_type_hierchy) - 返回:派生类型项的数组

代码智能工具

  1. get_completions

- 在光标位置获取补全和自动建议 - 输入: file_path, line, character - 返回:包含文档的完成建议数组

  1. get_resolves

- 解决完成项的其他详细信息 - 输入: file_path, item (从get_completions开始) - 返回:扩展完成信息和文档

  1. get_signature

- 在光标位置显示函数参数和签名帮助 - 输入: file_path, line, character - 返回:函数签名信息和参数详细信息

  1. get_inlay_hints

- 在代码范围中显示内联类型注释和参数提示 - 输入: file_path, start_line, start_character, end_line, end_character - 返回:内联类型提示和注释数组

  1. get_inlay_hint

- 解决镶嵌提示项的其他详细信息 - 输入: file_path, item (来自get_lay_hints) - 返回:扩展嵌体提示信息

文档工具

  1. get_symbols

- 按页码列出文档中的所有符号 - 输入: file_path, limit (可选), offset (可选) - 返回:带有函数、类、变量的分页文档大纲

  1. get_highlights

- 突出显示光标位置出现的所有符号 - 输入: file_path, line, character - 返回:符号高亮显示范围数组

  1. get_folding_ranges

- 识别代码编辑器折叠的可折叠代码段 - 输入: file_path - 返回:可折叠代码范围数组

  1. get_colors

- 从文档中提取颜色定义和参考 - 输入: file_path - 返回值:颜色值及其位置的数组

  1. get_diagnostics

- 从文档中获取错误、警告和诊断 - 输入: file_path - 返回:包含严重性、消息和位置的诊断数组

  1. get_links

- 从文档中提取可点击的链接和引用 - 输入: file_path - 返回:文档链接和引用数组

  1. get_link_resolves

- 解析文档链接项的目标URL - 输入: file_path, item (来自get_links) - 返回:已解析的链接目标信息

  1. get_semantic_tokens

- 提取详细的语法标记以进行高级突出显示和分析 - 输入: file_path - 返回:具有类型和修饰符的语义标记数据

格式化和编辑工具

  1. get_format

- 使用语言服务器规则格式化整个文档 - 输入: file_path - 返回:已应用样式规则的格式化文档文本

  1. get_range_format

- 使用语言服务器规则设置特定代码范围的格式 - 输入: file_path, start_line, start_character, end_line, end_character - 返回:应用样式规则的格式化范围

  1. get_code_actions

- 在光标位置获取自动代码修复和重构建议 - 输入: file_path, line, character - 返回:可用代码操作和快速修复的数组

  1. get_code_resolves

- 解决代码操作项的其他详细信息 - 输入: file_path, item (来自get_code_actions) - 返回:完成工作区编辑的代码操作

  1. get_selection_range

- 将选择范围扩展到逻辑代码边界 - 输入: file_path, line, character - 返回:扩展的选择范围数组

  1. get_linked_editing_range

- 查找应同时编辑的相关范围 - 输入: file_path, line, character - 返回:同步更新的链接编辑范围

  1. get_symbol_renames

- 预览所有将用符号重命名的位置 - 输入: file_path, line, character, new_name - 返回:用于符号重命名的工作区编辑预览

目录标签

目录标签

代码分析代码导航TypeScriptClaude开发工具本地部署多语言支持IDE集成

支持客户端

Claude

接入字段

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

未说明

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

none

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

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

0

权限和风险

未说明none部署方式未说明

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

安装前确认

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

仍需确认:installCommand

来源信息

继续浏览同类 MCP