Skip to content

flypig-maker/Local-Java-Context-Server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

本地 Java 上下文 MCP 服务器

这是一个 MCP (Model-driven Context Protocol) 服务器,它为您的 AI 助手提供本地 Java API 签名,有效防止其"幻觉出"不存在或已过时的 API。

本服务器充当您的语言大模型(如 Claude、Gemini 或 Cursor 中的自定义助手)与本地 Maven (~/.m2) 仓库之间的桥梁。它使用 javap 工具从您机器上的 JAR 文件中提取真实、最新的 API 签名。

它解决的问题

在编写 Java 代码时,AI 助手经常会虚构出在您使用的版本中并不存在的方法、类,甚至是整个库。这是因为它们的训练数据是互联网的一个静态快照。mcp-java-context 通过让 AI 直接访问您本地安装的确切库版本,为其提供了坚实的现实基础。

核心功能:

  1. 扫描您本地的 ~/.m2/repository 以查找指定的 Maven 构建产物。
  2. 使用标准的 JDK 工具 javap.jar 文件中反编译并提取公共 API 签名。
  3. 将这些准确的签名提供给 AI,确保其生成的代码基于事实,而非猜测。

系统要求

  • Python 3.10+
  • 已安装 Java 开发工具包 (JDK),并确保 javap 命令在系统的 PATH 环境变量中可用。
  • 一个预先存在的、包含了您常用库的本地 Maven 仓库 (~/.m2/repository)。

开始使用 (本地部署)

本指南说明了如何从 GitHub 下载源代码后,直接在本地运行此服务器。

第一步:克隆仓库

首先,将此仓库克隆到您的本地计算机:

git clone https://github.com/flypig-maker/Local-Java-Context-Server.git
cd Local-Java-Context-Server

第二步:运行服务器

运行此服务器最简单的方式是使用现代化的 Python 包管理器,如 uv。如果您已安装 uv,在项目的根目录中,只需一个命令即可启动服务器:

# 此命令会自动处理依赖并启动服务器
uv run mcp-java-context

服务器启动后将开始等待来自您的 AI 工具的请求。

第三步:配置您的 AI 工具

为了让您的 AI 助手(例如,Cursor 或其他支持的工具)能够使用此服务器,您需要更新其 mcp_servers.json 配置文件。

情况一:您的 Maven 仓库位于默认位置 (~/.m2/repository)

添加以下标准配置:

{
  "java-context-local": {
    "command": "uv",
    "args": ["run", "mcp-java-context"],
    "cwd": "/path/to/your/Local-Java-Context-Server"
  }
}

情况二:您使用了自定义的 Maven 仓库位置

args 数组中添加 --m2-repo 标志来指定您的自定义路径。

{
  "java-context-local": {
    "command": "uv",
    "args": [
      "run",
      "mcp-java-context",
      "--m2-repo",
      "/path/to/your/custom/maven/repo"
    ],
    "cwd": "/path/to/your/Local-Java-Context-Server"
  }
}

Important

您必须手动更新 cwd 路径。

在这两种情况下,都需要将 /path/to/your/Local-Java-Context-Server 替换为您在第一步中克隆仓库的绝对路径

为什么? AI 工具需要读取此配置,并知晓项目在您机器上的确切位置才能启动它。这个路径对于每个用户和每台计算机都是唯一的。

配置完成后,您的 AI 工具就能够启动本地服务器并与之通信,以获取准确的 Java API 签名。

工作原理

该服务器通过模型驱动上下文协议 (MCP) 暴露了一组工具,您的 AI 可以调用这些工具。主要的工具是 get_java_signature

AI 交互示例:

  • AI 的目标: 使用 spring-ai-client-chat 编写代码。
  • AI 的行为: 调用 get_java_signature(group_id="org.springframework.ai", artifact_id="spring-ai-client-chat", version="1.1.0", class_name="ChatClient")
  • 服务器的响应: 服务器找到对应的 JAR 文件,运行 javap,并返回 ChatClient 类的公共构造函数和方法签名,同时附上一个可用内部类(如 ChatClient.Builder)的列表,这些内部类可以被单独查询。
  • 结果: AI 现在获得了确切的 API 接口信息,可以生成有效的代码。

许可证

该项目根据 MIT 许可证授权。有关详细信息,请参阅 LICENSE 文件。

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages