dejared について
dejaredは、Javaアーカイブを調べるAIコーディングエージェント向けのJava製MCPサーバーです。内容の閲覧、バイトコード検索、メタデータ抽出に加え、3種類のエンジンでクラスを逆コンパイルできます。
主な機能
- 01パッケージ・クラス・リソースの一覧表示
- 02アーカイブ内のテキストリソースの読み取り
- 03クラス名とバイトコード文字列の検索
- 04クラスとパッケージのメタデータ抽出
- 05CFR・Vineflower・Procyonによる逆コンパイル
活用シーン
- 01ソースコードのない依存ライブラリの調査
- 02アーカイブ内の設定ファイルの復元
- 03スタックトレースからライブラリを調査
- 04難読化されたプラグインやModの分析
MCP 対応
アーカイブの探索・検索・メタデータ確認・逆コンパイルを行う9種類のMCPツールを提供します。stdio経由でMCPクライアントと通信します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
dejared-mcp:Java デコンパイラー MCP サーバー
dejared-mcp は、Model Context Protocol に対応した Java デコンパイラー兼 JAR アナライザーです。AI コーディングエージェント(Claude Code、Codex、Cursor、VS Code)を使って、.jar、.war、.ear、.aar を開き、内容を一覧表示したり、バイトコードを検索したり、CFR、Vineflower、Procyon を使って任意のクラスを Java ソースコードにデコンパイルしたりできます。
目次
- 概要
- 前提条件
- クイックスタート
- プラグインとしてインストール(推奨)
- MCP サーバーとしてインストール
- 機能
- デコンパイラーエンジン
- カスタム Java パス
- サーバー設定
- 仕組み
- FAQ とトラブルシューティング
- コントリビューション
- サードパーティライセンス
- ライセンス
概要
dejared-mcp は、npm パッケージとして配布される Java ベースの MCP サーバーです。調査、検索、詳細分析の 3 つのカテゴリーに分類された 9 つのツールを提供します。AI アシスタントはこれらのツールを使って、JAR ファイルの構造を調べたり、バイトコード内のクラスや文字列リテラルを検索したり、.class ファイルを読みやすい Java ソースコードにデコンパイルしたりできます。
依存関係にソースコードが含まれていないときに活用できます。サードパーティライブラリの実際の動作の確認、JAR に埋め込まれた application.yml や MANIFEST.MF の復元、ソースコードのないライブラリ内のスタックトレースの追跡、難読化されたプラグインや MOD の調査などに役立ちます。jar tf、unzip、javap を手作業で実行したり、デスクトップデコンパイラーを使ったりする必要がなくなります。
ZIP ベースの Java アーカイブであればすべて利用できます。.jar、.war、.ear、.aar、Spring Boot の実行可能 JAR に対応しています。
npm パッケージは薄いラッパーとして動作し、初回実行時にサーバー JAR をダウンロードしてキャッシュした後、stdio トランスポートを使って java -jar で起動します。
前提条件
- Node.js 20 以降
- Java 17 以降(JRE で十分です)
クイックスタート
最もおすすめのインストール方法はプラグインです。2 つのコマンドで、エージェントは 2 つの要素をまとめて利用できます。9 つの MCP ツールと、jar tf、unzip、javap をシェルから実行する代わりに、いつツールを使うべきかをエージェントに示す jar-analysis スキルです。
claude plugin marketplace add hqkh4nh/dejared-mcp
claude plugin install dejared@dejared-mcp-marketplace
Codex にも同じバンドルが用意されています。プラグインとしてインストールを参照してください。それ以外のクライアントでは、標準の MCP 設定を使用します。
プラグインとしてインストールする(推奨)
MCP サーバー単体では、エージェントに9つのツールを提供します。しかし、いつそれらを使うべきかはエージェントに伝えないため、多くのエージェントは習慣で jar tf、unzip -p、javap -p を使い続け、インストールしたツールには手を付けません。
プラグインには、両方がセットで含まれています。
| 部分 | 役割 |
|---|---|
| MCP サーバー | 機能に記載されている9つのツール |
jar-analysis スキル | JARに関する質問をこれらのツールに振り分け、コストの低いツールを高コストのツールより先に選び、どのデコンパイラーで再試行するかを判断します |
現在、このバンドルに対応しているツールは2つです。それ以外はすべて MCPのみです。
Claude Code
claude plugin marketplace add hqkh4nh/dejared-mcp
claude plugin install dejared@dejared-mcp-marketplace
セッション内でも、同じコマンドを /plugin marketplace add ... と
/plugin install ... として実行できます。インストールの概要に Run /reload-plugins to activate と表示されたら、実行してください。
Codex
codex plugin marketplace add hqkh4nh/dejared-mcp
codex plugin add dejared@dejared-mcp-marketplace
その後、新しいセッションを開始して、バンドルされたスキルとサーバーを読み込みます。
codex mcp list で確認してください。dejared が enabled として表示されているはずです。
MCP サーバーとしてインストールする
プラグインシステムのないクライアント向けです。ツールは利用できますが、エージェントにツールの使用を促すスキルは含まれません。
ほとんどのクライアントでは、この標準設定を使用できます。
{
"mcpServers": {
"dejared": {
"command": "npx",
"args": ["-y", "dejared-mcp"]
}
}
}
コマンドラインから
ツールに CLI がある場合は、1行で設定できます。
claude mcp add dejared -- npx -y dejared-mcp # Claude Code
codex mcp add dejared -- npx -y dejared-mcp # Codex
amp mcp add dejared -- npx -y dejared-mcp # Amp
gemini mcp add dejared npx -y dejared-mcp # Gemini CLI
設定ファイルの場所
標準設定を、お使いのツールの設定ファイルに追加します。
| ツール | 場所 |
|---|---|
| Claude Desktop | %APPDATA%\Claude\claude_desktop_config.json (Windows) · ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) |
| Claude Code | プロジェクトルートの .mcp.json |
| Cursor | .cursor/mcp.json (プロジェクト) · ~/.cursor/mcp.json (グローバル) |
| Windsurf | 設定の MCP サーバーパネル、または設定ファイルの mcpServers |
| Cline | 拡張機能の MCP Servers パネルから設定する MCP 設定ファイル |
| Antigravity Editor | ~/.gemini/antigravity/mcp_config.json |
| Kiro | .kiro/settings/mcp.json |
| Copilot CLI | ~/.copilot/mcp-config.json、または /mcp add を実行 |
| Gemini CLI | ~/.gemini/settings.json (グローバル) · .gemini/settings.json (プロジェクト) |
| Goose | 詳細設定 → 拡張機能 → カスタム拡張機能を追加し、STDIO と入力 |
| JetBrains IDEs | 設定 → ツール → AI Assistant → Model Context Protocol (MCP) |
| Qodo Gen | チャットパネル → さらにツールを接続 → + 新しい MCP を追加 |
標準設定以外の設定が必要な環境もあります。以下を展開してください。
Codex:JSONではなくTOMLを使用
codex mcp add dejared -- npx -y dejared-mcp
codex mcp list
-- は重要です。その後に続くすべてが、サーバーの起動コマンドになります。
または、~/.codex/config.toml (グローバル) あるいは .codex/config.toml (プロジェクト) を編集します。
[mcp_servers.dejared]
command = "npx"
args = ["-y", "dejared-mcp"]
# Only if Java is not on your PATH
[mcp_servers.dejared.env]
DEJARED_JAVA_PATH = "/path/to/java"
VS Code (GitHub Copilot):mcpServers ではなく servers を使用
.vscode/mcp.json を作成または編集します。
{
"servers": {
"dejared": {
"command": "npx",
"args": ["-y", "dejared-mcp"]
}
}
}
保存後、サーバーエントリーの上にある Start をクリックし、Copilot Chatでエージェントモードを使用します。
opencode:コマンドは配列
~/.config/opencode/opencode.json を編集します。
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"dejared": {
"type": "local",
"command": ["npx", "-y", "dejared-mcp"],
"enabled": true
}
}
}
Pure Java (Node.js不要)
Node.jsを使わずにサーバーJARを直接実行する場合:
-
GitHub Releasesから最新のJARをダウンロードします。
-
実行します。
java -jar dejared-mcp-<version>.jar -
npxの代わりにJARを直接使用するよう、MCPクライアントを設定します。{ "mcpServers": { "dejared": { "command": "java", "args": ["-jar", "/path/to/dejared-mcp-<version>.jar"] } } }
機能
検出
JARの内容を参照して読み取ります。
| ツール | 説明 |
|---|---|
dejared_list_packages | クラス数とともにすべてのパッケージを一覧表示します |
dejared_list_classes | 特定のパッケージ内のクラスを一覧表示します |
dejared_list_resources | クラス以外のリソースファイルを一覧表示します |
dejared_read_resource | テキストリソース (YAML、XML、properties、JSONなど) を読み取ります |
ハンティング
JAR ファイル内を検索します。
| ツール | 説明 |
|---|---|
dejared_search_class | 名前でクラスを検索します |
dejared_search_string | バイトコード内の文字列リテラル(URL、SQL、エラーメッセージ)を検索します |
詳細分析
メタデータを調査し、クラスを逆コンパイルします。
| ツール | 説明 |
|---|---|
dejared_get_metadata | ASM を使用してクラスのメタデータを抽出します(高速、逆コンパイルなし) |
dejared_dump_package_metadata | パッケージ全体のメタデータを一括で抽出します |
dejared_decompile_class | .class ファイルを Java ソースコードに逆コンパイルします |
逆コンパイラエンジン
dejared-mcp は3つの逆コンパイラエンジンに対応しています。エンジンは
dejared_decompile_class ツールを介してリクエストごとに指定できます。
| エンジン | 説明 |
|---|---|
| CFR(デフォルト) | 汎用性が高く、信頼性の高い逆コンパイラです |
| Vineflower | FernFlower のモダンなフォークで、新しい Java 機能にも適切に対応します |
| Procyon | 一部の特殊なケースにより適切に対応できる代替エンジンです |
カスタム Java パス
Java がシステムの PATH にない場合は、MCP 設定で DEJARED_JAVA_PATH 環境変数を設定してください。これは、すべての npx ベースの設定に適用されます。
{
"mcpServers": {
"dejared": {
"command": "npx",
"args": ["-y", "dejared-mcp"],
"env": {
"DEJARED_JAVA_PATH": "/path/to/java"
}
}
}
}
サーバー設定
| プロパティ | デフォルト | 説明 |
|---|---|---|
dejared.cache.max-size | 500 | 逆コンパイル用 LRU キャッシュの最大エントリ数 |
dejared.security.max-resource-size | 5242880 | リソースファイルの最大サイズ(バイト) |
dejared.security.decompile-timeout-seconds | 30 | 逆コンパイルごとのタイムアウト |
動作の仕組み
npm パッケージは薄い Node.js ラッパーです。初回実行時に、次の処理を行います。
- プラットフォームのキャッシュディレクトリを確認し、現在のバージョンに一致するキャッシュ済み JAR があるか調べます。
- Linux:
$XDG_CACHE_HOME/dejared-mcp(デフォルトは~/.cache/dejared-mcp) - macOS:
~/Library/Caches/dejared-mcp - Windows:
%LOCALAPPDATA%\dejared-mcp
- Linux:
- キャッシュされていない場合、GitHub Releases から JAR をダウンロードします。
- MCP トランスポート用に stdio を継承して
java -jarを起動します。
サーバーは Model Context Protocol を使用し、stdio 経由で通信します。
FAQ とトラブルシューティング
Q:Java はインストール済みですが、サーバーが見つけられません。
MCP 設定で DEJARED_JAVA_PATH 環境変数を設定してください。
カスタム Java パスを参照してください。
Q:権限エラーでサーバーの起動に失敗します。
キャッシュされた JAR ファイルが読み取り可能であることを確認してください。キャッシュの場所は プラットフォームによって異なります。キャッシュディレクトリのパスについては、 動作の仕組みを参照してください。
Q:逆コンパイルがタイムアウトするか、エラーを返します。
逆コンパイルが難しいクラスもあります。dejared_decompile_class
ツールで vineflower または procyon を指定して、別のエンジンをお試しください。デフォルトのタイムアウトは30秒で、
dejared.security.decompile-timeout-seconds から変更できます。
Q:必要な Java のバージョンを教えてください。
Java 17 以降です。JRE で十分であり、JDK 全体は必要ありません。
Q:Node.js なしでサーバーを実行できますか?
はい。GitHub Releases から JAR をダウンロードし、
java -jar で直接実行してください。
MCP サーバーとしてインストールの「Pure Java」セクションを参照してください。
コントリビューション
コントリビューションを歓迎します。次のガイドラインに従ってください。
- リポジトリをフォークし、
masterから機能ブランチを作成します。 - 変更がコンパイルされ、既存のテストに合格することを確認します。
- 各変更の目的がわかる、明確なコミットメッセージを記述します。
- 変更内容とその理由を説明し、
masterを対象にプルリクエストを作成します。
プロジェクト構成に記載されているすべてのマニフェストには
version フィールドがあり、いずれかの値が package.json と一致しない場合、CI でビルドが失敗します。これらの値はまとめて更新してください。
プロジェクト構成
dejared-mcp/
├── bin/ # Node.js CLI entry point
├── lib/ # Node.js wrapper (JAR download and process management)
├── java-mcp/ # Java MCP server (Spring Boot, Gradle)
│ └── src/
├── skills/ # Agent skills, shared by every plugin manifest below
├── .mcp.json # MCP server definition, shared the same way
├── .claude-plugin/ # Claude Code plugin + marketplace manifests
├── .codex-plugin/ # Codex plugin manifest
├── .agents/plugins/ # Codex marketplace manifest
├── package.json # npm package manifest
└── server.json # MCP Registry manifest
ソースからビルドする
cd java-mcp
./gradlew build
問題の報告
問題を再現する手順、Java のバージョン、Node.js のバージョンを添えて、 GitHub Issuesに イシューを作成してください。
サードパーティライセンス
このプロジェクトでは、以下のオープンソースライブラリを使用しています。
| ライブラリ | ライセンス |
|---|---|
| Spring Boot | Apache 2.0 |
| Spring AI | Apache 2.0 |
| ASM | BSD 3-Clause |
| CFR | MIT |
| Vineflower | Apache 2.0 |
| Procyon | Apache 2.0 |
ライセンス
このプロジェクトはMIT Licenseの下でライセンスされています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。