MCP Server
MCP Tools Reference
Complete reference for all 14 tools available in the Surfaceable MCP server.
Overview
The Surfaceable MCP server exposes 14 tools. All tools accept a url parameter as a fully-qualified URL (including https://). Most tools return a structured JSON object with score, issues, and data fields.
page_seo
Full single-page SEO analysis covering title, meta description, headings, images, links, word count, canonical, and hreflang.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
url |
string | Yes | The page URL to analyse |
Returns: Score + issues + data.title, data.metaDescription, data.headings, data.images, data.canonical, etc.
check_indexability
Checks whether a page is indexable — robots.txt rules, noindex tags, canonicals, sitemap presence, and redirect chains.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
url |
string | Yes | The page URL to check |
Returns: Score + issues + indexability status flags.
analyze_schema
Detects and validates JSON-LD structured data on the page against Schema.org specifications.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
url |
string | Yes | The page URL to analyse |
Returns: Score + issues + list of detected schema types and their properties.
analyze_content
Content analysis: readability (Flesch-Kincaid score), word count, keyword density, and heading structure.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
url |
string | Yes | The page URL to analyse |
Returns: Score + issues + data.wordCount, data.readabilityScore, data.keywordDensity, data.headingStructure.
check_links
Internal and external link map with optional broken link detection.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
url |
string | Yes | The page URL to analyse |
check_broken |
boolean | No | Whether to check for broken links (default: true) |
Returns: Score + issues + data.internalLinks[], data.externalLinks[], data.brokenLinks[].
Note: Setting check_broken: false is significantly faster as it skips HTTP requests to each linked URL.
analyze_headers
HTTP header analysis: cache directives, compression, security headers, HSTS, and response time.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
url |
string | Yes | The URL to analyse |
Returns: Score + issues + data.headers{}, data.responseTime, data.compressed.
check_social_meta
Validates Open Graph and Twitter Card meta tags for correct social sharing previews.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
url |
string | Yes | The page URL to check |
Returns: Score + issues + data.openGraph{}, data.twitterCard{}.
check_vitals
Core Web Vitals via the Google PageSpeed Insights API: LCP, INP, CLS, TTFB, and performance scores.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
url |
string | Yes | The page URL to test |
strategy |
string | No | "mobile" (default) or "desktop" |
Returns: Score + issues + data.lcp, data.inp, data.cls, data.ttfb, data.performanceScore.
Note: Requires GOOGLE_API_KEY environment variable. Without it, returns simulated data.
check_security
Security audit via Mozilla Observatory: grade, HTTP security headers, and vulnerability flags.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
url |
string | Yes | The page URL to audit |
Returns: Score + issues + data.grade, data.score, data.tests{}.
check_dns
DNS record analysis, SPF/DMARC email authentication check, and SSL certificate validation.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
url |
string | Yes | The URL whose domain to check |
Returns: Score + issues + data.a[], data.mx[], data.spf, data.dmarc, data.ssl{}.
validate_html
HTML5 validation against W3C standards.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
url |
string | Yes | The page URL to validate |
Returns: Score + issues + data.errors[], data.warnings[].
detect_tech
Technology detection: CMS, frameworks, analytics platforms, CDN, and other tools in use.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
url |
string | Yes | The page URL to inspect |
Returns: Score + data.technologies[] with name, category, and confidence fields.
check_accessibility
WCAG 2.1 AA accessibility checks: images, headings, forms, viewport, and language.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
url |
string | Yes | The page URL to check |
Returns: Score + issues + data.violations[] with WCAG criterion references.
site_audit
Full site audit — crawls multiple pages and aggregates SEO issues across the site.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
url |
string | Yes | The starting URL to crawl from |
max_pages |
number | No | Maximum pages to crawl (default: 25) |
max_depth |
number | No | Maximum crawl depth from the start URL (default: 3) |
Returns: Aggregated score + issues across all crawled pages + data.pages[] with per-page summaries.
Note: This tool makes many HTTP requests and may take 30–120 seconds depending on site size and max_pages.
Response shape
All tools return a consistent JSON object:
{
"url": "https://example.com",
"timestamp": "2026-03-31T10:00:00.000Z",
"tool": "page_seo",
"score": 85,
"issues": [
{
"severity": "warning",
"category": "page-seo",
"message": "Title is too short (18 chars)",
"detail": "Aim for 50–60 characters to maximise SERP display"
}
],
"data": { ... }
}