reptor-mcp
MCP server for reptor/SysReptor
Documentation
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 `reptor` CLI tool is in alpha. Its API may change, potentially breaking `reptor-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_FIELDS` to strip sensitive fields before they reach the LLM.
Features
- Dynamic Tool Generation: Automatically creates MCP tools from all available `reptor` plugins (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) or `pip`
- 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 8008The 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 mappingsKey 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.
Frequently asked questions
What is reptor-mcp?
reptor-mcp is MCP server for reptor/SysReptor
How do I install reptor-mcp?
Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.
Is reptor-mcp open source?
Yes — it is hosted on GitHub at https://github.com/slvnlrt/reptor-mcp and has 10 stars.
Related MCP tools
Cognee is the open-source AI memory platform for agents. Give your AI agents persistent long-term memory across sessions with a self-hosted knowledge graph engine.
Automate browser based workflows with AI
Hindsight: Agent Memory That Learns
A privacy-first app that strips AI watermarks from content you own.
Agent framework and applications built upon Qwen>=3.0, featuring Function Calling, MCP, Code Interpreter, RAG, Chrome extension, etc.
The power of Claude Code / GeminiCLI / CodexCLI + [Gemini / OpenAI / OpenRouter / Azure / Grok / Ollama / Custom Model / All Of The Above] working as one.
Run your own MCP server? See who uses it and what to fix.
Measure it with TrackMCP