ShieldNet MCP
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ShieldNet MCPscan https://example.com"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
π‘οΈ ShieldNet MCP β Security Scanner for AI Agents
Bring security governance to any AI agent deployment via MCP.
Track: Secure & Govern MCP | MCP_HACK//26
What It Does
ShieldNet MCP is a zero-trust guardrail for AI agents. Before your agent connects to any external endpoint (API, webhook, third-party service), ShieldNet scans it and returns an ALLOW / WARN / BLOCK decision β with full findings and severity ratings.
Scan URLs for 50+ checks across 7 security modules
Governance decisions β auto-gate agent connections with ALLOW/WARN/BLOCK
Security headers audit β quick compliance check
Side-by-side comparisons β which endpoint is safer?
Session history β track all scans with grades and scores
Pre-built prompts β security audit & pre-deployment check workflows
Related MCP server: intaris
Why It Matters
AI agents increasingly interact with external APIs and services. Without security governance:
An agent could connect to a compromised endpoint
Sensitive data could leak through misconfigured CORS
Injection attacks could manipulate agent behavior
ShieldNet acts as a security guardrail β scan first, connect later.
Architecture
ββββββββββββ βββββββββββββββββββββββββ
β β β agentgateway β
β AI AgentββββββββΆβ βββββββββββββββββββ β βββββββββββββββββ
β (Claude, β β β π ShieldNet β β β External β
β GPT, βββββββββ β MCP Server ββββΌββββββΆβ Service β
β etc.) β β β β β β (target URL) β
β β β β βββββββββββββ β β β β
ββββββββββββ β β β Scanners β β β βββββββββββββββββ
β ββββΌββββββββββββΌβββ β
β β β β
β ββββΌβββ βββββββββΌβββ β
β βHeadersβ βInjection β β
β β TLS β βInfo Disc β β
β β Auth β βMisconfig β β
β βRate β β β β
β βLimit β β β β
β ββββββββ ββββββββββββ β
β ALLOW / WARN / BLOCK β
ββββββββββββββββββββββββββFlow:
AI agent requests external connection
agentgateway routes to ShieldNet MCP
ShieldNet runs 7 scanner modules in parallel
Returns ALLOW/WARN/BLOCK + detailed findings
agentgateway enforces the decision
Scanner Modules (7)
# | Module | What It Checks |
1 |
| HSTS, CSP, X-Frame-Options, Cookie flags, CORS wildcards, info disclosure |
2 |
| Reflected XSS, SQLi, SSTI, Command Injection, Path Traversal, SSRF, Open Redirect |
3 |
| 25 sensitive paths (.env, .git, package.json, swagger, backups, server-status) |
4 |
| HTTP vs HTTPS, SSL/TLS redirect enforcement |
5 |
| JWT exposure, JWT |
6 |
| CORS origin reflection, TRACE method, version disclosure in error pages |
7 |
| 20-request burst test (aggressive mode only) |
Quick Start
1. Install
git clone https://github.com/hhhashexe/shieldnet-mcp.git
cd shieldnet-mcp
npm install2. Run a demo scan (no setup needed)
bash demo.sh https://example.comThis launches the MCP server, discovers available tools via tools/list, runs a live scan, and pretty-prints the results with colors. π€
3. Run the test suite
npm test75 integration tests covering all 6 MCP tools, 6 tools + 3 resources + 2 prompts.
4. Use as an MCP Server
Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"shieldnet": {
"command": "node",
"args": ["/path/to/shieldnet-mcp/src/index.js"]
}
}
}With agentgateway
targets:
- name: shieldnet-security
provider:
type: mcp
config:
command: node
args: ["src/index.js"]See agentgateway.yaml for full configuration.
Raw JSON-RPC (stdio)
echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"my-agent","version":"0.1"}}}
{"jsonrpc":"2.0","method":"notifications/initialized"}
{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"scan_url","arguments":{"url":"https://example.com"}}}' | node src/index.jsMCP Tools
Tool | Description |
Comprehensive scan β 7 modules, 50+ checks, A-F grade | |
Scan + governance decision (ALLOW/WARN/BLOCK) with confidence score | |
Quick security headers audit β PASS/WARN/FAIL verdict | |
Session scan history with grades | |
Side-by-side comparison of two URLs | |
View policy or evaluate a score against thresholds |
MCP Resources
Resource | Description |
| Full attack vector database |
| Session scan history |
| ALLOW/WARN/BLOCK thresholds |
MCP Prompts
Prompt | Description |
| Full audit with executive report |
| Gate check before deployment |
Security Governance
ShieldNet makes ALLOW/WARN/BLOCK decisions based on:
ALLOW β Score β₯ 70, no critical findings
WARN β Score 50-69, or high-severity findings
BLOCK β Score < 50, or any critical vulnerabilitiesReal-World Proof
ShieldNet has been used in production security audits:
3 CVEs discovered and responsibly disclosed
PayLock.xyz audit: 36 verified findings (4 Critical, 17 High)
Published on npm as
shieldnet(v0.3.2)
License
MIT β see LICENSE
Links
Available Tools
6 toolsassess_riskA
Security governance gate: scan a URL and return an ALLOW/WARN/BLOCK decision with confidence score. Use as a guardrail before an AI agent connects to any external service.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Target URL to assess | |
| context | No | Optional context (e.g. 'pre-deployment', 'new API integration') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden. It clearly discloses that the tool returns a governance decision and confidence score. It does not disclose whether scanning the URL involves network requests, persistence, or side effects, but the core behavioral contract is well stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no wasted words. The primary behavior is front-loaded, and the usage guidance follows immediately. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool with no output schema, the description explains what it does, what it returns, and when to use it. It is complete enough for an agent to invoke correctly, though additional detail about the response shape or confidence score semantics would make it stronger.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents both parameters with 100% coverage, including an example for 'context'. The description adds no parameter-level detail beyond naming the URL as the scan target, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('scan a URL'), a clear resource, and a concrete decision output (ALLOW/WARN/BLOCK with confidence score). However, it does not explicitly differentiate this from the sibling 'scan_url' tool, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear usage context: use it as a guardrail before an AI agent connects to an external service. It does not mention exclusions or compare against sibling tools like 'scan_url' or 'governance_policy', but the primary use case is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_headersA
Quick security headers audit β checks HSTS, CSP, CORS, X-Frame-Options, cookie flags, and more.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL to check |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. 'Audit' and 'checks' imply a non-mutating inspection of response headers, which is useful, but it does not disclose limitations or side effects such as network behavior, blocking, or rate limits. It is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no filler, with the purpose front-loaded and a clear list of header categories after an em dash. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter, read-only audit tool with fully documented schema, the description covers what the tool does and the scope of the check. It doesn't discuss alternatives explicitly, but that gap is minor given the low complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% ('URL to check'), so the schema already documents the only parameter. The description adds no new meaning about the URL beyond that baseline, so 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('checks') and identifies a distinct resource: security headers, naming concrete checks such as HSTS, CSP, CORS, X-Frame-Options, and cookie flags. This clearly differentiates it from siblings like scan_url or assess_risk.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Quick security headers audit' implies this is the tool to call when a header-specific check is needed, but it never explicitly states when not to use it or points to an alternative sibling. Selection guidance is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_scansB
Compare security posture of two URLs side by side β useful for evaluating which endpoint is safer.
| Name | Required | Description | Default |
|---|---|---|---|
| url1 | Yes | First URL | |
| url2 | Yes | Second URL |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears the full burden of behavioral disclosure. It does not state whether the tool runs new scans, compares existing scan results, requires prior scans, or returns a simple verdict versus detailed data. This leaves important behavioral ambiguity for an agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that quickly conveys the core purpose and the practical use case. Every phrase adds value, and it is appropriately concise for a simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema and no annotations, yet the description does not explain what the tool returns, whether it requires prior scans, or how the comparison is presented. For selecting and invoking correctly, an agent would still be uncertain about prerequisites and expected output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds minimal semantic value beyond the schema, only reinforcing that two URLs are compared. The parameter descriptions themselves are terse but adequate for simple URL inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action: compare the security posture of two URLs. It distinguishes the tool from single-URL siblings like scan_url and assess_risk by emphasizing the two-URL comparison, though it does not explicitly name those siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives an explicit use case: evaluating which endpoint is safer. It implies the tool is for comparing two URLs rather than scanning or assessing one, providing clear contextual guidance without naming alternatives or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
governance_policyB
View the security governance policy or evaluate a score against ALLOW/WARN/BLOCK thresholds.
| Name | Required | Description | Default |
|---|---|---|---|
| score | No | Score to evaluate (0-100), required when action=evaluate | |
| action | No | Action (default: view) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry behavioral disclosure. It states that the tool can view a policy or evaluate a score and mentions the ALLOW/WARN/BLOCK threshold categories, but it does not describe the output of an evaluation, permission requirements, or whether any action has side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the primary verb and resource, then concisely states the secondary evaluation mode. There is no filler or redundant repetition of schema information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter tool this is mostly adequate, but the absence of an output schema means the description should clarify what an evaluation returns. It also lacks any comparison to sibling risk-assessment tools, which could lead an agent to misuse this tool for broader risk scoring.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the parameters are already well documented. The description adds useful context about ALLOW/WARN/BLOCK thresholds, which helps interpret the score parameter, but it does not add extra detail beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names two concrete operations: viewing the security governance policy and evaluating a score against ALLOW/WARN/BLOCK thresholds. This is clearer than a vague 'manage governance' phrasing, though it does not explicitly distinguish the tool from siblings like assess_risk.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the two actions but gives no guidance on when this tool should be preferred over sibling tools such as assess_risk or scan_url. It also does not state any exclusions or prerequisites, leaving the agent to infer applicability from the schema alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scan_historyA
View history of security scans performed in this session with grades and scores.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum results to return (default: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral burden. It does disclose that this is a read-only viewing operation scoped to the current session and that grades and scores are included. It does not mention ordering, pagination behavior beyond the schema default, or what happens when no scans exist, leaving some behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler words. Every clause adds useful information about the operation's scope and returned data.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple history-listing tool with one optional parameter and no output schema, the description is nearly complete: it states the action, scope, and returned content. The only notable omission is output ordering or default behavior of the history list, but that is a minor gap for this level of complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the only parameter, 'limit', so the schema already fully documents its meaning. The description adds no additional parameter context beyond what the schema provides, which matches the baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('view') and a specific resource ('history of security scans performed in this session') and even states what the results contain ('grades and scores'). This clearly distinguishes it from siblings like scan_url or assess_risk, which initiate or evaluate scans rather than retrieve past history.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'history of security scans performed in this session' makes the intended use clear: the agent should call this when it needs previously generated scan results rather than running a new scan. However, it does not explicitly name alternatives or exclusion criteria, so it stops short of full guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scan_urlA
Run a comprehensive security scan on a URL. Checks 7 modules: security headers, injection (XSS/SQLi/SSTI/command injection/path traversal), CORS, info disclosure (25 sensitive paths), TLS, authentication issues, and misconfigurations. Returns findings with severity ratings and a security grade (A-F). Use 'aggressive' mode to also test rate limiting.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Target URL to scan (must be http or https) | |
| mode | No | Scan mode (default: standard) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations available, the description carries the behavioral disclosure burden. It explains the seven scan modules, states that findings include severity ratings and a security grade, and reveals that aggressive mode additionally tests rate limiting. This goes well beyond a bare 'scan URL' statement, though it does not mention potential side effects or authorization requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with the main purpose, and packed with useful detail in just two sentences. Every clause contributes either scope, module coverage, output expectations, or mode-specific behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with only two parameters and no output schema, the description covers the input requirements, scan coverage, output format, and mode distinction. It is slightly incomplete in not positioning itself against the sibling tools, but overall an agent has enough to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds meaningful behavior for the mode parameter by specifying that aggressive mode tests rate limiting. This supplements the enum values without merely repeating the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with a specific verb and resource: 'Run a comprehensive security scan on a URL.' It then enumerates seven concrete check categories, so an agent can clearly understand the tool's scope and differentiate it from narrower siblings like check_headers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies when to use this tool for a full security scan and explains when to choose aggressive mode, but it does not explicitly compare against sibling tools or state when another tool would be preferable. Usage context is present but alternatives are not directly addressed.
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.
6 tool updates
v1.0.1- First observed
assess_risk - First observed
check_headers - First observed
compare_scans - First observed
governance_policy - First observed
scan_history - First observed
scan_url
TDQS
Scored across 6 tools
scan_url and assess_risk both scan a URL and could be confused, though assess_risk explicitly returns a governance decision. check_headers overlaps heavily with the headers module inside scan_url, creating ambiguity about which tool to call. Descriptions help clarify intent, but some boundaries remain fuzzy.
Most tools follow a clear verb_noun snake_case pattern: scan_url, check_headers, scan_history, compare_scans, assess_risk. governance_policy deviates by using a noun_noun name rather than a verb-led action name like view_policy, but the overall naming style is still predictable.
Six tools is a well-scoped set for a security scanning and governance server. Each tool has a distinct role within the workflow, and the count is neither bloated nor too thin.
The tool surface covers scanning, risk assessment, governance policy, history, and comparison, which are the core needs for this domain. A minor gap is that users cannot retrieve detailed findings from a past scan, only grades and scores, but agents can work around this by re-scanning.
Maintenance
Related MCP Connectors
Zero-trust gateway for AI agents: score tool calls, verify agent cards, enforce policy, audit.
Security gateway for AI agents: policy, approval, and audited execution, no secrets shared.
Pay-per-call cybersecurity for AI agents: vuln scans, threat intel, compliance, code security.
Deterministic runtime safety for AI agents: scan PII, gate tool actions, verify LLM output.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceA 7-layer security system for AI agents that detects and blocks prompt injection, data exfiltration, and malicious tool calls. It enables real-time scanning of inputs, outputs, and tool definitions to protect agentic workflows from emerging AI-specific threats.1MIT
- FlicenseNot gradedqualityAmaintenanceGuardrails service for AI agents that evaluates every tool call for safety and alignment before execution, providing default-deny policy, LLM safety evaluation, and audit trail.195 PyPI22-
- AlicenseNot gradedqualityBmaintenanceInput/output safety gate for AI agents: detect prompt-injection/jailbreak, leaked secrets/PII, and URL/IP reputation. Deterministic, no LLM.427 npmMIT
- AlicenseAqualityCmaintenanceSecurity scanning, prompt injection detection, secret leak detection, and agent permission auditing for AI agent workflows.824 npmMIT