SEOAST — home

SEOAST documentation

MCP server

SEOAST speaks the Model Context Protocol, so an AI agent can audit a page the same way a person would through the web app — same checks, same scoring, same quota. Point your client at the endpoint below, send your API key as a header, and two tools appear.

Endpoint
https://seoast.ai/api/mcp
Transport
Streamable HTTP
Auth header
x-api-key

Authentication

Every call is authenticated and metered — including list_checks. Send your key in the x-api-key header:

header
x-api-key: seoast_sk_1a2b3c4d_YOUR_KEY_SECRET

Authorization: Bearer <key> is accepted as an alternative, for clients whose config only exposes a bearer field. If you send both, they must carry the same key — a disagreement between the two headers is rejected rather than resolved by precedence.

A call carrying no key at all falls back to the anonymous tier, metered per client address at 10 requests a day. A call carrying an unrecognised, malformed or revoked key is refused outright rather than quietly downgraded — presenting a credential that does not resolve is an error, not the absence of one. The tool result says which of those happened.

Claude Code

Add the server once from the terminal:

terminal
claude mcp add seoast https://seoast.ai/api/mcp \
  --transport http \
  --header "x-api-key: seoast_sk_1a2b3c4d_YOUR_KEY_SECRET"

Or commit it to the project so the whole team picks it up, by writing .mcp.json at the repository root:

.mcp.json
{
  "mcpServers": {
    "seoast": {
      "type": "http",
      "url": "https://seoast.ai/api/mcp",
      "headers": {
        "x-api-key": "seoast_sk_1a2b3c4d_YOUR_KEY_SECRET"
      }
    }
  }
}

Confirm the connection with /mcp inside Claude Code. The server reports itself as seoast with two tools.

Cursor

Add the server to ~/.cursor/mcp.json for every project, or to .cursor/mcp.json inside a single project:

~/.cursor/mcp.json
{
  "mcpServers": {
    "seoast": {
      "url": "https://seoast.ai/api/mcp",
      "headers": {
        "x-api-key": "seoast_sk_1a2b3c4d_YOUR_KEY_SECRET"
      }
    }
  }
}

Cursor picks the file up on save; the server appears under Settings → MCP, where the two tools can be toggled individually.

Tools

audit_url

input: { "url": string }

Runs the full on-page audit against one URL. The page is fetched server-side over HTTP or HTTPS, redirects are followed, and the server-rendered HTML is scored. Client-side rendered content is not executed, and private, loopback and cloud-metadata addresses are refused.

Returns: A readable report — score out of 100, band, fetch summary, remaining quota, then every failing and warning check with what was measured and the specific fix — followed by a compact JSON block of the same findings for programmatic use.

list_checks

input: no arguments

Returns the catalogue: every check id, what it measures, its weight, and how the score and band are derived. Useful for explaining a report, or for deciding whether SEOAST answers a question before spending an audit on it.

Returns: The catalogue as readable text, plus the same catalogue as JSON.

Quota

Each tool call spends one request from the presented key's daily allowance, which resets at 00:00 UTC. Anonymous callers are metered against a hash of the client address the platform reports; where the platform reports none, the call is refused rather than served unmetered. An audit whose target host is unreachable still spends the request — the crawl was attempted, and metering after the fact would let the crawler be used for free.

TierRequests per UTC day
anonymous (no key)10
free100
pro2,000
scale20,000

Every successful tool result ends with the quota line — used, remaining, and the reset timestamp — so an agent can pace itself without a second call.

What gets checked

15 checks run against the server-rendered HTML of the URL you pass. Each one returns pass, warn, fail, or not measurable; a check that could not be measured is excluded from the score rather than counted as a zero, so the number always reads as a percentage of what was actually assessable.

  • titleTitle tag
  • meta_descriptionMeta description
  • canonicalCanonical URL
  • robots_metaRobots meta directives
  • open_graphOpen Graph tags
  • twitter_cardX (Twitter) card
  • heading_hierarchyHeading hierarchy
  • image_altImage alt text
  • image_dimensionsImage dimensions (layout shift)
  • internal_linkingInternal linking
  • structured_dataStructured data (JSON-LD)
  • html_langHTML lang attribute
  • viewportViewport meta tag
  • content_readabilityContent depth and readability
  • h1_title_alignmentH1 and title alignment

Call list_checks for the full description of each one, including the thresholds it uses and its weight in the score.

Verify the connection

A plain HTTP request is enough to confirm the endpoint and the key before wiring up a client. This lists the tools without spending quota, because tools/list is a protocol call rather than a tool call:

terminal
curl -sS https://seoast.ai/api/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -H "x-api-key: seoast_sk_1a2b3c4d_YOUR_KEY_SECRET" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'