Skip to main content
Glama
a-chernobrov

Joern MCP Server

by a-chernobrov

Joern MCP Server

MCP-сервер для взаимодействия с Joern — платформой для анализа исходного кода и построения графов свойств кода (CPG — Code Property Graph).

Сервер общается с Joern через синхронный HTTP-эндпоинт /query-sync, поэтому не требует опроса состояния и подходит для выполнения любых CPGQL-запросов.

Возможности

Сервер предоставляет три MCP-инструмента:

Инструмент

Назначение

joern_query

Выполнить произвольный Joern/CPGQL-запрос к загруженному CPG

joern_load

Загрузить исходный код и построить CPG (PHP, Java, JS, Python, C/C++…)

joern_workspace

Показать загруженные проекты и активный CPG в рабочем пространстве

Related MCP server: codebadger

Требования

  • Python 3.10+

  • Joern — запущенный сервер (joern --server) на http://localhost:8080

  • Python-пакет mcp

Установка

pip install -r requirements.txt

Запуск

  1. Запустите сервер Joern:

    joern --server
  2. Подключите MCP-сервер к вашему клиенту (например, Trae). Пример конфигурации:

    {
      "mcpServers": {
        "joern": {
          "command": "python3",
          "args": ["/абсолютный/путь/к/server.py"]
        }
      }
    }

Интерактивный REPL

Для ручного выполнения запросов без MCP-клиента есть простой REPL:

python3 repl.py

После запуска вводите CPGQL-запросы в приглашении joern>.

Примеры запросов

cpg.method.name.l
cpg.call.name("exec").caller.name.l
cpg.identifier.name("_GET|_POST").l
cpg.method.name("login").ast.isCall.name.l
sink.reachableByFlows(source).p

Структура проекта

.
├── server.py         # MCP-сервер (инструменты joern_query / joern_load / joern_workspace)
├── repl.py           # Интерактивный REPL для ручных запросов
├── requirements.txt  # Python-зависимости
└── LICENSE           # GNU GPL v3.0

Переменные среды

Параметры подключения заданы в server.py и могут быть изменены:

  • JOERN_BASE — адрес сервера Joern (по умолчанию http://localhost:8080)

  • TIMEOUT — таймаут запроса в секундах (по умолчанию 120)

  • MAX_RESULT — максимальная длина вывода в символах (по умолчанию 8000)

Лицензия

Проект распространяется под лицензией GNU General Public License v3.0.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    A
    maintenance
    Enables AI agents and LLMs to build and query Joern Code Property Graphs from Git repositories, local paths, or pasted snippets, so they can run CPGQL queries, trace data flow and taint, slice programs, and hunt vulnerabilities across many languages.
    -
  • F
    license
    Not graded
    quality
    A
    maintenance
    Enables AI agents and LLMs to build and query Joern Code Property Graphs from Git repositories, local paths, or code snippets for CPGQL queries, data-flow and taint tracing, program slicing, and vulnerability hunting across many languages.
    -
  • F
    license
    Not graded
    quality
    A
    maintenance
    Enables AI agents and LLMs to build and query Joern Code Property Graphs from Git repositories, local paths, or pasted snippets, supporting CPGQL queries, data-flow and taint tracing, program slicing, and vulnerability hunting across many languages.
    -
  • F
    license
    Not graded
    quality
    A
    maintenance
    Enables AI agents and LLMs to query a codebase's structure and data flow by building Joern Code Property Graphs from pasted snippets, local paths, or Git repositories. Supports CPGQL queries, data flow and taint tracing, program slicing, and vulnerability hunting across many languages.
    -