Joern MCP サーバー
Joern 用のシンプルな MCP サーバー。
プロジェクト紹介
このプロジェクトは Joern をベースにした MCP サーバーであり、開発者のコードレビューとセキュリティ分析を支援する一連の機能を提供します。
環境要件
- Python >= 3.10 (デフォルト 3.12) & uv
- ヨルン
インストール手順
- プロジェクトをローカルに複製します。
git clone https://github.com/sfncat/mcp-joern.git
cd mcp-joern
- Python の依存関係をインストールします。
uv venv .venv
source .venv/bin/activate
uv sync
プロジェクト構造
├── server.py # MCP Server main program
├── test_mcp_client.py # Test program for joern server and mcp tool
├── test_sc_tools.py # Direct test program for sc tools
├── common_tools.py # Common utility functions
├── server_tools.py # Server utility functions
├── server_tools.sc # Scala implementation of server utility functions
├── server_tools_source.sc # Scala implementation of server utility functions,use sourceCode to get the source code of method
├── requirements.txt # Python dependency file
├── sample_cline_mcp_settings.json # Sample cline mcp configuration file
└── env_example.txt # Environment variables example file
使用法
- Joern サーバーを起動します。
joern -J-Xmx40G --server --server-host 127.0.0.1 --server-port 16162 --server-auth-username user --server-auth-password password --import server_tools.sc
Or
joern -J-Xmx40G --server --server-host 127.0.0.1 --server-port 16162 --server-auth-username user --server-auth-password password --import server_tools_source.sc
- env_example.txt を .env にコピーします。joern サーバーの起動構成と一致するように構成情報を変更します。
- テスト接続を実行します。test_mcp_client.py
test_mcp_client.py
情報を変更して、joern サーバーが正常に動作していることを確認します。uv run test_mcp_client.py
Starting MCP server test...
==================================================
Testing server connection...
[04/16/25 20:38:54] INFO Processing request of type CallToolRequest server.py:534
Connection test result: Successfully connected to Joern MCP, joern server version is XXX
- MCP サーバーを構成する cline で MCP サーバーを構成するには、
sample_cline_mcp_settings.json
を参照してください。 - MCPサーバーを使用して大規模言語モデルに質問するには、
prompts_en.md
を参照してください。
開発ノート
.env
ファイルは環境変数を保存するために使用されます.gitignore
ファイルは Git バージョン管理で無視されるファイルを定義します。pyproject.toml
プロジェクトのPython設定を定義します- MCPツール開発
server_tools.sc
に実装し、 server_tools.py
に定義を追加し、 test_mcp_client.py
にテストを追加します。
寄稿ガイドライン
プロジェクトの改善に役立つ問題やプル リクエストの送信を歓迎します。
ツールの追加を歓迎します。
参考文献
https://github.com/flankerhqd/jebmcp
https://docs.joern.io/server/
https://docs.joern.io/interpreter/