Skip to main content
Glama

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.

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.

-
security - not tested
A
license - permissive license
-
quality - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/slvnlrt/reptor-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server