SSEO MCP
SEO MCP Tools

Page Data Tools and Filters

Query SEO page records with structured filters for status, metadata, headings, canonicals, depth, response performance, links, images, and structured data.

list_pages is the main evidence tool for on-page SEO analysis. It supports typed, allowlisted fields and structured operators so an agent can retrieve a precise result set instead of scanning an unrestricted export.

Page tools

list_pages

Returns filtered page records for a known project and crawl.

get_page_details

Returns more detail for one page. Use it after a filtered query identifies a representative or business-critical URL.

list_quick_wins

Returns detected opportunities. Verify each important opportunity with list_pages, list_links, or list_images.

Filterable fields

TypeExamples
Numericstatus_code, title_length, description_length, h1_count, h2_count, words_count, depth, response_time_ms, response_bytes, json_ld_count
Link and image countstotal_links_count, internal_links_count, external_links_count, total_images_count, missing_alt_images_count
Booleancanonical_present, canonical_matches_final_url, og_required_tags_present, twitter_card_present
Stringurl, final_url, domain, content_type, title, description, h1, canonical, fetched_at

Filter examples

Find a specific status code

Use list_pages with status_code eq 404.
Return URL, final URL, title, depth, and internal link count.

Find deep HTML pages

Use list_pages with content_type contains "text/html" and depth gte 4.
Group results by the first meaningful URL path segment.

Find canonical conflicts

Use list_pages where canonical_present eq true
and canonical_matches_final_url eq false.
Show URL, final URL, and canonical.

Find pages with missing-alt candidates

Use list_pages where missing_alt_images_count gt 0.
Sort the reviewed results by missing_alt_images_count descending.

Operators

Use eq, neq, gt, gte, lt, lte, in, contains, or is_null according to field type. Numeric comparisons require numeric fields. contains applies to string fields.

Better answers through bounded queries

Ask one question per query, use a deterministic filter, and request a representative sample when the result set is large. This makes the result easier to reproduce and reduces the chance that an agent overgeneralizes from an arbitrary subset.

Related documentation

On this page