Skip to main content
Glama
OrtaMarco

domain-security-mcp-server

by OrtaMarco

HTTP Security Headers

http_security_headers
Read-onlyIdempotent

Check a website's HTTP security headers and get a 0-100 score with an A-F grade, plus per-header notes on HSTS, CSP, X-Content-Type-Options, X-Frame-Options, Referrer-Policy, Permissions-Policy, and COOP.

Instructions

Fetch a URL and grade its HTTP security headers (HSTS, Content-Security-Policy, X-Content-Type-Options, X-Frame-Options, Referrer-Policy, Permissions-Policy, COOP). Returns a 0–100 score, an A–F grade, and per-header notes.

Args:

  • url (string): URL or host to check (scheme defaults to https://).

  • response_format ('markdown' | 'json'): output format (default 'markdown').

Returns: { url, final_url, status, grade, score, checks[{header, present, value, note}], missing[] }.

Example: "Grade the security headers on https://news.ycombinator.com" -> http_security_headers(url="https://news.ycombinator.com"). Errors: returns an error if the URL is invalid or the host is unreachable.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlYesURL or host to check, e.g. 'https://example.com'.
response_formatNoOutput format: 'markdown' for a human-readable summary (default) or 'json' for the full structured payload.markdown

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlYes
gradeYes
scoreYes
checksYes
statusYes
missingYes
final_urlYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changedv1.2.1
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • removedInput schema / additionalProperties
      Removed value: -false
    • addedInput schema / properties / url / maxLength
      Added value: +2048
    • changedOutput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
  2. First observedv1.0.0

TDQS

A4.4/5.0
Behavior4/5

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

The annotations already declare the operation read-only, idempotent, non-destructive, and open-world, so the description carries a lighter burden here. Beyond those hints, the description adds genuinely useful behavior details: scheme defaults to https, the response includes final_url, and invalid or unreachable hosts produce errors. It does not discuss rate limits or network cost, but those are not essential for this kind of lookup tool.

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 front-loaded with its purpose, then organized into Args, Returns, Example, and Errors sections. There is no filler, and every sentence contributes operational information that an agent needs to call the tool correctly.

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 that this is a read-only, single-input network check with a clear output schema, the description covers the important context: inputs, defaults, output shape, example usage, and error conditions. It does not mention rate limits or authentication, but nothing in the tool's design suggests those are needed for a successful call.

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

Parameters4/5

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

The schema already has full parameter descriptions, so the baseline is 3. The description adds value beyond the schema by clarifying that 'url' accepts a bare host and defaults to https, and by showing a full invocation example. This makes correct parameter selection more obvious than the schema alone.

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 and resource: 'Fetch a URL and grade its HTTP security headers,' and enumerates the exact headers covered (HSTS, CSP, X-Content-Type-Options, etc.). This clearly distinguishes it from the sibling DNS, email, and TLS tools even without explicitly naming an alternative.

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 gives clear context for when the tool is appropriate—checking HTTP security headers on a URL—and includes a concrete example of how an agent should invoke it. It does not explicitly list sibling alternatives or say when not to use it, so it stops short of the highest tier of usage guidance.

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