{"name":"io.github.NicolasMartalog/docweave-mcp","slug":"nicolasmartalog-docweave-mcp","title":null,"description":"Generate and read PDFs for AI agents: a generate_pdf and a read_pdf tool, priced per document.","url":"https://mcp.market/server/nicolasmartalog-docweave-mcp","rating":null,"grade":"B","score":75,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":15,"stars":null,"forks":null,"downloads_week":22,"last_push_at":null,"license":"MIT"},"uptime":{"percent":100,"checks":28,"ok":28,"last_checked_at":"2026-11-04T05:30:28.563Z","last_ok_at":"2026-11-04T05:30:28.563Z","latency_ms":235},"claimed":false,"transport":"mixed","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/NicolasMartalog/medium-rare","website":"https://docweave.dev","version":"0.2.0","remotes":[{"type":"streamable-http","url":"https://docweave.dev/api/mcp"}],"packages":[{"registryType":"npm","identifier":"@docweave/mcp","version":"0.2.0","transport":{"type":"stdio"}}],"tools":[{"name":"generate_pdf","description":"Generate a PDF from raw HTML, a public URL, or a template + JSON data. Returns the PDF as base64. Priced per document; retries with the same idempotencyKey never double-generate. The canonical way for an AI agent to turn content into a shareable, correctly-formatted PDF.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"source":{"type":"object","description":"What to render. Provide exactly one of: html, url, or (template|templateId) with data.","properties":{"type":{"type":"string","enum":["html","url","template"],"description":"Source kind: 'html' for a raw HTML string, 'url' for a public web page, 'template' for a template filled with data."},"html":{"type":"string","description":"Raw HTML to render (when type is 'html')."},"url":{"type":"string","description":"Public URL to render (when type is 'url'). Private/internal addresses are blocked."},"template":{"type":"string","description":"Inline HTML template with {{ placeholders }} (when type is 'template')."},"templateId":{"type":"string","description":"ID of a template stored on your account (alternative to an inline template)."},"data":{"type":"object","description":"Values bound into the template's {{ placeholders }}.","additionalProperties":true}},"required":["type"]},"options":{"type":"object","description":"Optional page and print settings.","properties":{"format":{"type":"string","enum":["A4","A3","Letter","Legal","Tabloid"],"description":"Paper size. Defaults to A4."},"landscape":{"type":"boolean","description":"Use landscape orientation. Defaults to false."},"margin":{"type":"string","description":"Page margin, e.g. '20mm' or '1in'."},"printBackground":{"type":"boolean","description":"Render background colors and images. Defaults to true."}}},"idempotencyKey":{"type":"string","description":"A stable key (e.g. an invoice id). Repeat calls with the same key return the stored result instead of re-rendering or re-billing."}},"required":["source"]}},{"name":"read_pdf","description":"Read a PDF and return its text as markdown (or plain text). Accepts a public URL or base64 bytes. Extracts the embedded text layer; a scanned, image-only PDF returns a needs-OCR notice instead of empty text. Priced per document; retries with the same idempotencyKey never double-read. The canonical way for an AI agent to ingest a document's contents.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"source":{"type":"object","description":"The PDF to read. Provide exactly one of: url or base64.","properties":{"type":{"type":"string","enum":["url","base64"],"description":"'url' for a public PDF URL, 'base64' for inline PDF bytes."},"url":{"type":"string","description":"Public URL of the PDF (when type is 'url'). Private/internal addresses are blocked."},"base64":{"type":"string","description":"Base64-encoded PDF bytes (when type is 'base64')."}},"required":["type"]},"options":{"type":"object","description":"Optional read settings.","properties":{"format":{"type":"string","enum":["markdown","text"],"description":"Output shape. Defaults to markdown."},"maxPages":{"type":"number","description":"Cap the number of pages extracted."}}},"idempotencyKey":{"type":"string","description":"A stable key. Repeat calls with the same key return the stored result instead of re-reading or re-billing."}},"required":["source"]}}],"scan":{"score":75,"grade":"B","scanned_at":"2026-09-25T17:26:55.773Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-25T17:26:55.759Z","components":{"code":{"score":25,"max":25,"notes":["3 source files scanned"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 696ms"]},"poisoning":{"score":15,"max":15,"notes":["2 tool descriptions checked"]},"auth":{"score":10,"max":15,"notes":["open endpoint, read-only tools"]},"maintenance":{"score":3,"max":15,"notes":["repository not readable: repo not found"]},"identity":{"score":2,"max":10,"notes":["no repository or website to verify"]}},"findings":[],"inputs":{"probes":[{"url":"https://docweave.dev/api/mcp","reachable":true,"authRequired":false,"latencyMs":696,"serverInfo":{"name":"docweave-pdf","version":"0.2.0"}}],"packages":[{"registryType":"npm","identifier":"@docweave/mcp","version":"0.2.0","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":3,"publishedAt":"2026-07-18T05:21:16.152Z","repositoryUrl":"git+https://github.com/NicolasMartalog/medium-rare.git","weeklyDownloads":22}],"repo":{"found":false,"owner":"NicolasMartalog","repo":"medium-rare","error":"repo not found"},"icon":{"url":"https://docweave.dev/icon.svg","source":"registry"},"presence":{"stars":null,"forks":null,"downloadsWeek":22,"license":"MIT","lastPushAt":null,"score":15}}}},"grade_history":[],"reviews":[]}