{"name":"io.github.looperteam/preplayer","version":"0.2.0","description":"Deterministic text prep for agents. Twelve x402-paid endpoints behind one MCP server. Multi-chain (Base, Solana, Polygon, Arbitrum) with single, batch, subscription and priority price tiers.","homepage":"https://api.maximusmediahouse.com/landing","repository":{"url":"https://github.com/looperteam/preplayer-mcp","source":"github"},"license":"MIT","transport":{"type":"http","url":"https://api.maximusmediahouse.com/mcp"},"capabilities":{"tools":{"listChanged":false},"resources":{"subscribe":false},"prompts":{"listChanged":false}},"tools":[{"name":"normalize","description":"Deterministic text normalization: Unicode NFKC, zero-width/bidi stripping, smart-quote and dash folding, whitespace collapse, case folding. Returns a stable content hash so two texts can be compared for exact equality.","inputSchema":{"type":"object","required":["text"],"properties":{"text":{"type":"string","description":"Text to normalize (1-100000 chars)."},"fold_case":{"type":"boolean","default":true,"description":"Lowercase the result."},"strip_invisible":{"type":"boolean","default":true,"description":"Remove zero-width and bidi control characters."},"fold_width":{"type":"boolean","default":true,"description":"Fold curly quotes, dashes and exotic spaces to ASCII."},"collapse_whitespace":{"type":"boolean","default":true,"description":"Collapse runs of whitespace to single spaces and trim."}}},"tiers":[{"tier":"single","price_usdc":"0.002","status":"real","shape":"POST the tool's path"},{"tier":"batch","price_usdc":"0.40","calls":10,"status":"real","shape":"POST /v1/batch with {requests: [...]}","per_call":"0.04"}],"payment":{"x402":true,"endpoint":"https://api.maximusmediahouse.com/v1/normalize","price":{"amount":"2000","asset":"USDC","network":"eip155:8453","by_network":{"eip155:8453":{"priceUsdc":"0.002000","priceUnits":"2000"},"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp":{"priceUsdc":"0.002000","priceUnits":"2000"},"eip155:137":{"priceUsdc":"0.002400","priceUnits":"2400"},"eip155:42161":{"priceUsdc":"0.002400","priceUnits":"2400"}}}}},{"name":"validate","description":"Validate and canonicalize one identifier: email, URL, E.164 phone, IBAN (mod-97), payment card (Luhn), UUID, SHA-256, git SHA, EVM address (EIP-55) or domain. Returns {valid, canonical, fingerprint}.","inputSchema":{"type":"object","required":["kind","value"],"properties":{"kind":{"type":"string","enum":["email","url","phone_e164","iban","card_luhn","uuid","sha256","git_sha","evm_address","domain"],"description":"Identifier type."},"value":{"type":"string","description":"The identifier to validate (max 512 chars)."}}},"tiers":[{"tier":"single","price_usdc":"0.002","status":"real","shape":"POST the tool's path"},{"tier":"batch","price_usdc":"0.40","calls":10,"status":"real","shape":"POST /v1/batch with {requests: [...]}","per_call":"0.04"}],"payment":{"x402":true,"endpoint":"https://api.maximusmediahouse.com/v1/validate","price":{"amount":"2000","asset":"USDC","network":"eip155:8453","by_network":{"eip155:8453":{"priceUsdc":"0.002000","priceUnits":"2000"},"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp":{"priceUsdc":"0.002000","priceUnits":"2000"},"eip155:137":{"priceUsdc":"0.002400","priceUnits":"2400"},"eip155:42161":{"priceUsdc":"0.002400","priceUnits":"2400"}}}}},{"name":"extract","description":"Extract structured fields from unstructured text with byte offsets and normalized values: emails, URLs, IPv4, phones, money amounts, ISO dates, UUIDs, EVM addresses, SKUs, semver.","inputSchema":{"type":"object","required":["text"],"properties":{"text":{"type":"string","description":"Source text (1-100000 chars)."},"types":{"type":"array","items":{"type":"string"},"description":"Optional subset of: email, url, ipv4, phone, money, date_iso, uuid, evm_address, sku, semver"}}},"tiers":[{"tier":"single","price_usdc":"0.005","status":"real","shape":"POST the tool's path"},{"tier":"batch","price_usdc":"0.40","calls":10,"status":"real","shape":"POST /v1/batch with {requests: [...]}","per_call":"0.04"}],"payment":{"x402":true,"endpoint":"https://api.maximusmediahouse.com/v1/extract","price":{"amount":"5000","asset":"USDC","network":"eip155:8453","by_network":{"eip155:8453":{"priceUsdc":"0.005000","priceUnits":"5000"},"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp":{"priceUsdc":"0.005000","priceUnits":"5000"},"eip155:137":{"priceUsdc":"0.006000","priceUnits":"6000"},"eip155:42161":{"priceUsdc":"0.006000","priceUnits":"6000"}}}}},{"name":"redact","description":"Redact PII from text before it is stored or logged. Returns redacted text plus exact byte spans and counts per class: credit_card, iban, email, private_key, evm_address, phone, ipv4, url.","inputSchema":{"type":"object","required":["text"],"properties":{"text":{"type":"string","description":"Source text (1-100000 chars)."},"classes":{"type":"array","items":{"type":"string"},"description":"Optional subset of PII classes to redact."},"placeholder":{"type":"string","default":"[REDACTED:{cls}]","description":"Replacement template; {cls} is substituted."}}},"tiers":[{"tier":"single","price_usdc":"0.005","status":"real","shape":"POST the tool's path"},{"tier":"batch","price_usdc":"0.40","calls":10,"status":"real","shape":"POST /v1/batch with {requests: [...]}","per_call":"0.04"}],"payment":{"x402":true,"endpoint":"https://api.maximusmediahouse.com/v1/redact","price":{"amount":"5000","asset":"USDC","network":"eip155:8453","by_network":{"eip155:8453":{"priceUsdc":"0.005000","priceUnits":"5000"},"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp":{"priceUsdc":"0.005000","priceUnits":"5000"},"eip155:137":{"priceUsdc":"0.006000","priceUnits":"6000"},"eip155:42161":{"priceUsdc":"0.006000","priceUnits":"6000"}}}}},{"name":"classify","description":"Rule-based multi-label text classification over a fixed taxonomy (urgency, financial_promise, credential_request, crypto_mention, cta, legal_offer, medical_claim, seo_spam, url_shortener, press_release, question, has_contact). Deterministic - identical text always yields identical labels.","inputSchema":{"type":"object","required":["text"],"properties":{"text":{"type":"string","description":"Source text (1-100000 chars)."},"threshold":{"type":"integer","minimum":0,"maximum":4,"default":2,"description":"Minimum rule weight for a label to be emitted."}}},"tiers":[{"tier":"single","price_usdc":"0.003","status":"real","shape":"POST the tool's path"},{"tier":"batch","price_usdc":"0.40","calls":10,"status":"real","shape":"POST /v1/batch with {requests: [...]}","per_call":"0.04"}],"payment":{"x402":true,"endpoint":"https://api.maximusmediahouse.com/v1/classify","price":{"amount":"3000","asset":"USDC","network":"eip155:8453","by_network":{"eip155:8453":{"priceUsdc":"0.003000","priceUnits":"3000"},"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp":{"priceUsdc":"0.003000","priceUnits":"3000"},"eip155:137":{"priceUsdc":"0.003600","priceUnits":"3600"},"eip155:42161":{"priceUsdc":"0.003600","priceUnits":"3600"}}}}},{"name":"dedupe","description":"Near-duplicate detection across a batch of documents. Exact Jaccard similarity over word-3-shingle sets decides duplication; a 64-bit SimHash is returned per document as a compact content fingerprint. Up to 200 documents per call.","inputSchema":{"type":"object","required":["documents"],"properties":{"documents":{"type":"array","items":{"type":"string"},"minItems":1,"maxItems":200,"description":"Documents to compare."},"threshold":{"type":"integer","minimum":0,"maximum":100,"default":60,"description":"Minimum Jaccard similarity percent to count as a duplicate."}}},"tiers":[{"tier":"single","price_usdc":"0.01","status":"real","shape":"POST the tool's path"},{"tier":"batch","price_usdc":"0.40","calls":10,"status":"real","shape":"POST /v1/batch with {requests: [...]}","per_call":"0.04"}],"payment":{"x402":true,"endpoint":"https://api.maximusmediahouse.com/v1/dedupe","price":{"amount":"10000","asset":"USDC","network":"eip155:8453","by_network":{"eip155:8453":{"priceUsdc":"0.010000","priceUnits":"10000"},"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp":{"priceUsdc":"0.010000","priceUnits":"10000"},"eip155:137":{"priceUsdc":"0.012000","priceUnits":"12000"},"eip155:42161":{"priceUsdc":"0.012000","priceUnits":"12000"}}}}},{"name":"diff","description":"Line-level LCS diff of two text blobs. Returns a structured edit script with insertions, deletions, unchanged line counts and per-operation metadata; with format='unified' also returns a unified-diff string.","inputSchema":{"type":"object","required":["a","b"],"properties":{"a":{"type":"string","description":"Original text."},"b":{"type":"string","description":"Modified text."},"format":{"type":"string","enum":["unified"],"description":"If 'unified', return a unified-diff string in `diff`."},"context":{"type":"integer","minimum":0,"maximum":100,"default":3,"description":"Lines of unchanged context around each hunk (unified only)."}}},"tiers":[{"tier":"single","price_usdc":"0.005","status":"real","shape":"POST the tool's path"},{"tier":"batch","price_usdc":"0.40","calls":10,"status":"real","shape":"POST /v1/batch with {requests: [...]}","per_call":"0.04"}],"payment":{"x402":true,"endpoint":"https://api.maximusmediahouse.com/v1/diff","price":{"amount":"5000","asset":"USDC","network":"eip155:8453","by_network":{"eip155:8453":{"priceUsdc":"0.005000","priceUnits":"5000"},"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp":{"priceUsdc":"0.005000","priceUnits":"5000"},"eip155:137":{"priceUsdc":"0.006000","priceUnits":"6000"},"eip155:42161":{"priceUsdc":"0.006000","priceUnits":"6000"}}}}},{"name":"chunk","description":"Split long text into pieces for RAG retrieval. Strategies: 'sentence' packs whole sentences into a size budget and never splits mid-sentence; 'paragraph' prefers \\n\\n boundaries; 'fixed' is a hard char window with overlap. The highest-value endpoint for agents that build retrieval pipelines.","inputSchema":{"type":"object","required":["text"],"properties":{"text":{"type":"string","description":"Source text (1-1000000 chars)."},"size":{"type":"integer","minimum":1,"maximum":100000,"default":1000,"description":"Maximum chars per chunk."},"overlap":{"type":"integer","minimum":0,"maximum":99999,"default":200,"description":"Overlap chars (fixed strategy only)."},"strategy":{"type":"string","enum":["fixed","sentence","paragraph"],"default":"sentence","description":"Splitting strategy."}}},"tiers":[{"tier":"single","price_usdc":"0.005","status":"real","shape":"POST the tool's path"},{"tier":"batch","price_usdc":"0.40","calls":10,"status":"real","shape":"POST /v1/batch with {requests: [...]}","per_call":"0.04"}],"payment":{"x402":true,"endpoint":"https://api.maximusmediahouse.com/v1/chunk","price":{"amount":"5000","asset":"USDC","network":"eip155:8453","by_network":{"eip155:8453":{"priceUsdc":"0.005000","priceUnits":"5000"},"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp":{"priceUsdc":"0.005000","priceUnits":"5000"},"eip155:137":{"priceUsdc":"0.006000","priceUnits":"6000"},"eip155:42161":{"priceUsdc":"0.006000","priceUnits":"6000"}}}}},{"name":"extract_custom","description":"Pull caller-defined structured fields from text using regex patterns with deterministic type coercion. Supported types: string, bool, date, url, email, number. Returns {fields: {name: value|null}, found, missing}. Pure deterministic — no LLM call.","inputSchema":{"type":"object","required":["text","fields"],"properties":{"text":{"type":"string","description":"Source text (1-100000 chars)."},"fields":{"type":"array","items":{"type":"object","required":["name","pattern"],"properties":{"name":{"type":"string"},"type":{"type":"string","enum":["string","number","bool","date","url","email"],"default":"string"},"pattern":{"type":"string","description":"JavaScript regex source (without flags)."}}},"minItems":1,"maxItems":64,"description":"Up to 64 field definitions."}}},"tiers":[{"tier":"single","price_usdc":"0.005","status":"real","shape":"POST the tool's path"},{"tier":"batch","price_usdc":"0.40","calls":10,"status":"real","shape":"POST /v1/batch with {requests: [...]}","per_call":"0.04"}],"payment":{"x402":true,"endpoint":"https://api.maximusmediahouse.com/v1/extract_custom","price":{"amount":"5000","asset":"USDC","network":"eip155:8453","by_network":{"eip155:8453":{"priceUsdc":"0.005000","priceUnits":"5000"},"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp":{"priceUsdc":"0.005000","priceUnits":"5000"},"eip155:137":{"priceUsdc":"0.006000","priceUnits":"6000"},"eip155:42161":{"priceUsdc":"0.006000","priceUnits":"6000"}}}}},{"name":"validate_json","description":"Deterministic JSON-Schema subset validator. Catches malformed JSON before it breaks a pipeline. Supports: type, required, properties, items, minLength, maxLength, pattern, enum, minimum, maximum, additionalProperties. No external dependencies.","inputSchema":{"type":"object","required":["json"],"properties":{"json":{"type":"string","description":"The JSON string to parse and validate."},"schema":{"type":"object","description":"JSON-Schema subset. Omit for parse-only validation.","properties":{"type":{"type":"string","enum":["string","number","integer","boolean","null","array","object"]},"required":{"type":"array","items":{"type":"string"}},"properties":{"type":"object"},"items":{"type":"object"},"minLength":{"type":"integer","minimum":0},"maxLength":{"type":"integer","minimum":0},"pattern":{"type":"string"},"enum":{"type":"array"},"minimum":{"type":"number"},"maximum":{"type":"number"},"additionalProperties":{"type":"boolean"}}}}},"tiers":[{"tier":"single","price_usdc":"0.003","status":"real","shape":"POST the tool's path"},{"tier":"batch","price_usdc":"0.40","calls":10,"status":"real","shape":"POST /v1/batch with {requests: [...]}","per_call":"0.04"}],"payment":{"x402":true,"endpoint":"https://api.maximusmediahouse.com/v1/validate_json","price":{"amount":"3000","asset":"USDC","network":"eip155:8453","by_network":{"eip155:8453":{"priceUsdc":"0.003000","priceUnits":"3000"},"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp":{"priceUsdc":"0.003000","priceUnits":"3000"},"eip155:137":{"priceUsdc":"0.003600","priceUnits":"3600"},"eip155:42161":{"priceUsdc":"0.003600","priceUnits":"3600"}}}}},{"name":"slugify","description":"URL-safe slug from arbitrary text. NFKD-decomposes unicode (é -> e), lowercases, replaces every non-[a-z0-9] run with a separator, strips leading/trailing separators, truncates on separator boundaries (never mid-word).","inputSchema":{"type":"object","required":["text"],"properties":{"text":{"type":"string","description":"Source text (1-10000 chars)."},"max_length":{"type":"integer","minimum":1,"maximum":500,"default":80,"description":"Maximum slug length."},"separator":{"type":"string","default":"-","description":"Separator character or short run (e.g. '-', '_', '..')."},"transliterate":{"type":"boolean","default":true,"description":"Strip combining marks (NFKD). Disable to keep unicode."}}},"tiers":[{"tier":"single","price_usdc":"0.002","status":"real","shape":"POST the tool's path"},{"tier":"batch","price_usdc":"0.40","calls":10,"status":"real","shape":"POST /v1/batch with {requests: [...]}","per_call":"0.04"}],"payment":{"x402":true,"endpoint":"https://api.maximusmediahouse.com/v1/slugify","price":{"amount":"2000","asset":"USDC","network":"eip155:8453","by_network":{"eip155:8453":{"priceUsdc":"0.002000","priceUnits":"2000"},"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp":{"priceUsdc":"0.002000","priceUnits":"2000"},"eip155:137":{"priceUsdc":"0.002400","priceUnits":"2400"},"eip155:42161":{"priceUsdc":"0.002400","priceUnits":"2400"}}}}},{"name":"hash","description":"Content-addressable hashing for caching and dedup. Three algorithms: sha256 (via node:crypto / Web Crypto), xxhash64 and murmur3 (inline pure-JS, deterministic across runs). Returns hex digest + algorithm + byte count.","inputSchema":{"type":"object","required":["text"],"properties":{"text":{"type":"string","description":"Source text (1-1000000 chars)."},"algo":{"type":"string","enum":["sha256","xxhash64","murmur3"],"default":"sha256","description":"Hash algorithm."}}},"tiers":[{"tier":"single","price_usdc":"0.002","status":"real","shape":"POST the tool's path"},{"tier":"batch","price_usdc":"0.40","calls":10,"status":"real","shape":"POST /v1/batch with {requests: [...]}","per_call":"0.04"}],"payment":{"x402":true,"endpoint":"https://api.maximusmediahouse.com/v1/hash","price":{"amount":"2000","asset":"USDC","network":"eip155:8453","by_network":{"eip155:8453":{"priceUsdc":"0.002000","priceUnits":"2000"},"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp":{"priceUsdc":"0.002000","priceUnits":"2000"},"eip155:137":{"priceUsdc":"0.002400","priceUnits":"2400"},"eip155:42161":{"priceUsdc":"0.002400","priceUnits":"2400"}}}}},{"name":"batch","description":"Run up to 10 primitive calls in one round trip. One x402 payment of $0.40 (=$0.04 per call, 20% off the single-call price). Each request specifies an `endpoint` (normalize, validate, extract, redact, classify, dedupe, diff, chunk, extract_custom, validate_json, slugify, hash) and the input for it; the response carries 10 results in the same order. Single-call batch — no streaming.","inputSchema":{"type":"object","required":["requests"],"properties":{"requests":{"type":"array","items":{"type":"object","required":["endpoint","input"],"properties":{"endpoint":{"type":"string","enum":["normalize","validate","extract","redact","classify","dedupe","diff","chunk","extract_custom","validate_json","slugify","hash"]},"input":{"type":"object","description":"The per-endpoint input body."}}},"minItems":1,"maxItems":10,"description":"Up to 10 sub-requests."},"network":{"type":"string","description":"Optional x402 network id (defaults to eip155:8453)."}}},"tiers":[{"tier":"batch","price_usdc":"0.40","status":"real","shape":"POST /v1/batch with {requests: [...]}"}],"payment":{"x402":true,"endpoint":"https://api.maximusmediahouse.com/v1/batch","price":{"amount":"400000","asset":"USDC","network":"eip155:8453","by_network":{"eip155:8453":{"priceUsdc":"0.400000","priceUnits":"400000"},"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp":{"priceUsdc":"0.400000","priceUnits":"400000"},"eip155:137":{"priceUsdc":"0.480000","priceUnits":"480000"},"eip155:42161":{"priceUsdc":"0.480000","priceUnits":"480000"}}}}},{"name":"subscription","description":"Subscription tier — SPEC ONLY. Returns 501 with the design spec (D1 binding, per-token rate limit). Will not charge real USDC without the D1 store in place.","inputSchema":{"type":"object","required":[],"properties":{}},"tiers":[{"tier":"subscription","price_usdc":"200.00","status":"spec_only","shape":"POST /v1/subscription with X-Subscription-Token"}],"payment":{"x402":true,"endpoint":"https://api.maximusmediahouse.com/v1/subscription","price":{"amount":"200000000","asset":"USDC","network":"eip155:8453","by_network":{"eip155:8453":{"priceUsdc":"200.000000","priceUnits":"200000000"},"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp":{"priceUsdc":"200.000000","priceUnits":"200000000"},"eip155:137":{"priceUsdc":"240.000000","priceUnits":"240000000"},"eip155:42161":{"priceUsdc":"240.000000","priceUnits":"240000000"}}}}},{"name":"priority","description":"Priority tier — SPEC ONLY. Returns 501. We will not charge 2× for a latency SLA we cannot guarantee on a single-instance Worker.","inputSchema":{"type":"object","required":[],"properties":{}},"tiers":[{"tier":"priority","price_usdc":null,"status":"spec_only","shape":"single-call with X-Priority: high"}],"payment":{"x402":true,"endpoint":"https://api.maximusmediahouse.com/v1/priority","price":{"amount":"100000","asset":"USDC","network":"eip155:8453","by_network":{"eip155:8453":{"priceUsdc":"0.100000","priceUnits":"100000"},"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp":{"priceUsdc":"0.100000","priceUnits":"100000"},"eip155:137":{"priceUsdc":"0.120000","priceUnits":"120000"},"eip155:42161":{"priceUsdc":"0.120000","priceUnits":"120000"}}}}}],"vocabularies":{"validate_kinds":["email","url","phone_e164","iban","card_luhn","uuid","sha256","git_sha","evm_address","domain"],"extract_types":["email","url","ipv4","phone","money","date_iso","uuid","evm_address","sku","semver"],"redact_classes":["private_key","evm_address","iban","email","credit_card","phone","ipv4","url"],"chunk_strategies":["fixed","sentence","paragraph"],"hash_algos":["sha256","xxhash64","murmur3"],"custom_field_types":["string","number","bool","date","url","email"]},"payment":{"protocol":"x402","facilitator":"https://api.cdp.coinbase.com/platform/v2/x402","network":"eip155:8453","asset":"USDC","treasury":"0x8cb59b1bffb39c130ab85a8177e93eae9ddbaf10","supported_networks":["eip155:8453","solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","eip155:137","eip155:42161"]},"price_tiers":{"single":{"price_usdc":null,"shape":"single-call","status":"real"},"batch":{"price_usdc":"0.40","calls":10,"shape":"POST /v1/batch with {requests: [...]}","status":"real"},"subscription":{"price_usdc":"200.00","calls":10000,"period":"month","shape":"POST /v1/subscription with X-Subscription-Token","status":"spec_only"},"priority":{"price_usdc":null,"shape":"single-call with X-Priority: high","status":"spec_only"}}}