{"name":"dev.contextfetch/mcp","slug":"contextfetch-mcp","title":"ContextFetch","description":"Web search and any page as LLM-ready Markdown for AI agents. Free keyless tier, no signup.","url":"https://mcp.market/server/contextfetch-mcp","rating":null,"grade":"A","score":91,"certified":false,"status":"active","category":"ai","tags":["ai","search"],"presence":{"score":37,"stars":0,"forks":0,"downloads_week":540,"last_push_at":"2026-10-22T14:39:49.000Z","license":"MIT"},"uptime":{"percent":96,"checks":28,"ok":27,"last_checked_at":"2026-11-04T07:15:50.330Z","last_ok_at":"2026-11-04T07:15:50.330Z","latency_ms":1112},"claimed":false,"transport":"mixed","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/lachy3433/contextfetch-mcp","website":"https://contextfetch.dev","version":"1.1.0","remotes":[{"type":"streamable-http","url":"https://api.contextfetch.dev/mcp","headers":[{"description":"ContextFetch API key. Leave unset for the free keyless tier (25 requests per day per IP).","isSecret":true,"name":"x-api-key"}]}],"packages":[{"registryType":"npm","identifier":"@contextfetch/mcp","version":"1.1.0","runtimeHint":"npx","transport":{"type":"stdio"},"environmentVariables":[{"description":"ContextFetch API key. Leave unset for the free keyless tier (25 requests per day per IP).","format":"string","isSecret":true,"name":"CONTEXTFETCH_API_KEY"},{"description":"API base URL, only for a self-hosted engine.","format":"string","default":"https://api.contextfetch.dev","name":"CONTEXTFETCH_API_BASE"}]}],"tools":[{"name":"contextfetch_answer","description":"Answer a question with passages quoted verbatim from the web, never generated: searches, scores every passage of the top pages with a cross-encoder and returns the best ones with [n] citations to their sources. Use it for quick factual lookups; the quotes may not fully answer an open-ended question. Costs 1 credit.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"type":"string","minLength":1,"description":"The question."},"num_results":{"type":"integer","minimum":1,"maximum":10,"default":5,"description":"Pages searched for passages (1-10, default 5)."}},"required":["query"]}},{"name":"contextfetch_auto_reload","description":"Turn auto-reload on or off, or change it: when credits drop below `threshold`, the saved card buys `pack` again, up to `monthly_max_usd` per month. Needs an API key and a card saved at checkout. The monthly cap cannot be raised above $500 here.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"enabled":{"type":"boolean","description":"true to turn auto-reload on, false to turn it off."},"threshold":{"type":"integer","minimum":100,"maximum":100000,"description":"Reload when credits drop below this (100-100,000, default 1,000)."},"pack":{"type":"string","enum":["instant","builder","scale"],"description":"Pack to buy: instant $15/15,000, builder $50/60,000, scale $150/200,000."},"monthly_max_usd":{"type":"number","exclusiveMinimum":0,"maximum":500,"description":"Monthly spending cap in USD (at most 500)."}},"required":["enabled"]}},{"name":"contextfetch_balance","description":"Show the API key's remaining credits, daily burn rate (7-day average) and auto-reload settings, including the last auto-reload error if a payment failed. Needs an API key (Authorization: Bearer); free.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{}}},{"name":"contextfetch_crawl","description":"Crawl one website from a start URL and get its pages as Markdown: same-site links only, up to `max_depth` hops (<= 3) and `limit` pages (<= 50). Pass `query` to rank the pages by relevance and return only their relevant passages. Costs 1 credit per page returned.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"Public http(s) start URL."},"max_depth":{"type":"integer","minimum":0,"maximum":3,"default":1,"description":"Link hops from the start page (0-3, default 1)."},"limit":{"type":"integer","minimum":1,"maximum":50,"default":10,"description":"Maximum pages to return (1-50, default 10)."},"query":{"type":"string","minLength":1,"description":"Optional topic: ranks pages and prunes each to the relevant passages."},"include_paths":{"type":"array","items":{"type":"string"},"maxItems":20,"description":"Regexes; only follow links whose path matches one, e.g. [\"^/docs/\"]."},"exclude_paths":{"type":"array","items":{"type":"string"},"maxItems":20,"description":"Regexes; never follow links whose path matches one."}},"required":["url"]}},{"name":"contextfetch_deep_research","description":"Deep research in one call, no LLM: a deep search of the question, its sub-topics (or your sub_queries) as searches of their own, and the pages its list and index results link to, returned as one cited report: summary, key facts, a section per sub-topic and the sources, every passage quoted verbatim with [n]. Costs 1 credit. For a quick evidence pack use contextfetch_research.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"type":"string","minLength":1,"description":"The research question."},"sub_queries":{"type":"array","items":{"type":"string","minLength":1},"minItems":1,"maxItems":3,"description":"Up to 3 search queries covering different angles of the question. Strongly recommended."},"num_results_per_query":{"type":"integer","minimum":1,"maximum":25,"default":5,"description":"Results per sub-query (1-25, default 5; at most 10 are used)."}},"required":["query"]}},{"name":"contextfetch_extract_url","description":"Fetch a public web page (docs, articles, GitHub files, arXiv papers) as clean Markdown with tables preserved. Pass `query` to get only the passages relevant to it instead of the whole page.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"Public http(s) URL to read."},"query":{"type":"string","minLength":1,"description":"Optional question or topic; returns only the relevant passages."}},"required":["url"]}},{"name":"contextfetch_find_similar","description":"Find pages similar to a given URL (alternatives, related docs, competing libraries), excluding the source domain. Returns titles, URLs and the most relevant passages as Markdown.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"Public http(s) URL to find similar pages for."},"num_results":{"type":"integer","minimum":1,"maximum":25,"default":5,"description":"Number of results to return (1-25, default 5)."}},"required":["url"]}},{"name":"contextfetch_get_free_key","description":"Get a free ContextFetch API key (no signup, no payment) with starter credits, for when the keyless daily limit runs out. One key per network, ever: keep the key it returns and use it as `Authorization: Bearer <key>`.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{}}},{"name":"contextfetch_map","description":"List a website's URLs without fetching its pages: its sitemaps (from robots.txt, else /sitemap.xml) plus the start page's links, same site only, up to `limit` (<= 5,000). Use it to find the right pages before contextfetch_extract_url or contextfetch_crawl. Costs 1 credit.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"Public http(s) URL of the site (any page on it)."},"limit":{"type":"integer","minimum":1,"maximum":5000,"default":100,"description":"Maximum URLs (1-5,000, default 100)."},"include_paths":{"type":"array","items":{"type":"string"},"maxItems":20,"description":"Regexes; only list URLs whose path matches one, e.g. [\"^/blog/\"]."},"exclude_paths":{"type":"array","items":{"type":"string"},"maxItems":20,"description":"Regexes; never list URLs whose path matches one."}},"required":["url"]}},{"name":"contextfetch_research","description":"Research a question in one call, server-side: runs up to 5 web searches (sub-queries) concurrently, dedupes the pages by URL, ranks them all against the question with a cross-encoder and returns one Markdown evidence pack with numbered [n] sources and their query-pruned passages, quoted verbatim (no generated text). Costs 1 credit. Pass your own `sub_queries` (distinct angles on the question) for better coverage; if omitted they are derived from `query`: the query, query + \"documentation\", and query + \"benchmark\" (speed or comparison questions) or + \"example\".","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"type":"string","minLength":1,"description":"The research question."},"sub_queries":{"type":"array","items":{"type":"string","minLength":1},"minItems":1,"maxItems":5,"description":"Up to 5 search queries covering different angles of the question. Recommended."},"num_results_per_query":{"type":"integer","minimum":1,"maximum":10,"default":5,"description":"Results per sub-query (1-10, default 5)."}},"required":["query"]}},{"name":"contextfetch_search","description":"Search the web and get LLM-ready Markdown. Each result has its title, URL and only the passages relevant to the query (cross-encoder pruned context), so it costs far fewer tokens than raw pages. Use for current events, documentation, APIs, research and fact checking.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"type":"string","minLength":1,"description":"Natural-language search query."},"num_results":{"type":"integer","minimum":1,"maximum":25,"default":5,"description":"Number of results to return (1-25, default 5)."},"include_domains":{"type":"array","items":{"type":"string"},"description":"Only return results from these domains, e.g. [\"docs.python.org\"]."},"exclude_domains":{"type":"array","items":{"type":"string"},"description":"Never return results from these domains."},"time_range":{"type":"string","enum":["day","week","month","year"],"description":"Only pages published in the last day, week, month or year."},"start_published_date":{"type":"string","minLength":1,"description":"Only pages published on or after this date (YYYY-MM-DD). Undated pages are dropped."},"end_published_date":{"type":"string","minLength":1,"description":"Only pages published on or before this date (YYYY-MM-DD)."},"topic":{"type":"string","enum":["general","news","finance"],"description":"news: news sources, recent pages first. finance: SEC filings and finance sites. Default general."},"category":{"type":"string","minLength":1,"description":"Focus on one kind of page: company, research paper, news, pdf, github, personal site, linkedin profile, financial report, people."},"country":{"type":"string","minLength":1,"description":"Two-letter country code (US, DE): that country's results rank higher."},"language":{"type":"string","minLength":1,"description":"Two-letter language code (en, de): results in that language rank higher."}},"required":["query"]}},{"name":"fetch","description":"Fetch the full text of a search result by its id (a URL). Returns {id, title, text, url, metadata} as JSON.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string","minLength":1,"description":"An id from `search` (the page URL)."}},"required":["id"]}},{"name":"search","description":"Search the web. Returns {results: [{id, title, url}]} as JSON; pass an id to `fetch` for the page text.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"type":"string","minLength":1,"description":"Search query."}},"required":["query"]}}],"scan":{"score":91,"grade":"A","scanned_at":"2026-10-25T09:23:19.698Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-10-25T09:23:19.658Z","components":{"code":{"score":25,"max":25,"notes":["2 source files scanned"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 1920ms"]},"poisoning":{"score":15,"max":15,"notes":["13 tool descriptions checked"]},"auth":{"score":8,"max":15,"notes":["API key sent as a header"]},"maintenance":{"score":15,"max":15,"notes":["last push 3 days ago"]},"identity":{"score":8,"max":10,"notes":["endpoint served from the registry-verified namespace domain"]}},"findings":[],"inputs":{"probes":[{"url":"https://api.contextfetch.dev/mcp","reachable":true,"authRequired":false,"latencyMs":1920,"serverInfo":{"name":"contextfetch","version":"1.0.1"}}],"packages":[{"registryType":"npm","identifier":"@contextfetch/mcp","version":"1.1.0","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":2,"publishedAt":"2026-10-22T16:04:22.099Z","repositoryUrl":"git+https://github.com/lachy3433/contextfetch-mcp.git","weeklyDownloads":540}],"repo":{"found":true,"owner":"lachy3433","repo":"contextfetch-mcp","archived":false,"pushedAt":"2026-10-22T14:39:49Z","stars":0,"forks":0,"openIssues":1,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/167385842?v=4","ownerCreatedAt":"2024-04-18T01:28:30Z","license":"MIT"},"icon":{"url":"https://contextfetch.dev/logomark.svg","source":"registry"},"presence":{"stars":0,"forks":0,"downloadsWeek":540,"license":"MIT","lastPushAt":"2026-10-22T14:39:49.000Z","score":37}}}},"grade_history":[],"reviews":[]}