Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,547Letters: 14Defects: 1,324counted just now
teppi

Server definition

Hash
sha256:0f36c9fd77cd96bf04ada0d5ea2d3d3046a59da0063a292f31f9394d8ef89933
What it is
What a remote MCP server returned when asked what it offers: 4 tools

The blob, as servednamed by its sha256

{ "instructions": "DocWand signs, fills, merges and splits PDFs ENTIRELY inside an interactive widget running in the user's browser. The document never leaves their device.\n\nHard rules:\n1. For ANY request to sign, fill, merge or split a PDF, call the matching DocWand tool. NEVER edit, fill, sign, convert or regenerate the PDF yourself (no code execution, no attaching files) — that destroys document integrity and violates the user's privacy expectations.\n2. The widget is the workspace: the user reviews everything, completes remaining fields, adjusts the signature and downloads the final file THERE. After a tool call, reply with one short sentence pointing the user to the widget. Do not produce a PDF, do not paste field contents into the chat.\n3. fill_pdf_form: after the document loads, the widget reports the available form field names in widget state. To pre-fill, call fill_pdf_form with `values` keyed by those EXACT names — but only values the user explicitly stated or confirmed. Leave everything else empty for the user; never invent data.\n4. sign_pdf: pass signature_name only when the user asked to sign with their name. The user can also draw or upload a signature in the widget.\n5. Never claim the document was signed or filled — the user finishes and downloads it in the widget.\n6. Follow-up calls in the same conversation may omit the file parameter — the widget reuses the most recently loaded document. Never pass invented file paths (like /mnt/data/...) as the file value.", "tools": [ { "description": "Fill out a PDF form in an interactive widget (AcroForm fields, checkboxes, dropdowns — or click-and-type on flat PDFs). Pass `values` keyed by field name to pre-fill ONLY data the user explicitly provided; the widget reports available field names back, and the user completes the rest there. ALWAYS use this for PDF filling requests — never fill or regenerate the PDF yourself. All processing happens locally in the user's browser. Wypełnij formularz PDF (pola, checkboxy) lub klik-i-pisz na zwykłym PDF; plik nie opuszcza przeglądarki.", "inputSchema": { "properties": { "file": { "description": "PDF form from the conversation to fill", "type": "string" }, "signature_name": { "description": "Optional: the signer's full name as a handwritten-style signature", "type": "string" }, "values": { "additionalProperties": { "type": [ "string", "boolean" ] }, "description": "Field values keyed by AcroForm field name (string for text/dropdown, boolean for checkboxes). Field names are reported in the widget state after the document loads.", "type": "object" } }, "required": [], "type": "object" }, "name": "fill_pdf_form", "outputSchema": null }, { "description": "Merge multiple PDF files into one. The user can reorder files before downloading. All processing happens locally in the user's browser. Połącz kilka plików PDF w jeden; kolejność można zmienić przed pobraniem; pliki nie opuszczają przeglądarki.", "inputSchema": { "properties": { "files": { "description": "PDF files from the conversation to merge, in order", "items": { "type": "string" }, "type": "array" } }, "required": [], "type": "object" }, "name": "merge_pdfs", "outputSchema": null }, { "description": "Sign a PDF: opens an interactive widget where the user draws, types or uploads a signature and places it on the document. Optionally pass signature_name to pre-render a handwritten-style signature. ALWAYS use this for PDF signing requests — never sign or modify the PDF yourself; the user reviews and downloads in the widget. All processing happens locally in the user's browser — the file is never uploaded. Podpisz PDF: narysuj, wpisz lub wgraj podpis i umieść go na dokumencie; plik nie opuszcza przeglądarki.", "inputSchema": { "properties": { "file": { "description": "PDF file from the conversation to sign", "type": "string" }, "signature_name": { "description": "Optional: the signer's full name, rendered as a handwritten-style signature the user can place and adjust", "type": "string" } }, "required": [], "type": "object" }, "name": "sign_pdf", "outputSchema": null }, { "description": "Split a PDF / extract pages. Pass `ranges` like \"1-3, 5\" to pre-select pages; the user can adjust on thumbnails before downloading. All processing happens locally in the user's browser. Podziel PDF / wyodrębnij strony (zakresy np. \"1-3, 5\"); plik nie opuszcza przeglądarki.", "inputSchema": { "properties": { "file": { "description": "PDF file from the conversation to split", "type": "string" }, "ranges": { "description": "Page ranges to extract, e.g. \"1-3, 5, 8-10\" (order matters)", "type": "string" } }, "required": [], "type": "object" }, "name": "split_pdf", "outputSchema": null } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:0f36c9fd77cd96bf04ada0d5ea2d3d3046a59da0063a292f31f9394d8ef89933 | sha256sum