reptor-mcp
An MCP server for Reptor/SysReptor that exposes the reptor CLI tool as a programmable service, configured via environment variables.
reptor-mcp: An MCP Server for Reptor/SysReptor
This project transforms the reptor CLI tool into an MCP (Model-Context-Protocol) server, exposing its powerful pentest reporting and automation features as a programmable service.
It allows other tools, scripts, or AI agents to programmatically interact with SysReptor via the MCP protocol, facilitating integration into automated workflows.
[!WARNING] Alpha Software: The underlying
reptorCLI tool is in alpha. Its API may change, potentially breakingreptor-mcp.
[!CAUTION] No Authentication: This server has no authentication or authorization. It is designed for local use only. DO NOT EXPOSE IT TO THE INTERNET OR UNTRUSTED NETWORKS.
[!IMPORTANT] Data Sensitivity: If you handle sensitive project data, consider the implications of sending it to LLMs via this server. Use
REPTOR_MCP_EXCLUDE_FIELDSto strip sensitive fields before they reach the LLM.
Features
- Dynamic Tool Generation: Automatically creates MCP tools from all available
reptorplugins (nmap, nessus, burp, zap, sslyze, etc.). - Direct API Tools: Provides structured tools for findings CRUD, schema discovery, and template management using reptor's Python API directly.
- Field Exclusion: Strips sensitive fields from data before returning it to LLM clients (configurable via environment variable).
- Async-Safe: Non-blocking event loop with thread-safe serialized plugin execution.
Prerequisites
- Python 3.10+
uv(recommended) orpip- A running SysReptor instance with an API token
Installation
git clone https://github.com/slvnlrt/reptor-mcp.git
cd reptor-mcp
uv venv && source .venv/bin/activate
uv pip install -e .
This installs reptor and fastmcp automatically from PyPI. No need to clone the reptor repository separately.
Development setup (local reptor clone)
If you need to work against a local checkout of reptor (e.g. to test unreleased changes):
uv pip install -e /path/to/reptor-source
uv pip install -e .
Alternatively, set REPTOR_MAIN_PATH=/path/to/reptor-source at runtime to inject it into sys.path.
Configuration
The server is configured via environment variables:
| Variable | Required | Description |
|---|---|---|
REPTOR_SERVER | Yes | URL of your SysReptor instance |
REPTOR_TOKEN | Yes | Your SysReptor API token |
REPTOR_PROJECT_ID | No | Default project ID for operations |
REPTOR_MCP_INSECURE | No | Set to true to disable SSL verification |
REQUESTS_CA_BUNDLE | No | Path to a custom CA bundle file |
REPTOR_MCP_EXCLUDE_FIELDS | No | Comma-separated field names to strip from LLM responses (e.g. internal_notes,api_token) |
REPTOR_MCP_DEBUG | No | Set to true for verbose debug logging |
Running the Server
fastmcp run mcp_server.py:mcp --transport streamable-http --port 8008
The server will be accessible at http://localhost:8008/mcp/.
Client Connection
Connect an MCP client using a configuration like this (e.g., in mcp_settings.json):
{
"mcpServers": {
"reptor-mcp": {
"type": "streamable-http",
"url": "http://localhost:8008/mcp/"
}
}
}
Available Tools
Custom Tools (Direct API)
These tools use reptor's Python API directly for structured, schema-aware operations:
| Tool | Description |
|---|---|
list_findings | Lists findings with filters (status, severity, title). |
get_finding_details | Gets full details of a finding by ID. |
get_finding_schema | Discovers available finding fields, types, and constraints for a project. Call before create_finding or patch_finding. |
create_finding | Creates a new finding from a flat data dict. |
patch_finding | Updates a single field on a finding. |
delete_finding | Deletes a finding by ID (requires explicit confirmation). |
upload_template | Uploads a finding template from JSON or TOML. |
Plugin Tools (Dynamic Wrappers)
The server dynamically wraps all reptor CLI plugins as MCP tools:
| Category | Tools |
|---|---|
| Vulnerability Importers | nessus, burp, nmap, openvas, zap, qualys, sslyze |
| Finding Management | finding, findingfromtemplate, deletefindings, exportfindings |
| Project Management | project, createproject, deleteprojects, pushproject |
| Templates | template |
| Notes & Files | note, file |
| Translation | translate (via DeepL) |
| Import/Export | ghostwriter, defectdojo, importers, packarchive, unpackarchive |
The exact arguments for each tool can be inspected via a connected MCP client.
Relationship to reptor's Native MCP Server
Since reptor v0.33, reptor includes its own built-in MCP server (reptor mcp). The two servers are complementary:
| Capability | reptor-mcp | Native reptor mcp |
|---|---|---|
| Findings CRUD | :white_check_mark: | :white_check_mark: |
| Finding schema discovery | :white_check_mark: | :white_check_mark: |
| Report sections CRUD | :x: | :white_check_mark: |
| Vulnerability importers (nmap, nessus, burp, etc.) | :white_check_mark: | :x: |
| Project management (search, create, export, duplicate) | :white_check_mark: | :x: |
| Notes, files, translation | :white_check_mark: | :x: |
| Templates management | :white_check_mark: | :white_check_mark: |
| Field exclusion | :white_check_mark: | :white_check_mark: |
Architecture
mcp_server.py # Server entry point, lifespan, configuration
├── tool_generator.py # Dynamic MCP tool generation from plugin argparse definitions
│ ├── signature_utils.py # argparse → Python function signature translation
│ └── wrapper_utils.py # Plugin execution, stdin/stdout capture, config handling
├── custom_tools.py # Direct API tools (findings CRUD, schema, templates)
└── tool_config.py # Plugin exclusions, stdin consumers, config overwrite mappings
Key design decisions:
- Plugin wrappers run in threads with a serialization lock, keeping the async event loop responsive while protecting shared state.
- Custom tools use
asyncio.to_thread()for non-blocking API calls. - Field exclusion recursively strips specified fields from all nested data structures before returning to the client.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgements
This project would not be possible without the original reptor CLI tool developed by the SysReptor team and its contributors. reptor-mcp builds upon their excellent work to provide an MCP interface.
संबंधित सर्वर
Alpha Vantage MCP Server
प्रायोजकAccess financial market data: realtime & historical stock, ETF, options, forex, crypto, commodities, fundamentals, technical indicators, & more
DeepSeek-Claude MCP Server
Enhance Claude's reasoning capabilities by integrating DeepSeek's advanced engine.
Cisco NSO MCP Server
An MCP server for Cisco NSO that exposes its data and operations as MCP primitives.
Gru Sandbox
Gru-sandbox(gbox) is an open source project that provides a self-hostable sandbox for MCP integration or other AI agent usecases.
EdgeOne Pages MCP
An MCP server and client implementation for EdgeOne Pages Functions, supporting OpenAI-formatted requests.
MCP Memory Keeper
A server for persistent context management in Claude AI coding assistants, using a local SQLite database for storage.
JSONPlaceholder
A free public REST API for testing and prototyping, powered by JSONPlaceholder.
Model Context Protocol servers
A collection of reference MCP server implementations in TypeScript and Python, demonstrating MCP features and SDKs.
MCP Servers Collection
A collection of MCP servers for Claude Desktop, providing access to network tools, code linters, and Proxmox virtualization management.
DevContext
Provides developers with continuous, project-centric context awareness. Requires a TursoDB database.
MCP QEMU VM Control
Give your AI full computer access — safely. Let Claude (or any MCP-compatible LLM) see your screen, move the mouse, type on the keyboard, and run commands — all inside an isolated QEMU virtual machine. Perfect for AI-driven automation, testing, and computer-use experiments without risking your host system.