{"protocolVersion":"2025-06-18","serverInfo":{"name":"doc-extract","title":"Document Extraction Hub","version":"1.0.0"},"capabilities":{"tools":{"listChanged":false}},"transport":{"type":"http","endpoint":"https://doc.netzhandwerker.de/mcp","methods":["POST"]},"payment":{"protocol":"x402","network":"eip155:8453","asset":"USDC","model":"per page","note":"tools/list needs no payment. tools/call answers 402 with the exact price for the document that was sent, then settles that amount on the repeat call."},"tools":[{"name":"extract_document","description":"Turn one PDF into structured JSON. The text layer is read first; only pages without one go through OCR in German and English. Tables keep their rows and columns. Every field carries its page, its position on the page and a confidence value. Fields that are not in the document stay empty. Paid per page over x402: 0.02 USDC per text layer page, 0.05 USDC per OCR page, at most 20 pages per call.","inputSchema":{"type":"object","properties":{"pdf_base64":{"type":"string","description":"The PDF as base64. Use this or \"url\", not both."},"url":{"type":"string","format":"uri","description":"Public http or https URL of the PDF. Use this or \"pdf_base64\", not both."},"schema":{"type":"object","description":"Optional JSON Schema. Every property is looked up in the document and returned with value, confidence and source. A property that is not in the document stays empty."},"pages":{"description":"Optional page range, for example \"1-5\", \"2,4,7\" or [1,2,3]. At most 20 pages per call.","anyOf":[{"type":"string"},{"type":"array","items":{"type":"integer","minimum":1}}]},"include_raw":{"type":"boolean","default":false,"description":"With a schema, also return header data, tables and key value pairs alongside the mapped result."}}}},{"name":"ocr_read","description":"Read a picture, a scan or a screenshot. Returns the full text in reading order with paragraphs intact, every block typed as heading, paragraph, list, table, caption or footnote with its box in pixels and its confidence, tables as a row and column matrix plus a markdown rendering with merged cells marked, and every QR, Data Matrix, EAN-13, EAN-8, Code 128, Code 39, PDF417 and Aztec symbol with its raw value. QR payloads are parsed into URL, WLAN, vCard, EPC transfer and calendar; a URL found inside a code is reported and never opened. Blocks read with a confidence below 0.5 are flagged rather than smoothed over. No face recognition, no matching of people, no reading of identity documents beyond the plain text they carry. Paid over x402: 0.006 USDC per image or first page, 0.002 USDC per further page, at most 50 pages per call.","inputSchema":{"type":"object","properties":{"image_base64":{"type":"string","description":"The picture or PDF as base64. Use this or \"url\", not both."},"url":{"type":"string","format":"uri","description":"Public http or https URL of the picture or PDF. Use this or \"image_base64\", not both."},"mime":{"type":"string","enum":["image/png","image/jpeg","image/webp","application/pdf"],"description":"Media type of the input. Checked against the actual bytes; a mismatch is refused rather than worked around."},"languages":{"type":"array","items":{"type":"string","enum":["deu","eng"]},"default":["deu","eng"],"description":"Languages to read, default deu plus eng. Installed models: deu, eng."},"want":{"type":"array","items":{"type":"string","enum":["text","tables","codes","layout"]},"default":["text","tables","codes","layout"],"description":"Which parts of the answer to compute. The price does not change with it; asking for less is simply faster."},"pages":{"description":"Optional page range for PDF input, for example \"1-5\" or \"2,4,7\". At most 50 pages per call. Not allowed for a single image.","anyOf":[{"type":"string"},{"type":"array","items":{"type":"integer","minimum":1}}]}}}}]}