Java JAR类定义服务器

一个为Java Maven项目提供MCP(模型上下文协议)服务器功能的npm包,使AI助手能够访问Maven依赖中的Java类定义。

  • by biggerball
  • TypeScript
  • 本地部署
  • 4 星标
  • 更新于
在 GitHub 查看 biggerball/java-jar-mcp

使用说明

Java JAR MCP服务器

英语 | 中文 | 日本语

一个为Java Maven项目提供MCP(模型上下文协议)服务器功能的npm包。该服务器使AI助手能够从Maven依赖关系中访问Java类定义,解决了Cursor和其他基于VSCode的IDE无法自动读取jar文件类的限制。

特性

  • 类定义查找:从Maven依赖项中查找Java类定义
  • 依赖关系列表:列出项目的所有Maven依赖项
  • JAR类搜索:使用模式在JAR文件中搜索类

安装

先决条件

  • Node.js 18+
  • 已安装Maven(适用于Maven项目)

通过npx使用

{
  "mcpServers": {
    "java-jar-mcp": {
      "command": "npx",
      "args": ["-y", "@biggerball/java-jar-mcp@latest"],
      "env": {
        "MAVEN_REPO_PATH": "/Users/username/.m2/repository"
      }
    }
  }
}

用法

配置后,MCP服务器将自动启动并向AI助手提供以下工具:

可用的MCP工具

find_class_definition

从Maven依赖项中查找Java类的定义。

参数:

  • className (string,必填):完全限定类名(例如。, java.util.ArrayList)
  • pomPath (string,必填):pom.xml文件的路径(例如。, "/path/to/project/pom.xml")

退货: 带有源代码(如果可用)、方法和字段的类定义

例子:

{
  "className": "com.alibaba.fastjson2.filter.BeforeFilter",
  "pomPath": "/path/to/project/pom.xml"
}

list_project_dependencies

列出项目的所有Maven依赖项。

参数:

  • pomPath (string,必填):pom.xml文件的路径(例如。, "/path/to/project/pom.xml")

退货: JAR文件路径的依赖关系列表

search_classes_in_jar

在JAR文件中搜索与模式匹配的类。

参数:

  • jarPath (string):JAR文件的路径
  • searchPattern (string):搜索模式(支持通配符 * 和 ?)

退货: 匹配的类名列表

支持与捐赠

如果你觉得这个项目很有帮助,并愿意支持它的发展,如果你能给我买杯咖啡,我将不胜感激! ☕

您的支持帮助我继续改进这个项目,并为开发人员社区创建更多有用的工具。

如果你喜欢使用这个项目,你的支持对我来说意义重大。谢谢! 🙏

本地开发安装

  1. 克隆存储库

  2. 安装依赖项并构建:

    npm install
    npm run build
    
  3. 在MCP配置中使用本地路径:

    {
      "mcpServers": {
        "java-jar-mcp": {
          "command": "node",
          "args": ["/path/to/java-jar-mcp/dist/index.js"],
          "env": {
            "MAVEN_REPO_PATH": "/Users/username/.m2/repository"
          }
        }
      }
    }
    

运作原理

MCP服务器通过以下步骤工作:

  1. 解析pom.xml:读取并解析Maven项目的 pom.xml 文件
  2. 查找JAR文件:根据Maven坐标在本地Maven存储库中查找相应的JAR文件
  3. 提取类定义:从JAR文件中提取Java类定义信息

发展

项目结构

java-jar-mcp/
├── src/
│   ├── index.ts         # MCP server entry point
│   ├── mavenParser.ts   # pom.xml parsing
│   ├── jarLocator.ts    # JAR file location
│   ├── classExtractor.ts # Class definition extraction
│   ├── tools.ts         # MCP tool implementations
│   └── cache.ts         # LRU cache implementation
└── dist/                # Compiled MCP server

建筑

# Build MCP server
npm run build

# Watch mode build
npm run watch

测试

npm test

未来改进

  • 支持Gradle项目
  • 增强的Maven属性解析
  • 自动多模块项目检测和依赖关系合并

许可证

麻省理工学院