Stackhal

Outside-in DNS, email security, SEO, GEO and app-link checks plus developer utilities.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "stackhal": {
      "url": "https://stackhal.com/mcp"
    }
  }
}

Remote endpoints

https://stackhal.com/mcpstreamable-http

What it can do

Tool inventory

Tools (13)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢validate_app_links(domain, test_url)

Inspect and validate Apple App Site Association (apple-app-site-association) and Android Digital Asset Links (assetlinks.json) files, HTTPS hosting rules, and test URL path routing.

Input Schema

{
  "type": "object",
  "properties": {
    "domain": {
      "type": "string",
      "description": "The target domain name (e.g. \"example.com\") hosting universal link and asset link files."
    },
    "test_url": {
      "type": [
        "null",
        "string"
      ],
      "default": null,
      "description": "Optional web URL path to test against Apple AASA components and exclusion routing patterns."
    }
  },
  "required": [
    "domain"
  ]
}
🟢audit_website_seo(url)

Run a deterministic technical SEO audit for a public website URL. Checks canonicals, title tags, headings, robots.txt, sitemaps, redirects, crawl traps, and indexability.

Input Schema

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "The public website URL to audit (e.g. https://example.com)."
    }
  },
  "required": [
    "url"
  ]
}
🟢transpile_to_caddyfile(config_content, server_type)

Transpile Nginx (nginx.conf, server blocks) or Apache (.htaccess, VirtualHost) web server configuration to clean, idiomatic Caddyfile with migration advisories.

Input Schema

{
  "type": "object",
  "properties": {
    "config_content": {
      "type": "string",
      "description": "The raw web server configuration string (nginx.conf, server block, .htaccess, or VirtualHost) to transpile."
    },
    "server_type": {
      "type": [
        "null",
        "string"
      ],
      "default": null,
      "description": "Optional source server type: \"nginx\" or \"apache\". If omitted, auto-detected from content syntax."
    }
  },
  "required": [
    "config_content"
  ]
}
🟢calculate_cidr_overlap(cidrs, requested_free_prefix, parent_cidr)

Analyze IPv4/IPv6 CIDR subnets for range collisions, full containment, 2D bit-tree matrix partition, and available free subnet allocation.

Input Schema

{
  "type": "object",
  "properties": {
    "cidrs": {
      "type": "array",
      "items": {
        "type": "object"
      },
      "description": "Array of IPv4 or IPv6 CIDR strings to analyze for collisions and tree partition."
    },
    "requested_free_prefix": {
      "type": [
        "null",
        "integer"
      ],
      "default": null,
      "description": "Optional target prefix length (e.g. 20, 24) to find available free subnet block inside parent range."
    },
    "parent_cidr": {
      "type": [
        "null",
        "string"
      ],
      "default": null,
      "description": "Optional parent CIDR string (e.g. 10.0.0.0/16) to constrain free subnet allocation search."
    }
  },
  "required": [
    "cidrs"
  ]
}
🟢diagnose_cors_policy(request_origin, response_headers, with_credentials)

Analyze CORS HTTP request and response headers for wildcard/credential security violations, missing Vary: Origin, preflight OPTIONS handling, and header exposure.

Input Schema

{
  "type": "object",
  "properties": {
    "request_origin": {
      "type": "string",
      "description": "The incoming HTTP request Origin header (e.g. \"https://app.example.com\")."
    },
    "response_headers": {
      "type": "array",
      "description": "The server HTTP response headers (as key-value map or list of \"Header: Value\" strings).",
      "items": {}
    },
    "with_credentials": {
      "type": [
        "null",
        "boolean"
      ],
      "default": false,
      "description": "Whether the cross-origin request includes cookies or authorization credentials."
    }
  },
  "required": [
    "request_origin",
    "response_headers"
  ]
}
🟢trace_dns_delegation(domain, query_type)

Query live DNS records and inspect the authoritative nameservers returned for a domain.

Input Schema

{
  "type": "object",
  "properties": {
    "domain": {
      "type": "string",
      "description": "The target domain name (e.g. \"example.com\") to query using the application host resolver."
    },
    "query_type": {
      "type": [
        "null",
        "string"
      ],
      "default": "A",
      "description": "Optional DNS record type: \"A\" (default), \"AAAA\", \"CNAME\", \"TXT\", \"MX\", \"NS\", \"SOA\", or \"CAA\"."
    }
  },
  "required": [
    "domain"
  ]
}
🟢inspect_domain_security(domain)

Inspect domain email security and deliverability standards: DMARC (BIMI compliance), BIMI DNS & SVG reachability, MTA-STS (RFC 8461), SMTP TLS-RPT (RFC 8460), SPF and MX records.

Input Schema

{
  "type": "object",
  "properties": {
    "domain": {
      "type": "string",
      "description": "The domain name to inspect (e.g. stripe.com, example.com)."
    }
  },
  "required": [
    "domain"
  ]
}
🟢generate_favicon_suite(svg_content, dark_mode_strategy)

Generate modern multi-platform favicon bundle (adaptive dark-mode SVG, multi-resolution ICO, Apple Touch Icon, Android PWA icons, webmanifest) and minimal HTML tags from SVG or image input.

Input Schema

{
  "type": "object",
  "properties": {
    "svg_content": {
      "type": "string",
      "description": "The raw SVG XML markup string to convert into modern multi-platform favicon suite."
    },
    "dark_mode_strategy": {
      "type": [
        "null",
        "string"
      ],
      "default": "css_invert_fill",
      "description": "Optional dark mode strategy: \"css_invert_fill\" (default), \"css_class_swap\", or \"preserve_colors\"."
    }
  },
  "required": [
    "svg_content"
  ]
}
🟢analyze_geo_readiness(url)

Analyze Generative Engine Optimization (GEO) signals and AI crawler readiness for a web page (schema, citations, provenance, answer structure, llms.txt, AI bot robots rules).

Input Schema

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "The web page URL to analyze for GEO readiness."
    }
  },
  "required": [
    "url"
  ]
}
🟢inspect_apple_pkpass(pass_json)

Inspect and validate Apple Wallet .pkpass JSON structure (pass.json) or package manifests: checks required keys, pass styles, dates, ISO 8601 timezones, transit types, barcodes, and color contrast.

Input Schema

{
  "type": "object",
  "properties": {
    "pass_json": {
      "type": "string",
      "description": "The raw pass.json JSON string to inspect and validate."
    }
  },
  "required": [
    "pass_json"
  ]
}
🟢generate_apple_pkpass_spec(pass_type, organization_name, description, pass_type_identifier, team_identifier, ...)

Generate a production-ready, fully compliant Apple Wallet pass.json specification based on pass type, metadata, colors, barcode, and field values.

Input Schema

{
  "type": "object",
  "properties": {
    "pass_type": {
      "type": "string",
      "description": "Pass style type: \"boardingPass\", \"eventTicket\", \"storeCard\", \"coupon\", or \"generic\"."
    },
    "organization_name": {
      "type": "string",
      "description": "Name of the pass issuing organization, e.g. \"Acme Airlines\"."
    },
    "description": {
      "type": "string",
      "description": "Human-readable description of the pass, e.g. \"Flight from SFO to WAW\"."
    },
    "pass_type_identifier": {
      "type": [
        "null",
        "string"
      ],
      "default": null,
      "description": "Apple Pass Type Identifier starting with \"pass.\", e.g. \"pass.com.example.ticket\"."
    },
    "team_identifier": {
      "type": [
        "null",
        "string"
      ],
      "default": null,
      "description": "Apple Developer 10-character Team ID, e.g. \"BAHDAN9988\"."
    },
    "serial_number": {
      "type": [
        "null",
        "string"
      ],
      "default": null,
      "description": "Unique pass serial number, e.g. \"LOT-89421\"."
    },
    "background_color": {
      "type": [
        "null",
        "string"
      ],
      "default": null,
      "description": "Background color as CSS rgb(r, g, b), e.g. \"rgb(15, 23, 42)\"."
    },
    "foreground_color": {
      "type": [
        "null",
        "string"
      ],
      "default": null,
      "description": "Foreground text color as CSS rgb(r, g, b), e.g. \"rgb(255, 255, 255)\"."
    },
    "label_color": {
      "type": [
        "null",
        "string"
      ],
      "default": null,
      "description": "Label text color as CSS rgb(r, g, b), e.g. \"rgb(148, 163, 184)\"."
    },
    "barcode_message": {
      "type": [
        "null",
        "string"
      ],
      "default": null,
      "description": "Barcode message payload, e.g. \"M1HAL/BAHDAN ELO027\"."
    },
    "barcode_format": {
      "type": [
        "null",
        "string"
      ],
      "default": null,
      "description": "Barcode format: \"PKBarcodeFormatQR\", \"PKBarcodeFormatPDF417\", \"PKBarcodeFormatAztec\", \"PKBarcodeFormatCode128\"."
    },
    "transit_type": {
      "type": [
        "null",
        "string"
      ],
      "default": null,
      "description": "Transit type for boardingPass: \"PKTransitTypeAir\", \"PKTransitTypeTrain\", \"PKTransitTypeBus\", \"PKTransitTypeBoat\", \"PKTransitTypeGeneric\"."
    }
  },
  "required": [
    "pass_type",
    "organization_name",
    "description"
  ]
}
🟢repair_apple_pkpass_spec(pass_json)

Automatically repair and sanitize broken Apple Wallet pass.json manifests: fixes missing formatVersion, prefixes passTypeIdentifier, ensures 10-character team ID, normalizes dates to ISO 8601 with timezones, and auto-corrects low contrast.

Input Schema

{
  "type": "object",
  "properties": {
    "pass_json": {
      "type": "string",
      "description": "The raw, broken pass.json JSON string to repair."
    }
  },
  "required": [
    "pass_json"
  ]
}
🟢transpile_regex_engine(pattern, source_engine, target_engine)

Transpile and analyze regular expressions across engines (PCRE, Go RE2, JavaScript, Python re, Rust regex) with compatibility checks and ReDoS safety analysis.

Input Schema

{
  "type": "object",
  "properties": {
    "pattern": {
      "type": "string",
      "description": "The regular expression pattern string to analyze and transpile."
    },
    "source_engine": {
      "type": [
        "null",
        "string"
      ],
      "default": "pcre",
      "description": "Optional source engine: \"pcre\" (default), \"go_re2\", \"javascript\", \"python\", \"rust\"."
    },
    "target_engine": {
      "type": [
        "null",
        "string"
      ],
      "default": "go_re2",
      "description": "Optional target engine: \"go_re2\" (default), \"pcre\", \"javascript\", \"python\", \"rust\"."
    }
  },
  "required": [
    "pattern"
  ]
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded13 tools