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: neo4j-server-remote

Требования

  • 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

  • A
    license
    B
    quality
    B
    maintenance
    A simple MCP (Multimodal Conversational Plugin) server based on Joern that provides code review and security analysis capabilities through natural language interfaces.
    18
    51
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables interaction with Neo4j graph databases through Cypher queries, supporting both read and write operations, schema exploration, and remote database connections via SSE or STDIO transport protocols.
    5
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    Enables querying cross-repo code dependencies, HTTP routes, database tables, and queues via an MCP server using Cypher queries.
    -