Pylon SEO
Audit, rank-track and analyze SEO for sites via an authenticated MCP server.
Sollte ich dies verwenden
Qualität und Sicherheit
Befunde (4)
- LOWin get_keyword_gaps
- LOWin get_cwv
- LOWin get_site_changes
- LOWin submit_indexnow
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"pylon-seo": {
"url": "https://api.pylonseo.io/mcp"
}
}
}Remote-Endpunkte
https://api.pylonseo.io/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (31)
🟢list_sites
List every SEO site in the authenticated user's organisation (id, name, domain, status, last audit timestamp). Use before any other tool to discover which site_ids are valid.
Eingabe-Schema
{
"type": "object",
"properties": {},
"required": []
}🟢get_site(site_id)
Get one site's metadata (name, domain, status, verification state, last-audit / last-scan timestamps).
Eingabe-Schema
{
"type": "object",
"properties": {
"site_id": {
"description": "UUID of the site",
"type": "string"
}
},
"required": [
"site_id"
]
}🟢get_site_audit(site_id)
Latest SEO audit run for a site: overall + per-category scores and issue counts by severity.
Eingabe-Schema
{
"type": "object",
"properties": {
"site_id": {
"description": "UUID of the site",
"type": "string"
}
},
"required": [
"site_id"
]
}🟢get_audit_issues(limit, severity, site_id)
Top issues from the latest audit run for a site. Optional filter by severity (critical|high|medium|low). Returns up to `limit` (default 25, max 200) instances.
Eingabe-Schema
{
"type": "object",
"properties": {
"limit": {
"description": "Max issues to return (1-200)",
"type": "integer"
},
"severity": {
"description": "Optional severity filter",
"enum": [
"critical",
"high",
"medium",
"low"
],
"type": "string"
},
"site_id": {
"description": "UUID of the site",
"type": "string"
}
},
"required": [
"site_id"
]
}🟢get_score_history(site_id)
Daily audit score history for a site (used for trend lines). Returns the most recent 90 samples.
Eingabe-Schema
{
"type": "object",
"properties": {
"site_id": {
"description": "UUID of the site",
"type": "string"
}
},
"required": [
"site_id"
]
}🟢get_keyword_rankings(site_id)
Tracked keyword positions + movement for a site (current + previous position, URL, country, device).
Eingabe-Schema
{
"type": "object",
"properties": {
"site_id": {
"description": "UUID of the site",
"type": "string"
}
},
"required": [
"site_id"
]
}🟢get_serp_features(site_id)
Aggregate SERP-feature presence (AI Overview, Featured Snippet, People-Also-Ask, Local Pack, Video, Images, Shopping, Knowledge) across the site's tracked keywords, from the latest ranking run.
Eingabe-Schema
{
"type": "object",
"properties": {
"site_id": {
"description": "UUID of the site",
"type": "string"
}
},
"required": [
"site_id"
]
}🟢get_rank_alerts(site_id)
Configured rank-drop alert rules for a site (thresholds + is_active flags).
Eingabe-Schema
{
"type": "object",
"properties": {
"site_id": {
"description": "UUID of the site",
"type": "string"
}
},
"required": [
"site_id"
]
}🟢get_ai_overview_presence(site_id)
Google AI Overview coverage for a site: coverage %, delta vs previous run, per-intent buckets, per-keyword state (gained / lost / still-covered / not-covered).
Eingabe-Schema
{
"type": "object",
"properties": {
"site_id": {
"description": "UUID of the site",
"type": "string"
}
},
"required": [
"site_id"
]
}🟢get_ai_visibility(site_id)
AI visibility overview for a site: measured mention rate across configured AI engines (OpenRouter / OpenAI / Anthropic / Gemini / Perplexity), current engine set, planned engines.
Eingabe-Schema
{
"type": "object",
"properties": {
"site_id": {
"description": "UUID of the site",
"type": "string"
}
},
"required": [
"site_id"
]
}🟢get_prompt_research(site_id)
Per-prompt AI research for a site (target share, leader, rivals, opportunity bucket).
Eingabe-Schema
{
"type": "object",
"properties": {
"site_id": {
"description": "UUID of the site",
"type": "string"
}
},
"required": [
"site_id"
]
}🟢get_gsc_metrics(dimension, limit, site_id, surface)
Google Search Console metrics for a site. `surface` = organic|ai_overview|ai_mode|discover_ai (default organic); `dimension` = query|page|country|device|date (default query).
Eingabe-Schema
{
"type": "object",
"properties": {
"dimension": {
"enum": [
"query",
"page",
"country",
"device",
"date"
],
"type": "string"
},
"limit": {
"description": "Max rows (1-500, default 50)",
"type": "integer"
},
"site_id": {
"description": "UUID of the site",
"type": "string"
},
"surface": {
"enum": [
"organic",
"ai_overview",
"ai_mode",
"discover_ai"
],
"type": "string"
}
},
"required": [
"site_id"
]
}🟢get_bing_metrics(dimension, limit, site_id)
Bing Webmaster Tools metrics for a site (organic; Bing has no Copilot API split). `dimension` = query|page|country|device|date (default query).
Eingabe-Schema
{
"type": "object",
"properties": {
"dimension": {
"enum": [
"query",
"page",
"country",
"device",
"date"
],
"type": "string"
},
"limit": {
"description": "Max rows (1-500, default 50)",
"type": "integer"
},
"site_id": {
"description": "UUID of the site",
"type": "string"
}
},
"required": [
"site_id"
]
}🟢get_competitors(site_id)
Tracked competitors for a site with their latest snapshot (domain authority, visibility, organic keywords, estimated traffic, backlinks).
Eingabe-Schema
{
"type": "object",
"properties": {
"site_id": {
"description": "UUID of the site",
"type": "string"
}
},
"required": [
"site_id"
]
}🟢get_keyword_gaps(site_id)
Top keyword-gap opportunities (keywords a competitor ranks for and the site does not, ordered by opportunity score).
Eingabe-Schema
{
"type": "object",
"properties": {
"site_id": {
"description": "UUID of the site",
"type": "string"
}
},
"required": [
"site_id"
]
}🟢get_backlinks_domains(site_id)
Top referring domains for a site with the Pylon-computed 0-100 authority score.
Eingabe-Schema
{
"type": "object",
"properties": {
"site_id": {
"description": "UUID of the site",
"type": "string"
}
},
"required": [
"site_id"
]
}🟢get_content_grade(site_id, url)
Cached content-grade summary for a URL on a site (from the on-page grader).
Eingabe-Schema
{
"type": "object",
"properties": {
"site_id": {
"description": "UUID of the site",
"type": "string"
},
"url": {
"description": "Exact URL to look up",
"type": "string"
}
},
"required": [
"site_id",
"url"
]
}🟢get_cwv(site_id)
Core Web Vitals (LCP, CLS, INP, FCP, TTFB) for a site from PageSpeed Insights — mobile + desktop snapshots.
Eingabe-Schema
{
"type": "object",
"properties": {
"site_id": {
"description": "UUID of the site",
"type": "string"
}
},
"required": [
"site_id"
]
}🟢get_site_changes(site_id)
Recent SEO changes detected between the two most recent crawls (title / meta / h1 / canonical / indexability / status code).
Eingabe-Schema
{
"type": "object",
"properties": {
"site_id": {
"description": "UUID of the site",
"type": "string"
}
},
"required": [
"site_id"
]
}🟢get_scan_pages(limit, site_id)
Newest pages from a site's latest crawl (status code, response time, size, depth, indexable). Windowed at 200 rows.
Eingabe-Schema
{
"type": "object",
"properties": {
"limit": {
"description": "Max rows (1-200, default 50)",
"type": "integer"
},
"site_id": {
"description": "UUID of the site",
"type": "string"
}
},
"required": [
"site_id"
]
}🟢get_market_analysis(site_id)
Market analysis overview for a site: tracked keyword demand aggregates, competitive concentration and provenance chips.
Eingabe-Schema
{
"type": "object",
"properties": {
"site_id": {
"description": "UUID of the site",
"type": "string"
}
},
"required": [
"site_id"
]
}🟢get_local_seo(site_id)
Local SEO overview for a site (rank-tracker with local intent). Returns tracked local keywords + rival domains + AI-only rivals.
Eingabe-Schema
{
"type": "object",
"properties": {
"site_id": {
"description": "UUID of the site",
"type": "string"
}
},
"required": [
"site_id"
]
}🟢list_reports(kind, limit, site_id)
List stored report runs for the caller's organisation. Optional filter by `site_id` and `kind` (overview|seo_audit|rankings|competitors|ai_visibility).
Eingabe-Schema
{
"type": "object",
"properties": {
"kind": {
"description": "Optional kind filter",
"type": "string"
},
"limit": {
"description": "Max rows (1-100, default 25)",
"type": "integer"
},
"site_id": {
"description": "Optional UUID to filter by site",
"type": "string"
}
},
"required": []
}🟢get_plans
Pylon SEO plans and the caller's entitlement: the paid catalogue (Growth / Agency, monthly / yearly) with USD + INR prices, site limits, credits and features, plus the caller's current plan, site usage and trial state, and the website pricing_url where plans are purchased.
Eingabe-Schema
{
"type": "object",
"properties": {},
"required": []
}🟡add_keyword(country_code, intent, keyword, site_id)
Track a new keyword for a site. `keyword` and `country_code` (ISO-3166-1 alpha-2, e.g. 'us') are required; `intent` (informational|commercial|transactional|navigational) is optional and estimated when omitted.
Eingabe-Schema
{
"type": "object",
"properties": {
"country_code": {
"description": "ISO-3166-1 alpha-2 (us / in / gb / de / fr / ca / au)",
"type": "string"
},
"intent": {
"description": "Optional intent",
"type": "string"
},
"keyword": {
"description": "Keyword text (1-200 chars)",
"type": "string"
},
"site_id": {
"description": "UUID of the site",
"type": "string"
}
},
"required": [
"site_id",
"keyword",
"country_code"
]
}🟡add_competitor(domain, label, site_id)
Track a new competitor for a site by its bare domain (no protocol). Discovery scan is enqueued asynchronously.
Eingabe-Schema
{
"type": "object",
"properties": {
"domain": {
"description": "Bare domain (e.g. example.com)",
"type": "string"
},
"label": {
"description": "Optional human-friendly label",
"type": "string"
},
"site_id": {
"description": "UUID of the site",
"type": "string"
}
},
"required": [
"site_id",
"domain"
]
}🔴add_rank_alert(drop_threshold, site_id)
Configure a rank-drop alert rule for a site. `drop_threshold` (positive int) fires when any tracked keyword drops that many positions between runs.
Eingabe-Schema
{
"type": "object",
"properties": {
"drop_threshold": {
"description": "Positions dropped between runs to fire (1-100)",
"type": "integer"
},
"site_id": {
"description": "UUID of the site",
"type": "string"
}
},
"required": [
"site_id",
"drop_threshold"
]
}⚪start_scan(site_id)
Enqueue a fresh crawl + audit run for a site. Idempotent: a running / queued run short-circuits.
Eingabe-Schema
{
"type": "object",
"properties": {
"site_id": {
"description": "UUID of the site",
"type": "string"
}
},
"required": [
"site_id"
]
}⚪start_ranking_run(site_id)
Enqueue a keyword-rankings sweep for a site (resolves every tracked keyword's SERP position).
Eingabe-Schema
{
"type": "object",
"properties": {
"site_id": {
"description": "UUID of the site",
"type": "string"
}
},
"required": [
"site_id"
]
}🔴submit_indexnow(confirm_token, site_id, urls)
Push a URL batch to IndexNow (Bing/Yandex/Naver/Seznam) for a site. Requires an existing verified IndexNow key. All URLs must share the site's host.
Eingabe-Schema
{
"type": "object",
"properties": {
"confirm_token": {
"description": "Single-use token from the preview call. Omit to preview; include to submit.",
"type": "string"
},
"site_id": {
"description": "UUID of the site",
"type": "string"
},
"urls": {
"description": "URL list (1-1000)",
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"site_id",
"urls"
]
}🟢run_public_scan(url)
Run the anonymous single-URL SEO checker (public). Returns the same audit shape logged-in users see. Rate-limited per anonymous identity.
Eingabe-Schema
{
"type": "object",
"properties": {
"url": {
"description": "Full URL to scan (https://example.com/path)",
"type": "string"
}
},
"required": [
"url"
]
}Community
Nachweis