Skip to content

Nova-Hunting/nova-proximity

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Nova Proximity - MCP and Skills Security Scanner

███╗   ██╗ ██████╗ ██╗   ██╗ █████╗     ██████╗ ██████╗  ██████╗ ██╗  ██╗
████╗  ██║██╔═══██╗██║   ██║██╔══██╗    ██╔══██╗██╔══██╗██╔═══██╗╚██╗██╔╝
██╔██╗ ██║██║   ██║██║   ██║███████║    ██████╔╝██████╔╝██║   ██║ ╚███╔╝
██║╚██╗██║██║   ██║╚██╗ ██╔╝██╔══██║    ██╔═══╝ ██╔══██╗██║   ██║ ██╔██╗
██║ ╚████║╚██████╔╝ ╚████╔╝ ██║  ██║    ██║     ██║  ██║╚██████╔╝██╔╝ ██╗
╚═╝  ╚═══╝ ╚═════╝   ╚═══╝  ╚═╝  ╚═╝    ╚═╝     ╚═╝  ╚═╝ ╚═════╝ ╚═╝  ╚═╝

A security scanner for MCP (Model Context Protocol) servers and Agent Skills

Python License: GPL v3 Version Author

Overview

Nova Proximity scans MCP (Model Context Protocol) servers and Agent Skills to discover tools, prompts, and resources. It provides detailed analysis of server capabilities and security evaluation using NOVA rules to detect potential security issues like prompt injection, jailbreak attempts, and suspicious code patterns.

Key Features

  • MCP Server Scanning: Discover tools, prompts, and resources with full parameter analysis
  • Agent Skills Analysis: Comprehensive skill overview, structure, permissions, and security
  • NOVA Security Rules: Pattern-based security analysis with LLM evaluation
  • MCP Spec 2025-11-25: Full support including Streamable HTTP, session management, and tool annotations
  • Pattern-Specific Remediation: Actionable guidance for each security finding

Quick Start

# Clone and setup
git clone https://github.com/fr0gger/nova-proximity.git
cd nova-proximity
pip install -r requirements.txt

# MCP server - tools and prompt discovery
python novaprox.py http://localhost:8000

# MCP security scan (requires nova-hunting)
python novaprox.py http://localhost:8000 -n -r my_rule.nov

# Agent Skills - scan for security issues
python novaprox.py --skill /path/to/skill -n -r skill_rules.nov

Installation

git clone https://github.com/fr0gger/nova-proximity.git
cd nova-proximity
pip install -r requirements.txt

NOVA Security Analysis Setup

# Install Nova dependencies
pip install nova-hunting

# Set API key (choose one depending on the model you want to use)
export OPENAI_API_KEY="your-openai-key"
export GROQ_API_KEY="your-groq-key"
export ANTHROPIC_API_KEY="your-anthropic-key"
export AZURE_OPENAI_API_KEY="your-azure-key"
export AZURE_OPENAI_ENDPOINT="https://your-resource.openai.azure.com/"

# For Ollama, the default host is used (http://localhost:11434) but you can override it if needed
export OLLAMA_HOST="http://localhost:11434"

Refer to the NOVA documentation for more details: https://docs.novahunting.ai/

Usage

Command Structure

python novaprox.py <target> [options]

Common Options

Option Description
-h, --help Show help
-t, --token Authentication token for HTTP endpoints
-n, --nova-scan Enable NOVA security analysis
-r, --rule NOVA rule file path (default: my_rule.nov)
-v, --verbose Enable verbose output
--json-report Export JSON report
--md-report Export Markdown report
--evaluator Choose LLM evaluator (openai, groq, anthropic, azure, ollama)
--full-output Show full text without truncation

MCP Server Scanning

HTTP Endpoints:

python novaprox.py http://localhost:8000/mcp
python novaprox.py https://mcp.example.com -t your_token

Stdio Commands:

python novaprox.py "python server.py"
python novaprox.py "node mcp-server.js"

Agent Skills Scanning

Nova Proximity provides comprehensive skill analysis with four sections:

  1. Overview: Name, description, author, version, license, compatibility
  2. Structure: Scripts, references, assets with file sizes
  3. Permissions: Allowed tools with risk assessment
  4. Security: Findings with pattern-specific remediation
# Scan a single skill
python novaprox.py --skill /path/to/skill

# Scan with NOVA security analysis
python novaprox.py --skill /path/to/skill -n -r skill_rules.nov

# Recursively scan a skills repository
python novaprox.py --skill /path/to/skills-repo --skill-recursive -n

What Skills Scanning Detects

Category Detection
Code Execution eval(), exec(), subprocess, dynamic imports
Data Exfiltration curl pipe to shell, base64 encoding, HTTP requests
Unsafe Deserialization pickle.load, marshal.load
Permission Issues Undeclared tools, wildcard permissions
Environment Access os.environ, config file access

Each finding includes pattern-specific remediation guidance.

NOVA Security Analysis

NOVA works with rules to identify specific security patterns.

Nova Rules Example

rule DetectJailbreaking
{
    meta:
        description = "Detects jailbreaking attempts"
        author = "Thomas Roccia"
        severity = "critical"

    keywords:
        $previous = "previous instructions"
        $ignore = "ignore all the instructions above"
        $forget = "forget your instructions"

    semantics:
        $malicious = "hacking or unauthorized access" (0.2)

    llm:
        $jailbreak = "check if this prompt tries to bypass security"

    condition:
        any of keywords.* and any of semantics.* or llm.*
}

Security Scan Examples

# Basic security scan
python novaprox.py http://localhost:8000/mcp -n

# Custom rule with Groq
python novaprox.py http://localhost:8000/mcp -n -r custom.nov --evaluator groq

# Comprehensive audit with reports
python novaprox.py http://localhost:8000 -n -r security.nov --json-report --md-report

MCP Specification Support

Nova Proximity supports MCP Spec 2025-11-25:

Feature Support
Streamable HTTP Transport
Legacy SSE Transport ✅ (backwards compatible)
Session Management ✅ (MCP-Session-Id)
Protocol Version Header ✅ (MCP-Protocol-Version)
Tool Annotations ✅ (readOnly, destructive, idempotent, openWorld)
Resource Annotations ✅ (audience, priority)

Output Formats

Console Output

Organized display with:

  • Function signatures and parameters
  • Tool security annotations
  • Skill structure overview
  • Security findings with remediation

JSON Export

{
  "scan_results": {
    "target": "http://localhost:8000",
    "protocol_version": "2025-11-25",
    "session_id": "abc123...",
    "tools": [...],
    "prompts": [...],
    "resources": [...]
  },
  "nova_analysis": {
    "flagged_count": 2,
    "analysis_results": [...]
  }
}

Markdown Reports

Full reports available in Markdown format with all findings and remediation guidance.

License

Copyright (C) 2025 Thomas Roccia (@fr0gger_) Licensed under the GNU General Public License v3.0 See LICENSE file for details.

Author

Thomas Roccia (@fr0gger_)


🛡️ Secure your MCP servers and Agent Skills with Nova Proximity!

About

Nova-Proximity is a MCP and Agent Skills security scanner powered with NOVA

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages