mcp-joern
mcp-joern is an MCP server based on Joern, providing features to assist developers with code review and security analysis. Implemented in Python, it has straightforward installation requirements. The project structure includes the main server program, test programs, and common utility functions.
GitHub Stars
12
User Rating
Not Rated
Forks
2
Issues
1
Views
1
Favorites
0
Joern MCP Server
A simple MCP Server for Joern.
Project Introduction
This project is an MCP Server based on Joern, providing a series of features to help developers with code review and security analysis.
Environment Requirements
- Python >= 3.10 (default 3.12) & uv
- Joern
Installation Steps
Clone the project locally:
git clone https://github.com/sfncat/mcp-joern.git cd mcp-joern
Install Python dependencies:
uv venv .venv source .venv/bin/activate uv sync
Project Structure
├── 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
Usage
Start the Joern server:
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
Copy env_example.txt to .env Modify the configuration information to match the joern server startup configuration
Run the test connection: Modify the information in
test_mcp_client.py
to confirm the joern server is working properlyuv 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
Configure MCP server Configure the mcp server in cline, refer to
sample_cline_mcp_settings.json
.Use MCP server Ask questions to the large language model, refer to
prompts_en.md
Development Notes
.env
file is used to store environment variables.gitignore
file defines files to be ignored by Git version controlpyproject.toml
defines the Python configuration for the project- MCP tool development
- Implement in
server_tools.sc
, add definitions inserver_tools.py
, and add tests intest_mcp_client.py
- Implement in
Contribution Guidelines
Welcome to submit Issues and Pull Requests to help improve the project.
Welcome to add more tools.