Skip to main content
Glama
alberthild

ShieldAPI MCP

by alberthild

shieldapi.full_scan

Read-onlyIdempotent

Run comprehensive security checks on URLs, domains, IP addresses, or emails to identify vulnerabilities and threats.

Instructions

Run all security checks on a target (URL, domain, IP, or email). Most comprehensive scan.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
targetYesTarget to scan — URL, domain, IP address, or email

Implementation Reference

  • The registration and execution logic for the 'shieldapi.full_scan' tool, which calls `callShieldApi` with the 'full-scan' endpoint.
    server.tool(
      'shieldapi.full_scan',
      'Run all security checks on a target (URL, domain, IP, or email). Most comprehensive scan.',
      { target: z.string().describe('Target to scan — URL, domain, IP address, or email') },
      { title: 'Full Security Scan', readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true },
      async ({ target }) => formatResult(await callShieldApi('full-scan', detectTargetType(target)))
    );
  • The `callShieldApi` function responsible for making the underlying HTTP request to the ShieldAPI service.
    async function callShieldApi(endpoint: string, params: Record<string, string>): Promise<unknown> {
      const url = new URL(`${SHIELDAPI_URL}/api/${endpoint}`);
      for (const [key, value] of Object.entries(params)) {
        url.searchParams.set(key, value);
      }
      if (demoMode) {
        url.searchParams.set('demo', 'true');
      }
    
      const response = await paymentFetch(url.toString());
      if (!response.ok) {
        const body = await response.text();
        throw new Error(`ShieldAPI ${endpoint} failed (${response.status}): ${body.substring(0, 200)}`);
      }
      return response.json();
    }

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv3.0.0

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, fully establishing the safety profile. The description adds minimal behavioral context beyond confirming it runs all checks, omitting details like output format or potential runtime, but it does not contradict the annotations.

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?

Two clear sentences, with the core action front-loaded in the first sentence. The second sentence adds impactful emphasis ('Most comprehensive scan') without unnecessary detail.

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

Completeness3/5

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

The tool has a simple one-parameter schema and full annotations, but there is no output schema. The description explains what the tool does but not what the scan returns, leaving the return-value context incomplete. It is minimally viable but could be improved by stating the output format.

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 schema already provides 100% coverage with a detailed description for the 'target' parameter. The description's mention of accepted target types merely repeats the schema content, adding no additional semantic value.

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 'Run all security checks on a target (URL, domain, IP, or email)' specifies a clear action and resource, and 'Most comprehensive scan' explicitly differentiates it from the specialized sibling tools like check_url and check_domain.

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 implies this is the comprehensive option for multi-type targets, but it does not explicitly state when to use it instead of the individual check_* tools or provide exclusions. The sibling context helps, but the description itself lacks explicit alternatives.

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