Joern MCP 服务器是一个基于 Joern 的简单 MCP 服务器,能为开发人员提供代码审查和安全分析相关功能,助力开发工作高效开展。
Joern MCP 服务器是基于 Joern 的项目,可辅助开发人员进行代码审查与安全分析。以下为你介绍启动该服务器的步骤。
git clone https://github.com/sfncat/mcp-joern.git
cd mcp-joern
uv venv .venv
source .venv/bin/activate
uv sync
├── server.py # MCP 服务器主程序
├── test_mcp_client.py # 测试 Joern 服务器和 mcp 工具的测试程序
├── test_sc_tools.py # 直接测试 sc 工具的测试程序
├── common_tools.py # 公共工具函数
├── server_tools.py # 服务器工具函数
├── server_tools.sc # Scala 实现的服务器工具函数
├── server_tools_source.sc # 使用 sourceCode 获取方法源代码的 Scala 实现服务器工具函数
├── requirements.txt # Python 依赖文件
├── sample_cline_mcp_settings.json # 示例 cline mcp 配置文件
└── env_example.txt # 环境变量示例文件
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
或者
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
中的信息,确认 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: 成功连接到 Joern MCP,Joern 服务器版本为 XXX
在控制台中配置 MCP 服务器,请参考 sample_cline_mcp_settings.json
。
向大型语言模型提问,请参阅 prompts_en.md
.env
文件用于存储环境变量。.gitignore
文件定义了 Git 版本控制要忽略的文件。pyproject.toml
定义了项目的 Python 配置。server_tools.sc
中实现功能,在 server_tools.py
中添加定义,并在 test_mcp_client.py
中添加测试。欢迎提交 Issues 和 Pull Requests 来帮助改进项目。也欢迎添加更多工具。