# ScrubMyText + Agent Infrastructure (remote · api.scrubmytext.com)

49 deterministic tools for text integrity, agent control, and contextual quality evidence.

- Trust score: 69/100 (medium)
- Change this week: 0
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-09-28

> **Recent critical change**: Authorization (2026-08-17). See the changelog below before you install this server.

## Components

- remote · `api.scrubmytext.com`: 69/100 (this document), [markdown](https://verifymcp.io/servers/com-scrubmytext-tools/api.md), [page](https://verifymcp.io/servers/com-scrubmytext-tools/api)

## Channel facts

- Endpoint: `https://api.scrubmytext.com/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `7.5.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-09-28.

- **Endpoint Security**: 46/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation check failed: no authorisation is required to call this server, and it exposes a tool marked destructive (release_action).
  - HTTPS check failed: the endpoint is reachable over plaintext HTTP.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 59/100
  - AI-judged instruction clarity (fair).
  - Tool/resource definitions use about 4100 tokens (~83/item across 49 items; 49 tools + 0 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 100/100
  - No destabilizing schema changes in the last 30 days.
- **Tool Coverage**: 72/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 3% of tool parameters carry a description.
  - Structured output schemas are declared (4% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - All 2 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.
  - An AI judge read all 50 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a current MCP spec version (2026-07-28).

## Install

### How do I install the ScrubMyText + Agent Infrastructure MCP server?

ScrubMyText + Agent Infrastructure is a hosted endpoint at https://api.scrubmytext.com/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http com-scrubmytext-tools 'https://api.scrubmytext.com/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "com-scrubmytext-tools": {
      "url": "https://api.scrubmytext.com/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "com-scrubmytext-tools": {
      "type": "http",
      "url": "https://api.scrubmytext.com/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.com-scrubmytext-tools]
url = "https://api.scrubmytext.com/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-scrubmytext-tools": {
      "type": "remote",
      "url": "https://api.scrubmytext.com/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add com-scrubmytext-tools --url 'https://api.scrubmytext.com/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  com-scrubmytext-tools:
    url: "https://api.scrubmytext.com/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "com-scrubmytext-tools": {
      "Transport": "http",
      "Url": "https://api.scrubmytext.com/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add com-scrubmytext-tools -t streamable-http -u 'https://api.scrubmytext.com/mcp'
```

### Other

```json
{
  "mcpServers": {
    "com-scrubmytext-tools": {
      "type": "http",
      "url": "https://api.scrubmytext.com/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-09-28 (score 69, 0)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-09-25 (score 69, 0)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-09-13 (score 69, +1)

- [security] Stability: 0.97 → pass

### 2026-09-11 (score 68, +1)

No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-09 (score 67, +1)

No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-06 (score 66, +1)

No change was recorded against any check on this day. Stability & Change Management went from 73 to 77. That category is still filling its 30-day observation window: 22 days of observed history at the previous scan, 23 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-04 (score 65, +1)

No change was recorded against any check on this day. Stability & Change Management went from 67 to 70. That category is still filling its 30-day observation window: 20 days of observed history at the previous scan, 21 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-02 (score 64, +1)

No change was recorded against any check on this day. Stability & Change Management went from 60 to 63. That category is still filling its 30-day observation window: 18 days of observed history at the previous scan, 19 at this one. The score rises as the window fills, whether or not the server changes.

## MCP tools (49)

### `scrub_text` (~37 tokens)

ScrubMyText — Scrub Text

Normalize hidden/control characters and formatting artifacts without rewriting wording. Free or paid.

Input parameters:

- `mode` (string)
- `text` (string, required)

### `inspect_text` (~33 tokens)

InspectMyText — Inspect Text

Inspect exact Unicode, invisible characters, normalization, and mixed-script anomalies. Free or paid.

Input parameters:

- `text` (string, required)

### `scan_untrusted_text` (~61 tokens)

ScanMyText — Scan Untrusted Text

Use before an agent ingests pasted, retrieved, uploaded, or externally supplied text. Returns structural and heuristic risk signals; it does not determine maliciousness or safety. Trial, subscription, or x402 pay-per-call.

Input parameters:

- `text` (string, required)

### `redact_sensitive_text` (~52 tokens)

RedactMyText — Redact Sensitive Text

Use before storing, sharing, logging, or sending text downstream when it may contain credentials or identifiers. Pattern-based redaction; trial, subscription, or x402 pay-per-call.

Input parameters:

- `text` (string, required)

### `compare_text` (~52 tokens)

CompareMyText — Compare Text

Use to verify what changed between two text versions and whether differences are only scrub/format artifacts. Trial, subscription, or x402 pay-per-call.

Input parameters:

- `modified` (string, required)
- `original` (string, required)

### `detect_secrets` (~65 tokens)

DetectMySecrets — Detect Secrets

Use before an agent logs, stores, or forwards text that may contain credentials. Finds likely API keys, private keys, JWTs, cloud credentials, and secret patterns without echoing values. Trial, subscription, or x402 pay-per-call.

Input parameters:

- `text` (string, required)

### `validate_output` (~49 tokens)

ValidateMyOutput — Validate AI Output

Use immediately before a downstream action when model output must be valid JSON or match a schema. Trial, subscription, or x402 pay-per-call.

Input parameters:

- `output` (required)
- `schema` (object)

### `sanitize_agent_context` (~71 tokens)

SanitizeMyContext — Sanitize Agent Context

Use before putting untrusted retrieved or uploaded text into a model context. Normalizes structural artifacts, returns risk signals, and can redact sensitive patterns. Trial, subscription, or x402 pay-per-call.

Input parameters:

- `mode` (string)
- `redact_sensitive` (boolean)
- `text` (string, required)

### `prepare_for_agent` (~75 tokens)

PrepareMyContext — Prepare for Agent

Use as the default preprocessing step before an AI agent consumes untrusted external text. Returns agent-ready text plus inspection, risk-scan, and secret-detection reports. Trial, subscription, or x402 pay-per-call.

Input parameters:

- `mode` (string)
- `redact_sensitive` (boolean)
- `text` (string, required)

### `rework_text` (~78 tokens)

ReworkMyText — Rework Text

Use when an agent needs a deterministic, no-LLM rewrite while preserving protected facts such as numbers, URLs, emails, and quotes. Returns change metrics and preservation checks; does not verify authorship or watermark status. Trial, subscription, or x402 pay-per-call.

Input parameters:

- `mode` (string)
- `text` (string, required)

### `fingerprint_action` (~132 tokens)

LockMyAction — Fingerprint Action

Use before retryable work to derive a stable SHA-256 action fingerprint and idempotency key from an action name, optional scope, and JSON arguments. Object key order does not affect the result. Returns no input values and stores nothing. Free or paid.

Input parameters:

- `action` (string, required): Stable action name, such as send_invoice or create_ticket.
- `arguments` (object, required): JSON object containing every value that should define whether two action attempts are the same. Do not include passwords, API keys, or secret tokens.
- `scope` (string): Optional namespace such as production or customer-42. Defaults to default.

Output parameters:

- `action_fingerprint` (string)
- `algorithm` (string)
- `brand` (string)
- `canonical_bytes` (integer)
- `canonicalization` (string)
- `idempotency_key` (string)
- `notice` (string)

### `lock_action` (~63 tokens)

LockMyAction — Lock Action

Use immediately before a consequential agent action to atomically claim an idempotency key so retries cannot execute it twice. Subscription API key required.

Input parameters:

- `completion_ttl_seconds` (integer)
- `key` (string, required)
- `lock_ttl_seconds` (integer)

### `lock_action_intent` (~164 tokens)

LockMyAction — Fingerprint and Lock Action

Use immediately before a consequential retryable action when no stable idempotency key exists. Deterministically fingerprints the action and arguments, atomically claims that key, and returns safe_to_execute. Repeat calls with equivalent object-key ordering return the same fingerprint and cannot acquire a second active lock. Subscription API key required.

Input parameters:

- `action` (string, required): Stable action name, such as send_invoice or create_ticket.
- `arguments` (object, required): JSON object containing every value that should define whether two action attempts are the same. Do not include passwords, API keys, or secret tokens.
- `completion_ttl_seconds` (integer)
- `lock_ttl_seconds` (integer)
- `scope` (string): Optional namespace such as production or customer-42. Defaults to default.

Output parameters:

- `action_fingerprint` (string)
- `algorithm` (string)
- `brand` (string)
- `canonical_bytes` (integer)
- `canonicalization` (string)
- `completed_at` (string|null)
- `completion_retention_seconds` (integer)
- `idempotency_key` (string)
- `key` (string)
- `lock_expires_at` (string)
- `lock_id` (string)
- `locked_at` (string)
- `notice` (string)
- `protected_until` (string)
- `safe_to_execute` (boolean)
- `status` (string)

### `check_action` (~35 tokens)

LockMyAction — Check Action

Use to inspect an idempotency key before or after an agent action. Subscription API key required.

Input parameters:

- `key` (string, required)

### `complete_action` (~43 tokens)

LockMyAction — Complete Action

Paid: mark the current lock completed and preserve the idempotency record for its configured retention period.

Input parameters:

- `key` (string, required)
- `lock_id` (string, required)

### `release_action` (~43 tokens)

LockMyAction — Release Action

Paid: release an uncompleted action lock using its lock_id so another attempt can safely acquire it.

Input parameters:

- `key` (string, required)
- `lock_id` (string, required)

### `create_signal` (~57 tokens)

CatchMySignal — Create Signal Inbox

Use when an agent must wait for an external callback, webhook, job completion, or asynchronous event. Subscription API key required.

Input parameters:

- `expires_in_seconds` (integer)
- `label` (string)
- `max_events` (integer)

### `get_signal_events` (~46 tokens)

CatchMySignal — Get Events

Paid: retrieve events received by a temporary signal inbox in arrival order.

Input parameters:

- `after_ms` (integer)
- `inbox_id` (string, required)
- `limit` (integer)

### `delete_signal` (~29 tokens)

CatchMySignal — Delete Inbox

Paid: immediately delete a signal inbox and all stored event bodies.

Input parameters:

- `inbox_id` (string, required)

### `request_approval` (~56 tokens)

ApproveMyAction — Request Approval

Use when an agent needs independent human approval before a consequential action. Creates a secure approval link. Subscription API key required.

Input parameters:

- `description` (string)
- `expires_in_seconds` (integer)
- `title` (string, required)

### `check_approval` (~37 tokens)

ApproveMyAction — Check Approval

Paid: check whether a human approval request is pending, approved, rejected, expired, or cancelled.

Input parameters:

- `approval_id` (string, required)

### `cancel_approval` (~35 tokens)

ApproveMyAction — Cancel Approval

Paid: cancel a pending human approval request so its link can no longer approve the action.

Input parameters:

- `approval_id` (string, required)

### `manage_action_challenge` (~108 tokens)

ChallengeMyAction — Manage Veto Window

Create, inspect, consume, or cancel a digest-bound cooling-off window. A bearer challenger can veto before the deadline; afterward the owner can atomically consume one execution right during a bounded window. This is exception handling, not affirmative consent or legal approval. Subscription API key required.

Input parameters:

- `action_fingerprint` (string)
- `control_id` (string)
- `execution_window_seconds` (integer)
- `operation` (string, required)
- `veto_window_seconds` (integer)

### `reserve_action_budget` (~103 tokens)

BudgetMyAction — Reserve Budget

Atomically reserve integer units under a named, period-scoped ceiling. A reservation_key makes retries idempotent. The service stores hashes and counters, not purchase details. Production; subscription API key required.

Input parameters:

- `amount` (integer)
- `budget_key` (string, required)
- `limit` (integer)
- `operation` (string, required)
- `period_key` (string, required)
- `reservation_key` (string)
- `retention_seconds` (integer)

### `record_action_receipt` (~76 tokens)

ReceiptMyAction — Record Receipt

Create or retrieve an immutable receipt digest for an action outcome without storing the action or outcome payload. Production; subscription API key required.

Input parameters:

- `action_fingerprint` (string)
- `operation` (string, required)
- `outcome_digest` (string)
- `outcome_status` (string)
- `receipt_id` (string)

### `verify_signed_signal` (~90 tokens)

VerifyMySignal — Verify Signed Signal

Verify an HMAC-SHA256 signal, enforce timestamp freshness, and reject a replayed nonce. The message and shared secret are never stored. Production; subscription API key required.

Input parameters:

- `max_age_seconds` (integer)
- `message` (string, required)
- `nonce` (string, required)
- `shared_secret` (string, required)
- `signature` (string, required)
- `timestamp` (integer, required)

### `manage_resource_lease` (~67 tokens)

LeaseMyResource — Manage Lease

Atomically acquire, inspect, or release a short-lived exclusive lease on a hashed resource key. Production; subscription API key required.

Input parameters:

- `lease_token` (string)
- `operation` (string, required)
- `resource_key` (string, required)
- `ttl_seconds` (integer)

### `manage_authority_delegation` (~105 tokens)

DelegateMyAuthority — Manage Delegation

Issue, consume, inspect, or revoke a narrow bearer capability bound to one action fingerprint and a maximum use count. This is a technical capability, not identity proof or a legal delegation. Production; subscription API key required.

Input parameters:

- `action_fingerprint` (string)
- `control_id` (string)
- `expires_in_seconds` (integer)
- `max_uses` (integer)
- `operation` (string, required)
- `token` (string)

### `manage_agent_stop` (~67 tokens)

StopMyAgent — Manage Stop Signal

Set, inspect, or clear a durable stop signal for a hashed agent or workflow key. Callers should fail closed whenever stopped is true. Production; subscription API key required.

Input parameters:

- `operation` (string, required)
- `reason_code` (string)
- `subject_key` (string, required)

### `manage_task_handoff` (~86 tokens)

HandoffMyTask — Manage Handoff

Create a bearer-token task handoff, let another paid API identity claim it exactly once, and inspect, complete, or cancel the transfer. Only task fingerprints are stored. Production.

Input parameters:

- `control_id` (string)
- `expires_in_seconds` (integer)
- `operation` (string, required)
- `task_fingerprint` (string)
- `token` (string)

### `manage_action_reconciliation` (~93 tokens)

ReconcileMyAction — Manage Reconciliation

Open, inspect, append digest-only evidence to, or resolve a discrepancy between expected and observed action outcomes. Production; subscription API key required.

Input parameters:

- `action_fingerprint` (string)
- `control_id` (string)
- `evidence_digest` (string)
- `expected_digest` (string)
- `observed_digest` (string)
- `operation` (string, required)
- `resolution` (string)

### `anchor_context_trace` (~82 tokens)

TraceMyContext — Anchor Trace

Create or inspect an immutable provenance anchor from a context digest, parent digests, and processing stage. No context content is stored. Production; subscription API key required.

Input parameters:

- `context_digest` (string)
- `control_id` (string)
- `operation` (string, required)
- `parent_digests` (array)
- `stage` (string)

### `manage_task_contract` (~96 tokens)

ContractMyTask — Manage Task Contract

Offer, accept, inspect, complete, or cancel a digest-bound technical task commitment. This records service state; it is not a legal contract, escrow, payment, or identity verification. Production.

Input parameters:

- `control_id` (string)
- `expires_in_seconds` (integer)
- `operation` (string, required)
- `task_fingerprint` (string)
- `terms_digest` (string)
- `token` (string)

### `check_agent_readiness` (~80 tokens)

ReadyMyAgent — Check Integration Readiness

Deterministically check a supplied MCP server card against a narrow, published integration contract. The service does not fetch arbitrary URLs and does not certify security or correctness. Free or paid.

Input parameters:

- `expected_version` (string)
- `require_streamable_http` (boolean)
- `required_tools` (array)
- `server_card` (object, required)

### `manage_action_quorum` (~98 tokens)

QuorumMyAction — Manage Authorization Quorum

Create, inspect, consume, or cancel an N-of-M bearer authorization quorum. Each unique bearer can decide once; only a successful one-time consume grants an execution right. Subscription API key required.

Input parameters:

- `action_fingerprint` (string)
- `control_id` (string)
- `expires_in_seconds` (integer)
- `member_count` (integer)
- `operation` (string, required)
- `required_votes` (integer)

### `manage_task_deadline` (~88 tokens)

DeadlineMyTask — Manage Durable Deadline

Create, inspect, complete, or cancel a task deadline whose due and escalation state is derived from an independent server clock even when the agent is offline. Subscription API key required.

Input parameters:

- `control_id` (string)
- `due_in_seconds` (integer)
- `escalation_grace_seconds` (integer)
- `operation` (string, required)
- `task_fingerprint` (string)

### `manage_attention_budget` (~126 tokens)

BudgetMyAttention — Manage Review Capacity

Create, inspect, reserve, release, or close a finite review-capacity pool with per-subject caps, retry-safe reservations, and protected priority capacity. Subscription API key required.

Input parameters:

- `control_id` (string)
- `max_units_per_subject` (integer)
- `operation` (string, required)
- `period_seconds` (integer)
- `priority` (string)
- `protected_priority_units` (integer)
- `reservation_key` (string)
- `subject_fingerprint` (string)
- `total_units` (integer)
- `units` (integer)

### `manage_agent_escalation` (~99 tokens)

EscalateMyAgent — Manage Operator Escalation

Create, inspect, or cancel a digest-only incident with a private bearer operator link and deterministic response and resolution SLA state. Link delivery remains the caller’s responsibility. Subscription API key required.

Input parameters:

- `control_id` (string)
- `incident_fingerprint` (string)
- `operation` (string, required)
- `resolution_sla_seconds` (integer)
- `response_sla_seconds` (integer)
- `severity` (string)

### `manage_terms_pin` (~131 tokens)

PinMyTerms — Manage Terms Pin

Pin, inspect, or revoke an immutable digest-bound record of observed terms, interface, version, and price. Stores bounded metadata and digests, not the terms body. This is technical evidence, not a legal agreement. Subscription API key required.

Input parameters:

- `control_id` (string)
- `counterparty_fingerprint` (string)
- `currency` (string)
- `expires_in_seconds` (integer)
- `interface_digest` (string)
- `operation` (string, required)
- `price_minor` (integer)
- `terms_digest` (string)
- `version_label` (string)

### `match_policy_requirements` (~72 tokens)

MatchMyPolicy — Match Policy Requirements

Deterministically compare bounded provider capabilities with consumer-required and forbidden policy tokens. Processes supplied tokens without storing policy content and does not make legal or compliance conclusions. Subscription API key required.

Input parameters:

- `consumer_forbidden` (array, required)
- `consumer_required` (array, required)
- `provider_capabilities` (array, required)

### `manage_action_compensation` (~91 tokens)

CompensateMyAction — Manage Compensating Action

Bind a compensating-action digest before execution, record that the primary action executed, and atomically mark compensation once. Stores digests only and does not perform either action. Subscription API key required.

Input parameters:

- `action_fingerprint` (string)
- `compensation_fingerprint` (string)
- `control_id` (string)
- `expires_in_seconds` (integer)
- `operation` (string, required)

### `manage_context_status` (~99 tokens)

RevokeMyContext — Manage Context Status

Publish, inspect, supersede, dispute, or revoke digest-only context status so downstream agents can stop using stale inputs. Stores no context body and does not invalidate copies outside this service. Subscription API key required.

Input parameters:

- `context_digest` (string)
- `control_id` (string)
- `expires_in_seconds` (integer)
- `operation` (string, required)
- `reason_code` (string)
- `successor_digest` (string)

### `manage_context_rights` (~103 tokens)

LicenseMyContext — Manage Context Rights

Issue, inspect, evaluate, or revoke a digest-bound machine-readable context-rights envelope. It is a technical policy signal, not legal advice or proof of ownership. Subscription API key required.

Input parameters:

- `context_digest` (string)
- `control_id` (string)
- `expires_in_seconds` (integer)
- `operation` (string, required)
- `policy_digest` (string)
- `requested_right` (string)
- `rights` (array)

### `manage_disclosure_budget` (~135 tokens)

MeterMyDisclosure — Manage Disclosure Budget

Create, inspect, record against, or close a cumulative disclosure budget with total, per-recipient, and per-category limits. Stores hashes and counters, not disclosed content or recipient identities. Subscription API key required.

Input parameters:

- `category_fingerprint` (string)
- `control_id` (string)
- `event_key` (string)
- `operation` (string, required)
- `per_category_limit` (integer)
- `per_recipient_limit` (integer)
- `period_seconds` (integer)
- `recipient_fingerprint` (string)
- `total_units` (integer)
- `units` (integer)

### `list_quality_cards` (~69 tokens)

TrustMyChoice — List Public Quality Cards

List exact service-version/task quality cards that have reached the public three-verified-contributor evidence threshold. Results are ordered by recent evidence, not quality, payment, or sponsorship. Free.

Input parameters:

- `limit` (integer)
- `target_type` (string)
- `task_category` (string)

### `get_quality_card` (~126 tokens)

TrustMyChoice — Get Quality Card

Retrieve a public, contextual quality card for an exact MCP server or REST API version. Scores remain unavailable until at least three independent verified contributors submit structured observations. Free.

Input parameters:

- `canonical_endpoint` (string, required)
- `interface_digest` (string)
- `max_latency_ms` (integer)
- `max_price_micros` (integer)
- `minimum_evidence_class` (string)
- `provider_domain` (string, required)
- `region` (string)
- `target_type` (string, required)
- `task_category` (string, required)
- `version` (string, required)

### `compare_quality_targets` (~93 tokens)

TrustMyChoice — Compare Quality Targets

Return contextual quality cards for two to ten exact targets in caller-provided order. It exposes evidence and uncertainty without producing a paid ranking or universal winner. Free.

Input parameters:

- `max_latency_ms` (integer)
- `max_price_micros` (integer)
- `minimum_evidence_class` (string)
- `region` (string)
- `targets` (array, required)
- `task_category` (string, required)

### `record_quality_observation` (~213 tokens)

TrustMyChoice — Record Quality Observation

Submit an opt-in structured observation for an exact target and task. Receipt-linked observations are labeled E1; other observations are E0. Stores no prompt, response, credential, email, or free-form review. Free verified contributor or subscription key required.

Input parameters:

- `canonical_endpoint` (string, required)
- `final_price_micros` (integer)
- `interface_digest` (string)
- `latency_ms` (integer)
- `max_latency_ms` (integer)
- `max_price_micros` (integer)
- `minimum_evidence_class` (string)
- `observation_key` (string, required)
- `observed_at` (string)
- `outcome_success` (boolean, required)
- `provider_domain` (string, required)
- `quoted_price_micros` (integer)
- `receipt_id` (string)
- `region` (string)
- `reliability` (boolean, required)
- `target_type` (string, required)
- `task_category` (string, required)
- `version` (string, required)

### `request_quality_correction` (~89 tokens)

TrustMyChoice — Request Quality Correction

Attach a digest-only correction or appeal request to a quality card. Requests are visible as unverified pending state and do not erase evidence or prove provider identity. Free verified contributor or subscription key required.

Input parameters:

- `card_id` (string, required)
- `correction_digest` (string, required)
- `reason_code` (string, required)
- `request_key` (string, required)
- `request_kind` (string, required)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/com-scrubmytext-tools/api#diagnostics

## Score history

- 2026-09-28: 69
- 2026-09-27: 69
- 2026-09-26: 69
- 2026-09-25: 69
- 2026-09-24: 69
- 2026-09-23: 69
- 2026-09-22: 69
- 2026-09-21: 69
- 2026-09-20: 69
- 2026-09-19: 69
- 2026-09-18: 69
- 2026-09-17: 69
- 2026-09-16: 69
- 2026-09-15: 69
- 2026-09-14: 69
- 2026-09-13: 69
- 2026-09-12: 68
- 2026-09-11: 68
- 2026-09-10: 67
- 2026-09-09: 67
- 2026-09-08: 66
- 2026-09-07: 66
- 2026-09-06: 66
- 2026-09-05: 65
- 2026-09-04: 65
- 2026-09-03: 64
- 2026-09-02: 64
- 2026-09-01: 63
- 2026-08-31: 63
- 2026-08-30: 62

## Common questions

### What is the ScrubMyText + Agent Infrastructure MCP server?

ScrubMyText + Agent Infrastructure is an MCP server listed in the public MCP registry as com.scrubmytext/tools. 49 deterministic tools for text integrity, agent control, and contextual quality evidence. This page covers its hosted endpoint (https://api.scrubmytext.com/mcp).

### Is the ScrubMyText + Agent Infrastructure MCP server safe to use?

ScrubMyText + Agent Infrastructure scores 69 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the ScrubMyText + Agent Infrastructure MCP server expose?

ScrubMyText + Agent Infrastructure exposes 49 tools: scrub_text, inspect_text, scan_untrusted_text, redact_sensitive_text, compare_text, and 44 more. Their descriptions and schemas cost roughly 3,998 tokens of context every time the server is loaded.

### Does the ScrubMyText + Agent Infrastructure MCP server require authentication?

No. We connected to ScrubMyText + Agent Infrastructure without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the ScrubMyText + Agent Infrastructure MCP server still maintained?

ScrubMyText + Agent Infrastructure is still listed as active in the MCP registry. We last reached this channel on 28 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://api.scrubmytext.com/mcp
- Changelog RSS feed: https://verifymcp.io/servers/com-scrubmytext-tools/api.xml
- Changelog JSON feed: https://verifymcp.io/servers/com-scrubmytext-tools/api.json
- HTML version of this page: https://verifymcp.io/servers/com-scrubmytext-tools/api
