Skip to main content

PRAQTOR MCP-S — AI Agent Security Scanner for MCP servers

Project description

PRAQTOR MCP-S

AI Agent Security Scanner for MCP Servers

PyPI version Python License: MIT

Scan live MCP servers and configuration files for security vulnerabilities. 8 detection engines, attack chain analysis, zero false positives.

Installation

pip install praqtor-mcp

Quick Start

# Set your API key
export PRAQTOR_API_KEY=your-api-key

# Scan a live MCP server by URL
praqtor-mcp scan-url https://mcp.example.com/sse

# Scan a config file
praqtor-mcp scan config.json

# Output as JSON
praqtor-mcp scan-url https://mcp.example.com/sse --format json

# Output as SARIF (for GitHub Advanced Security)
praqtor-mcp scan-url https://mcp.example.com/sse --format sarif > results.sarif

How It Works

URL Scan — Point at any live MCP server. PRAQTOR connects via SSE or Streamable HTTP, discovers tools automatically, then runs all 8 security engines against the real tool definitions.

Config Scan — Pass your mcpServers JSON configuration. PRAQTOR analyzes the server definitions, tool schemas, and cross-server interactions.

Detection Engines

Engine Code What It Detects
Secret & Data Exposure SDE API keys, tokens, credentials in configs
Semantic Threat Analysis STA Tool poisoning, description manipulation
Schema Integrity Monitor SIM Schema drift, type confusion attacks
Package Provenance PPV Supply chain risks, unverified packages
Cross-Origin Influence COI Cross-server trust violations
Data Flow Path Analysis DFP Sensitive data flowing between tools
Permission Alignment CPA Over-permissioned tool capabilities
Attack Surface Hardening ASH Injection surfaces, SSRF, command injection

Plus ENABLES — attack chain wiring that connects findings across engines.

Commands

scan-url — Scan a Live MCP Server

praqtor-mcp scan-url https://mcp.example.com/sse

Connects to the MCP server, performs protocol handshake, discovers all tools via tools/list, and runs the full 8-engine scan.

scan — Scan a Config File

praqtor-mcp scan my-mcp-config.json

Analyzes an MCP configuration file (the same format used by Claude Desktop, Cursor, etc.).

health — Check API Status

praqtor-mcp health

Output Formats

Format Flag Use Case
Text --format text Terminal output with colors (default)
JSON --format json Programmatic consumption, CI/CD
SARIF --format sarif GitHub Advanced Security integration

Filtering

# Only show critical findings
praqtor-mcp scan-url https://mcp.example.com/sse --severity critical

# Limit output
praqtor-mcp scan-url https://mcp.example.com/sse --limit 10

CI/CD Integration

GitHub Actions

- name: Scan MCP Config
  run: |
    pip install praqtor-mcp
    praqtor-mcp scan mcp-config.json --format sarif > praqtor-results.sarif
  env:
    PRAQTOR_API_KEY: ${{ secrets.PRAQTOR_API_KEY }}

- name: Upload SARIF
  uses: github/codeql-action/upload-sarif@v3
  with:
    sarif_file: praqtor-results.sarif

Exit Codes

Code Meaning
0 Passed — no critical or high findings
1 Warning — high severity findings detected
2 Failed — critical findings detected

Configuration

Set credentials via environment variables or command-line flags:

# Environment variables (recommended)
export PRAQTOR_API_URL=https://praqtormcp.fly.dev
export PRAQTOR_API_KEY=your-api-key

# Or use flags
praqtor-mcp scan-url https://example.com/sse --api-url https://praqtormcp.fly.dev --api-key YOUR_KEY

API

PRAQTOR MCP-S also provides a REST API for programmatic access:

curl -X POST https://praqtormcp.fly.dev/api/v1/scan/url \
  -H "X-API-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://mcp.example.com/sse"}'

Full API docs: https://praqtormcp.fly.dev/api

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

praqtor_mcp-1.0.0.tar.gz (9.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

praqtor_mcp-1.0.0-py3-none-any.whl (9.5 kB view details)

Uploaded Python 3

File details

Details for the file praqtor_mcp-1.0.0.tar.gz.

File metadata

  • Download URL: praqtor_mcp-1.0.0.tar.gz
  • Upload date:
  • Size: 9.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for praqtor_mcp-1.0.0.tar.gz
Algorithm Hash digest
SHA256 91e1bd2382214ad22735a574df3e71d7f51f045d23714a4a670402ffe1da7a3a
MD5 b782b6f99a012efd82a698406362af15
BLAKE2b-256 132b85d1f77664b57fc0bbdb5e148423635f26311a045ccbf46f7ea9caff267f

See more details on using hashes here.

File details

Details for the file praqtor_mcp-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: praqtor_mcp-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 9.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for praqtor_mcp-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3dcae6902dcbc0725b1d24fc9c4ad8a2705badb007b35e993153b0c2d99e1ac9
MD5 2f319f267c1737897cbbc166c5d4e6c1
BLAKE2b-256 9187d7404b6fd90cebd7d12e643431a94557636d2377aad018015334993d5806

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page