Skip to main content
Glama

54ch10 MCP — wrap before you click

Job: pre-interact URL risk brief for agents (page_risk, whois/dns/tls, SSRF-safe fetch). Analytics-only — not financial, legal, or investment advice. Not clearance. Page extraction: GET https://54ch10.uk/v1/fetch?url= at $0.005 (SSRF-safe). Then wrap-before-click with url.open.

npx -y github:sachio222/54ch10-mcp

Primary URL check: url.open → GET /v1/open?q= (score 0–100, lower is better). Paid via stack (X-54ch10-Stack, $1→80) or Bearer 54k_. Free taste: empty BRIEF_API_KEY / X-54ch10-Free / /v1/open/free. Batch: url.open_batch → POST /v1/open/batch (paid-only, cap 25).


Thin Model Context Protocol wrapper around the 54ch10 live HTTPS API.

MCP tools (prefer dots): url.open, url.open_batch, url.fetch, url.normalize, domain.whois, domain.dns, domain.tls, util.hash, util.encode, paste.write, paste.read. Legacy flat aliases (brief, whois, …) still work.

Field

Value

package name

54ch10-mcp

version

0.3.3

MCP registry name (mcpName)

io.github.sachio222/54ch10-mcp

Manifest

server.json / manifest.json

Primary install (today)

npx -y github:sachio222/54ch10-mcp

Jobs (HTTP to MCP)

Standing order: https://54ch10.uk/wire.md Install map: https://54ch10.uk/docs/install-map Bulk UI: https://linksafu.com/bulk

Job

HTTP

MCP

Open URL

GET /v1/open?q=

url.open type=url

Address/token brief

GET /v1/brief

url.open type=address

Bulk open paid cap 25

POST /v1/open/batch

url.open_batch

Stack 1 USD to 80

GET or POST /v1/stack

BRIEF_API_KEY=stack id

Fetch markdown

GET /v1/fetch

url.fetch

Domain pack

whois+dns+tls

domain.*

Related MCP server: IP Intelligence MCP Server

Install / run

Requires Node.js 18+.

Primary

npx -y github:sachio222/54ch10-mcp

See CONFIG.example.json for host config.

Env

Purpose

BRIEF_API_BASE

API base override

BRIEF_API_KEY

stack id OR 54k key OR empty free

BRIEF_STACK_ID

optional stack id alias

Smoke: https://54ch10.uk/v1/open/free?q=https://example.com

Tools

MCP tool

HTTP

url.open type=url

GET /v1/open?q=

url.open type=address

token

url.open_batch

POST /v1/open/batch

url.fetch

GET /v1/fetch

url.normalize

GET /v1/normalize-url

domain.whois / dns / tls

GET /v1/whois

util.hash / util.encode

GET /v1/hash

paste.write / paste.read

POST/GET /v1/paste

Prompts: wrap_before_click, domain_hygiene, free_taste_demo.

url.open score 0-100 lower is better. HTTP 402 unpaid: use stack or 54k Bearer.

url.open_batch: paid-only, cap 25, concurrency ~3, inflight ~10. Bulk UI: https://linksafu.com/bulk

Auth / payments

  1. Free: empty BRIEF_API_KEY -> X-54ch10-Free

  2. Stack: GET|POST /v1/stack ($1 -> 80). Put stack id in BRIEF_API_KEY -> X-54ch10-Stack

  3. Bearer: BRIEF_API_KEY starting with 54k_ -> Authorization Bearer

  4. x402 on HTTP API (stdio wrapper does not auto-pay)

Indicative: open 0.015, batch Nx0.015, fetch 0.005. Discovery: https://54ch10.uk/.well-known/x402

Registry listing checklist

  • Live HTTPS; url.open -> /v1/open; open_batch; stack auth

  • package.json mcpName io.github.sachio222/54ch10-mcp

  • Public GitHub https://github.com/sachio222/54ch10-mcp

  • Public npmjs / official MCP Registry (blocked until npmjs)

Do not Discord/X auto-post.

Disclaimer

Informational tooling only. Not financial, investment, legal, or tax advice. Full text: https://54ch10.uk/LEGAL_DISCLAIMER.txt

Available Tools

21 tools
briefLegacy: brief → url.openA
Read-onlyIdempotent

Legacy alias for url.open. Prefer url.open. type=url → GET /v1/open; address|token → GET /v1/brief. Score lower is better. HTTP 402 unpaid — stack or Bearer 54k_.

Inputs: q (required), type (required).

dnsLegacy: dns → domain.dnsA
Read-onlyIdempotent

Legacy alias for domain.dns (GET /v1/dns). Prefer domain.dns.

Inputs: domain (required).

domain.dnsDomain DNSA
Read-onlyIdempotent

GET /v1/dns — summarize DNS A/AAAA/MX/NS for a domain with fraud-signal style flags. Call with domain.whois / domain.tls for full domain hygiene after url.open. Analytics-only.

Inputs: domain (required).

domain.tlsDomain TLS/CTA
Read-onlyIdempotent

GET /v1/tls — summarize TLS/CT (issuer, validity, HTTPS reachability) via crt.sh + probe. Call after url.open / domain.dns when certificate age or issuer matters. Analytics-only.

Inputs: domain (required).

domain.whoisDomain WHOIS/RDAPA
Read-onlyIdempotent

GET /v1/whois — look up domain WHOIS/RDAP (registration, registrar, age_days, status, nameservers). Call after url.open when you need registration age / registrar signals. Analytics-only — not clearance.

Inputs: domain (required).

encodeLegacy: encode → util.encodeC
Read-onlyIdempotent

Legacy alias for util.encode (GET /v1/encode). Prefer util.encode.

Inputs: q (required), format.

fetchLegacy: fetch → url.fetchA
Read-onlyIdempotent

Legacy alias for url.fetch. Page extraction: GET https://54ch10.uk/v1/fetch?url= at $0.005. Prefer url.fetch.

Inputs: url (required), format.

hashLegacy: hash → util.hashA
Read-onlyIdempotent

Legacy alias for util.hash (GET /v1/hash). Prefer util.hash.

Inputs: q (required), algo.

normalize-urlLegacy: normalize-url → url.normalizeA
Read-onlyIdempotent

Legacy alias for url.normalize (GET /v1/normalize-url). Prefer url.normalize.

Inputs: q (required).

paste.readRead ephemeral pasteA
Read-onlyIdempotent

GET /v1/paste — retrieve an ephemeral paste by id from paste.write before TTL expiry. Agent handoff only — not a vault.

Inputs: id (required).

paste_readLegacy: paste_read → paste.readA
Read-onlyIdempotent

Legacy alias for paste.read (GET /v1/paste). Prefer paste.read.

Inputs: id (required).

paste.writeWrite ephemeral pasteA
Idempotent

POST /v1/paste — store a short ephemeral paste (KV TTL default 1h, max 24h) and return an id. Agent handoff only — not a vault. Pair with paste.read.

Inputs: content (required), ttl_seconds.

paste_writeLegacy: paste_write → paste.writeA
Idempotent

Legacy alias for paste.write (POST /v1/paste). Prefer paste.write.

Inputs: content (required), ttl_seconds.

tlsLegacy: tls → domain.tlsA
Read-onlyIdempotent

Legacy alias for domain.tls (GET /v1/tls). Prefer domain.tls.

Inputs: domain (required).

url.fetchPage extraction (paid)A
Read-onlyIdempotent

Page extraction / public URL to markdown. GET https://54ch10.uk/v1/fetch?url= at $0.005. SSRF-safe; returns status, contentType, markdown|text (200KB cap). Use after url.open when you need page body, not just risk signals. Analytics-only.

Inputs: url (required), format.

url.normalizeNormalize URLA
Read-onlyIdempotent

GET /v1/normalize-url — canonicalize a URL (scheme/host lowercased, fragment stripped, query sorted) before comparing or opening. Call before url.open when the URL is messy or duplicated. Analytics-only.

Inputs: q (required).

url.openOpen URL / risk briefA
Read-onlyIdempotent

Maps to GET /v1/open for URL checks (page_risk, whois, page). Score 0–100, lower is better. HTTP 402 when unpaid — prefer X-54ch10-Stack or Bearer 54k_ via BRIEF_API_KEY. For type=url calls /v1/open?q=; for address|token keeps GET /v1/brief?type=&q=. Call first for wrap-before-click; then domain.whois / domain.dns / domain.tls. Analytics-only.

Inputs: q (required), type (required).

url.open_batchBulk open URLs (paid)A

POST /v1/open/batch with JSON {urls:[...]}. Paid-only (stack X-54ch10-Stack or Bearer 54k_); no free path — HTTP 402 without credits. Cap 25 URLs per request. Server concurrency ~3; global inflight ~10. Prefer for allowlists; human bulk UI: https://linksafu.com/bulk. Each URL gets the same page_risk brief as GET /v1/open. Analytics-only.

Inputs: urls (required).

util.encodeEncode textA
Read-onlyIdempotent

GET /v1/encode — encode text as base64, hex, or url-encoding. Utility for safe transport of strings between tools.

Inputs: q (required), format.

util.hashHash textA
Read-onlyIdempotent

GET /v1/hash — hash UTF-8 text (sha256|sha1|md5) to hex + base64. Utility for fingerprints — not crypto advice. Analytics-only utility.

Inputs: q (required), algo.

whoisLegacy: whois → domain.whoisA
Read-onlyIdempotent

Legacy alias for domain.whois (GET /v1/whois). Prefer domain.whois.

Inputs: domain (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.2/5.0

    Scored across 21 tools

    Disambiguation1/5

    The set includes ten legacy aliases that duplicate primary tools exactly (brief vs url.open, whois vs domain.whois, etc.), so many tools effectively do the same thing. Even though descriptions label the aliases, an agent must choose between redundant names.

    Naming Consistency2/5

    Primary tools use a clean resource.action style (url.open, domain.whois, paste.read), but this is mixed with url.open_batch, bare legacy names like brief and dns, and hyphenated normalize-url. The naming is not chaotic but it is inconsistent across the full tool set.

    Tool Count3/5

    21 tools is borderline heavy, and roughly half are legacy duplicates of the primary 11 tools. The unique surface is reasonable, but exposing aliases as separate tools inflates the count.

    Completeness4/5

    The toolset covers the core URL risk workflow: normalize, open/batch, fetch, plus domain enrichment (whois/dns/tls) and small utilities. Minor gaps like no explicit domain reputation endpoint or batch result retrieval can be worked around.

    Maintenance

    ActivityStale
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      B
      maintenance
      Wraps the ScanMalware.com API to enable phishing triage, malware scanning, and certificate inspection through natural language, allowing users to submit scans, retrieve results, and analyze threats via MCP tools.
      1
      Apache 2.0
    • A
      license
      Not graded
      quality
      D
      maintenance
      Provides MCP tools for IP threat intelligence lookup and enrichment, including single IP lookup, bulk hunting, ASN expansion, and feed status queries.
      MIT
    • A
      license
      A
      quality
      D
      maintenance
      MCP server that exposes urlscan.io as tools for security investigations, with compact results optimized for context windows. Enables pivoting on indicators, searching scans, retrieving screenshots, DOM, and scan results, and submitting URLs.
      6
      MIT
    • A
      license
      A
      quality
      B
      maintenance
      Enables MCP clients to check URLs for scam/phishing risks, get verdicts with confidence and severity, report false positives, and monitor plan usage.
      3
      11 npm
      MIT