{"server":"org.textclean/textclean","count":1,"tools":[{"name":"clean_text","title":"Text cleanup and destination formatting","description":"Clean supplied text deterministically without rewriting its meaning. Use for copied PDF text, Markdown/HTML artifacts, citations, spacing, or destination formatting; not OCR, file uploads, grammar correction, or AI-authorship detection. Preserves supported document structure unless a selected cleanup removes it. Returns cleanedText, destination-rendered text, optional html, a changes list, and usage counters as structured JSON and matching JSON text. No API key required. 20 calls per UTC day per network address; shared networks share this allowance. Service-wide load protection can return HTTP 429; honor Retry-After. Maximum 20000 UTF-16 code units per call. Accepted processing attempts consume quota, including repeats. Input and results are processed remotely in memory, not stored or logged; only quota metadata is retained. Validation and quota failures return errors. Example: {\"text\":\"A split para-\\ngraph.\",\"preset\":\"pdf\",\"destination\":\"email\"}.","input_schema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["text"],"properties":{"text":{"type":"string","pattern":"\\S","maxLength":20000,"minLength":1,"description":"Required nonblank source text, not a URL or file path. Length is measured in UTF-16 code units. Send only text you intend this remote service to process."},"preset":{"enum":["default","pdf","ai","html","list"],"type":"string","description":"Cleaning preset, default default: trim, collapse repeated spaces/blank lines, NFC Unicode. pdf also repairs hard wraps/hyphens and removes detected page numbers/edges. ai strips Markdown artifacts, not AI authorship. html removes HTML tags/scripts/styles and decodes entities. list removes blank/duplicate lines and sorts lines. Explicit flags override preset settings."},"destination":{"enum":["preserve","email","message","blog","document","plain"],"type":"string","description":"Output rendering, default preserve. preserve retains heading/quote markers and inline Markdown in text; other modes remove those markers, with bullet/numbered lists retained. email wraps HTML in a div; blog in an article; message and document return unwrapped semantic HTML; plain omits HTML. Does not change cleaning options."},"stripMarkdown":{"type":"boolean","description":"Override Markdown artifact removal, including headings/list markers, emphasis, link markup, and code fences. Omit to use the preset: true for ai, false otherwise. May remove structure; false does not disable destination rendering of Markdown."},"removeCitations":{"type":"boolean","description":"Remove recognized numbered brackets, footnote markers, and compact author-year citations. Default false for every preset. May remove meaningful references; enable only when requested."},"replaceLongDashes":{"enum":["preserve","hyphen","comma","colon","space"],"type":"string","description":"Replace em/en dashes with the selected punctuation or space. Default preserve. Replacement normalizes surrounding whitespace and may join adjacent line breaks."}}},"output_schema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["destination","cleanedText","text","changes","usage"],"properties":{"html":{"type":"string","description":"Rendered semantic HTML. Omitted for plain destination."},"text":{"type":"string","description":"Destination-rendered text suitable for copying."},"usage":{"type":"object","required":["calls","remaining"],"properties":{"plan":{"type":"string","const":"free","description":"Present as free on the anonymous endpoint; omitted on the Pro endpoint."},"calls":{"type":"integer","maximum":9007199254740991,"minimum":0,"description":"Calls consumed in the current allowance window, including this call."},"remaining":{"type":"integer","maximum":9007199254740991,"minimum":0,"description":"Calls remaining in the current allowance window."}},"description":"Aggregate quota counters only; contains no API key or network address.","additionalProperties":false},"changes":{"type":"array","items":{"type":"object","required":["label","count"],"properties":{"count":{"type":"number","description":"Number of changes reported for this transformation."},"label":{"type":"string","description":"Human-readable transformation name."}},"additionalProperties":false},"description":"Applied transformations; empty when no cleanup changed the source."},"cleanedText":{"type":"string","description":"Text after selected cleanup, before destination rendering."},"destination":{"enum":["preserve","email","message","blog","document","plain"],"type":"string","description":"Selected rendering destination."}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"openWorldHint":false,"idempotentHint":false,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T20:57:12.675Z"}],"next_cursor":null,"next_actions":[{"action":"get_connection","description":"Connection block to call these tools","href":"/v1/servers/org.textclean%2Ftextclean/connection?target=mcpServers","arguments":{"name":"org.textclean/textclean","target":"mcpServers"}},{"action":"get_server","description":"Full descriptor with trust and connectability","href":"/v1/servers/org.textclean%2Ftextclean","arguments":{"name":"org.textclean/textclean"}}]}