{"serverInfo":{"name":"web","title":"web.23signs.org","version":"0.1.0"},"description":"Web pages as clean content, search over papers, news and Wikipedia, and bounded page watches. Four free tools.","endpoint":"https://web.23signs.org/mcp","transport":{"type":"streamable-http","url":"https://web.23signs.org/mcp","stateless":true},"capabilities":{"tools":true,"resources":false,"prompts":false},"authentication":{"type":"none"},"tools":[{"name":"web_fetch","title":"Fetch web pages as clean content","description":"Fetch one or more public URLs (up to 10) and return clean content: markdown (default), a JSON block tree, or semantic HTML, with title, description, language, author and date. Handles PDFs and office documents, arXiv papers, X posts, patents, and JavaScript-rendered pages (headless browser fallback). Text that a page hides from human readers is kept and flagged with \"HIDDEN FROM HUMAN READERS\". Per-URL failures come back in errors[] and do not fail the call.","inputSchema":{"type":"object","properties":{"urls":{"type":"array","items":{"type":"string","format":"uri","pattern":"^https?://","description":"Public http or https URL"},"minItems":1,"maxItems":10,"description":"URLs to fetch"},"format":{"type":"string","enum":["markdown","json","html"],"description":"Content format for the text field (default markdown)"},"links":{"type":"boolean","description":"Include every <a href> on the page as absolute URLs"},"include_selectors":{"type":"array","items":{"type":"string","minLength":1,"maxLength":1000},"minItems":1,"maxItems":20,"description":"CSS selectors; only matching elements are returned, in document order"},"exclude_selectors":{"type":"array","items":{"type":"string","minLength":1,"maxLength":1000},"minItems":1,"maxItems":20,"description":"CSS selectors for elements to drop before extraction"},"ttl":{"type":"integer","minimum":0,"description":"Cache tolerance in seconds: 0 forces a live fetch, omit to accept a cached copy up to a day old"}},"required":["urls"]},"annotations":{"readOnlyHint":true,"openWorldHint":true},"httpEndpoint":"POST https://web.23signs.org/v1/fetch"},{"name":"web_search","title":"Search papers, news or Wikipedia","description":"Search and get ranked results with title, snippet, url and date. domain_type research_paper (arXiv + Crossref, with authors, venue, year, citation count, pdf_url), news (GDELT, with publisher and date), wikipedia (article titles and snippets). General web search (domain_type web) is only available when a backend is configured; check web_status first.","inputSchema":{"type":"object","properties":{"query":{"type":"string","minLength":1,"description":"Search terms"},"domain_type":{"type":"string","enum":["research_paper","news","wikipedia","web"],"description":"Which index to search (default web, which may be unconfigured)"},"include_domains":{"type":"string","description":"Comma-separated domains to keep"},"exclude_domains":{"type":"string","description":"Comma-separated domains to drop"},"language":{"type":"string","description":"Two-letter language code, e.g. en, fi"},"recency_minutes":{"type":"integer","minimum":1,"maximum":5256000,"description":"Only results from the last N minutes (news)"},"after_date":{"type":"string","description":"YYYY-MM-DD lower bound (news)"},"before_date":{"type":"string","description":"YYYY-MM-DD upper bound (news)"},"pub_year_min":{"type":"integer","description":"Earliest publication year (research_paper)"},"pub_year_max":{"type":"integer","description":"Latest publication year (research_paper)"},"page":{"type":"integer","minimum":0,"maximum":10,"description":"Result page, from 0"}},"required":["query"]},"annotations":{"readOnlyHint":true,"openWorldHint":true},"httpEndpoint":"GET https://web.23signs.org/v1/search"},{"name":"web_watch","title":"Wait for a web page to change","description":"Watch one public URL for up to 120 seconds and return as soon as its extracted content changes, with the lines added and removed; returns a timeout notification if nothing changed. Use include_selectors to watch one element such as a price. Over HTTP the same resource supports open-ended Events Query streams (QUERY with an events member, up to an hour); this tool is the bounded single-notification form.","inputSchema":{"type":"object","properties":{"url":{"type":"string","format":"uri","pattern":"^https?://","description":"Public http or https URL"},"duration":{"type":"integer","minimum":15,"maximum":120,"description":"Seconds to wait at most (default 60)"},"interval":{"type":"integer","minimum":15,"description":"Seconds between checks (default 15)"},"include_selectors":{"type":"array","items":{"type":"string","minLength":1,"maxLength":1000},"minItems":1,"maxItems":20,"description":"CSS selectors to scope what is compared"}},"required":["url"]},"annotations":{"readOnlyHint":true,"openWorldHint":true},"httpEndpoint":"QUERY https://web.23signs.org/v1/fetch"},{"name":"web_status","title":"Service limits and search backends","description":"Current limits (requests per minute, URLs per fetch, watch duration), which search backends are live, and pricing. Call it before relying on domain_type=web.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true,"openWorldHint":false},"httpEndpoint":"GET https://web.23signs.org/v1/status"}],"restOnly":[{"name":"events_query_stream","title":"Open-ended change stream (Events Query)","description":"QUERY /v1/fetch with Content-Type: application/events+json, a body with url and an events member, and Events: duration=N (up to 3600 s): the response stays open and carries each change as it happens, over multipart/mixed, application/json-seq, application/x-ndjson or text/event-stream. Not offered over MCP: a tool call has one result.","httpEndpoint":"QUERY https://web.23signs.org/v1/fetch"}],"webmcp":"https://web.23signs.org/webmcp.js","documentation":"https://web.23signs.org/SKILL.md","openapi":"https://web.23signs.org/openapi.yaml","api_catalog":"https://web.23signs.org/.well-known/api-catalog"}