Pylon SEO
Audit, rank-track and analyze SEO for sites via an authenticated MCP server.
사용해야 할까요
품질 및 안전성
발견 사항 (4)
- LOWget_keyword_gaps에서
- LOWget_cwv에서
- LOWget_site_changes에서
- LOWsubmit_indexnow에서
도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.
컨텍스트 비용
이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.
설치
원클릭 설치
`claude_desktop_config.json` 파일에 다음을 추가하세요:
{
"mcpServers": {
"pylon-seo": {
"url": "https://api.pylonseo.io/mcp"
}
}
}원격 엔드포인트
https://api.pylonseo.io/mcpstreamable-http할 수 있는 일
도구 목록
도구 (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.
입력 스키마
{
"type": "object",
"properties": {},
"required": []
}🟢get_site(site_id)
Get one site's metadata (name, domain, status, verification state, last-audit / last-scan timestamps).
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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).
입력 스키마
{
"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.
입력 스키마
{
"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).
입력 스키마
{
"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).
입력 스키마
{
"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.
입력 스키마
{
"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).
입력 스키마
{
"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).
입력 스키마
{
"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).
입력 스키마
{
"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).
입력 스키마
{
"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).
입력 스키마
{
"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.
입력 스키마
{
"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).
입력 스키마
{
"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.
입력 스키마
{
"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).
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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).
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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).
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"type": "object",
"properties": {
"url": {
"description": "Full URL to scan (https://example.com/path)",
"type": "string"
}
},
"required": [
"url"
]
}커뮤니티
증거