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

Java Code Review MCP

MCP Server

一个基于MCP协议的自动化Java代码审查服务器,支持JDK 17/21项目的全面分析,包括代码风格检查、安全漏洞检测、架构验证和JBCT方法学合规性检查。

工具数

12

提示词数

0

GitHub Stars

0

资源数

0
代码审查PythonClaudeClaude

安装说明

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

作者 / 组织

kzoabi

提供方

kzoabi

最后核验

2026/5/17 20:20

运行时

Python

快速接入

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

命令预览

python -m venv .venv

详细介绍

Java代码审查MCP服务器

MCP(模型上下文协议)服务器,充当 高级软件开发工程师 拥有超过15年的自动化代码审查经验。专为 JDK 17/21 具有完整Spring Boot支持和JBCT方法合规性检查的项目。与集成 开源代码, 克劳德代码,以及 克劳德桌面版.

特性

代码审查能力

  • 单文件审核 --使用可配置的审阅级别分析单个Java文件
  • Git差异评论 --审查未提交的更改、阶段性更改或任何git ref范围
  • 完整项目评审 --项目范围的分析,包括一次调用中的依赖性和架构检查
  • JBCT合规性 --37规则Java后端编码技术方法验证
  • 弹簧靴合规性 --涵盖春季常见陷阱的6条规则
  • 文件结果缓存 --在重复的项目运行中跳过未更改的文件(按mtime键控)

静态分析(纯Python)

  • 代码样式检查(行长、缩进)
  • 设计模式验证
  • 安全漏洞检测(硬编码凭据、SQL注入、敏感日志)
  • 性能优化建议

JDK 17+功能检测

  • 不可变DTO的记录
  • 受控继承的密封类
  • 图案匹配(instanceof)
  • 切换表达式
  • 文本块
  • var 关键字用法

Java 21功能检测

  • 虚拟线程(Thread.ofVirtual())
  • 结构化并发(StructuredTaskScope)
  • 字符串模板

多模块Maven/Gradle支持

  • 步行全部 pom.xmlbuild.gradle 项目树中的文件
  • 聚合模块之间的依赖关系
  • 检测跨模块版本冲突

审查级别

  • full --所有检查(默认)
  • quick --仅严重和重大严重程度;跳过样式、JDK建议、JBCT样式/命名
  • security --仅限安全检查;没有JBCT,没有JDK建议

增强报告

  • 目录(当报告有≥3节时)
  • 带有表情符号严重程度指示器的摘要仪表板
  • 前5个最有问题的文件
  • 按严重程度和文件分组的问题
  • 架构报告的层依赖矩阵

体系结构分析

  • 包结构验证(域/适配器/用例层)
  • 循环依赖检测
  • 导入流验证(域不得导入适配器)
  • 自动包含在 review_java_project --无需单独通话

______________________________________________________________________

需求

  • Python 3.10+
  • Git(用于Git diff评论)

______________________________________________________________________

安装

# Clone or download this repository
cd java-code-review-mcp

# Create virtual environment
python -m venv .venv

# Activate (Linux/Mac)
source .venv/bin/activate

# Activate (Windows)
.venv\Scripts\activate

# Install dependencies
pip install -r requirements.txt

或者使用紫外线:

uv venv
uv add "mcp[cli]" fastmcp javalang rich pyyaml

______________________________________________________________________

配置

编辑 config/code_review_config.md (或通过以下方式加载的YAML文件 load_custom_config)自定义:

编码风格和阈值

max_line_length: 120
indent_size: 4
use_spaces: true
max_method_length: 30
max_class_length: 500
max_parameters: 5

安全检查

security:
  check_hardcoded_secrets: true
  check_sql_injection: true
  check_logging_sensitive: true

JDK 17+功能建议

jdk17_features:
  recommend_records: true
  recommend_sealed_classes: true
  recommend_switch_expressions: true
  recommend_text_blocks: true
  recommend_var_keyword: true
  recommend_pattern_matching: true

Java 21功能推荐

jdk21_features:
  recommend_virtual_threads: true
  recommend_structured_concurrency: true
  recommend_string_templates: true

弹簧靴分析

弹簧分析 默认情况下禁用 以避免非Spring项目的误报。

spring_enabled: true   # Enable Spring Boot rule checks

spring_rules:
  transactional: true        # SPRING-TX-01
  field_injection: true      # SPRING-DI-01
  circular_autowired: true   # SPRING-DI-02
  missing_stereotype: true   # SPRING-STEREO-01
  rest_return_types: true    # SPRING-REST-01
  value_fallback: true       # SPRING-CONFIG-01

JBCT配置文件设置

jbct_profile: basic   # disabled | basic | full

jbct_rules:
  return_types: true      # RET-01 to RET-05
  exceptions: true        # EX-01, EX-02
  value_objects: true     # VO-01, VO-02
  lambda_rules: true      # LAM-01, LAM-02, LAM-03, NEST-01
  patterns: true          # PAT-01, PAT-02, SEQ-01
  architecture: true      # MIX-01
  naming: true            # NAM-01, NAM-02, ACR-01
  zones: true             # ZONE-01, ZONE-02, ZONE-03
  style: true             # STY-01 to STY-06
  logging: true           # LOG-01, LOG-02
  static_imports: true    # STATIC-01
  utilities: true         # UTIL-01, UTIL-02
  sealed_types: true      # SEAL-01
  usecase: true           # UC-01

配置文件级别:

  • disabled --无JBCT检查
  • basic --核心12条规则(返回类型、异常、值对象、lambdas、模式、架构、命名、区域)
  • full --所有37条JBCT规则

包装图案

jbct_packages:
  domain_patterns:
    - "**.domain.**"
    - "**.usecase.**"
  adapter_patterns:
    - "**.adapter.**"
    - "**.io.**"

区域动词

zone2_verbs:
  - validate
  - process
  - handle
  - execute

zone3_verbs:
  - get
  - fetch
  - parse
  - load

______________________________________________________________________

运行服务器

# With Python
python src/server.py

# With uv
uv run python src/server.py

服务器使用 JAVA_REVIEW_CONFIG 用于定位自定义配置文件的环境变量:

JAVA_REVIEW_CONFIG=/path/to/config.yaml python src/server.py

______________________________________________________________________

MCP工具参考

工具摘要

工具关键参数说明
review_java_filefile_path, output_format, review_level查看单个Java文件
review_java_git_diffrepo_path, output_format, review_level, ref, staged查看git diff(未提交、暂存或任何引用)
review_java_projectproject_path, output_format, review_level, include_deps, use_cache包括架构在内的全面项目审查
analyze_java_staticfile_path, tools单个文件的低级静态分析
analyze_java_dependenciesproject_path, build_toolMaven/Gradle多模块依赖性分析
analyze_java_architectureproject_path, output_format使用层矩阵进行架构验证
analyze_spring_compliancefile_path, output_formatSpring Boot/Spring Framework规则检查
review_jbct_compliancefile_path, output_format, profileJBCT方法合规性(文件或目录)
get_review_checklistchecklist_type检索审查清单
get_current_config--显示活动配置
get_jbct_config--显示JBCT特定配置
load_custom_configconfig_path加载YAML或Markdown配置文件

______________________________________________________________________

review_java_file

查看单个Java文件以了解样式、安全性、设计和JDK现代化问题。

参数类型默认值说明
file_pathstring必填路径 .java 文件
output_format字符串"markdown"markdown, json, sarif,或 both
review_level字符串"full"full, quick,或 security

______________________________________________________________________

review_java_git_diff

从git查看Java更改。默认情况下,审核未记录的更改(git diff).

参数类型默认值说明
repo_path字符串"."git存储库根路径
output_format字符串"markdown"markdown, json, sarif,或 both
review_level字符串"full"full, quick,或 security
ref字符串""与git ref进行比较(例如。 HEAD~1, main,提交SHA)。相互排斥 staged.
staged布尔值false何时 true,仅审查阶段性更改(git diff --cached)

______________________________________________________________________

review_java_project

查看整个Java项目。自动包括架构分析和(可选)依赖性分析。

参数类型默认值说明
project_pathstring必需Java项目根目录的路径
output_format字符串"markdown"markdown, json, sarif,或 both
review_level字符串"full"full, quick,或 security
include_deps布尔值true分析Maven/Gradle依赖关系
use_cache布尔值true缓存每个文件的结果(按路径+mtime键控);重新运行时跳过未更改的文件

______________________________________________________________________

analyze_java_static

对单个Java文件运行低级静态分析。

参数类型默认值说明
file_pathstring必填路径 .java 文件
tools字符串"all"要运行哪些检查

______________________________________________________________________

analyze_java_dependencies

分析Maven或Gradle依赖关系。支持多模块项目——遍历所有项目的完整项目树 pom.xml / build.gradle 文件并检测跨模块版本冲突。

参数类型默认值说明
project_pathstring必需Java项目根目录的路径
build_tool字符串"auto"auto, maven,或 gradle

______________________________________________________________________

analyze_java_architecture

验证项目架构:包结构、循环依赖检测和导入流(域不得导入适配器)。还生成层依赖矩阵。

参数类型默认值说明
project_pathstring必需Java项目目录的路径
output_format字符串"markdown"markdown, json,或 sarif
注: review_java_project 自动调用它——你只需要 analyze_java_architecture 直接用于架构分析。

______________________________________________________________________

analyze_spring_compliance

检查Java文件或项目目录中的Spring Boot/Spring Framework问题。需要 spring_enabled: true 在配置中,规则将被触发。

参数类型默认值说明
file_pathstring必填路径 .java 文件或项目目录
output_format字符串"markdown"markdown, json,或 sarif

______________________________________________________________________

review_jbct_compliance

检查Java文件或目录是否符合JBCT方法。

参数类型默认值说明
file_pathstring必填路径 .java 文件或项目目录
output_format字符串"markdown"markdown, json,或 sarif
profile字符串"basic"basic (12条核心规则)或 full (共37条规则)

______________________________________________________________________

get_review_checklist

检索代码审查清单。

参数类型默认值说明
checklist_type字符串"full"fullquick

______________________________________________________________________

load_custom_config

在运行时加载YAML或Markdown配置文件。

参数类型默认值说明
config_pathstring必填路径 .yaml, .yml,或 .md 配置文件

______________________________________________________________________

输出格式

报告可以在以下位置生成:

格式描述
markdown人类可读(默认)
jsonCI/CD管道的机器可读性
sarifGitHub代码扫描、Azure DevOps等行业标准。
bothMarkdown+JSON组合

______________________________________________________________________

审查级别

级别检查什么
full一切——风格、设计、安全性、JDK建议、JBCT(所有严重性)
quick仅限于关键和重大严重性问题;跳过样式规则、JDK建议和JBCT样式/命名规则
security仅安全类别(HardcodedCredentials, SQLInjection);没有JBCT,没有JDK建议

______________________________________________________________________

MCP资源

服务器公开了三个可通过MCP资源URI访问的只读资源:

URI描述
checklist://fullJSON格式的完整代码审查清单
checklist://quickJSON格式的快速检查表
config://current活动配置为JSON

______________________________________________________________________

整合

开源代码

添加到您的项目 opencode.json:

{
  "mcp": {
    "java-code-review": {
      "type": "local",
      "command": ["python", "path/to/java-code-review-mcp/src/server.py"],
      "enabled": true
    }
  }
}

示例提示:

Review the Java file src/main/java/com/example/MyService.java
Check this file for JBCT compliance: src/main/java/com/example/MyService.java
Do a full code review of this project
Run JBCT compliance check on the src/main/java directory
Analyze Spring Boot issues in this project
Show me the current code review configuration

______________________________________________________________________

克劳德代码

添加 ~/.claude/claude_desktop_config.json (或通过 claude mcp add):

{
  "mcpServers": {
    "java-code-review": {
      "command": "python",
      "args": ["path/to/java-code-review-mcp/src/server.py"]
    }
  }
}

示例提示:

Review this Java file for issues
Review my uncommitted Java changes
Run a quick review of the project (critical issues only)
Check for Spring Boot problems in src/main/java
Run JBCT compliance check on this directory
What JBCT rules are enabled?
Show the current config

______________________________________________________________________

克劳德桌面版

添加 %APPDATA%\Claude\claude_desktop_config.json:

{
  "mcpServers": {
    "java-code-review": {
      "command": "python",
      "args": ["path/to/java-code-review-mcp/src/server.py"]
    }
  }
}

______________________________________________________________________

JBCT方法

服务器包括 Java后端编码技术 合规性检查——一种编写可预测、可测试的Java后端代码的方法。特别适用于人工智能辅助开发。

什么是JBCT?

JBCT提供了以下机械规则:

  • 返回类型:每个方法返回以下之一 T, Option, Result,或 Promise
  • 错误处理:使用 Cause 随着 Result/Promise,没有例外
  • 值对象:工厂方法返回 Result
  • Lambda规则:lambdas中没有复杂的逻辑
  • 建筑:域包中没有I/O
  • 命名:工厂和验证的一致惯例

JBCT规则(共37条)

退货类型(5条规则)

规则严重性描述
JBCT-RET-01错误业务方法必须使用T、Option、Result或Promise
JBCT-RET-02错误没有嵌套包装(Promise>, Option>)
JBCT-RET-03错误从不返回null--使用 Option
JBCT-RET-04警告使用 Unit 而不是 Void
JBCT-RET-05警告避免总是连续的结果(直接返回T)

例外情况(2条规则)

规则严重性描述
JBCT-EX-01错误无业务异常——使用带结果/承诺的原因
JBCT-EX-02错误不使用 orElseThrow() --使用结果/选项

值对象(2条规则)

规则严重性描述
JBCT-VO-01警告值对象应返回出厂 Result
JBCT-VO-02警告不要绕过工厂——使用工厂方法

Lambda(4条规则)

规则严重性描述
JBCT-LAM-01警告lambdas中没有复杂的逻辑(if、switch、try-catch)
JBCT-LAM-02警告lambdas中没有括号——方法摘要
JBCT-LAM-03警告lambdas中没有三元函数——使用 filter() 或提取物
JBCT-NEST-01警告lambda中没有嵌套的一元运算

模式(3条规则)

规则严重性描述
JBCT-PAT-01警告使用函数迭代而不是原始循环
JBCT-PAT-02警告测序仪内无叉连接
JBCT-SEQ-01警告链条长度限制(2-5步)

架构(1条规则)

规则严重性描述
JBCT-MIX-01错误域包中没有I/O操作

命名(3条规则)

规则严重性描述
JBCT-NAM-01警告工厂方法: TypeName.typeName()
JBCT-NAM-02警告使用 Valid 前缀,不是 Validated
JBCT-ACR-01警告首字母缩略词应使用PascalCase

区域(3条规则)

规则严重性描述
JBCT-ZONE-01警告步骤界面使用区域2动词
JBCT-ZONE-02警告叶子函数使用区域3动词
JBCT-ZONE-03警告测序仪链中无区域混合

风格(6条规则)

规则严重性描述
JBCT-STY-01警告首选流畅失败: cause.result()
JBCT-STY-02警告首选构造函数引用: X::new
JBCT-STY-03警告代码中没有完全限定的类名
JBCT-STY-04警告实用类模式:密封接口
JBCT-STY-05警告方法引用比lambda更可取
JBCT-STY-06警告导入顺序:java→ javax→ 实用主义→ 第三方的→ 项目

日志记录(2条规则)

规则严重性描述
JBCT-LOG-01警告无条件记录
JBCT-LOG-02警告没有记录器作为方法参数

其他规则(5条规则)

规则严重性描述
JBCT-STATIC-01警告Pragmatica更喜欢静态导入
JBCT-UTIL-01警告使用Pragmatic解析实用程序
JBCT-UTIL-02警告使用 Verify.Is 谓词
JBCT-SEAL-01警告错误接口应密封
JBCT-UC-01警告用例工厂返回lambdas

______________________________________________________________________

弹簧靴支架

analyze_spring_compliance 工具(和 spring_enabled config标志)添加Spring特定的检查。启用 spring_enabled: true 在您的配置中。

春季规则(6条规则)

规则严重性描述
春季-TX-01主要@Transactional 在非公共方法上——Spring代理无法拦截它
SPRING-DI-01主要@Autowired 现场注入——首选构造函数注入
SPRING-DI-02major类似乎注入了自己——可能是循环依赖
春夏01轻微缺失 @Service/@Repository/@Component 论服务型班级
春红01小调@RestController 方法返回原始类型,而不是 ResponseEntity
春季音乐会-01小调@Value 硬编码回退掩码缺少配置属性

快速开始

# config/code_review_config.md (or your YAML config)
spring_enabled: true

然后在你的AI助手中:

Analyze Spring Boot issues in src/main/java/com/example/

______________________________________________________________________

体系结构分析

analyze_java_architecture 工具(以及自动架构步骤) review_java_project)执行:

  1. 包装结构验证 --检查域、适配器和用例层
  2. 循环依赖检测 --查找包之间的循环导入并显示循环路径
  3. 导入流验证 --确保域包不导入适配器包
  4. 层依赖关系矩阵 --呈现一个层×层表,显示允许/违反的依赖关系

用法

直接调用仅架构分析:

Analyze the architecture of this Java project
Check for circular dependencies in the codebase

或者将其作为完整项目审查的一部分自动获取:

Do a full code review of this Java project

______________________________________________________________________

CI/CD:SARIF输出

GitHub操作

name: Java Code Review

on: [pull_request]

jobs:
  review:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Set up Python
        uses: actions/setup-python@v5
        with:
          python-version: '3.11'
      - name: Install dependencies
        run: pip install -r requirements.txt
      - name: Run JBCT Check
        run: |
          python -c "
          from src.tools.code_review import review_jbct_project
          from src.tools.report_generator import generate_report
          from src.config.loader import load_config, get_config
          import asyncio

          load_config()
          config = get_config()
          config['jbct_profile'] = 'basic'

          result = asyncio.run(review_jbct_project('src/main/java', config))
          print(generate_report(result, 'sarif'))
          " > results.sarif
      - name: Upload SARIF
        uses: github/codeql-action/upload-sarif@v3
        with:
          sarif_file: results.sarif

Azure DevOps

在您的管道中配置SARIF结果以进行安全扫描集成。

______________________________________________________________________

测试

该项目包括一个测试套件,包含6个模块的61个测试。

运行测试

# Quick summary
python -m pytest tests/ -q

# Verbose with test names
python -m pytest tests/ -v

# Single module
python -m pytest tests/test_spring_analyzer.py -v

测试模块

模块覆盖范围
test_static_analysis.py静态分析规则、JDK 17/21建议、安全检查
test_jbct_analyzer.py所有37条JBCT规则
test_dependency_analyzer.pyMaven/Gradle多模块解析,版本冲突检测
test_git_diff_parser.pyGit差异解析、引用和暂存模式
test_spring_analyzer.py全部6条春季规则
test_code_review.py端到端编排(review_file、review_project、缓存)

测试夹具在 tests/fixtures/ (例如。, SecurityIssues.java, JbctViolations.java, SpringIssues.java).

______________________________________________________________________

许可证

MIT许可证

目录标签

目录标签

代码审查PythonClaude本地部署静态分析Java开发安全检测架构验证

支持客户端

Claude

接入字段

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

stdio

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

none

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

12

资源数量(resourceCount,资源数)

0

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

0

权限和风险

stdionone部署方式未说明

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

安装前确认

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

来源信息

继续浏览同类 MCP