Skip to main content
Glama

SecurityScan MCP

Give your AI agent the ability to secure its own environment — one MCP config, eight tools.

Audit MCP configs for poisoning, redact secrets/PII before they leave for an LLM, vet untrusted skills, monitor dependency health, and actively scan your network. All from a single securitystack entry in your agent's MCP config.

This is the client: the unified MCP server an AI agent (Claude CLI/Desktop, or any MCP-aware agent) installs to call the SecurityScan hosted services. The backend services themselves are hosted — you don't run them. You configure API keys and your agent gets eight tools — six security plus two sales.

Why

An AI agent has four ways to get compromised. SecurityScan covers all four:

1. What it INSTALLS   → poisoned skills / MCP configs     → scan_skill + audit_mcp_server_config
2. What it DEPENDS ON → a dependency goes down/rogue        → check_dependencies
3. Where it's EXPOSED → open ports, default creds           → network_scan (with AI agent loop)
4. What it SENDS OUT  → secrets/PII leak into the LLM       → scan_secrets

Two of these — audit_mcp_server_config and scan_secrets — run offline, in-process, with no API key. They work the moment you install the server. The other four call hosted services (configure their keys to enable them; each is skipped gracefully if unset).

Related MCP server: Mund

Install

1. Install the server

pip install securityscan-mcp

That's it — the package is on PyPI.

2. Add it to your agent

For Claude Desktop / CLI (claude_desktop_config.json or ~/.claude.json):

{
  "mcpServers": {
    "securityscan": {
      "command": "python",
      "args": ["-m", "stack.unified_mcp_server"],
      "env": {
        "ACTIVESCANNER_API_KEY": "ask_live_...",
        "DEPSCAN_API_KEY": "dsk_live_...",
        "SECURITYSCAN_API_KEY": "ss_live_...",
        "SECRETSCAN_API_KEY": "ssc_..."
      }
    }
  }
}

The three offline tools (audit_mcp_server_config, scan_secrets, securitystack_pricing) need no key and work immediately. The four hosted-service tools activate when you set their key; set only what you use.

Get a free API key (no credit card):

curl -X POST https://scan.apisecurityscan.net/v1/register -d '{}'

See docs/QUICKSTART.md for the 2-minute setup.

3. Verify

claude mcp list
# securitystack ... Connected

Then ask your agent: "Audit my MCP config for security risks" or "Scan this prompt for secrets before I send it: ..."

The eight tools

Tool

What it does

Needs a key?

audit_mcp_server_config

Audits an MCP config for tool poisoning, leaked credentials, supply-chain risk, toxic capability pairs (OWASP MCP Top 10).

No — runs offline

scan_secrets

Detects & redacts secrets (API keys, tokens, private keys) + PII (email, phone, SSN, credit card, IBAN) in a payload before it leaves for an LLM/API. Runs offline in-process with no key; routes to the backend if a key is set.

No — runs offline

scan_skill

Analyzes an untrusted AI skill for prompt injection, malware patterns, OWASP LLM Top 10 — before you install it.

SECURITYSCAN_API_KEY

check_dependencies

Checks the health (uptime, SSL, blacklist, trust score) of endpoints your agent depends on.

DEPSCAN_API_KEY

network_scan

Active security scan of a device/host with an autonomous AI agent that reasons about findings. Requires authorized: true — only scan what you own.

ACTIVESCANNER_API_KEY

full_stack_audit

All of the above correlated into one prioritized report.

per-tool keys

securitystack_pricing

Tier/price/quota catalog with the benchmark evidence behind it — evaluate or recommend a purchase to your user.

No — runs offline

securitystack_checkout

Agent-native purchase: opens a Stripe checkout for a tier and returns the payment URL plus a PENDING API key that activates automatically on payment.

No — public endpoint

Authorization & legality

network_scan performs active scanning. You must set authorized: true to certify you own or have permission to scan the target. Scanning without authorization may violate the CFAA (US), the Computer Misuse Act (UK), and similar laws. See the Terms of Service.

License

Apache-2.0. See LICENSE.

Available Tools

6 tools
audit_mcp_server_configA

Audit an MCP client configuration for security risks — works offline, no external service required. Detects: tool poisoning, hidden/coercive instructions in tool descriptions, hardcoded credentials, unpinned packages (rug-pull risk), insecure transport, and toxic capability combinations (shell + network, file-read + network).

ParametersJSON Schema
NameRequiredDescriptionDefault
config_jsonYesThe FULL JSON content of the MCP config file as a string (e.g. claude_desktop_config.json or .mcp.json). Paste the file content, not the path.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden. It discloses offline operation and no external service requirement, indicating no data exfiltration. It also lists detection categories, but doesn't explicitly confirm read-only behavior or potential false positives.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one dense sentence that front-loads the action ('Audit') and then lists specific risk categories in a scannable way. While the list is long, each item adds distinct value and the overall length is justified.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter tool with an output schema, the description adequately covers what the tool does and its offline nature. It doesn't explain output format, but that's covered by the schema. Minor gap: no explicit use-case example, but overall sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter config_json is fully documented in the schema with 100% coverage, including instructions to paste full content rather than a path. The description adds no additional parameter context, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Audit') with a clear resource ('MCP client configuration') and enumerates concrete risk categories it detects, making it unmistakably distinct from sibling tools like scan_secrets or check_dependencies.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides useful context that the tool works offline and requires the config JSON, which implies when to use it. However, it does not explicitly state when NOT to use it or mention alternative sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_dependenciesA

Check the health of your agent's external dependencies: uptime, SSL validity, blacklist status, and a trust score 0-100 (DepScan).

ParametersJSON Schema
NameRequiredDescriptionDefault
endpointsYesList of URLs your agent/skill depends on, e.g. ["https://api.openai.com", "https://api.stripe.com"]

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses the behavioral scope by listing the checks performed (uptime, SSL validity, blacklist status, trust score), which gives useful context. However, with no annotations provided, it does not explicitly state whether the tool makes outbound network requests, is read-only, or has any side effects, leaving gaps in transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that effectively communicates purpose and key outputs without unnecessary words. Every phrase adds value, making it an excellent model of concision.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one parameter, output schema provided), the description is largely complete: it explains what the tool does and the nature of the checks. It lacks explicit usage guidance and operational details like network behavior, but the availability of the output schema mitigates the need to describe return values, so overall it is complete for a tool of this complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema description covers 100% of the parameter 'endpoints' with a clear explanation and example. The tool description adds minimal extra meaning by framing them as 'external dependencies', but does not introduce constraints, format details, or parameter-specific behavior beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with a specific verb ('Check') and resource ('external dependencies'), and enumerates the aspects of health checked: uptime, SSL validity, blacklist status, and trust score. This distinguishes it from sibling tools like network_scan by focusing on dependency-specific health rather than general scanning.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It neither mentions exclusions nor suggests appropriate scenarios, leaving usage inference entirely to the tool name and sibling context. There is no explicit 'use this when...' or contrast with network_scan or scan_skill.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

full_stack_auditA

Complete security posture in one call: audits the MCP config, checks dependency health, analyzes an untrusted skill, scans the local network gateway, and scans any payload you're about to send out for secrets/PII — then correlates everything into a single prioritized report. Pass only what you have; each section is skipped gracefully if its input or service is missing.

ParametersJSON Schema
NameRequiredDescriptionDefault
skill_urlNountrusted skill to vet (optional)
text_to_scanNopayload to vet for secret/PII egress (optional)
network_targetNoIP to scan, e.g. "192.168.1.1" (optional)
mcp_config_jsonNoMCP config content as string (optional)
network_authorizedNoREQUIRED to scan network_target. Set True to certify you own or have permission to scan it. (optional, default False)
dependency_endpointsNoURLs your stack depends on (optional)

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description bears full responsibility. It discloses key behaviors: correlation into one report and graceful skipping of missing sections. However, it omits important safety context such as network scanning requiring explicit authorization and potential risks of analyzing untrusted skills. This is a meaningful gap for a security tool, though the schema partially compensates via network_authorized.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two well-structured sentences. It front-loads the purpose, enumerates the audit areas in a parallel list, and ends with the graceful-skipping behavior. Every word earns its place, with zero redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is moderately complex with six optional parameters and an output schema. The description explains the composite nature, auto-skipping, and report generation. It lacks explicit return-value details, but the output schema covers that. The main gap is the missing security authorization caveat, which slightly reduces completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so each parameter is individually documented. The description adds high-level context ('pass only what you have') but does not enrich individual parameter semantics beyond the schema. This matches the baseline for well-covered schemas.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool performs a comprehensive security audit by listing five specific actions (audits MCP config, checks dependencies, analyzes skills, scans network, scans for secrets/PII) and culminates in a single prioritized report. The verb 'audits' plus enumerated sub-audits fully specifies functionality and distinguishes it from the granular sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context: use this for a complete security posture in one call, and it gracefully skips sections when inputs are missing. It implicitly suggests partial inputs are acceptable. However, it does not explicitly contrast with sibling tools (e.g., saying 'for individual checks use scan_skill'), so it lacks formal alternatives/exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

network_scanA

Active security scan of a device or host with an autonomous AI agent that decides which follow-up probes to run (ActiveScanner). Only scan targets you own or have permission to test.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetYesIP, CIDR, or hostname. Examples: "192.168.1.1", "10.0.0.0/24"
scan_typeNo"quick" (~30s, top ports) [default], "standard" (~2min, agent loop), "deep" (~10min, full ports + credentials check)quick
authorizedYesREQUIRED. You must set this to True to certify that you own the target or have explicit permission to test it. Setting it to False (or omitting it) aborts the scan. Scanning without authorization may be illegal (CFAA / Computer Misuse Act).

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively communicates that the scan is active, autonomous, and potentially subject to legal restrictions, which is critical context for a security tool. It doesn't mention potential network disruption, but the schema's scan_type descriptions add some duration and depth context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured: two sentences, with the primary purpose front-loaded and the authorization warning logically appended. Every sentence adds value, with no unnecessary elaboration or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has an output schema and a thoroughly described input schema, the description covers the essential purpose, authorization constraint, and the active, autonomous nature of the scan. The only notable gap is the lack of explicit differentiation from sibling tools, but overall the description is sufficiently complete for a tool with this level of structured metadata.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with detailed parameter descriptions for target, scan_type, and authorized. The tool description adds only a general reference to the autonomous agent, which complements the scan_type description ('agent loop') but provides no new parameter-level details beyond what the schema already offers.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that this tool performs an active security scan of a device or host, with an autonomous AI agent deciding follow-up probes. It does not explicitly reference sibling tools, but the unique 'ActiveScanner' behavior and target scope sufficiently distinguish it from typical scanning utilities.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a clear authorization prerequisite ('Only scan targets you own or have permission to test') and implies use for active network scans. However, it lacks explicit guidance on when to use this tool versus sibling tools like scan_secrets or full_stack_audit, nor does it state when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

scan_secretsA

Scan a text payload (a prompt, an outbound API body, a file's contents) for secrets and PII BEFORE it leaves for an LLM or external API, and return a redacted copy. Catches the #1 real-world agent incident: secrets/PII leaking into a model's context.

WORKS OFFLINE with no API key — the detection runs in-process (pure regex

  • Luhn check, no network). If a SecretScan backend key IS configured, the scan is routed there instead (which also persists an audit record).

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesThe payload to inspect (prompt, request body, document text).
redactNoIf True (default), each match is replaced with a token like [REDACTED-KEY] / [REDACTED-EMAIL]. If False, only reports.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description fully carries the burden and does so excellently. It discloses that detection runs in-process via regex + Luhn, operates offline without an API key, and optionally routes to a backend which persists an audit record – far beyond typical descriptions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise yet rich, with the core purpose in the first sentence and supporting technical detail in a second paragraph. Every sentence adds value, including the unexpected offline capability, without unnecessary filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The output schema exists, so return values are covered structurally. The description covers purpose, usage context, offline/online behavior, and audit implications, making it complete for a simple two-parameter tool. An agent has enough information to invoke it safely and effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for both parameters, so the baseline is 3. The description adds examples of payload types (prompt, API body, file contents) that map to the 'text' parameter, but does not go beyond the schema for the 'redact' parameter. This is adequate given the schema already documents both parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's specific purpose: scanning text for secrets and PII and returning a redacted copy. It distinguishes itself from sibling tools like scan_skill and network_scan by focusing on data leakage prevention, making its function unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly frames when to use the tool ('BEFORE it leaves for an LLM or external API') and provides context about offline vs. backend-routed scanning. It does not explicitly name alternatives, but the use case is clear enough that an agent can select it appropriately.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

scan_skillA

Analyze an AI agent skill for prompt injection, malware patterns, and OWASP LLM Top 10 issues BEFORE installing it (SecurityScan).

ParametersJSON Schema
NameRequiredDescriptionDefault
skill_urlYesURL of the skill to analyze (e.g. a GitHub skill URL).

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden of behavioral disclosure. It does list the types of analysis performed, which adds value, but it does not explicitly state whether the tool is read-only, requires network access, or how it handles a potentially malicious skill. The description implies safety by recommending use before installation, but it is not explicit about side effects or permissions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that front-loads the verb and resource, then specifies the exact categories of analysis and the usage timing. Every word adds value with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and a single well-documented parameter, the description provides sufficient context for most use cases. It lacks explicit mention of prerequisites like network access or authentication, but these are minor gaps given the output schema and clear purpose.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage with a clear description for skill_url (including an example). The tool description adds no additional parameter semantics beyond the schema, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: analyzing an AI agent skill for specific security issues (prompt injection, malware, OWASP LLM Top 10). It uses a specific verb ('Analyze') and resource ('AI agent skill') and distinguishes itself from sibling tools like network_scan or scan_secrets by focusing on skills.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'BEFORE installing it' provides clear temporal guidance for when to use this tool. It does not explicitly name alternative tools or state when not to use it, but the context of sibling tools and the explicit pre-installation timing gives adequate context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 6 tool updatesv0.1.0
    • First observedaudit_mcp_server_config
    • First observedcheck_dependencies
    • First observedfull_stack_audit
    • First observednetwork_scan
    • First observedscan_secrets
    • First observedscan_skill

TDQS

A4.1/5.0
Disambiguation5/5

Each tool addresses a distinct security concern: skill scanning, dependency health, network probing, MCP config auditing, and secrets/PII detection. The full_stack_audit is clearly a composite that calls the others, so there's no confusion about when to use individual tools vs. the aggregate.

Naming Consistency4/5

Most tools follow a verb_noun pattern (scan_skill, check_dependencies, audit_mcp_server_config, scan_secrets). However, network_scan and full_stack_audit invert the order, making the pattern slightly inconsistent.

Tool Count5/5

With 6 tools, the set is well-scoped for a security-focused server, covering different attack surfaces without unnecessary bloat. Each tool earns its place and the count falls comfortably within the ideal range.

Completeness5/5

The tool set covers a broad range of security checks relevant to AI agent workflows, including skills, dependencies, network, MCP configuration, and data leakage. The full_stack_audit tool aggregates all checks, providing a complete posture assessment in one call. No obvious gaps exist for the stated purpose.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    MCP server for https://oathe.ai security audits. Runtime behavioral analysis and security scanner for Ai systems. Check trust scores before installing MCP servers, plugins, or AI agent skills.
    5
    20
    1
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    This MCP server enables security auditing for MCP configurations and AI agents, including prompt injection testing, data flow tracing, and security policy generation.
    485
    MIT

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/securityscan-api/securityscan-mcp'

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