# Agent Tools MCP

> 32 free MCP tools for data validation, text optimization, and synthetic test data.

- name: io.github.why-see/agent-tools-mcp
- version: 1.1.0
- connection class: R0 (autonomous)
- trust: 97/100
- quality: 94/100 (new)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/io.github.why-see%2Fagent-tools-mcp
- tools: https://api.protogrid.dev/v1/servers/io.github.why-see%2Fagent-tools-mcp/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "agent-tools-mcp": {
      "type": "http",
      "url": "https://agent-tools-mcp.yvan11.workers.dev/mcp"
    }
  }
}
```


## Trust

- hygiene: 100
- liveness: 100
- freshness: 100
- provenance: 90
- drivers: +repository +namespace-matches-repo +website +reachable +uptime-100% +updated-2d-ago
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 94/100 (new)

### protocol: 88 (weight 25)

- pass `protocol.modern`: supports 2026-07-28 (server/discover)
- pass `protocol.stateless`: answers without a session
- pass `protocol.transport`: streamable HTTP
- warn `protocol.list_ttl`: tools/list declares ttlMs 0, so clients re-fetch it on every use

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 100 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 32 of 32 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 5,291 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: n/a (weight 15)

- n/a `stability.changes`, `stability.rug_pull`: tool history recorded for 2 of the 7 days needed

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 32, about 5,291 tokens to load them all
- tool set hash: 4202905f03bc475068cdc596a9789421
- tools last changed: 2026-10-19T09:38:22.355Z
- badge: [![protogrid quality](https://protogrid.dev/badge/io.github.why-see/agent-tools-mcp.svg)](https://protogrid.dev/servers/io.github.why-see/agent-tools-mcp)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-19 `is-prompt-minify` removed
  - Compress prompt whitespace and filler; semantic equivalence not guaranteed. Use to shorten prompt text before passing it to a model when token budget matters. Do not assume the rewritten prompt preserves all nuances. Transformation tool, not a boolean validator. Returns compacted prompt text that may change phrasing or meaning; compare results on representative tasks.
- 2026-10-19 `is-dataset-minify` removed
  - Clean or minify JSON/JSONL/CSV data, max 4096 input characters. Use to compact small JSON, JSONL or CSV samples without discarding meaningful fields. For ordinary JSON validity checks, use is-json-safe. Transformation tool, not a boolean validator. Returns an optimized dataset representation; may normalize formatting, so inspect output before production use.
- 2026-10-19 `is-strip-ansi` removed
  - Strip ANSI escape sequences. Use when turning colorized terminal logs into clean text for indexing or display. For structured datasets, use is-dataset-minify instead. Transformation tool, not a boolean validator. Returns text with ANSI escape formatting removed; does not parse log entries.
- 2026-10-19 `is-minify-css` removed
  - Conservative CSS minification, review results before production. Use for small CSS snippets where basic whitespace cleanup suffices. For JavaScript use is-minify-js; for complex stylesheets use a CSS-aware build tool. Transformation tool, not a boolean validator. Returns compacted CSS source text; not a full CSS parser, so visually regression-test output.
- 2026-10-19 `is-minify-js` removed
  - Conservative JS minification. Not a parser. Regression-test minified code. Use for small JavaScript snippets where basic whitespace cleanup suffices. For CSS use is-minify-css; for safe production bundling use a real JavaScript parser/minifier. Transformation tool, not a boolean validator. Returns compacted JavaScript source text; not AST-aware, so regression-test behavior before deployment.
- 2026-10-19 `is-html-minify` removed
  - Conservative HTML minification, review results before production. Use to reduce whitespace in a controlled HTML fragment before delivery. For CSS or JavaScript, use is-minify-css or is-minify-js. Transformation tool, not a boolean validator. Returns minified HTML text using a heuristic, not a standards-compliant HTML parser; regression-test output.
- 2026-10-19 `is-google-tag` removed
  - Rewrite existing Google Analytics tag snippet; review output before production. Use when transforming an already supplied Google Analytics tag snippet. It does not configure GA4 accounts, install tracking or verify consent. Transformation tool, not a boolean validator. Returns a rewritten Google Analytics snippet; check consent behavior and analytics tracking before deployment.
- 2026-10-19 `generate-token` changed (description) **meaning changed**
  - before: Generate tokens/UUIDs with WebCrypto; never use deterministic seed for real secrets. Use for temporary development fixtures or unseeded random UUIDs. Do not use seeded output as authentication credentials; for file digests use generate-hash. Returns a generated value visible to the MCP client; no token is registered with any service.
  - after: Generate token strings or UUIDs. Use for test identifiers; use generate-password for password fixtures. Seeded output is predictable and unsuitable for authentication credentials.
- 2026-10-19 `generate-ssn` changed (description) **meaning changed**
  - before: Generate synthetic US SSN-style fixtures only, up to 8. Use only to test formatting and field validation in demos. Never use a generated value as anyone's actual Social Security number. Returns synthetic identifiers and does not query Social Security records.
  - after: Generate fictional US SSN-style test identifiers. Use for SSN test fields; use generate-fake-data for mixed-record fixtures. Returns a string for count=1, otherwise an array; structural validity does not confirm issuance.
- 2026-10-19 `generate-slug` changed (description) **meaning changed**
  - before: Produce Unicode-aware slug from a title. Use when creating an SEO-friendly path segment from a title. To check an existing full URL, use is-url-safe instead. Transliterates/normalizes text locally; verify preferred slugs before publishing permanent URLs.
  - after: Convert a title into a Unicode-aware URL slug. Use when forming new path segments from headings. Inspect output before publishing permanent URLs.

Full history: https://api.protogrid.dev/v1/servers/io.github.why-see%2Fagent-tools-mcp/changes

## Remotes

- https://agent-tools-mcp.yvan11.workers.dev/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (32)

- `generate-avatar`: Create an SVG placeholder profile icon. Use for synthetic avatars in demos and UI prototypes. Returns SVG markup, not a photorealistic likeness.
- `generate-card-number`: Generate a synthetic payment-card fixture. Use for payment-form UI tests requiring a Luhn-valid card number. Returns {number, brand, expiry, cvc}; values are synthetic, not issued credentials.
- `generate-color`: Generate a palette from a base color and harmony scheme. Use for design prototypes; defaults: random base, triadic scheme, five hex colors. Returns {base, scheme, colors, textOnBase}; text color is heuristic, not a WCAG contrast check.
- `generate-dataset`: Generate synthetic rows as JSON, JSONL or CSV. Use for data import/export tests; use generate-fake-data for preset people or company fixtures. Returns at most eight records without accessing a database.
- `generate-fake-data`: Create fictional users, companies, addresses or rows. Use to seed demos with preset records; use generate-dataset for custom fields. Synthetic values are not verified identities.
- `generate-hash`: Compute SHA-256 or legacy MD5 text digests. Use for non-secret content fingerprints; generate-token creates new IDs instead. Returns a hex digest; unsuitable for password storage or key derivation.
- `generate-lorem`: Generate lorem ipsum placeholder copy. Use for mock layouts needing filler words, sentences or paragraphs. Returns synthetic copy, not sourced editorial content.
- `generate-password`: Generate random or seeded test passwords. Use for demo login fields; use generate-token for identifiers. Seeded values are predictable and visible to MCP clients; not a secure credential vault.
- `generate-phone-number`: Generate fictional US-format phone numbers. Use for US demo phone fields; when supplied, city selects a local area-code pool and must match state. Returns an array of fictional (AAA) 555-01XX numbers; no subscriber lookup.
- `generate-prompt`: Fill a prompt template with supplied variables. Use {name} placeholders with matching vars.name; missing variables become empty text. Returns a prompt string without invoking a model; code/image modes can add framing.
- `generate-slug`: Convert a title into a Unicode-aware URL slug. Use when forming new path segments from headings. Inspect output before publishing permanent URLs.
- `generate-ssn`: Generate fictional US SSN-style test identifiers. Use for SSN test fields; use generate-fake-data for mixed-record fixtures. Returns a string for count=1, otherwise an array; structural validity does not confirm issuance.
- `generate-token`: Generate token strings or UUIDs. Use for test identifiers; use generate-password for password fixtures. Seeded output is predictable and unsuitable for authentication credentials.
- `is-card-safe`: Check payment-card brand, length and Luhn checksum. Use with synthetic card numbers in payment-form tests. Returns {ok, normalized?, brand?, last4?, issues}; not a payment authorization or fraud check.
- `is-email-safe`: Check conservative ASCII email address syntax. Use to reject malformed addresses in forms and test fixtures. Returns true or false; does not check mailbox existence or deliverability.
- `is-iban-safe`: Check IBAN country rules, length and checksum against a bundled registry. Use to screen public or synthetic IBANs in test data. Returns {ok, normalized?, issues}; does not verify account ownership or transferability.
- `is-ip-safe`: Check IPv4 or IPv6 literal-address syntax. Use to screen candidate IP strings, not test reachability or geolocation. Returns {ok, version, issues}; version is 4, 6 or null.
- `is-iso-date-safe`: Check Gregorian YYYY-MM-DD calendar dates, including leap days. Use for date-only form fields, not timestamps or timezone offsets. Returns true for a valid date, otherwise false.
- `is-json-safe`: Parse JSON with bounded depth, key counts and input size. Use to screen JSON without execution; use optimize-dataset for JSONL or CSV cleanup. Returns {ok, issues, bytes, depth, keys, value?}; parsed value is included only when valid.
- `is-password-safe`: Evaluate password strength using local heuristics. Use only with dummy passwords when testing password policies. Returns {ok, score, entropyBits, length, sets, reasons, suggestions}; no breach-database lookup.
- `is-phone-e164`: Check phone number syntax against E.164 after local normalization. Use to test international number formats, including spaces or 00 prefixes. Returns true or false, not the normalized number; no subscriber or reachability check.
- `is-url-safe`: Check absolute HTTP or HTTPS URL syntax. Use to screen links before display or storage. Returns true or false; does not visit or assess the site's safety.
- `is-us-tin-safe`: Check synthetic US EIN, SSN or ITIN number formats. Use with tax-ID input fixtures, never real personal identifiers. Returns {ok, normalized?, type, issues}; does not verify IRS issuance or identity.
- `is-uuid-safe`: Check canonical UUID syntax and optional RFC variant/version. Use to validate UUIDs; use generate-token to create them. Returns true or false; does not check uniqueness or resource existence.
- `is-vat-safe`: Check country-specific VAT number patterns. Use to screen VAT fixtures before form submission. Returns {ok, country?, normalized?, issues}; no VIES lookup or active-registration check.
- `minify-css`: Reduce whitespace in CSS snippets. Use for basic stylesheet cleanup rather than production minification. Not a full CSS parser; visually test the result.
- `minify-html`: Remove comments and compact whitespace in HTML fragments. Use for small, controlled HTML snippets, not full document compilation. Returns an HTML string; preserves pre, textarea, script and style contents. Regression-test rendered output.
- `minify-js`: Compact small JavaScript snippets. Use for basic source cleanup, not AST-aware production minification. Returns JavaScript text, sometimes unchanged for complex syntax; regression-test its behavior.
- `minify-prompt`: Normalize prompt whitespace and line breaks. Use to compact formatting before calling a model; filler phrases are not removed. Returns trimmed text with normalized spacing; review prompts where whitespace carries meaning.
- `optimize-dataset`: Clean and compact JSON, JSONL or CSV rows. Use for small datasets; use is-json-safe to check JSON syntax without changes. Returns text in the selected format; trims strings, deduplicates rows and may drop mostly empty columns.
- `optimize-google-tag`: Rebuild GA4 gtag.js markup from a G- measurement ID. Use on existing GA4 snippets, not GTM containers or consent setup. Returns replacement HTML with async loading and a config call, or original input if no G- ID exists. Review lost settings and consent.
- `strip-ansi`: Strip terminal ANSI escape codes from text. Use to make colorized logs readable for indexing or display. Returns plain text without interpreting log entries.
