Skip to main content
Glama

operant-mcp

NPM Version npm downloads GitHub stars License: MIT TypeScript MCP Server

Install in VS Code Install in Cursor

Security testing MCP server with 51 tools for penetration testing, network forensics, memory analysis, and vulnerability assessment.

Quick Start

npx operant-mcp

Or install globally:

npm install -g operant-mcp
operant-mcp

Related MCP server: pentestMCP

Usage with Claude Code

Add to your MCP config:

{
  "mcpServers": {
    "operant": {
      "command": "npx",
      "args": ["-y", "operant-mcp"]
    }
  }
}

Tools (51)

SQL Injection (6)

  • sqli_where_bypass — Test OR-based WHERE clause bypass

  • sqli_login_bypass — Test login form SQL injection

  • sqli_union_extract — UNION-based data extraction

  • sqli_blind_boolean — Boolean-based blind SQLi

  • sqli_blind_time — Time-based blind SQLi

  • sqli_file_read — Read files via LOAD_FILE()

XSS (2)

  • xss_reflected_test — Test reflected XSS with 10 payloads

  • xss_payload_generate — Generate context-aware XSS payloads

Command Injection (2)

  • cmdi_test — Test OS command injection

  • cmdi_blind_detect — Blind command injection via sleep timing

Path Traversal (1)

  • path_traversal_test — Test directory traversal with encoding variants

SSRF (2)

  • ssrf_test — Test SSRF with localhost bypass variants

  • ssrf_cloud_metadata — Test cloud metadata access via SSRF

PCAP/Network Forensics (8)

  • pcap_overview — Protocol hierarchy and endpoint stats

  • pcap_extract_credentials — Extract FTP/HTTP/SMTP credentials

  • pcap_dns_analysis — DNS query analysis

  • pcap_http_objects — Export HTTP objects

  • pcap_detect_scan — Detect port scanning

  • pcap_follow_stream — Follow TCP/UDP streams

  • pcap_tls_analysis — TLS/SNI analysis

  • pcap_llmnr_ntlm — Detect LLMNR/NTLM attacks

Reconnaissance (7)

  • recon_quick — Quick recon (robots.txt, headers, common dirs)

  • recon_dns — Full DNS enumeration

  • recon_vhost — Virtual host discovery

  • recon_tls_sans — Extract SANs from TLS certificates

  • recon_directory_bruteforce — Directory brute-force

  • recon_git_secrets — Search git repos for secrets

  • recon_s3_bucket — Test S3 bucket permissions

Memory Forensics (3)

  • volatility_linux — Linux memory analysis (Volatility 2)

  • volatility_windows — Windows memory analysis (Volatility 3)

  • memory_detect_rootkit — Linux rootkit detection

Malware Analysis (2)

  • maldoc_analyze — Full OLE document analysis pipeline

  • maldoc_extract_macros — Extract VBA macros

Cloud Security (2)

  • cloudtrail_analyze — CloudTrail log analysis

  • cloudtrail_find_anomalies — Detect anomalous CloudTrail events

Authentication (3)

  • auth_csrf_extract — Extract CSRF tokens

  • auth_bruteforce — Username enumeration + credential brute-force

  • auth_cookie_tamper — Cookie tampering test

Access Control (2)

  • idor_test — Test for IDOR vulnerabilities

  • role_escalation_test — Test privilege escalation

Business Logic (2)

  • price_manipulation_test — Test price/quantity manipulation

  • coupon_abuse_test — Test coupon stacking/reuse

Clickjacking (2)

  • clickjacking_test — Test X-Frame-Options/CSP

  • frame_buster_bypass — Test frame-busting bypass

CORS (1)

  • cors_test — Test CORS misconfigurations

File Upload (1)

  • file_upload_test — Test file upload bypasses

NoSQL Injection (2)

  • nosqli_auth_bypass — MongoDB auth bypass

  • nosqli_detect — NoSQL injection detection

Deserialization (1)

  • deserialization_test — Test insecure deserialization

GraphQL (2)

  • graphql_introspect — Full schema introspection

  • graphql_find_hidden — Discover hidden fields

Prompts (8)

Methodology guides for structured security assessments:

  • web_app_pentest — Full web app pentest methodology

  • pcap_forensics — PCAP analysis workflow

  • memory_forensics — Memory dump analysis (Linux/Windows)

  • recon_methodology — Reconnaissance checklist

  • malware_analysis — Malware document analysis

  • cloud_security_audit — CloudTrail analysis workflow

  • sqli_methodology — SQL injection testing guide

  • xss_methodology — XSS testing guide

System Requirements

Tools require various CLI utilities depending on the module:

  • Most tools: curl

  • PCAP analysis: tshark (Wireshark CLI)

  • DNS recon: dig, host

  • Memory forensics: volatility / vol.py / vol3

  • Malware analysis: olevba, oledump.py

  • Cloud analysis: jq

  • Secrets scanning: git

License

MIT

Available Tools

51 tools
auth_bruteforceA

Username enumeration and credential brute-force.

First enumerates valid usernames (if failure messages differ), then brute-forces passwords against confirmed usernames.

Returns: {"username_enumeration": [{"username": str, "exists": bool}], "valid_credentials": [{"username": str, "password": str}], "requests_sent": int}.

Side effects: Sends login requests. May trigger account lockout.

Errors: Rate limiting may block requests. Use realistic credentials to avoid WAF detection.

Inputs: url (required), usernames (required), passwords (required), username_field, +6 more.

auth_csrf_extractA

Extract CSRF tokens from HTML forms.

Searches for the token in hidden input fields, meta tags, and script blocks.

Returns: {"tokens_found": [{"source": str, "value": str}], "cookies": [str]}.

Side effects: Single GET request.

Inputs: url (required), token_name.

clickjacking_testA

Check X-Frame-Options and CSP frame-ancestors headers; generate PoC iframe HTML. Fetches response headers and checks for framing protections. If protections are missing, generates a ready-to-use PoC HTML page that embeds the target in a transparent iframe with a decoy button overlay. Returns: {headers, x_frame_options, csp_frame_ancestors, vulnerable, poc_html}. Side effects: Single HEAD/GET request.

Inputs: target_url (required).

cloudtrail_analyzeA

Parse and analyze AWS CloudTrail logs.

Extracts event timeline, unique users, event types, and source IPs.

Returns: {"event_count": int, "unique_users": [str], "event_types": [str], "source_ips": [str], "timeline": str}.

Side effects: Read-only file analysis. Requires jq.

Inputs: log_dir (required).

cloudtrail_find_anomaliesA

Find anomalies in CloudTrail logs: non-AWS IPs, unusual API calls, role assumptions.

Returns: {"non_aws_ips": [str], "unusual_events": [str], "role_assumptions": [str], "data_exfil_indicators": [str]}.

Side effects: Read-only file analysis.

Inputs: log_dir (required).

cmdi_blind_detectA

Detect blind command injection via time delay and OOB callbacks. Tests sleep-based delay detection and optional out-of-band (curl/nslookup to callback). Returns time_based results array and oob_payloads list. Side effects: Executes sleep on target if vulnerable. OOB payloads call back to callback_url.

Inputs: url (required), parameter (required), base_value, method, +2 more.

cmdi_testA

Test command injection using various shell operators. Tests ;, &&, ||, |, backtick, $(), and %0a (newline) operators with 'id' and 'whoami' as detection commands. Returns results array with operator, payload, status, output_snippet, likely_vulnerable. Side effects: Read-only detection commands (id, whoami). Sends ~14 requests.

Inputs: url (required), parameter (required), base_value, method, +1 more.

cors_testA

Test CORS misconfigurations: origin reflection, null origin trust, subdomain wildcards. Sends requests with various Origin headers and checks Access-Control-Allow-Origin and Access-Control-Allow-Credentials in the response. Misconfigurations allow attacker sites to read authenticated API responses. Returns: {results: [{test, origin_sent, acao, acac, vulnerable}], exploit_html}. Side effects: Read-only requests with custom Origin headers. Sends ~8 requests.

Inputs: url (required), api_endpoint (required), auth_cookie.

coupon_abuse_testA

Test coupon stacking and alternation bypass.

Tests each coupon individually, then alternates between coupons to see if discounts compound past the intended limit.

Returns: {"individual_results": [...], "stacking_results": [...], "stacking_possible": bool}.

Side effects: Applies coupons to the cart. May modify cart totals.

Inputs: url (required), coupon_endpoint (required), coupons (required), coupon_param, +2 more.

deserialization_testA

Detect and manipulate serialized objects in cookies. Analyzes cookie values for serialization patterns (PHP serialize, Java, .NET ViewState, base64-encoded JSON). If a serialized format is detected, attempts privilege escalation by modifying fields (admin=1, role=admin). Returns: {detection: {format, decoded, fields}, manipulation_results: [...]}. Side effects: Sends requests with modified cookies. May escalate privileges if successful.

Inputs: url (required), cookie_name (required), cookie_value, auth_cookie.

file_upload_testA

Test web shell upload with Content-Type bypass variants. Attempts to upload a PHP web shell using various techniques: 1) Direct .php upload 2) .php with image/jpeg Content-Type (Content-Type bypass) 3) Alternative extensions (.php5, .phtml, .phar, .php7, .phps) 4) Double extension (.php.jpg) 5) Null byte (.php%00.jpg). After each upload, attempts to access the uploaded file to check execution. Returns: {results: [{technique, upload_status, execution_status, output, successful}]}. Side effects: Uploads files to the server. May achieve remote code execution.

Inputs: url (required), upload_endpoint (required), upload_field, upload_path_prefix, +3 more.

frame_buster_bypassA

Test sandbox attribute bypass for JavaScript frame busters. Generates PoC HTML that uses iframe sandbox='allow-forms' to disable JavaScript execution (neutralizing frame-busting code) while still allowing form submission for clickjacking. Also checks if the target page contains common frame-busting patterns. Returns: {frame_buster_detected, patterns_found, sandbox_poc_html}. Side effects: Single GET request to detect frame-busting code.

Inputs: target_url (required).

graphql_find_hiddenA

Find hidden/undocumented fields on a GraphQL type using field suggestion errors. Sends queries with intentionally misspelled field names to trigger GraphQL's field suggestion feature, which reveals valid field names. Also tries common sensitive field names directly. Returns: {discovered_fields: [str], suggestion_results: [...], direct_probe_results: [...]}. Side effects: Read-only POST requests. Sends ~25 requests.

Inputs: url (required), type_name (required), known_field, query_name, +3 more.

graphql_introspectA

Run introspection query to enumerate all types, fields, and mutations. Sends the standard GraphQL introspection query (__schema) to discover the full API schema including hidden/undocumented fields, mutations, and types. Returns: {introspection_enabled, types: [{name, kind, fields: [str]}], mutations: [str], queries: [str]}. Side effects: Single POST request. Read-only.

Inputs: url (required), auth_header, auth_cookie.

idor_testA

Test Insecure Direct Object References by iterating through IDs/GUIDs.

Sends requests with each ID and compares response status codes and lengths. Differing responses suggest IDOR — the server returns data for other users' objects without proper authorization checks.

Returns: {"baseline": dict, "results": [{"id": str, "status": int, "length": int, "different": bool, "snippet": str}], "idor_candidates": [str]}.

Side effects: Read-only requests. Sends len(id_list) + 1 requests.

Errors: ConnectionError if target unreachable.

Inputs: url (required), parameter (required), id_list (required), auth_cookie, +1 more.

maldoc_analyzeA

Full malware document analysis pipeline.

  1. oledump.py — list OLE streams, identify macro-containing streams (marked 'M')

  2. olevba — extract VBA macro code

  3. Identify auto-execution triggers (Document_open, AutoOpen, Workbook_Open)

  4. Look for obfuscation patterns and base64 payloads

  5. Search for PowerShell, WMI, and shell execution indicators

Returns: {"ole_streams": str, "vba_macros": str, "auto_exec_triggers": [str], "suspicious_strings": [str], "iocs": [str]}.

Side effects: Read-only file analysis. Does NOT execute any payloads.

Errors: Requires oledump.py and olevba (pip install oletools).

Inputs: file_path (required).

maldoc_extract_macrosA

Extract raw VBA macros from an OLE document.

Returns: {"macros": str, "stream_count": int, "macro_streams": [str]}.

Side effects: Read-only file analysis.

Inputs: file_path (required).

memory_detect_rootkitB

Check for rootkits via syscall table tampering and hidden kernel modules. Runs linux_check_syscall and linux_hidden_modules plugins. Returns syscall_check, hidden_modules, rootkit_indicators, and likely_compromised. Read-only analysis.

Inputs: dump_path (required), profile (required).

nosqli_auth_bypassA

Test NoSQL operator injection ($ne, $gt, $regex) for authentication bypass. Sends payloads that abuse MongoDB query operators to bypass password checks. E.g., {"username":"admin","password":{"$ne":""}} matches any non-empty password. Returns: {results: [{payload_name, status, length, likely_bypass, snippet}]}. Side effects: Sends POST requests to the login endpoint. May create sessions.

Inputs: url (required), username_param, password_param, target_username.

nosqli_detectA

Test NoSQL injection detection in query parameters. Tests MongoDB operator injection ($ne, $gt, $regex, $where) in GET parameters and JSON body to detect NoSQL injection points. Returns: {baseline, results: [{payload_name, status, length, different}], injectable}. Side effects: Read-only. Sends ~10 requests.

Inputs: url (required), parameter (required), method, content_type.

path_traversal_testA

Test path traversal with encoding variants at multiple depths. Tries plain ../, URL-encoded %2e%2e/, double-encoded %252e%252e/, and null-byte/truncation bypasses. Returns results array with payload, status, length, contains_target per attempt, and vulnerable_payloads list. Side effects: Read-only GET requests. Sends ~32 requests.

Inputs: url (required), parameter (required), target_file, depth.

pcap_detect_scanA

Detect port scans by analyzing SYN packets without ACK. Returns scanners (ip + syn_count), top_scanned_ports, and a hint. Read-only file analysis.

Inputs: pcap_path (required).

pcap_dns_analysisA

Extract and analyze DNS queries from a PCAP. Returns dns_queries_by_frequency, dns_servers, and ipv6_dns_endpoints. Read-only file analysis.

Inputs: pcap_path (required), source_ip.

pcap_extract_credentialsA

Extract credentials from FTP, HTTP, and SMTP traffic. Returns ftp_credentials, http_authorization_headers, http_post_data, and smtp_data. Read-only, may contain sensitive credentials.

Inputs: pcap_path (required), protocol.

pcap_follow_streamB

Follow a TCP/UDP/HTTP stream in a PCAP. Returns stream_content, stream_num, and protocol. Read-only file analysis.

Inputs: pcap_path (required), stream_num (required), protocol.

pcap_http_objectsB

Export HTTP objects (files) from a PCAP to a directory. Returns exported_count, output_dir, files list, and tshark_output. Creates files in the output directory.

Inputs: pcap_path (required), output_dir (required).

pcap_llmnr_ntlmA

Detect LLMNR poisoning and extract NTLM credentials from SMB. Returns llmnr_queries, ntlm_auth_entries, counts, and poisoning_indicators. Read-only file analysis.

Inputs: pcap_path (required).

pcap_overviewA

Get protocol hierarchy and endpoint statistics from a PCAP. Returns protocol_hierarchy, endpoints, packet_count, and capture_info. Read-only file analysis, no network access.

Inputs: pcap_path (required).

pcap_tls_analysisA

Analyze TLS handshakes, SNI values, and certificate data in a PCAP. Returns sni_values, tls_versions, server_ephemeral_keys, and client_randoms. Read-only file analysis.

Inputs: pcap_path (required).

price_manipulation_testA

Test client-side price manipulation by sending modified price values.

Sends price=0, price=1, price=-1, and negative quantity variants to check if the server validates prices server-side.

Returns: {"results": [{"test_case": str, "payload": str, "status": int, "length": int, "accepted": bool, "snippet": str}]}.

Side effects: May add items to cart or create orders at manipulated prices.

Inputs: url (required), price_param (required), cart_endpoint, extra_params, +2 more.

recon_directory_bruteforceA

Directory brute-force using parallel curl requests. Returns results (path/status/length), found_count, and paths_tested. Read-only GET requests, sends one request per wordlist entry per extension.

Inputs: target (required), wordlist, threads, extensions.

recon_dnsA

Full DNS enumeration: A, AAAA, MX, TXT, NS, CNAME, AXFR, BIND version. Returns records object, axfr_result, and bind_version. Read-only DNS queries.

Inputs: target (required).

recon_git_secretsA

Search git history for secrets: commit messages, author info, branches, deleted files. Returns secrets_in_code_history, unique_authors, branches, deleted_files_summary, and suspicious_commit_messages. Read-only git operations on local repository.

Inputs: repo_path (required).

recon_quickA

Quick reconnaissance: robots.txt, security.txt, common dirs, response headers. Returns robots_txt, security_txt, response_headers, accessible_directories, and error_page_snippet. Read-only, sends ~10 GET requests.

Inputs: target (required).

recon_s3_bucketA

Test an S3 bucket for public access (listing, reading). Returns bucket_url, listable, listing_snippet, and readable_files. Read-only requests to S3.

Inputs: bucket_name (required).

recon_tls_sansA

Extract Subject Alternative Names from the TLS certificate. Returns common_name, subject_alternative_names, issuer, validity, and san_count. Read-only TLS handshake.

Inputs: target (required).

recon_vhostA

Brute-force virtual hosts by fuzzing the Host header. Returns baseline_length, results (vhost/status/length/length_delta), unique_vhosts, and tested count. Read-only, sends one request per wordlist entry.

Inputs: target (required), base_domain (required), wordlist.

role_escalation_testA

Test cookie/parameter-based role escalation.

Sends requests with various role cookie values (Admin=true, roleid=2, etc.) and checks for privilege escalation. Also tests JSON body field manipulation for profile update endpoints.

Returns: {"baseline": dict, "results": [{"value": str, "status": int, "length": int, "escalated": bool}], "escalation_candidates": [str]}.

Side effects: If json_body is set, sends POST/PUT requests that may modify state.

Inputs: url (required), cookie_name (required), cookie_values (required), extra_cookies, +2 more.

sqli_blind_booleanA

Boolean-based blind SQLi with binary search character enumeration. Uses ASCII(SUBSTRING(...))>N technique with binary search for efficiency. Determines true/false by comparing response lengths. Returns extracted_value, characters_found, requests_sent. Side effects: Read-only. Sends ~8 requests per character (binary search on ASCII 32-126).

Inputs: url (required), parameter (required), query, max_length.

sqli_blind_timeA

Time-based blind SQLi detection for MySQL, PostgreSQL, and MSSQL. Sends sleep-inducing payloads and measures response time to detect injection. Returns vulnerable, dbtype, and results array with payload, response_time, triggered. Side effects: Read-only but slow (each payload waits up to delay_seconds). Sends 3 requests.

Inputs: url (required), parameter (required), dbtype, delay_seconds.

sqli_file_readA

Read server files via UNION SELECT LOAD_FILE(). Requires MySQL FILE privilege. Uses LOAD_FILE() in a UNION SELECT. Returns file_content, success, target_file. Errors: FILE privilege required. Returns empty if privilege denied.

Inputs: url (required), parameter (required), target_file, column_count, +1 more.

sqli_login_bypassA

Bypass login via SQL comment truncation (administrator'--). Extracts CSRF token from form, then POSTs with SQLi in the username field. The -- comment truncates the password check. Returns csrf_extracted, status_code, response_length, headers, likely_bypass.

Inputs: url (required), username, csrf_field, username_field, +1 more.

sqli_union_extractA

Step-by-step UNION-based data extraction. 1. Finds column count via ORDER BY. 2. Identifies string-displayable columns via UNION SELECT. 3. Extracts database name and version. 4. Lists tables and columns. Returns column_count, string_columns, db_name, db_version, tables, user_columns. Side effects: Read-only GET requests. Sends ~30 requests depending on column count.

Inputs: url (required), parameter (required), max_columns.

sqli_where_bypassA

Test WHERE clause bypass via OR 1=1 variants. Sends multiple payloads (OR 1=1--, OR '1'='1, OR 1=1/*, etc.) against the target parameter and compares response lengths to the baseline. Returns baseline_length and results array. Side effects: None (read-only GET requests). Sends 7 requests total.

Inputs: url (required), parameter (required), value (required).

ssrf_cloud_metadataA

Test SSRF access to cloud metadata endpoints (AWS/GCP/Azure). Attempts to reach instance metadata services through the SSRF vector. Returns results array with provider, endpoint, status, length, response_snippet. Side effects: May cause target to request cloud metadata. Could expose IAM credentials if successful.

Inputs: url (required), parameter (required), cloud_provider, method.

ssrf_testA

Test SSRF with localhost bypass variants. Sends 10+ representations of localhost (127.0.0.1, 0, decimal, hex, IPv6, etc.) to check if the server fetches internal resources. Returns results array with variant, payload_url, status, length, different_from_baseline per attempt. Side effects: May cause the target server to make internal requests.

Inputs: url (required), parameter (required), internal_target, method.

volatility_linuxA

Run a Volatility 2 Linux plugin against a memory dump. Returns plugin, profile, success, output, and errors. Read-only analysis. Requires volatility2 (vol.py) on PATH.

Inputs: dump_path (required), profile (required), plugin (required).

volatility_windowsA

Run a Volatility 3 Windows plugin against a memory dump. Returns plugin, success, output, and errors. Read-only analysis, Volatility 3 auto-detects OS. Requires vol3 (vol) on PATH.

Inputs: dump_path (required), plugin (required).

xss_payload_generateA

Generate context-appropriate XSS payloads with optional filter evasion. Returns a list of payloads tailored to the injection context and filter bypass requirements. Returns context, filter_bypass, payloads array, notes. Side effects: None. Pure payload generation, no network requests.

Inputs: context (required), filter_bypass, callback_url.

xss_reflected_testA

Test multiple reflected XSS vectors against a parameter. Sends 10 payloads (script tags, event handlers, SVG, attribute injection, case variation, template literals) and checks if they appear unescaped in the response. Returns results array with reflected/encoded/status per payload, and vulnerable_count. Side effects: Read-only GET requests. Sends 10 requests.

Inputs: url (required), parameter (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.6/5.0

    Scored across 51 tools

    Disambiguation4/5

    Tools are grouped by domain prefixes (pcap_, recon_, sqli_, etc.) and each description specifies a unique technique. Minor overlap exists between clickjacking/frame-buster tools and cookie/role manipulation tools, but the descriptions are explicit enough to avoid serious misselection.

    Naming Consistency4/5

    All tool names follow snake_case with clear domain prefixes, making them readable and predictable. However, verb placement is inconsistent—some use noun_verb (cloudtrail_analyze), others verb_placement varies (pcap_detect_scan, sqli_blind_time)—so the pattern is not uniform.

    Tool Count2/5

    51 tools is far beyond the typical well-scoped range and makes the server unwieldy for agents. The set spans unrelated domains—web testing, PCAP analysis, memory forensics, and cloud log review—which would be better served by splitting into smaller specialized servers.

    Completeness4/5

    The tool surface is broad and deep, covering reconnaissance, SQLi/NoSQLi/XSS/SSRF, authentication flaws, PCAP analysis, and memory forensics. Minor gaps exist, such as no dedicated port scanner or LFI/RFI tester, but core offensive security workflows are well supported.

    Maintenance

    ActivityInactive
    ResponsivenessLimited data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      Not graded
      maintenance
      Provides access to 13+ penetration testing and security audit tools through a unified MCP interface. Enables security professionals to perform vulnerability scanning, web fuzzing, network reconnaissance, and other security assessments through containerized tools like Nuclei, Nmap, SQLMap, and FFUF.
      MIT
    • F
      license
      Not graded
      quality
      C
      maintenance
      An MCP server that exposes over 20 standard penetration testing utilities, such as Nmap, SQLMap, and OWASP ZAP, as callable tools for AI agents. It enables natural language control over complex security workflows for automated and interactive penetration testing.
      115
      -
    • F
      license
      Not graded
      quality
      D
      maintenance
      A comprehensive MCP server for automated bug bounty hunting and security reconnaissance, featuring over 28 specialized tools for subdomain discovery, vulnerability scanning, and traffic analysis. It integrates automated scope validation and professional reporting across multiple platforms like HackerOne and Bugcrowd to streamline security testing.
      5
      -
    • A
      license
      Not graded
      quality
      C
      maintenance
      A security pentesting MCP server with 89 tools across 10 categories, enabling comprehensive reconnaissance, web security, OSINT, and exploitation tasks. It features a native Windows/WSL bridge for Kali Linux tools and scope-aware permission tiers for safe and efficient scanning.
      4
      MIT