Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,539Letters: 14Defects: 1,323counted 3 min ago
teppi

Server definition

Hash
sha256:fb27bd9d6ff455496a8283cb71957d9799ca62da639074ca404cccec16e4b6f1
What it is
What a remote MCP server returned when asked what it offers: 13 tools

The blob, as servednamed by its sha256

{ "instructions": "Hydrafetch reads public web pages. Use it when the user asks to read, search, list, crawl or pull data from the public web, or asks about a specific page, website or company where current information matters.\n\nPick the tool by the job: search to find pages for a question; scrape to read one URL; map to list the pages on a site; crawl or batch to read many pages; extract to pull fields that match a schema; brand, logo and styleguide for a company's identity and design; screenshot and images for visuals.\n\nResults come back as clean markdown or JSON, ready to quote. If a call fails, tell the user what failed, and try a different tool only when it still fits their request.\n\nCite the URLs you read when you answer.", "tools": [ { "description": "Scrape a list of URLs you already have as one background job. Returns a batch id straight away; read progress and results with batch_status. Each URL scraped costs 1 credit.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "urls": { "description": "The URLs to scrape.", "items": { "type": "string" }, "maxItems": 25000, "minItems": 1, "type": "array" } }, "required": [ "urls" ], "type": "object" }, "name": "batch", "outputSchema": null }, { "description": "Read a batch started with batch: its progress, and one page of results in the order the URLs were sent. When nextOffset is not null, pass it as offset to read the next page of results.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "batchId": { "description": "The id returned by batch.", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$", "type": "string" }, "limit": { "description": "Results to return in this call (default 10).", "maximum": 25, "minimum": 1, "type": "integer" }, "offset": { "description": "Position of the first result to return. Defaults to 0.", "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "batchId" ], "type": "object" }, "name": "batch_status", "outputSchema": null }, { "description": "A company's brand from its domain: logos for light and dark backgrounds, its colours, name, description and social profiles. Use it to answer what a company is or how it presents itself.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "domain": { "description": "The company domain, e.g. stripe.com. A full URL works too.", "type": "string" } }, "required": [ "domain" ], "type": "object" }, "name": "brand", "outputSchema": null }, { "description": "Discover and scrape the pages of a website as one background job, following its links from a starting URL. Returns a crawl id straight away; read progress and results with crawl_status. Each page scraped costs 1 credit, so set limit to what you need.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "limit": { "description": "Maximum pages to scrape.", "maximum": 500, "minimum": 1, "type": "integer" }, "maxDepth": { "description": "How far from the seed to follow.", "maximum": 9007199254740991, "minimum": 0, "type": "integer" }, "url": { "description": "The site to start from.", "type": "string" } }, "required": [ "url" ], "type": "object" }, "name": "crawl", "outputSchema": null }, { "description": "Read a crawl started with crawl: its progress, and one page of the scraped results. When nextOffset is not null, pass it as offset to read the next page of results.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "crawlId": { "description": "The id returned by crawl.", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$", "type": "string" }, "limit": { "description": "Results to return in this call (default 10).", "maximum": 25, "minimum": 1, "type": "integer" }, "offset": { "description": "Position of the first result to return. Defaults to 0.", "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "crawlId" ], "type": "object" }, "name": "crawl_status", "outputSchema": null }, { "description": "Pull specific fields out of one or more pages as JSON, shaped by a JSON schema or described in a prompt. Use it when you need values such as prices, names or dates rather than the whole page text.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "preferStructure": { "description": "Keep headings, lists and tables in the text handed to the model.", "type": "boolean" }, "prompt": { "description": "Natural-language description of what to pull.", "type": "string" }, "schema": { "additionalProperties": {}, "description": "A JSON schema the result must conform to.", "propertyNames": { "type": "string" }, "type": "object" }, "showConfidence": { "description": "For each field, return a confidence score and the exact source passage the value was drawn from.", "type": "boolean" }, "showSources": { "description": "Return the list of URLs that were actually extracted.", "type": "boolean" }, "urls": { "description": "The URLs to extract from.", "items": { "type": "string" }, "minItems": 1, "type": "array" } }, "required": [ "urls" ], "type": "object" }, "name": "extract", "outputSchema": null }, { "description": "Harvest a page's images with their metadata, without rendering it. Cheaper than a screenshot and returns the source images rather than a picture of the page.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "url": { "description": "The page to harvest images from.", "type": "string" } }, "required": [ "url" ], "type": "object" }, "name": "images", "outputSchema": null }, { "description": "A company's logo as a directly embeddable image URL, chosen for the background you name. Use this rather than brand when the mark is all you need: it costs a fifth as much and returns one asset instead of the whole record.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "domain": { "description": "The company domain, e.g. stripe.com. A full URL works too.", "type": "string" }, "theme": { "description": "The background the logo will sit on. Defaults to light.", "enum": [ "light", "dark", "auto" ], "type": "string" }, "type": { "description": "The square mark, or the full logotype. Defaults to icon.", "enum": [ "icon", "wordmark" ], "type": "string" } }, "required": [ "domain" ], "type": "object" }, "name": "logo", "outputSchema": null }, { "description": "List the URLs on a website, found through its sitemap and links, without fetching their content. Use it to see which pages exist before choosing which to scrape.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "limit": { "description": "Max URLs to return.", "maximum": 5000, "minimum": 1, "type": "integer" }, "url": { "description": "The seed URL to map.", "type": "string" } }, "required": [ "url" ], "type": "object" }, "name": "map", "outputSchema": null }, { "description": "Fetch one web page and return its main content as clean markdown, with optional HTML, links or structured data. Use it to read a page whose URL you already have. For many pages of one site use crawl; for a list of URLs use batch.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "formats": { "description": "Which outputs to return. Defaults to markdown.", "items": { "enum": [ "markdown", "html", "rawHtml", "links", "structured" ], "type": "string" }, "type": "array" }, "preferStructure": { "description": "Keep headings, lists and tables as markdown. Default false optimises for raw content and can return unstructured text on marketing and listing pages. Turn on when the document structure matters, or retry with it if `structure` came back 'plain'.", "type": "boolean" }, "url": { "description": "The URL to scrape.", "type": "string" } }, "required": [ "url" ], "type": "object" }, "name": "scrape", "outputSchema": null }, { "description": "Render a page in a real browser and capture a PNG, returning its public URL. Use when the question is what the page looks like rather than what it says.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "fullPage": { "description": "Capture the whole scrollable page rather than the viewport.", "type": "boolean" }, "maxAge": { "description": "Reuse a stored screenshot younger than this many milliseconds. Defaults to 7 days, so a repeat returns the stored PNG without re-rendering and without applying waitFor. Pass 0 to force a fresh capture.", "maximum": 9007199254740991, "minimum": 0, "type": "integer" }, "timeout": { "description": "Overall time budget for the capture, in milliseconds.", "maximum": 120000, "minimum": 1000, "type": "integer" }, "url": { "description": "The URL to capture.", "type": "string" }, "viewport": { "description": "Screen size to render at. Defaults to desktop (1920x1080). Ignored when width or height are given.", "enum": [ "desktop", "laptop", "tablet", "mobile" ], "type": "string" }, "viewportHeight": { "description": "Exact viewport height in pixels. Overrides viewport. With fullPage the capture still extends to the full page height.", "maximum": 2160, "minimum": 240, "type": "integer" }, "viewportWidth": { "description": "Exact viewport width in pixels. Overrides viewport.", "maximum": 3840, "minimum": 320, "type": "integer" }, "waitFor": { "description": "Extra milliseconds to let the page settle before capture.", "maximum": 30000, "minimum": 0, "type": "integer" } }, "required": [ "url" ], "type": "object" }, "name": "screenshot", "outputSchema": null }, { "description": "Search the web and return ranked results: title, url and snippet. Set scrapeResults to also fetch each result as markdown, at 1 extra credit per page.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "limit": { "description": "Max results (default 5).", "maximum": 15, "minimum": 1, "type": "integer" }, "preferStructure": { "description": "Keep headings, lists and tables in each scraped result.", "type": "boolean" }, "query": { "description": "The search query.", "type": "string" }, "scrapeResults": { "description": "Also scrape each result to markdown, 1 extra credit per page (default false).", "type": "boolean" } }, "required": [ "query" ], "type": "object" }, "name": "search", "outputSchema": null }, { "description": "A site's design system read from computed styles in a real browser: colours by role with contrast ratios, the type scale, corner radius and button styling. Values defined through CSS variables come back resolved to the hex actually painted.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "domain": { "description": "The domain to read, e.g. stripe.com. A full URL works too.", "type": "string" } }, "required": [ "domain" ], "type": "object" }, "name": "styleguide", "outputSchema": null } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:fb27bd9d6ff455496a8283cb71957d9799ca62da639074ca404cccec16e4b6f1 | sha256sum