Catalog PyPI
PACKAGE EXPLORERView in registry

agentseal

PyPI

Security toolkit for AI agents - machine scan for dangerous skills/MCP configs + prompt injection/extraction testing

ai-agentsllmpentestingprompt-injectionsecurity
Versions collected1
Direct dependencies10From release 0.10.0
Last observed20 Oct, 23:18 UTC

README

Version 0.10.0 documentation

AgentSeal

Security scanner for AI agents

PyPI npm Downloads License Follow on X

Docs · MCP Registry · Dashboard · Blog


pip install agentseal
agentseal guard

Scans your machine for dangerous skill files, MCP server configs, and toxic data flows across 17+ AI agents. No API key required.


Architecture

graph TD
    U["User"] -->|prompt| A["AI Agent (LLM)"]
    A -->|tool call| M1["MCP Server\n(filesystem)"]
    A -->|tool call| M2["MCP Server\n(slack)"]
    A -->|tool call| M3["MCP Server\n(database)"]

    M1 -->|reads| FS["~/.ssh/\n~/.aws/\n~/Documents/"]
    M2 -->|reads| SL["Messages\nChannels"]
    M3 -->|queries| DB["Tables\nCredentials"]

    SL -.->|"toxic flow"| M1
    M1 -.->|"exfiltration"| EX["Attacker"]

    style U fill:#1a1a2e,stroke:#58a6ff,color:#e6edf3
    style A fill:#1a1a2e,stroke:#58a6ff,color:#e6edf3
    style M1 fill:#3b1d0e,stroke:#f59e0b,color:#e6edf3
    style M2 fill:#3b1d0e,stroke:#f59e0b,color:#e6edf3
    style M3 fill:#3b1d0e,stroke:#f59e0b,color:#e6edf3
    style EX fill:#3b0e0e,stroke:#ef4444,color:#e6edf3
    style FS fill:#1a1a2e,stroke:#30363d,color:#8b949e
    style SL fill:#1a1a2e,stroke:#30363d,color:#8b949e
    style DB fill:#1a1a2e,stroke:#30363d,color:#8b949e

MCP servers give AI agents access to local files, databases, APIs, and credentials. Tool descriptions can contain hidden instructions that the agent follows but the user never sees. AgentSeal detects these threats across four attack surfaces.

Commands

CommandDescriptionAPI key
agentseal guardScan skill files, MCP configs, toxic data flows, and supply chain changesNo
agentseal shieldReal-time file monitoring with desktop alerts and auto-quarantineNo
agentseal scanTest system prompts against 225+ adversarial probesYes*
agentseal scan-mcpAudit live MCP server tool descriptions for poisoningNo

*Free with Ollama. Cloud providers require an API key.

Guard

Scans all AI agent configurations on your machine. Supports Claude Code, Cursor, Windsurf, VS Code, Gemini CLI, Codex, Cline, Copilot, and others.

agentseal guard
SKILLS
[XX] sketchy-rules         MALWARE  Credential access
     Remove this skill immediately and rotate all credentials.
[OK] 4 more safe skills

MCP SERVERS
[XX] filesystem            DANGER   Access to SSH private keys
     Restrict filesystem MCP server: remove .ssh from allowed paths.

TOXIC FLOWS
[HIGH] Data exfiltration path: filesystem + slack

Detection pipeline

graph LR
    IN["Skill Files\nMCP Configs"] --> P["Pattern\nSignatures"]
    P --> D["Deobfuscation\n(Unicode Tags,\nBase64, BiDi, ZWC)"]
    D --> S["Semantic\nAnalysis\n(MiniLM-L6-v2)"]
    S --> B["Baseline\nTracking\n(SHA-256)"]
    B --> OUT["Report +\nSeverity"]

    style IN fill:#1a1a2e,stroke:#58a6ff,color:#e6edf3
    style P fill:#161b22,stroke:#30363d,color:#e6edf3
    style D fill:#161b22,stroke:#30363d,color:#e6edf3
    style S fill:#161b22,stroke:#30363d,color:#e6edf3
    style B fill:#161b22,stroke:#30363d,color:#e6edf3
    style OUT fill:#0d4429,stroke:#22c55e,color:#e6edf3

Scan

225 attack probes: 82 extraction techniques, 143 injection techniques, 8 adaptive mutation transforms. Deterministic n-gram and canary token scoring. No LLM judge.

OpenAI
agentseal scan --prompt "You are a helpful assistant..." --model gpt-4o
Ollama (free, local)
agentseal scan --prompt "You are a helpful assistant..." --model ollama/llama3.1:8b
HTTP endpoint
agentseal scan --url http://localhost:8080/chat

Scan-MCP

Connects to live MCP servers over stdio or SSE. Enumerates tools, analyzes descriptions through pattern matching, deobfuscation, semantic similarity, and optional LLM classification. Outputs a trust score per server.

agentseal scan-mcp --server npx @modelcontextprotocol/server-filesystem /tmp

Shield

Watches agent config paths in real time. Desktop notifications on threats. Quarantines files with detected payloads.

pip install agentseal[shield]
agentseal shield

Python API

from agentseal import AgentValidator

validator = AgentValidator.from_openai(
    client=openai.AsyncOpenAI(),
    model="gpt-4o",
    system_prompt="You are a helpful assistant...",
)
report = await validator.run()
print(f"Trust score: {report.trust_score}/100")
Anthropic / HTTP / Custom
# Anthropic
validator = AgentValidator.from_anthropic(
    client=client, model="claude-sonnet-4-5-20250929", system_prompt="..."
)

# HTTP endpoint
validator = AgentValidator.from_endpoint(url="http://localhost:8080/chat")

# Custom function
validator = AgentValidator(agent_fn=my_agent, ground_truth_prompt="...")

CI/CD

agentseal scan --file ./prompt.txt --model gpt-4o --min-score 75

Exit code 1 if trust score is below threshold. SARIF output supported via --output sarif.

Supported Providers

ProviderFlagAPI key
OpenAI--model gpt-4oOPENAI_API_KEY
Anthropic--model claude-sonnet-4-5-20250929ANTHROPIC_API_KEY
Ollama--model ollama/llama3.1:8bNone
LiteLLM--model any --litellm-url http://...Varies
HTTP--url http://your-agent.com/chatNone

MCP Security Registry

2,200+ MCP servers scanned for security risks. Trust scores, tool analysis, and finding details for each server.

agentseal.org/mcp

Pro

AgentSeal Pro extends the scanner with MCP tool poisoning probes (+45), RAG poisoning probes (+28), multimodal attack probes (+13), behavioral genome mapping, PDF reports, and a dashboard.

Contributing

If you find a detection gap or a false positive, please open an issue.

License

FSL-1.1-Apache-2.0

Downloads & popularity

4downloads
1-day window · source-reported counts20 Oct 2026
11959.50
2026-07-23: 7 · observed 2026-10-21T09:39:20.4693992Z · period 2026-07-23–2026-07-232026-07-24: 9 · observed 2026-10-21T09:39:20.4693992Z · period 2026-07-24–2026-07-242026-07-25: 9 · observed 2026-10-21T09:39:20.4693992Z · period 2026-07-25–2026-07-252026-07-26: 10 · observed 2026-10-21T09:39:20.4693992Z · period 2026-07-26–2026-07-262026-07-27: 28 · observed 2026-10-21T09:39:20.4693992Z · period 2026-07-27–2026-07-272026-07-28: 11 · observed 2026-10-21T09:39:20.4693992Z · period 2026-07-28–2026-07-282026-07-29: 30 · observed 2026-10-21T09:39:20.4693992Z · period 2026-07-29–2026-07-292026-07-30: 10 · observed 2026-10-21T09:39:20.4693992Z · period 2026-07-30–2026-07-302026-07-31: 10 · observed 2026-10-21T09:39:20.4693992Z · period 2026-07-31–2026-07-312026-08-01: 4 · observed 2026-10-21T09:39:20.4693992Z · period 2026-08-01–2026-08-012026-08-02: 10 · observed 2026-10-21T09:39:20.4693992Z · period 2026-08-02–2026-08-022026-08-03: 53 · observed 2026-10-21T09:39:20.4693992Z · period 2026-08-03–2026-08-032026-08-04: 6 · observed 2026-10-21T09:39:20.4693992Z · period 2026-08-04–2026-08-042026-08-05: 48 · observed 2026-10-21T09:39:20.4693992Z · period 2026-08-05–2026-08-052026-08-06: 32 · observed 2026-10-21T09:39:20.4693992Z · period 2026-08-06–2026-08-062026-08-07: 76 · observed 2026-10-21T09:39:20.4693992Z · period 2026-08-07–2026-08-072026-08-08: 2 · observed 2026-10-21T09:39:20.4693992Z · period 2026-08-08–2026-08-082026-08-09: 12 · observed 2026-10-21T09:39:20.4693992Z · period 2026-08-09–2026-08-092026-08-10: 28 · observed 2026-10-21T09:39:20.4693992Z · period 2026-08-10–2026-08-102026-08-11: 12 · observed 2026-10-21T09:39:20.4693992Z · period 2026-08-11–2026-08-112026-08-12: 26 · observed 2026-10-21T09:39:20.4693992Z · period 2026-08-12–2026-08-122026-08-14: 15 · observed 2026-10-21T09:39:20.4693992Z · period 2026-08-14–2026-08-142026-08-15: 2 · observed 2026-10-21T09:39:20.4693992Z · period 2026-08-15–2026-08-152026-08-16: 2 · observed 2026-10-21T09:39:20.4693992Z · period 2026-08-16–2026-08-162026-08-17: 58 · observed 2026-10-21T09:39:20.4693992Z · period 2026-08-17–2026-08-172026-08-18: 4 · observed 2026-10-21T09:39:20.4693992Z · period 2026-08-18–2026-08-182026-08-19: 48 · observed 2026-10-21T09:39:20.4693992Z · period 2026-08-19–2026-08-192026-08-20: 2 · observed 2026-10-21T09:39:20.4693992Z · period 2026-08-20–2026-08-202026-08-21: 10 · observed 2026-10-21T09:39:20.4693992Z · period 2026-08-21–2026-08-212026-08-22: 3 · observed 2026-10-21T09:39:20.4693992Z · period 2026-08-22–2026-08-222026-08-23: 5 · observed 2026-10-21T09:39:20.4693992Z · period 2026-08-23–2026-08-232026-08-24: 119 · observed 2026-10-21T09:39:20.4693992Z · period 2026-08-24–2026-08-242026-08-25: 4 · observed 2026-10-21T09:39:20.4693992Z · period 2026-08-25–2026-08-252026-08-26: 64 · observed 2026-10-21T09:39:20.4693992Z · period 2026-08-26–2026-08-262026-08-27: 5 · observed 2026-10-21T09:39:20.4693992Z · period 2026-08-27–2026-08-272026-08-28: 6 · observed 2026-10-21T09:39:20.4693992Z · period 2026-08-28–2026-08-282026-08-29: 3 · observed 2026-10-21T09:39:20.4693992Z · period 2026-08-29–2026-08-292026-08-30: 2 · observed 2026-10-21T09:39:20.4693992Z · period 2026-08-30–2026-08-302026-08-31: 20 · observed 2026-10-21T09:39:20.4693992Z · period 2026-08-31–2026-08-312026-09-01: 15 · observed 2026-10-21T09:39:20.4693992Z · period 2026-09-01–2026-09-012026-09-02: 29 · observed 2026-10-21T09:39:20.4693992Z · period 2026-09-02–2026-09-022026-09-03: 2 · observed 2026-10-21T09:39:20.4693992Z · period 2026-09-03–2026-09-032026-09-04: 37 · observed 2026-10-21T09:39:20.4693992Z · period 2026-09-04–2026-09-042026-09-05: 4 · observed 2026-10-21T09:39:20.4693992Z · period 2026-09-05–2026-09-052026-09-06: 4 · observed 2026-10-21T09:39:20.4693992Z · period 2026-09-06–2026-09-062026-09-07: 18 · observed 2026-10-21T09:39:20.4693992Z · period 2026-09-07–2026-09-072026-09-08: 2 · observed 2026-10-21T09:39:20.4693992Z · period 2026-09-08–2026-09-082026-09-09: 40 · observed 2026-10-21T09:39:20.4693992Z · period 2026-09-09–2026-09-092026-09-10: 1 · observed 2026-10-21T09:39:20.4693992Z · period 2026-09-10–2026-09-102026-09-11: 10 · observed 2026-10-21T09:39:20.4693992Z · period 2026-09-11–2026-09-112026-09-12: 8 · observed 2026-10-21T09:39:20.4693992Z · period 2026-09-12–2026-09-122026-09-13: 12 · observed 2026-10-21T09:39:20.4693992Z · period 2026-09-13–2026-09-132026-09-14: 34 · observed 2026-10-21T09:39:20.4693992Z · period 2026-09-14–2026-09-142026-09-15: 2 · observed 2026-10-21T09:39:20.4693992Z · period 2026-09-15–2026-09-152026-09-16: 27 · observed 2026-10-21T09:39:20.4693992Z · period 2026-09-16–2026-09-162026-09-17: 11 · observed 2026-10-21T09:39:20.4693992Z · period 2026-09-17–2026-09-172026-09-18: 28 · observed 2026-10-21T09:39:20.4693992Z · period 2026-09-18–2026-09-182026-09-19: 20 · observed 2026-10-21T09:39:20.4693992Z · period 2026-09-19–2026-09-192026-09-20: 13 · observed 2026-10-21T09:39:20.4693992Z · period 2026-09-20–2026-09-202026-09-21: 70 · observed 2026-10-21T09:39:20.4693992Z · period 2026-09-21–2026-09-212026-09-22: 5 · observed 2026-10-21T09:39:20.4693992Z · period 2026-09-22–2026-09-222026-09-23: 25 · observed 2026-10-21T09:39:20.4693992Z · period 2026-09-23–2026-09-232026-09-24: 3 · observed 2026-10-21T09:39:20.4693992Z · period 2026-09-24–2026-09-242026-09-25: 5 · observed 2026-10-21T09:39:20.4693992Z · period 2026-09-25–2026-09-252026-09-26: 17 · observed 2026-10-21T09:39:20.4693992Z · period 2026-09-26–2026-09-262026-09-27: 5 · observed 2026-10-21T09:39:20.4693992Z · period 2026-09-27–2026-09-272026-09-28: 27 · observed 2026-10-21T09:39:20.4693992Z · period 2026-09-28–2026-09-282026-09-29: 8 · observed 2026-10-21T09:39:20.4693992Z · period 2026-09-29–2026-09-292026-09-30: 45 · observed 2026-10-21T09:39:20.4693992Z · period 2026-09-30–2026-09-302026-10-01: 2 · observed 2026-10-21T09:39:20.4693992Z · period 2026-10-01–2026-10-012026-10-02: 49 · observed 2026-10-21T09:39:20.4693992Z · period 2026-10-02–2026-10-022026-10-04: 2 · observed 2026-10-21T09:39:20.4693992Z · period 2026-10-04–2026-10-042026-10-05: 26 · observed 2026-10-21T09:39:20.4693992Z · period 2026-10-05–2026-10-052026-10-06: 4 · observed 2026-10-21T09:39:20.4693992Z · period 2026-10-06–2026-10-062026-10-07: 75 · observed 2026-10-21T09:39:20.4693992Z · period 2026-10-07–2026-10-072026-10-08: 4 · observed 2026-10-21T09:39:20.4693992Z · period 2026-10-08–2026-10-082026-10-09: 42 · observed 2026-10-21T09:39:20.4693992Z · period 2026-10-09–2026-10-092026-10-10: 36 · observed 2026-10-21T09:39:20.4693992Z · period 2026-10-10–2026-10-102026-10-11: 51 · observed 2026-10-21T09:39:20.4693992Z · period 2026-10-11–2026-10-112026-10-12: 43 · observed 2026-10-21T09:39:20.4693992Z · period 2026-10-12–2026-10-122026-10-13: 4 · observed 2026-10-21T09:39:20.4693992Z · period 2026-10-13–2026-10-132026-10-14: 4 · observed 2026-10-21T09:39:20.4693992Z · period 2026-10-14–2026-10-142026-10-15: 7 · observed 2026-10-21T09:39:20.4693992Z · period 2026-10-15–2026-10-152026-10-16: 13 · observed 2026-10-21T09:39:20.4693992Z · period 2026-10-16–2026-10-162026-10-17: 11 · observed 2026-10-21T09:39:20.4693992Z · period 2026-10-17–2026-10-172026-10-18: 9 · observed 2026-10-21T09:39:20.4693992Z · period 2026-10-18–2026-10-182026-10-19: 4 · observed 2026-10-21T09:39:20.4693992Z · period 2026-10-19–2026-10-192026-10-20: 4 · observed 2026-10-21T09:39:20.4693992Z · period 2026-10-20–2026-10-20
23 Jul20 Oct

pypistats · 88 observations shown. Missing days are unknown. Source category: overall: without mirrors.

View observed values
Date / source periodValueObserved at
2026-10-20 – 2026-10-2042026-10-21T09:39:20.4693992Z
2026-10-19 – 2026-10-1942026-10-21T09:39:20.4693992Z
2026-10-18 – 2026-10-1892026-10-21T09:39:20.4693992Z
2026-10-17 – 2026-10-17112026-10-21T09:39:20.4693992Z
2026-10-16 – 2026-10-16132026-10-21T09:39:20.4693992Z
2026-10-15 – 2026-10-1572026-10-21T09:39:20.4693992Z
2026-10-14 – 2026-10-1442026-10-21T09:39:20.4693992Z
2026-10-13 – 2026-10-1342026-10-21T09:39:20.4693992Z
2026-10-12 – 2026-10-12432026-10-21T09:39:20.4693992Z
2026-10-11 – 2026-10-11512026-10-21T09:39:20.4693992Z
2026-10-10 – 2026-10-10362026-10-21T09:39:20.4693992Z
2026-10-09 – 2026-10-09422026-10-21T09:39:20.4693992Z
2026-10-08 – 2026-10-0842026-10-21T09:39:20.4693992Z
2026-10-07 – 2026-10-07752026-10-21T09:39:20.4693992Z
2026-10-06 – 2026-10-0642026-10-21T09:39:20.4693992Z
2026-10-05 – 2026-10-05262026-10-21T09:39:20.4693992Z
2026-10-04 – 2026-10-0422026-10-21T09:39:20.4693992Z
2026-10-02 – 2026-10-02492026-10-21T09:39:20.4693992Z
2026-10-01 – 2026-10-0122026-10-21T09:39:20.4693992Z
2026-09-30 – 2026-09-30452026-10-21T09:39:20.4693992Z
2026-09-29 – 2026-09-2982026-10-21T09:39:20.4693992Z
2026-09-28 – 2026-09-28272026-10-21T09:39:20.4693992Z
2026-09-27 – 2026-09-2752026-10-21T09:39:20.4693992Z
2026-09-26 – 2026-09-26172026-10-21T09:39:20.4693992Z
2026-09-25 – 2026-09-2552026-10-21T09:39:20.4693992Z
2026-09-24 – 2026-09-2432026-10-21T09:39:20.4693992Z
2026-09-23 – 2026-09-23252026-10-21T09:39:20.4693992Z
2026-09-22 – 2026-09-2252026-10-21T09:39:20.4693992Z
2026-09-21 – 2026-09-21702026-10-21T09:39:20.4693992Z
2026-09-20 – 2026-09-20132026-10-21T09:39:20.4693992Z
2026-09-19 – 2026-09-19202026-10-21T09:39:20.4693992Z
2026-09-18 – 2026-09-18282026-10-21T09:39:20.4693992Z
2026-09-17 – 2026-09-17112026-10-21T09:39:20.4693992Z
2026-09-16 – 2026-09-16272026-10-21T09:39:20.4693992Z
2026-09-15 – 2026-09-1522026-10-21T09:39:20.4693992Z
2026-09-14 – 2026-09-14342026-10-21T09:39:20.4693992Z
2026-09-13 – 2026-09-13122026-10-21T09:39:20.4693992Z
2026-09-12 – 2026-09-1282026-10-21T09:39:20.4693992Z
2026-09-11 – 2026-09-11102026-10-21T09:39:20.4693992Z
2026-09-10 – 2026-09-1012026-10-21T09:39:20.4693992Z
2026-09-09 – 2026-09-09402026-10-21T09:39:20.4693992Z
2026-09-08 – 2026-09-0822026-10-21T09:39:20.4693992Z
2026-09-07 – 2026-09-07182026-10-21T09:39:20.4693992Z
2026-09-06 – 2026-09-0642026-10-21T09:39:20.4693992Z
2026-09-05 – 2026-09-0542026-10-21T09:39:20.4693992Z
2026-09-04 – 2026-09-04372026-10-21T09:39:20.4693992Z
2026-09-03 – 2026-09-0322026-10-21T09:39:20.4693992Z
2026-09-02 – 2026-09-02292026-10-21T09:39:20.4693992Z
2026-09-01 – 2026-09-01152026-10-21T09:39:20.4693992Z
2026-08-31 – 2026-08-31202026-10-21T09:39:20.4693992Z
2026-08-30 – 2026-08-3022026-10-21T09:39:20.4693992Z
2026-08-29 – 2026-08-2932026-10-21T09:39:20.4693992Z
2026-08-28 – 2026-08-2862026-10-21T09:39:20.4693992Z
2026-08-27 – 2026-08-2752026-10-21T09:39:20.4693992Z
2026-08-26 – 2026-08-26642026-10-21T09:39:20.4693992Z
2026-08-25 – 2026-08-2542026-10-21T09:39:20.4693992Z
2026-08-24 – 2026-08-241192026-10-21T09:39:20.4693992Z
2026-08-23 – 2026-08-2352026-10-21T09:39:20.4693992Z
2026-08-22 – 2026-08-2232026-10-21T09:39:20.4693992Z
2026-08-21 – 2026-08-21102026-10-21T09:39:20.4693992Z
2026-08-20 – 2026-08-2022026-10-21T09:39:20.4693992Z
2026-08-19 – 2026-08-19482026-10-21T09:39:20.4693992Z
2026-08-18 – 2026-08-1842026-10-21T09:39:20.4693992Z
2026-08-17 – 2026-08-17582026-10-21T09:39:20.4693992Z
2026-08-16 – 2026-08-1622026-10-21T09:39:20.4693992Z
2026-08-15 – 2026-08-1522026-10-21T09:39:20.4693992Z
2026-08-14 – 2026-08-14152026-10-21T09:39:20.4693992Z
2026-08-12 – 2026-08-12262026-10-21T09:39:20.4693992Z
2026-08-11 – 2026-08-11122026-10-21T09:39:20.4693992Z
2026-08-10 – 2026-08-10282026-10-21T09:39:20.4693992Z
2026-08-09 – 2026-08-09122026-10-21T09:39:20.4693992Z
2026-08-08 – 2026-08-0822026-10-21T09:39:20.4693992Z
2026-08-07 – 2026-08-07762026-10-21T09:39:20.4693992Z
2026-08-06 – 2026-08-06322026-10-21T09:39:20.4693992Z
2026-08-05 – 2026-08-05482026-10-21T09:39:20.4693992Z
2026-08-04 – 2026-08-0462026-10-21T09:39:20.4693992Z
2026-08-03 – 2026-08-03532026-10-21T09:39:20.4693992Z
2026-08-02 – 2026-08-02102026-10-21T09:39:20.4693992Z
2026-08-01 – 2026-08-0142026-10-21T09:39:20.4693992Z
2026-07-31 – 2026-07-31102026-10-21T09:39:20.4693992Z
2026-07-30 – 2026-07-30102026-10-21T09:39:20.4693992Z
2026-07-29 – 2026-07-29302026-10-21T09:39:20.4693992Z
2026-07-28 – 2026-07-28112026-10-21T09:39:20.4693992Z
2026-07-27 – 2026-07-27282026-10-21T09:39:20.4693992Z
2026-07-26 – 2026-07-26102026-10-21T09:39:20.4693992Z
2026-07-25 – 2026-07-2592026-10-21T09:39:20.4693992Z
2026-07-24 – 2026-07-2492026-10-21T09:39:20.4693992Z
2026-07-23 – 2026-07-2372026-10-21T09:39:20.4693992Z

Versions 1

Collected releases
VersionPublishedDirect dependenciesOpen version
0.10.011 Jun 202610

Package advisories

0
No matching advisories collected

This describes our collected data; it is not a security assessment.

Repository

PENDING
agentseal/agentseal

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 23:18 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package:27a49ae275ce156f94eb51db9b895d56d3e0b9aae0fcca021454162bd6daea0a