Koskamo

Krawlup MCP

An agent-native growth and revenue-first analytics platform that provides SEO/AEO audits, first-party cookieless analytics, and AI-driven content drafting. It allows AI coding agents to fix issues directly via OAuth MCP, install analytics tags, and generate content drafts based on tracked data.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

Krawlup MCP logo, by krawlupVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-06Operated by krawlup
MCP endpoint (Streamable HTTP)
https://api.krawlup.com/mcp
Vendor documentation

What its tools do

28 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

28 of 28 have a description · 28 of 28 declare behavior hints · 25 of 25 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Passed Official MCP Registry namespace is tied to krawlup.com ·
  • Passed Endpoint is on the registry namespace domain ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Perform automated SEO and AEO audits for websites
  • Install analytics tags via agent self-service
  • Generate AI-drafted blog posts from product data
  • Track visitors and revenue attribution cookielessly

Source and maintenance

Vendor evidenceRegistry 2.0.0

Protocol and capabilities

Server
krawlup 2.0.0
MCP protocol negotiated in check
2025-11-25
Tools
28 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": true
  }
}

Tools

28 advertised

search_products
Advertised by the server during the last successful anonymous check.
Advertised read-only

Search the public catalog of launched products in plain language (min 2 characters).

search_products input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "query"
  ],
  "properties": {
    "limit": {
      "type": "integer",
      "maximum": 50,
      "minimum": 1,
      "description": "How many results (default 20, max 50)"
    },
    "query": {
      "type": "string",
      "description": "What to search for: product names, taglines, descriptions, domains"
    }
  }
}
search_products annotations
{
  "title": "Search products",
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
get_product
Advertised by the server during the last successful anonymous check.
Advertised read-only

The full public listing for one product, by slug or key.

get_product input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "identifier"
  ],
  "properties": {
    "identifier": {
      "type": "string",
      "description": "The product slug (e.g. \"acme-app\") or key (its domain)"
    }
  }
}
get_product annotations
{
  "title": "Get product",
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
check_launch_readiness
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Audit a URL before adding it to krawlup: bans, blocked platforms, whether the product already exists (and who owns it), plus the optional category list. Run this before add_product.

check_launch_readiness input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "The product website URL"
    }
  }
}
check_launch_readiness annotations
{
  "title": "Check launch readiness",
  "readOnlyHint": true,
  "openWorldHint": true,
  "destructiveHint": false
}
get_site_report
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

The free public site report for any website (the /site-report tool): performance, AEO, CRO, SEO crawl, CrUX, OpenPageRank, scorecards and the named checks behind them — the same data the public site-report page renders. Cached read, never generates; if hasReport is false, call run_site_report and poll this tool until scanStage clears.

get_site_report input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "domain"
  ],
  "properties": {
    "domain": {
      "type": "string",
      "description": "The website domain, e.g. \"example.com\""
    }
  }
}
get_site_report annotations
{
  "title": "Get site report",
  "readOnlyHint": true,
  "openWorldHint": true,
  "destructiveHint": false
}
run_site_report
Advertised by the server during the last successful anonymous check.
Open-world

Start the free public scan for any website and return immediately. Authenticated agents get 2 full scans per calendar month per credential; anonymous callers share a per-IP monthly budget with every other surface. Poll get_site_report for the domain until scanStage clears to read the finished report. Domains already listed as krawlup products are refused — scan those from the dashboard.

run_site_report input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "domain"
  ],
  "properties": {
    "domain": {
      "type": "string",
      "description": "The website domain, e.g. \"example.com\""
    }
  }
}
run_site_report annotations
{
  "title": "Run site report",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
list_products
Advertised by the server during the last successful anonymous check.
Advertised read-only

List your products on krawlup with their latest scan scores

list_products input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {}
}
list_products annotations
{
  "title": "List my products",
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
get_my_products_status
Advertised by the server during the last successful anonymous check.
Advertised read-only

Your products with their directory visibility (public/private) — most recent first.

get_my_products_status input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {}
}
get_my_products_status annotations
{
  "title": "Get product visibility",
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
compare_products
Advertised by the server during the last successful anonymous check.
Advertised read-only

All your products side by side — lifetime or windowed (today / 7d / 30d / 90d) unique visitors, views, revenue totals with refunds netted, average revenue per conversion, revenue per visitor, and scan scores, sorted by any of them. Windowed numbers are computed exactly the way the dashboard computes them (same events, same windows), so they match the product page; lifetime visitors are the leaderboard's HLL estimate (~1.6%) and lifetime revenue comes from the payments ledger. Products and scores are always included; visitor columns and windowed revenue need the website_analytics subscription facility, revenue columns need analytics_conversion — gated columns come back null with a note instead of failing the call.

compare_products input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "limit": {
      "type": "integer",
      "maximum": 100,
      "minimum": 1,
      "description": "Max products returned. Default 50."
    },
    "order": {
      "enum": [
        "asc",
        "desc"
      ],
      "type": "string",
      "description": "Sort direction. Default: desc (biggest / newest first)."
    },
    "range": {
      "enum": [
        "lifetime",
        "today",
        "7d",
        "30d",
        "90d"
      ],
      "type": "string",
      "description": "Metric window. lifetime = all-time totals; the others are ROLLING windows over the last N UTC days ending today (each includes today so far) — like the dashboard, they are not calendar-day buckets."
    },
    "sortBy": {
      "enum": [
        "visitors",
        "views",
        "revenue",
        "conversions",
        "avgRevenue",
        "score",
        "performance",
        "recent"
      ],
      "type": "string",
      "description": "Column to sort by. Products missing the chosen metric sort last. Default: visitors."
    }
  }
}
compare_products annotations
{
  "title": "Compare products",
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
get_my_subscription
Advertised by the server during the last successful anonymous check.
Advertised read-only

The founder's current subscription: plan name and price, status (active / trial / in the 3-day renewal grace / expired read-only), the plan's abilities and limits (a limit of 0 means unlimited), usage against this period's meters, and a can-do summary. Call this FIRST to check which features the founder's plan actually allows before using any other tool.

get_my_subscription input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {}
}
get_my_subscription annotations
{
  "title": "Get my subscription",
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
add_product
Advertised by the server during the last successful anonymous check.

Add a product from just its URL: krawlup scrapes the site (name, tagline, description, icons) and adds it to the founder's dashboard. Every other field is optional — explicit values override the scrape. Adding NEVER publishes — the product is private until the founder (or set_product_public) publishes it. Requires the submit permission.

add_product input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "The product website URL"
    },
    "name": {
      "type": "string",
      "maxLength": 40,
      "description": "Product name (max 40 characters). Omit to use the scraped site title."
    },
    "tagline": {
      "type": "string",
      "maxLength": 120,
      "description": "One-line tagline (max 120 characters). Omit to use the scraped site description."
    },
    "categories": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "maxItems": 3,
      "description": "Up to three category ids (or slugs/names) from check_launch_readiness. Optional — the founder can tag the product later."
    },
    "description": {
      "type": "string",
      "maxLength": 600,
      "description": "Short description (max 600 characters). Omit to use the scraped description."
    },
    "twitterUsername": {
      "type": "string",
      "description": "The product's X/Twitter handle (bare handle or profile URL)"
    }
  }
}
add_product annotations
{
  "title": "Add product",
  "readOnlyHint": false,
  "openWorldHint": false,
  "destructiveHint": false
}
set_product_public
Advertised by the server during the last successful anonymous check.

Make one of your products public in the krawlup directory. Publishing requires an active paid subscription (no trial) OR an admin-approved publishing grant covering this exact product; the 403 message names which. Unpublishing is set_product_private. Requires the submit permission.

set_product_public input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "productKey"
  ],
  "properties": {
    "productKey": {
      "type": "string",
      "description": "The product key (domain) as returned by add_product or list_products"
    }
  }
}
set_product_public annotations
{
  "title": "Publish product",
  "readOnlyHint": false,
  "openWorldHint": false,
  "destructiveHint": false
}
set_product_private
Advertised by the server during the last successful anonymous check.

Remove one of your products from the public directory (always allowed, any plan).

set_product_private input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "productKey"
  ],
  "properties": {
    "productKey": {
      "type": "string",
      "description": "The product key (domain) as returned by add_product or list_products"
    }
  }
}
set_product_private annotations
{
  "title": "Unpublish product",
  "readOnlyHint": false,
  "openWorldHint": false,
  "destructiveHint": false
}
get_insights
Advertised by the server during the last successful anonymous check.
Advertised read-only

Full latest insights for one product — everything the dashboard renders: overall + per-plane scorecards, failing audits, Core Web Vitals metrics, conversion (CRO) checks, the mobile layout test, AI-readiness facts (llms.txt, AI-crawler robots, structured data), trust/security checks, CrUX field data, Domain Rating + OpenPageRank, the SEO crawl, the recommended First Edit, and unresolved AI fix cards (fix cards require the ai_fix_cards plan facility)

get_insights input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "productKey"
  ],
  "properties": {
    "productKey": {
      "type": "string",
      "description": "The product key (see list_products)"
    }
  }
}
get_insights annotations
{
  "title": "Get insights",
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
get_fix_cards
Advertised by the server during the last successful anonymous check.
Advertised read-only

All stored AI fix cards for one product (what/why/steps/agent prompt per issue). Requires a plan with the ai_fix_cards facility

get_fix_cards input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "productKey"
  ],
  "properties": {
    "productKey": {
      "type": "string",
      "description": "The product key (see list_products)"
    }
  }
}
get_fix_cards annotations
{
  "title": "Get fix cards",
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
get_scan_history
Advertised by the server during the last successful anonymous check.
Advertised read-only

Score-over-time series for one product (last 100 scans, chronological): performance, AEO, CRO, SEO crawl, scorecards, CrUX, openRank, and issue counts — plus per-run source and timestamp

get_scan_history input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "productKey"
  ],
  "properties": {
    "productKey": {
      "type": "string",
      "description": "The product key (see list_products)"
    }
  }
}
get_scan_history annotations
{
  "title": "Get scan history",
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
get_analytics_snippet
Advertised by the server during the last successful anonymous check.
Advertised read-only

The exact <script> tag that installs krawlup first-party analytics on a product's own website (visitors, sessions, pages, referrers, countries, conversion goals). The returned snippet already embeds the site token at data-site="…" — insert BOTH lines yourself; never ask the founder to paste the token. After installing, confirm data appears in the dashboard Website tab within a minute of the first visit

get_analytics_snippet input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "productKey"
  ],
  "properties": {
    "productKey": {
      "type": "string",
      "description": "The product key (see list_products)"
    }
  }
}
get_analytics_snippet annotations
{
  "title": "Get analytics snippet",
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
get_analytics_token
Advertised by the server during the last successful anonymous check.
Advertised read-only

The raw analytics site token for one product — the data-site value inside the krawlup analytics tag. The token is not a secret (it travels in the tagged page source by design) and is already embedded inside the snippet returned by get_analytics_snippet — never ask the founder to paste the token. Use this for hand-written tags, the @krawlup/analytics-tag npm package, or custom integrations

get_analytics_token input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "productKey"
  ],
  "properties": {
    "productKey": {
      "type": "string",
      "description": "The product key (see list_products)"
    }
  }
}
get_analytics_token annotations
{
  "title": "Get analytics token",
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
set_excluded_pages
Advertised by the server during the last successful anonymous check.
Advertised destructive

Replace the per-product Excluded pages board — paths whose visits are discarded at intake (never stored, never counted). DESTRUCTIVE: it changes what the site's analytics records. MCP clients should prompt the site owner before calling; regardless, set confirm=true ONLY after the owner explicitly approved the exact list in the conversation. An empty array removes all exclusions. Requires a key with the submit scope

set_excluded_pages input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "productKey",
    "paths",
    "confirm"
  ],
  "properties": {
    "paths": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "maxItems": 25,
      "description": "FULL replacement list of absolute paths (e.g. /admin also covers /admin/settings; max 25) — an empty array clears the board"
    },
    "confirm": {
      "type": "boolean",
      "description": "Must be true, and may only be true after the site owner approved this exact list in the conversation"
    },
    "productKey": {
      "type": "string",
      "description": "The product key (see list_products)"
    }
  }
}
set_excluded_pages annotations
{
  "title": "Set excluded pages",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": true
}
get_website_analytics
Advertised by the server during the last successful anonymous check.
Advertised read-only

First-party website analytics for one product: visitors, sessions, bounce, avg. duration, pages per session, pageviews, daily series, entry/exit pages, top pages/referrers, acquisition channels, UTM sources, countries/devices, AI crawler visits (AI answers / indexing / training, with a partial flag when a crawler query failed), and conversion events + goals when the plan carries the analytics_conversion facility

get_website_analytics input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "productKey"
  ],
  "properties": {
    "range": {
      "enum": [
        "today",
        "7d",
        "30d"
      ],
      "type": "string",
      "description": "Defaults to 7d"
    },
    "productKey": {
      "type": "string",
      "description": "The product key (see list_products)"
    }
  }
}
get_website_analytics annotations
{
  "title": "Get website analytics",
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
get_bottleneck
Advertised by the server during the last successful anonymous check.
Advertised read-only

The stored AI bottleneck analysis for one product (THE one edit to make, with why/impact/steps and the agent prompt), or null if not run yet

get_bottleneck input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "productKey"
  ],
  "properties": {
    "productKey": {
      "type": "string",
      "description": "The product key (see list_products)"
    }
  }
}
get_bottleneck annotations
{
  "title": "Get bottleneck",
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
get_keyword_ideas
Advertised by the server during the last successful anonymous check.
Advertised read-only

The stored keyword research for one product: intent-clustered keyword ideas with volume/difficulty estimates (exact volume + CPC when a Keywords Everywhere key is configured), prioritized content actions, and a per-keyword verdict (own/push/hard/skip). A new run can be triggered from here with run_keyword_research; ideas worth watching can be added to rank tracking with add_tracked_keywords. Requires a plan with the keyword_research facility

get_keyword_ideas input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "productKey"
  ],
  "properties": {
    "productKey": {
      "type": "string",
      "description": "The product key (see list_products)"
    }
  }
}
get_keyword_ideas annotations
{
  "title": "Get keyword ideas",
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
run_keyword_research
Advertised by the server during the last successful anonymous check.
Open-world

Runs one keyword research for a product: a Google-autocomplete sweep clustered by a model into intent groups with volume/difficulty estimates and prioritized content actions (Jev-scored fit/demand/competition when the TypeSafe key is bound). Spends one of the founder's monthly keyword-research runs — check first with get_keyword_ideas whether the stored research still serves. Requires a key with the rescan scope

run_keyword_research input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "productKey"
  ],
  "properties": {
    "seed": {
      "type": "string",
      "maxLength": 100,
      "description": "Seed keyword; defaults to the product's target keyword or name"
    },
    "productKey": {
      "type": "string",
      "description": "The product key (see list_products)"
    }
  }
}
run_keyword_research annotations
{
  "title": "Run keyword research",
  "readOnlyHint": false,
  "openWorldHint": true,
  "destructiveHint": false
}
add_tracked_keywords
Advertised by the server during the last successful anonymous check.

Adds keywords to a product's rank-tracking board (max KEYWORD_TRACK_CAP per product). Tracked keywords are re-checked by the scanner on its scan passes and their top-10 positions become the rank history get_keyword_ranks reads. Requires a key with the rescan scope

add_tracked_keywords input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "productKey",
    "keywords"
  ],
  "properties": {
    "keywords": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "maxItems": 100,
      "description": "The keywords to track — normalized (trimmed, lowercased, deduped) before storage"
    },
    "productKey": {
      "type": "string",
      "description": "The product key (see list_products)"
    }
  }
}
add_tracked_keywords annotations
{
  "title": "Add tracked keywords",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
add_tracked_prompts
Advertised by the server during the last successful anonymous check.

Adds custom prompts to a product's AI-visibility tracking board (the plan's trackedPromptsPerPlan slots on top of the derived prompt set). Tracked prompts are answered by every scheduled visibility run across the configured engines; get the per-prompt citation trend from the dashboard's AI visibility tab. Requires a key with the rescan scope

add_tracked_prompts input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "productKey",
    "prompts"
  ],
  "properties": {
    "prompts": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "maxItems": 50,
      "description": "The questions to ask the AI engines about this product, e.g. \"best alternative to <brand> for <use case>\" — normalized (trimmed, case-insensitively deduped) before storage"
    },
    "productKey": {
      "type": "string",
      "description": "The product key (see list_products)"
    }
  }
}
add_tracked_prompts annotations
{
  "title": "Add tracked prompts",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
generate_content_draft
Advertised by the server during the last successful anonymous check.

Triggers one grounded blog-post draft for a product (Content Lab). Generated ONLY from the product's own Krawlup facts — profile, tracked prompts, tracked keywords, triaged mentions; never auto-published, the founder reviews and copies the markdown into their own blog. Angles: prompt-answer (answer a tracked AI question that does not cite the product yet — pass the exact prompt text as sourceRef), comparison (honest vs-post; topic names the rival, unverified rival claims stay neutral), mention-answer (answer a real community mention — pass the term as sourceRef), custom. The draft flips from generating to ready (or honestly failed) in the dashboard's Content tab within a few minutes. Requires a key with the rescan scope

generate_content_draft input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "productKey",
    "type",
    "topic"
  ],
  "properties": {
    "type": {
      "enum": [
        "prompt-answer",
        "comparison",
        "mention-answer",
        "custom"
      ],
      "type": "string",
      "description": "The draft angle"
    },
    "topic": {
      "type": "string",
      "maxLength": 200,
      "description": "What the post is about, one line (e.g. \"best lightweight alternative to Acme for solo founders\")"
    },
    "sourceRef": {
      "type": "string",
      "maxLength": 240,
      "description": "The grounding anchor when one exists: the exact tracked prompt text or the watch term"
    },
    "productKey": {
      "type": "string",
      "description": "The product key (see list_products)"
    }
  }
}
generate_content_draft annotations
{
  "title": "Generate content draft",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
remove_tracked_keywords
Advertised by the server during the last successful anonymous check.
Advertised destructive

Removes keywords from a product's rank-tracking board. Their stored rank-check history is deleted with them. Requires a key with the rescan scope

remove_tracked_keywords input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "productKey",
    "keywords"
  ],
  "properties": {
    "keywords": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "maxItems": 100,
      "description": "The keywords to stop tracking"
    },
    "productKey": {
      "type": "string",
      "description": "The product key (see list_products)"
    }
  }
}
remove_tracked_keywords annotations
{
  "title": "Remove tracked keywords",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": true
}
get_keyword_ranks
Advertised by the server during the last successful anonymous check.
Advertised read-only

Rank history for a product's tracked keywords, as checked by the scanner on its scan passes: per keyword the latest position (null = checked and not in the top-10), best position, and the series of stored checks. Only positions actually checked are returned — never interpolated. searchConfigured=false means no SERP source (Treg/Tavily) is configured and the scanner skips checks, so the board stays empty until the admin configures one. Requires a plan with the keyword_research facility

get_keyword_ranks input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "productKey"
  ],
  "properties": {
    "keyword": {
      "type": "string",
      "maxLength": 100,
      "description": "Limit to one tracked keyword"
    },
    "productKey": {
      "type": "string",
      "description": "The product key (see list_products)"
    }
  }
}
get_keyword_ranks annotations
{
  "title": "Get keyword ranks",
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
trigger_rescan
Advertised by the server during the last successful anonymous check.
Open-world

Starts a fresh full analysis of one product in the background — spends one of the founder's full-analysis allowances for the current billing period (per product, and across all their products), plus one page speed check. Returns immediately; poll get_insights for this product until scanPending is false to read the fresh numbers. Requires a key with the rescan scope.

trigger_rescan input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "productKey"
  ],
  "properties": {
    "productKey": {
      "type": "string",
      "description": "The product key (see list_products)"
    }
  }
}
trigger_rescan annotations
{
  "title": "Trigger rescan",
  "readOnlyHint": false,
  "openWorldHint": true,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

90-day uptime

A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.

Too few checks for a percentage yet (1 of 1 answered).

  1. 2026-11-07: 1 of 1 checks answered

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
739 ms
95th percentile latency
739 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 739 ms · metadata changed · 28 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http krawlup-mcp https://api.krawlup.com/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add krawlup-mcp --url https://api.krawlup.com/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable krawlup-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "krawlup-mcp": {
      "url": "https://api.krawlup.com/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "krawlup-mcp": {
      "type": "streamableHttp",
      "url": "https://api.krawlup.com/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start krawlup-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "krawlup-mcp": {
      "type": "http",
      "url": "https://api.krawlup.com/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http krawlup-mcp https://api.krawlup.com/mcp

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://api.krawlup.com/mcp

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "krawlup-mcp": {
      "serverUrl": "https://api.krawlup.com/mcp"
    }
  }
}

Let your agent find its tools

Find servers like Krawlup MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run Krawlup MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing