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

Jetbrains MCP Code Navigator

MCP Server

IntelliJ IDEA插件,通过MCP协议向AI编码助手提供Java代码导航功能,支持项目源码和Maven依赖的语义分析。

工具数

3

提示词数

0

GitHub Stars

1

资源数

0
Kotlin代码分析ClaudeClaude

安装说明

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

作者 / 组织

Ackermangg

提供方

Ackermangg

最后核验

2026/5/17 20:22

快速接入

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

详细介绍

Code Navigator MCP Plugin

IntelliJ IDEA 插件,基于 IDEA 的 PSI(Program Structure Interface)代码分析引擎,通过 MCP 协议向 AI 编码助手暴露 3 个聚合式 Java 代码导航工具。

绝对前提

当前工具是面向ai agent工具的,一切改动都要考虑是否对ai agent和大模型友好,如果用户没考虑到也要主动提出

解决的问题

在大型 Java 项目中使用 AI 编码助手时,常见痛点:

  • 大文件上下文浪费:3000+ 行的 Service 文件,仅导航就消耗 15,000–20,000 token
  • 缺少方法级读取:无法只获取目标方法体,必须读取整个文件
  • 调用链分析困难:文本搜索无法精确追踪方法调用关系
  • 语义理解不足grep getUserById 返回 50 个调用点 + 12 个注释,无法区分定义与引用

本插件通过 PSI 语义分析解决上述问题,让 AI 助手可以像 IDE 一样理解代码结构。

核心优势:完整覆盖 Maven 依赖

与其他代码导航工具只能分析项目源码不同,本插件直接复用 IntelliJ 的索引引擎,项目源码和 Maven 仓库中的依赖 JAR 统一可查

# 读取 hutool JAR 中的方法实现
java_inspect(operation="method_body", className="cn.hutool.core.util.StrUtil", methodName="isEmptyIfStr", includeBody=true)

# 查看 Spring KafkaTemplate 的方法列表
java_inspect(operation="class_structure", className="org.springframework.kafka.core.KafkaTemplate")

这意味着当项目代码调用第三方库时,AI 助手可以直接读取库方法的实现,无需手动反编译或切换工具。filePath 字段会直接返回 Maven 本地仓库的 .jar 路径,方便溯源。

注意:继承的方法定义在父类中,可通过 java_inspect(operation="class_structure") 返回的 superClass 字段找到父类再查询。

工具列表

java_resolve

定位 Java 符号或解析定义,合并原 find_symbolgo_to_definition 能力。

参数类型必填说明
operationstringfind_symbolgo_to_definition
symbolNamestring视模式符号名;find_symbol 必填,按名称跳定义时必填
symbolKindsstring[]find_symbol 时限定搜索类型:class / method / field,默认全部
contextClassstring已知宿主类时用于收窄方法/字段候选
includeDependenciesboolean是否包含 Maven/Gradle 依赖,默认 true
maxResultsint返回上限,默认 20,最大 100
filePath / line / columnstring / int / int视模式go_to_definition 按位置解析时使用,行列号从 1 开始

返回值包含 returnedCountmaxResultshasMorecandidateshasMore=true 表示结果被截断,需要提高 maxResults 或收窄查询条件。

java_inspect

读取类结构、方法代码、窄上下文、限定范围诊断或 MapStruct 映射摘要,合并原 get_class_structureget_method_body 能力。支持项目源码和 Maven 依赖 JAR 中的类。

参数类型必填说明
operationstringclass_structure / method_body / symbol_context / diagnostics / mapper_mappings
classNamestring视模式类名(短名或全限定名);类/方法/MapStruct 查询时使用
methodNamestring视模式method_body 必填;symbol_context 可选
parameterTypesstring[]method_body 时用于区分重载方法;symbol_context 遇到重载时必须传入
includeBodybooleanmethod_body / symbol_context 时是否包含方法体,默认 false
includeJavadocbooleanmethod_body 时是否包含 Javadoc,默认 true
includeFieldsbooleanclass_structure / symbol_context 时是否包含字段,默认 true
includeMethodsbooleanclass_structure 时是否包含方法签名,默认 true
includeInheritedbooleanclass_structure 时是否包含继承成员,默认 false
maxFields / maxMethodsintclass_structure / symbol_context 的字段或方法返回上限
methodNamePatternstringclass_structure 方法名正则过滤
methodVisibilitystringclass_structure 方法可见性过滤:public / protected / private / package
excludeSyntheticbooleanclass_structure 是否过滤无可靠源码位置的 synthetic/light 方法
excludeLombokGeneratedbooleanclass_structure / symbol_context 是否过滤 Lombok 生成风格方法
filePath / line / columnstring / int / int视模式symbol_context 按位置读取或 diagnostics 查单文件
filePathsstring[]diagnostics 查多个文件
changedOnlybooleandiagnostics 只查 VCS 改动 Java 文件
moduleNamestringdiagnostics 查指定模块源码根
nearbyLinesintsymbol_context 附近源码行数,默认 20
maxResultsintdiagnostics 问题返回上限

method_body 返回值固定为对象,方法结果始终放在 methods 数组中;单个重载和多个重载的结构一致。

symbol_context 如果 methodName 命中多个重载且未传 parameterTypes,会返回错误并列出候选签名,避免静默读取错误重载。

diagnostics 返回的是 IntelliJ PSI parse error 摘要,适合快速确认指定文件/模块/本次改动文件是否有语法或解析错误;它不等价于 Maven 编译,也不验证 MapStruct/Lombok 生成代码。显式传入的缺失文件和非 Java 文件会通过 missingFiles / skippedFiles 返回,并将 inputValid 标为 false

mapper_mappings 只汇总可解析到 org.mapstruct.* 的 MapStruct 注解和方法签名,并在返回中标记 generatedImplementationChecked=false;生成实现和 Lombok accessor 是否真实可编译仍需 Maven 或 IDE build 验证。

java_usage

分析引用和调用链,合并原 find_referencescall_hierarchy 能力。

参数类型必填说明
operationstringfind_referencescall_hierarchy
classNamestring类名
methodNamestring视模式查方法引用或调用链时使用;call_hierarchy 必填
fieldNamestringfind_references 查字段引用时使用,和 methodName 互斥
scopestringfind_references 搜索范围:project(默认)、modulefile
directionstringcall_hierarchy 方向:callers / callees / both,默认 callers
depthintcall_hierarchy 递归深度,默认 1,最大 5
maxResultsint结果上限;引用默认 50,调用链默认每层 30

引用结果包含 returnedCountmaxResultshasMore。调用链结果包含 returnedCounttopLevelReturnedCountmaxResultsPerLevellimitScopehasMorehasMore=true 表示结果被截断,需要提高 maxResults 或缩小范围。

要求

  • IntelliJ IDEA 2024.3 及以上(Ultimate 或 Community)
  • MCP Server 插件(Plugin ID: 26071)已安装并启用
  • Node.js(用于运行 @jetbrains/mcp-proxy

安装

方式一:从 Release 安装(推荐)

  1. Releases 下载最新 code-navigator-mcp-plugin.zip
  2. IDEA → Settings → Plugins → ⚙️ → Install Plugin from Disk
  3. 选择 zip 文件 → 重启 IDEA

发布新版本时,在本地打 v* 标签并推送,GitHub Actions 会自动构建插件 zip、创建 Release,并上传 code-navigator-mcp-plugin.zip

git tag v1.0.1
git push origin v1.0.1

普通 push 和 PR 也会自动执行构建,可在 Actions 页面下载 code-navigator-mcp-plugin artifact 进行临时测试。

方式二:从源码构建

git clone https://github.com/your-org/jetbrains-mcp-code-navigator.git
cd jetbrains-mcp-code-navigator
./gradlew buildPlugin
# 产物:build/distributions/code-navigator-mcp-plugin.zip

然后按方式一安装 zip 文件。

配置 Claude Code

在项目的 .mcp.json 或全局 MCP 配置文件中添加:

{
  "mcpServers": {
    "jetbrains": {
      "command": "npx",
      "args": ["-y", "@jetbrains/mcp-proxy"]
    }
  }
}

@jetbrains/mcp-proxy 会自动发现运行中的 IDEA 实例并桥接 MCP 协议。

推荐工作流

  • 已知类或方法:优先用 java_inspect
  • 只知道符号名、不确定定义位置:用 java_resolve(operation="find_symbol")
  • 已知调用点坐标:用 java_resolve(operation="go_to_definition")
  • 需要追踪谁在用它:用 java_usage

search_in_files_content 更适合纯文本场景,不推荐作为 Java 语义定位的首选工具。

使用示例

# 先按名称找候选定义,再决定读哪个类/方法
java_resolve(operation="find_symbol", symbolName="GenericQueryUtil", symbolKinds=["class"])

# 只读取目标方法,不加载整个文件
java_inspect(operation="method_body", className="StowageProcessService", methodName="clearStowageByWaybillReport")

# 不传 parameterTypes 时,返回所有同名重载
java_inspect(operation="method_body", className="OrderService", methodName="createOrder")

# 读取 Maven 依赖 JAR 中的方法实现
java_inspect(operation="method_body", className="cn.hutool.core.util.StrUtil", methodName="isEmptyIfStr", includeBody=true)

# 获取类结构概览,快速了解有哪些方法(支持 JAR 中的类)
java_inspect(operation="class_structure", className="org.springframework.kafka.core.KafkaTemplate")

# 大类只看字段和前 20 个非 Lombok/synthetic 方法
java_inspect(operation="class_structure", className="Stowage", maxMethods=20, excludeLombokGenerated=true, excludeSynthetic=true)

# 读取指定方法的窄上下文:imports、字段、方法签名和附近源码行
java_inspect(operation="symbol_context", className="OrderService", methodName="createOrder", nearbyLines=20)

# 只检查本次改动 Java 文件的 PSI 解析错误
java_inspect(operation="diagnostics", changedOnly=true)

# 汇总 MapStruct mapper 上的 @Mapping / @Mappings / @BeanMapping 注解
java_inspect(operation="mapper_mappings", className="OrderMapper")

# 精确查找某方法的所有调用点
java_usage(operation="find_references", className="OrderService", methodName="createOrder")

# 分析调用链,了解谁在调用这个方法
java_usage(operation="call_hierarchy", className="PaymentService", methodName="processPayment", direction="callers", depth=2)

开发

./gradlew runIde        # 启动沙箱 IDE 进行测试
./gradlew buildPlugin   # 构建插件 zip

CI 使用 GitHub Actions 自动执行 ./gradlew buildPlugin -Dorg.gradle.java.home="$JAVA_HOME",避免受本地 gradle.properties 中 Windows JDK 路径影响。构建产物固定为 build/distributions/code-navigator-mcp-plugin.zip

兼容性

IDE 版本支持
IDEA 2024.3.x (build 243)
IDEA 2025.x (build 25x)

插件仅支持 Java 语言(不支持 Kotlin/Scala 等)。

目录标签

目录标签

Kotlin代码分析Claude本地部署Java开发AI辅助编程Maven支持IntelliJ插件

支持客户端

Claude

接入字段

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

未说明

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

token

工具数量(toolCount,工具数)

3

资源数量(resourceCount,资源数)

0

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

0

权限和风险

未说明token部署方式未说明

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

安装前确认

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

仍需确认:installCommand

来源信息

继续浏览同类 MCP