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

Ballerina Ls MCP Server

MCP Server

一个智能模型上下文协议(MCP)服务器,用于查询和分析Java语言服务器代码库,专为Ballerina语言服务器项目设计。

工具数

15

提示词数

0

GitHub Stars

2

资源数

0
代码分析PythonClaudeClaude DesktopClaude

安装说明

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

作者 / 组织

dan-niles

提供方

dan-niles

最后核验

2026/5/17 20:19

快速接入

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

详细介绍

Ballerina语言服务器MCP服务器

一个智能模型上下文协议(MCP)服务器,用于查询和分析Java语言服务器代码库,专门为Ballerina语言服务器项目设计。

安装

先决条件

  • 克劳德桌面
  • Git(用于克隆存储库)
  • 紫外线 -运行Python脚本的更简单方法:)

设置

  1. 克隆此存储库
  2. 安装依赖项:使用uv
uv sync
  1. 更新 claude_desktop_config.json 包括MCP服务器路径、将此MCP服务器与Claude Desktop一起使用。它应该位于:
/Users/[your_username]/Library/Application Support/Claude/claude_desktop_config.json
  1. 在中添加以下条目 claude_desktop_config.json:
{
  "mcpServers": {
    "ballerina-language-server": {
      "command": "uv",
      "args": [
        "--directory",
        "
",
        "run",
        "--active",
        "run.py"
      ],
      "env": {
        "BALLERINA_REPO_PATH": "
"
      }
    }
  }
}
  1. 重新启动Claude Desktop以应用更改。

用法

设置后,您可以使用带有Claude Desktop的MCP服务器查询和分析Ballerina语言服务器代码库。您可以通过单击以下按钮验证Claude Desktop是否识别MCP服务器 Search and tools 按钮并观察 ballerina-language-server 菜单中列出了MCP服务器。

可用的MCP工具

核心搜索和分析工具

1. search_code(query: str, limit: int = 10)

通过相关性评分和多词匹配增强了对代码库的模糊搜索。

例子:

Query: "completion provider"
Returns: Ranked results for completion-related classes and methods

2. get_class_info(class_name: str)

获取特定类的详细信息,包括所有方法和字段。

例子:

Query: "CompletionProvider"
Returns: Full class definition, methods, and context

3. get_repository_stats()

获取有关索引存储库的全面统计信息。

退货:

  • 文件计数和分布
  • 按类别计数的顶级套餐
  • 按行数计算的最大类
  • 对健康指标进行索引

4. find_similar_methods(method_name: str, limit: int = 5)

使用语音匹配算法查找名称相似的方法。

例子:

Query: "getCompletion"
Returns: getCompletion, getCompletions, findCompletion, etc.

LSP协议分析工具

5. find_lsp_protocol_implementations(protocol_method: str = "")

查找特定LSP协议方法的实现或搜索常见的LSP模式。

例子:

Query: "textDocument/hover"
Returns: All hover-related implementations

6. analyze_lsp_capabilities(limit: int = 10)

分析服务器中实现了哪些LSP功能。

退货:

  • 已实施的LSP功能列表
  • 相应的实现类
  • 覆盖率分析

7. find_protocol_handlers(limit: int = 10)

查找处理LSP协议消息的类(处理程序、提供者、服务、管理器)。

代码结构和质量工具

8. analyze_dependencies(class_name: str, limit: int = 15)

找出给定类所依赖的类/方法以及依赖于它的内容。

例子:

Query: "DocumentSymbolProvider"
Returns: Classes that reference or use this provider

9. find_design_patterns(pattern_type: str = "", limit: int = 15)

识别代码库中的常见设计模式。

支持的模式:

  • factory:工厂、创建者、构建者模式
  • observer:观察者、监听器、事件、处理程序模式
  • singleton:单例模式实现
  • adapter:适配器、包装图案
  • decorator:装饰图案
  • visitor:访问者模式实现
  • strategy:战略、政策模式
  • command:命令、动作、执行模式

10. get_method_hierarchy(method_name: str)

查找方法重写、实现和继承层次结构。

11. analyze_configuration()

查找配置文件、属性和设置代码。

12. get_file_structure_overview(limit: int = 15)

获取存储库文件结构和包组织的概述。

13. analyze_code_complexity()

分析代码复杂性指标,包括方法大小和控制结构。

14. find_error_handling_patterns()

在整个代码库中查找错误处理模式和异常使用情况。

存储库管理工具

15. reindex_repository()

重新索引存储库以获取新的更改。

建筑

组件

  1. JavaCodeIndexer:采用混合解析方法的核心索引引擎

- 主要的,重要的:基于正则表达式的Java解析,用于可靠的代码分析 - 后备方案:用于复杂场景的树型AST解析 - 提取带有完整元数据的类、方法、字段和导入 - 使用适当的索引在SQLite中存储结构化数据

  1. 服务器配置:配置管理系统

- 环境变量处理与验证 - 默认值管理和类型安全 - 存储库路径和数据库配置

  1. FastMCP工具:综合工具套件(15+工具)

- 搜索工具:通过相关性评分增强模糊搜索 - 分析工具:存储库度量、复杂性分析、依赖关系映射 - LSP工具:协议发现、能力分析、处理程序检测 - 质量工具:设计模式识别、错误处理分析 - 管理工具:重新编制索引和维护存储库

  1. 输出管理:智能响应处理

- 大型结果集的分页 - 可配置的限制,以防止压倒性的反应 - 截断指标和汇总统计 - 基于相关性的结果排名

数据库模式

服务器使用SQLite和以下主表:

  • files:文件元数据和内容
  • classes:类定义和层次结构
  • methods:方法签名和实现
  • fields:字段声明
  • imports:导入语句和依赖项

性能注意事项

索引性能

  • 初始索引时间:取决于存储库大小(对于大型存储库,通常为30-60秒)
  • 增量更新:仅重新处理更改的文件
  • 基于哈希的变化检测:高效的文件修改跟踪
  • 数据库迁移:自动更新架构以实现兼容性

查询性能

  • 索引搜索:快速查找名称、内容和元数据
  • 基于相关性的排名:带评分的多词模糊搜索
  • 可配置的结果限制:防止压倒性的反应(默认10-15个结果)
  • LRU查询缓存:经常访问的数据缓存在内存中
  • 分页支持:高效处理大型结果集

内存使用

  • SQLite存储:高效的基于磁盘的索引,内存占用最小
  • 正则表达式解析:与完全AST解析相比,内存使用率更低
  • 输出截断:长内容通过指示器自动缩短
  • 流媒体结果:增量处理大型查询

响应优化

  • 输出长度管理:自动分页和截断
  • 智能摘要:答复中强调的关键信息
  • 进度指标:对结果完整性的明确反馈
  • 错误边界:对解析和查询错误的巧妙处理

故障排除

常见问题

  1. “存储库未索引”错误

- 确保 BALLERINA_REPO_PATH 设置正确 - 检查路径是否存在并包含Java文件 - 验证目录的读取权限

  1. 索引速度慢

- 大型存储库最初可能需要几分钟的时间进行索引 - 如果不需要,考虑排除测试目录 - 监视SQLite数据库的磁盘空间

  1. 缺少搜索结果

- 尝试使用重新索引 reindex_repository() - 检查文件是否最近被修改过 - 验证是否支持文件扩展名(.java)

  1. 刀具输出太长

- 所有工具现在都有内置的分页和输出限制 - 使用 limit 控制结果计数的参数 - 响应会自动截断,并带有明确的指示符

  1. 解析错误

- 服务器使用基于正则表达式的健壮解析作为主要方法 - 复杂代码结构的自动回退处理 - 数据库架构会自动迁移以实现兼容性

日志记录

服务器使用Python的标准日志模块。设置日志级别:

import logging
logging.getLogger("ballerina-mcp").setLevel(logging.DEBUG)

发展

添加新的搜索功能

  1. 扩展 JavaCodeIndexer 类与新方法
  2. 添加相应的MCP工具功能
  3. 如果需要,更新数据库架构
  4. 添加新功能的测试

扩展语言支持

  1. 添加新的Tree sitter语言解析器
  2. 更新 ServerConfig.supported_extensions
  3. 修改中的解析逻辑 JavaCodeIndexer

相关项目

目录标签

目录标签

代码分析PythonClaude本地部署语言服务器Java代码库BallerinaMCP协议

支持客户端

Claude DesktopClaude

接入字段

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

未说明

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

none

工具数量(toolCount,工具数)

15

资源数量(resourceCount,资源数)

0

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

0

权限和风险

未说明none部署方式未说明

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

安装前确认

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

仍需确认:installCommand

来源信息

继续浏览同类 MCP