返回市场
麦克佩恩-乔恩

麦克佩恩-乔恩

作者:sfncat27 星标更新:2025-11-14

项目介绍

MseeP.ai 安全评估徽章

Joern MCP 服务器

基于 Joern 的一个简单的 MCP 服务器。

<a href="https://glama.ai/mcp/servers/@sfncat/mcp-joern"> <img width="380" height="200" src="https://gips2.baidu.com/it/u=3551020009,662242165&fm=3081&app=3081&f=PNG?w=760&h=400" alt="Joern 服务器 MCP 服务器" /> </a>

项目介绍

该项目是一个基于 Joern 的 MCP 服务器,提供了一系列功能来帮助开发者进行代码审查和安全分析。

环境要求

  • Python >= 3.10(默认 3.12)& uv
  • Joern

安装步骤

  1. 将项目克隆到本地:

    git clone https://github.com/sfncat/mcp-joern.git
    cd mcp-joern
    
  2. 安装 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          # 服务器工具函数的 Scala 实现,使用源码获取方法的源代码
├── requirements.txt                # Python 依赖文件
├── sample_cline_mcp_settings.json  # 示例 cline MCP 配置文件
└── env_example.txt                 # 环境变量示例文件

使用说明

  1. 启动 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
    

    如果在 Windows 下使用,可能需要通过命令行或系统环境变量设置 JVM 系统变量。

    set _JAVA_OPTIONS=-Dfile.encoding=UTF-8
    

    设置 Joern 日志级别为 ERROR

    set SL_LOGGING_LEVEL=ERROR //Windows
    export SL_LOGGING_LEVEL=ERROR //Linux
    

    如果出现以下警告

    无法创建系统终端,正在创建哑终端(启用调试日志以获取更多信息)
    

    可以通过设置环境变量禁用它

    set TERM=dumb
    export TERM=dumb
    

    恢复默认行为

    set TERM=xterm-256color
    export TERM=xterm-256color
    
  2. env_example.txt 复制到 .env 修改配置信息以匹配 Joern 服务器启动配置

  3. 运行测试连接: 修改 test_mcp_client.py 中的信息,确认 Joern 服务器运行正常

    uv run test_mcp_client.py
    正在测试 MCP 服务器...
    ==================================================
    测试服务器连接...
    [04/16/25 20:38:54] 信息     处理类型为 CallToolRequest 的请求                                                                                                                     server.py:534
    连接测试结果:成功连接到 Joern MCP,Joern 服务器版本是 XXX
    
  4. 配置 MCP 服务器 在 cline 中配置 MCP 服务器,参考 sample_cline_mcp_settings.json

  5. 使用 MCP 服务器 向大型语言模型提问,参考 prompts_en.md

开发笔记

  • .env 文件用于存储环境变量
  • .gitignore 文件定义了 Git 版本控制忽略的文件
  • pyproject.toml 定义了项目的 Python 配置
  • MCP 工具开发
    • server_tools.sc 中实现,在 server_tools.py 中添加定义,并在 test_mcp_client.py 中添加测试

贡献指南

欢迎提交 Issue 和 Pull Request 来帮助改进项目。

欢迎添加更多工具。

参考资料

https://github.com/flankerhqd/jebmcp

https://docs.joern.io/server/

https://docs.joern.io/interpreter/