Mcp Joern

Mcp Joern

🚀 Joern MCP 服务器

Joern MCP 服务器是一个基于 Joern 的简单 MCP 服务器,能为开发人员提供代码审查和安全分析相关功能,助力开发工作高效开展。

🚀 快速开始

Joern MCP 服务器是基于 Joern 的项目,可辅助开发人员进行代码审查与安全分析。以下为你介绍启动该服务器的步骤。

✨ 主要特性

  • 基于 Joern 构建,提供代码审查和安全分析功能。
  • 具备一系列工具函数和测试程序,方便开发与调试。

📦 安装指南

本地克隆项目

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 服务器主程序
├── 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 服务器

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 服务器

在控制台中配置 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 中添加测试。

贡献指南

欢迎提交 Issues 和 Pull Requests 来帮助改进项目。也欢迎添加更多工具。

参考资料

  • 0 关注
  • 0 收藏,11 浏览
  • system 提出于 2025-09-30 02:21

相似服务问题