Joern MCP 서버
Joern을 위한 간단한 MCP 서버입니다.
프로젝트 소개
이 ���로젝트는 Joern을 기반으로 한 MCP 서버로, 개발자의 코드 검토 및 보안 분석에 도움이 되는 다양한 기능을 제공합니다.
환경 요구 사항
- Python >= 3.10(기본값 3.12) & uv
- 조른
설치 단계
- 프로젝트를 로컬로 복제합니다.지엑스피1
- Python 종속성을 설치하세요:
uv venv .venv
source .venv/bin/activate
uv sync
프로젝트 구조
├── 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
용법
- 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
- 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: Successfully connected to Joern MCP, joern server version is XXX
- MCP 서버 구성 cline에서 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
에 테스트를 추가합니다.
기여 지침
프로젝트 개선에 도움이 되는 이슈와 풀 리퀘스트를 제출해 주세요.
더 많은 도구를 추가해 보세요.
참고문헌
https://github.com/flankerhqd/jebmcp
https://docs.joern.io/server/
https://docs.joern.io/interpreter/