Joern MCP Server

by sfncat
Verified

local-only server

The server can only run on the client’s local machine because it depends on local resources.

Integrations

  • Used for environment variable management, storing configuration information for connecting to the Joern server

  • Supports version control integration, used for cloning source code repositories for analysis

  • Provides the runtime environment for the MCP server, with utility functions and tools for code analysis

Servidor Joern MCP

Un servidor MCP simple para Joern.

Introducción del proyecto

Este proyecto es un servidor MCP basado en Joern, que proporciona una serie de funciones para ayudar a los desarrolladores con la revisión de código y el análisis de seguridad.

Requisitos ambientales

  • Python >= 3.10 (predeterminado 3.12) y uv
  • Joern

Pasos de instalación

  1. Clonar el proyecto localmente:
    git clone https://github.com/sfncat/mcp-joern.git cd mcp-joern
  2. Instalar dependencias de Python:
    uv venv .venv source .venv/bin/activate uv sync

Estructura del proyecto

├── 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

Uso

  1. Inicie el servidor 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
  2. Copiar env_example.txt a .env Modificar la información de configuración para que coincida con la configuración de inicio del servidor joern
  3. Ejecute la conexión de prueba: modifique la información en test_mcp_client.py para confirmar que el servidor joern funciona correctamente
    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
  4. Configurar el servidor MCP Configure el servidor mcp en cline, consulte sample_cline_mcp_settings.json .
  5. Utilice el servidor MCP Haga preguntas al modelo de lenguaje grande, consulte prompts_en.md

Notas de desarrollo

  • El archivo .env se utiliza para almacenar variables de entorno
  • El archivo .gitignore define los archivos que el control de versiones de Git debe ignorar
  • pyproject.toml define la configuración de Python para el proyecto
  • Desarrollo de herramientas MCP
    • Implementar en server_tools.sc , agregar definiciones en server_tools.py y agregar pruebas en test_mcp_client.py

Pautas de contribución

Le invitamos a enviar problemas y solicitudes de extracción para ayudarnos a mejorar el proyecto.

Bienvenido a agregar más herramientas.

Referencias

https://github.com/flankerhqd/jebmcp

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

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

-
security - not tested
F
license - not found
-
quality - not tested

Un servidor MCP (complemento conversacional multimodal) simple basado en Joern que proporciona capacidades de revisión de código y análisis de seguridad a través de interfaces de lenguaje natural.

  1. Project Introduction
    1. Environment Requirements
      1. Installation Steps
        1. Project Structure
          1. Usage
            1. Development Notes
              1. Contribution Guidelines
                1. References
                  ID: 9elq20usyv