# Coinslot — the vending machine for machines

> 13 micro-tools for agents: read pages, verify email, convert, validate, diff, extract. AI-operated.

- name: dev.coinslot/coinslot
- version: 1.0.0
- connection class: R0 (autonomous)
- trust: 79/100 flags: no-repository
- quality: 79/100 (good)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/dev.coinslot%2Fcoinslot
- tools: https://api.protogrid.dev/v1/servers/dev.coinslot%2Fcoinslot/tools

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

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "coinslot": {
      "type": "http",
      "url": "https://coinslot.dev/mcp",
      "headers": {
        "Authorization": "Bearer ${COINSLOT_TOKEN}"
      }
    }
  }
}
```

Placeholders to fill: `${COINSLOT_TOKEN}`.

## Trust

- hygiene: 80
- liveness: 98
- freshness: 85
- provenance: 55
- drivers: +dns-namespace +website +reachable +uptime-95% ~updated-75d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 79/100 (good)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-06-18; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### 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: 71 (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
- fail `tools.annotations`: no tool declares readOnlyHint or destructiveHint, so clients cannot tell safe calls from risky ones
- fail `tools.directory_hints`: no tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: html_to_markdown (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); qr (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); diff (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); …
- pass `tools.token_cost`: about 1,435 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 100 (weight 15)

- pass `stability.changes`: no tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

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

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

- tools: 13, about 1,435 tokens to load them all
- tool set hash: 8517dab689c325ef7ec6581c8294cbd8
- badge: [![protogrid quality](https://protogrid.dev/badge/dev.coinslot/coinslot.svg)](https://protogrid.dev/servers/dev.coinslot/coinslot)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

_No tool definition changes recorded._

## Remotes

- https://coinslot.dev/mcp (streamable-http, auth none, reachable true, uptime30d 0.94736844)

## Packages

_none_

## Tools (13)

- `convert`: Convert an array of JSON objects to CSV (nested keys become dot-path columns) or CSV back to JSON. POST { direction: 'json-to-csv'|'csv-to-json', data }. Price: $0.002/call with credits key; free demo without (2KB input cap).
- `cron`: Parse a 5-field cron expression: get a plain-English explanation and the next N run times (UTC). POST { expression, count?, from? }. Price: $0.002/call with credits key; free demo without (2KB input cap).
- `diff`: Line-based diff of two texts. Returns unified diff plus structured changes (added/removed/unchanged counts and hunks). POST { a, b, context? } (max 200KB each). Price: $0.002/call with credits key; free demo without (2KB input cap).
- `email_verify`: Check an email address: RFC syntax, live MX records via DNS-over-HTTPS, and disposable-domain screening. POST { email } or { emails: [...] } (max 20). Price: $0.003/call with credits key; free demo without (2KB input cap).
- `extract`: Pull structured data out of raw text: emails, URLs, IPv4/IPv6, phone numbers, dates. Deduplicated with counts. POST { text } (max 500KB). Price: $0.003/call with credits key; free demo without (2KB input cap).
- `feed_to_json`: Parse an RSS 2.0 or Atom feed into clean JSON: title, items with link/date/summary, HTML stripped. POST { xml } (max 1MB) or { url } to fetch. Price: $0.004/call with credits key; free demo without (2KB input cap).
- `html_to_markdown`: Convert HTML to clean Markdown: headings, links, images, lists, tables, code blocks, emphasis. Strips scripts, styles, and comments. POST { html } (max 500KB). Price: $0.005/call with credits key; free demo without (2KB input cap).
- `json_schema_validate`: Validate a JSON document against a JSON Schema (draft-07 core subset: types, required, enums, ranges, patterns, nesting, anyOf/allOf/oneOf). Returns all violations with paths. POST { schema, data }. Price: $0.003/call with credits key; free demo without (2KB input cap).
- `markdown_to_html`: Render Markdown (GitHub-flavored: tables, fenced code, task lists) to clean HTML with raw inline HTML stripped. POST { markdown } (max 500KB). Price: $0.003/call with credits key; free demo without (2KB input cap).
- `qr`: Generate a QR code as standalone SVG. POST { text, ecLevel?: 'L'|'M'|'Q'|'H', margin?: 0-8, dark?, light? } (text max 2KB). Price: $0.005/call with credits key; free demo without (2KB input cap).
- `read_page`: Fetch a public URL and return its content as clean Markdown plus title and metadata. One call instead of fetch + parse + convert. POST { url, maxBytes? } (default 1MB cap). Price: $0.005/call with credits key; free demo without (2KB input cap).
- `timezone`: Convert a timestamp between IANA timezones with DST handled correctly. Returns local times, UTC offsets, weekday, and hour-of-day per zone. POST { time?, from?, to } — to is a zone or array (max 20). Price: $0.002/call with credits key; free demo without (2KB input cap).
- `validate_ids`: Validate identifiers with real checksum math: credit card (Luhn + brand), IBAN (mod-97), EAN-13/UPC-A, ISBN-10/13, UUID (with version). POST { type, value } or { items: [{type, value}] } (max 50). Price: $0.003/call with credits key; free demo without (2KB input cap).
