Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,534Letters: 13Defects: 1,322counted just now
teppi

Server definition

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

The blob, as servednamed by its sha256

{ "instructions": "Voice-matching editor for AI drafts. Free: ai_tell_scan (find AI-isms with evidence), voice_fingerprint (metric profile from writing samples), burstiness_report. Premium: humanize_plan (rewrite brief with measurable targets) and verify_rewrite (prove the rewrite moved toward the voice). This is a style/voice tool — do not use it to misrepresent authorship of academic or assessed work.", "tools": [ { "description": "Scan a draft for the measurable tells of AI-generated prose. FREE.\n\nFlags stock phrases (with exact quotes), structural reflexes, uniform\nsentence rhythm, em-dash overuse, and hedging boilerplate — every flag\ncites the actual text. Typical input {\"text\": \"<draft>\"} returns\n{\"reads_human_score\": 0-100, \"metrics\": {\"burstiness\": ...,\n\"avg_sentence_len\": ..., ...}, \"evidence\": [{\"type\": \"stock_phrase\",\n\"quote\": \"...\"}], \"note\": \"...\"}.\n\nUse for a first read on whether a draft carries machine-writing signals.\nReports measurable patterns, not a verdict on who wrote the text, and must\nnot be used to accuse a person of anything. Not for rhythm detail\n(burstiness_report) or for a rewrite brief (humanize_plan). Errors: on invalid, missing, or malformed input this tool never raises a protocol error — it returns {\"error\": \"<what is wrong and how to fix it>\"} (for example {\"error\": \"empty text\"}). Every call is read-only and idempotent, so after correcting the input it is always safe to retry.", "inputSchema": { "additionalProperties": false, "properties": { "text": { "description": "The draft to scan — at least one full sentence of plain text.", "type": "string" } }, "required": [ "text" ], "type": "object" }, "name": "ai_tell_scan", "outputSchema": { "additionalProperties": true, "type": "object" } }, { "description": "Map a draft's sentence rhythm and find where it goes flat. FREE.\n\nReports per-sentence lengths, the burstiness coefficient, and runs of\nsimilar-length sentences. Typical input {\"text\": \"<draft>\"} returns\n{\"sentence_lengths\": [12, 14, 13, 5, 28], \"burstiness\": 0.52,\n\"flat_runs\": [{\"sentences\": \"1-3\", \"lengths\": [12, 14, 13]}],\n\"tip\": \"...\"}.\n\nUse when prose reads flat and sentence-length pattern is the suspect. Not\nfor a full inventory of tells (ai_tell_scan). Errors: on invalid, missing, or malformed input this tool never raises a protocol error — it returns {\"error\": \"<what is wrong and how to fix it>\"} (for example {\"error\": \"need 3+ sentences\"}). Every call is read-only and idempotent, so after correcting the input it is always safe to retry.", "inputSchema": { "additionalProperties": false, "properties": { "text": { "description": "The draft to analyze; needs at least 3 sentences.", "type": "string" } }, "required": [ "text" ], "type": "object" }, "name": "burstiness_report", "outputSchema": { "additionalProperties": true, "type": "object" } }, { "description": "Produce a precise rewrite brief that de-AIs a draft, with numeric targets. PREMIUM (license).\n\nLists every flagged tell with its fix and sentence-rhythm surgery\ntargets; when a voice_fingerprint result is supplied, adds numeric\ntargets to hit that person's voice. Apply the brief with your agent,\nthen confirm with verify_rewrite. Typical input {\"text\": \"<draft>\",\n\"fingerprint\": <voice_fingerprint result>} returns {\"current_score\":\n0-100, \"edit_list\": [\"...\"], \"numeric_targets\": {...}, \"process\": ...,\n\"integrity_note\": ...}.\n\nUse after a scan has identified what to fix; returns a brief, not\nrewritten prose. Not for checking whether a rewrite worked\n(verify_rewrite). Errors: on invalid, missing, or malformed input this tool never raises a protocol error — it returns {\"error\": \"<what is wrong and how to fix it>\"}. Every call is read-only and idempotent, so after correcting the input it is always safe to retry.", "inputSchema": { "additionalProperties": false, "properties": { "fingerprint": { "additionalProperties": true, "default": null, "description": "Optional voice profile object exactly as returned by\nvoice_fingerprint; omit for a style-only pass.", "type": "object" }, "text": { "description": "The AI draft to plan a rewrite for.", "type": "string" } }, "required": [ "text" ], "type": "object" }, "name": "humanize_plan", "outputSchema": { "additionalProperties": true, "type": "object" } }, { "description": "Verify a rewrite actually improved: score delta, meaning check, voice distance. PREMIUM (license).\n\nCompares reads-human score before/after, a meaning-preservation proxy,\nand (with a fingerprint) numeric distance to the target voice. Typical\ninput {\"original\": \"<draft>\", \"rewrite\": \"<edited draft>\"} returns\n{\"score_before\": N, \"score_after\": N, \"score_delta\": N,\n\"content_word_retention_pct\": N, \"remaining_tells\": [...],\n\"verdict\": \"Improved — ship it\" | \"Marginal — ...\"}.\n\nUse only when both the before and the after text are available. Not for\nscoring a single draft (ai_tell_scan). Errors: on invalid, missing, or malformed input this tool never raises a protocol error — it returns {\"error\": \"<what is wrong and how to fix it>\"} (for example {\"error\": \"both texts must be non-empty\"}). Every call is read-only and idempotent, so after correcting the input it is always safe to retry.", "inputSchema": { "additionalProperties": false, "properties": { "fingerprint": { "additionalProperties": true, "default": null, "description": "Optional voice profile object exactly as returned by\nvoice_fingerprint, to measure distance to the target voice.", "type": "object" }, "original": { "description": "The draft before editing.", "type": "string" }, "rewrite": { "description": "The same content after the humanize_plan edits.", "type": "string" } }, "required": [ "original", "rewrite" ], "type": "object" }, "name": "verify_rewrite", "outputSchema": { "additionalProperties": true, "type": "object" } }, { "description": "Build a measurable voice profile from samples of a person's real writing. FREE.\n\nFeed it 2+ samples (emails, posts, essays — 150+ words total) and use\nthe result with humanize_plan / verify_rewrite. Typical input\n{\"samples\": [\"<email text>\", \"<blog post>\"]} returns {\"label\":\n\"my-voice\", \"target_metrics\": {\"avg_sentence_len\": ..., \"burstiness\":\n..., ...}, \"favorite_words\": [...], \"signature_habits\": [\"...\"],\n\"words_analyzed\": N}.\n\nUse on samples the person actually wrote, to build a target profile. Not\nfor scoring an unknown draft (ai_tell_scan) and not on text the person did\nnot write. Errors: on invalid, missing, or malformed input this tool never raises a protocol error — it returns {\"error\": \"<what is wrong and how to fix it>\"} (for example {\"error\": \"need 150+ words of real writing across the samples\"}). Every call is read-only and idempotent, so after correcting the input it is always safe to retry.", "inputSchema": { "additionalProperties": false, "properties": { "label": { "default": "my-voice", "description": "Optional name for this voice profile. Default \"my-voice\".", "type": "string" }, "samples": { "description": "List of real writing samples by the same person; 150+\nwords combined across all samples.", "items": { "type": "string" }, "type": "array" } }, "required": [ "samples" ], "type": "object" }, "name": "voice_fingerprint", "outputSchema": { "additionalProperties": true, "type": "object" } } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:c56d0d584b5130ecee57bce3f509c87eea1fc1c12b9a2807923a46f451964a37 | sha256sum