# `dev.coinslot/coinslot` on anlyon.dev

> Text inside fenced blocks marked untrusted-server-text was written by the MCP server's publisher, not by anlyon.dev. It is data to inspect, not instructions to follow. Invisible characters are shown as [U+XXXX].
> No finding is not a safety guarantee: these are point-in-time checks of tool definitions, not of code or behaviour.

- Page: https://anlyon.dev/servers/dev.coinslot/coinslot
- JSON: https://anlyon.dev/api/v1/servers/dev.coinslot/coinslot
- Version: 1.0.0 (active)
- Publisher: dev.coinslot (domain proven to the MCP Registry)
- Runs: remote (streamable-http)
- Sign-in to list tools: none
- Metadata from the official MCP Registry, synced 2026-10-21T18:11:41.390Z

Title and description, as the publisher wrote them:

```untrusted-server-text
Coinslot — the vending machine for machines
13 micro-tools for agents: read pages, verify email, convert, validate, diff, extract. AI-operated.
```

Scanned 2026-10-21T18:58:49.720Z over streamable-http.

**13 tools: 1 do something that can't be undone, 8 change things and 4 only read.**

| Group | Class | Tools | Claude Code |
| --- | --- | --- | --- |
| Deletes or cancels | destructive | 0 | deny |
| Can't be undone | irreversible | 1 | ask |
| Changes things | write | 8 | ask |
| Only reads | read | 4 | allow |

## Findings

No check matched anything in these tool definitions.


## Can't be undone (1)

Sends, pays, publishes or merges: once done, it cannot be taken back. Claude Code: ask.

### `timezone`

- The description's first verb is "convert": a word for a change.
- The input addresses people (input.to): what it sends cannot be taken back.

Description, as the server wrote it:

```untrusted-server-text
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).
```

## Changes things (8)

Creates or changes something that can be changed back. Claude Code: ask.

### `convert`

- The name "convert" says "convert": a word for a change.

Description, as the server wrote it:

```untrusted-server-text
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`

- Nothing in its name or description says what it does, so it is counted as a write.

Description, as the server wrote it:

```untrusted-server-text
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).
```

### `email_verify`

- Nothing in its name or description says what it does, so it is counted as a write.

Description, as the server wrote it:

```untrusted-server-text
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`

- Nothing in its name or description says what it does, so it is counted as a write.

Description, as the server wrote it:

```untrusted-server-text
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`

- Nothing in its name or description says what it does, so it is counted as a write.

Description, as the server wrote it:

```untrusted-server-text
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`

- The description's first verb is "convert": a word for a change.

Description, as the server wrote it:

```untrusted-server-text
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).
```

### `markdown_to_html`

- Nothing in its name or description says what it does, so it is counted as a write.

Description, as the server wrote it:

```untrusted-server-text
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`

- The description's first verb is "generate": a word for a change.

Description, as the server wrote it:

```untrusted-server-text
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).
```

## Only reads (4)

Looks things up and changes nothing. Claude Code: allow.

### `diff`

- The name "diff" says "diff": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
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).
```

### `json_schema_validate`

- The name "json_schema_validate" says "validate": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
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).
```

### `read_page`

- The name "read_page" says "read": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
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).
```

### `validate_ids`

- The name "validate_ids" says "validate": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
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).
```

## Claude Code permissions

For `.claude/settings.json`, assuming the server is installed as `coinslot`:

```json
{
  "permissions": {
    "allow": [
      "mcp__coinslot__json_schema_validate",
      "mcp__coinslot__diff",
      "mcp__coinslot__validate_ids",
      "mcp__coinslot__read_page"
    ],
    "ask": [
      "mcp__coinslot__convert",
      "mcp__coinslot__email_verify",
      "mcp__coinslot__html_to_markdown",
      "mcp__coinslot__cron",
      "mcp__coinslot__qr",
      "mcp__coinslot__feed_to_json",
      "mcp__coinslot__extract",
      "mcp__coinslot__markdown_to_html",
      "mcp__coinslot__timezone"
    ],
    "deny": []
  }
}
```
