{
  "markdown": "# NameCatcher — username intelligence for AI agents\n\nScore and value **collectible Telegram usernames**: namability score (0–100) validated against 111k+ real Fragment sales, fair price estimation in GRAM, and positioning theses. Free public API — **no key, no wallet, no setup**.\n\nThree ways to plug in, thinnest first:\n\n| Layer | For | Install |\n| ----- | --- | ------- |\n| [Plain HTTP](#api-reference) | any agent that can `curl`/`fetch` | nothing |\n| [Agent Skill](#agent-skill) | Claude Code / skills-compatible agents | `npx skills add productmap/namecatcher-skills` |\n| [MCP server](#mcp-server) | Claude Desktop/Code, any MCP client | `npx -y namecatcher-mcp` |\n\nBuilt by [NameCatcher](https://t.me/NameCatcherBot) — the Telegram mini app for username investors: mint catching, market analytics, portfolio, value passports.\n\n## Quick try\n\n```bash\ncurl -s \"https://api-namecatcher.rocketname.com/public/score/wearlab?lang=en\" | jq\n```\n\n```json\n{\n  \"username\": \"wearlab\",\n  \"score\": 67,\n  \"band\": \"strong\",\n  \"fair_price_ton\": 400,\n  \"thesis\": \"A crisp fusion of \\\"wear\\\" and \\\"lab\\\" …\",\n  \"lang\": \"en\",\n  \"analysis_url\": \"https://t.me/NameCatcherBot?startapp=name_wearlab__pub_api\",\n  \"fragment_url\": \"https://fragment.com/username/wearlab\"\n}\n```\n\n## API reference\n\nOne endpoint, no auth:\n\n```\nGET https://api-namecatcher.rocketname.com/public/score/{name}?lang={en|ru}\n```\n\n### Parameters\n\n| Param | In | Required | Description |\n| ----- | -- | -------- | ----------- |\n| `name` | path | yes | Username without `@`. 4–32 chars, `a-z 0-9 _` |\n| `lang` | query | no | `en` (default) or `ru` — language of `thesis` |\n\n### Response fields\n\n| Field | Type | Description |\n| ----- | ---- | ----------- |\n| `username` | string | Canonical (lowercase) username |\n| `score` | int 0–100 | Namability — quality of the name as a brandable asset. Market-validated: names scoring 90+ sell for a multiple of 80–89 names |\n| `band` | string | `premium` (≥80) · `strong` (≥66) · `medium` (≥50) · `weak` (<50). Below 50 is not investment-grade |\n| `fair_price_ton` | number \\| null | Class-based fair price estimate in GRAM (length × score class) |\n| `thesis` | string \\| null | Short positioning summary (why the name works, for whom). Present only for names already analyzed — `null` is not a quality signal |\n| `lang` | string | Language the thesis was returned in |\n| `analysis_url` | string | Full breakdown in the NameCatcher mini app |\n| `fragment_url` | string | The name's page on Fragment (live market status, buy/bid) |\n\n### Errors\n\n| Status | Body | Meaning |\n| ------ | ---- | ------- |\n| 400 | `{\"error\":\"INVALID_NAME\"}` | Not a valid username string |\n| 400 | `{\"error\":\"NOT_COLLECTIBLE\"}` | Valid string, but not scorable as a collectible (e.g. too short) |\n| 429 | `{\"error\":\"RATE_LIMITED\",\"retry_after_s\":n}` | Over 60 req/min per IP — wait `retry_after_s` and retry |\n| 429 | `{\"error\":\"DAILY_LIMIT\",\"limit_per_day\":1000}` | Over 1,000 req/day per IP |\n\n### Rate limits\n\n**60 requests/min and 1,000 requests/day per IP.** Generous for agent workflows (evaluating and comparing dozens of names); not enough for bulk scraping — that's intentional. Need more for a legitimate use case? Ping [@BrandEvangelist](https://t.me/BrandEvangelist).\n\n### curl cookbook\n\n```bash\n# Score one name (Russian thesis)\ncurl -s \"https://api-namecatcher.rocketname.com/public/score/morya?lang=ru\" | jq '{score, band, fair_price_ton}'\n\n# Compare candidates: pick the best of three\nfor n in pulsefit traintrack fitwave; do\n  curl -s \"https://api-namecatcher.rocketname.com/public/score/$n\" | jq -c '{username, score, band}'\ndone | sort -t: -k2 -rn\n\n# Pre-purchase check: is a 300 GRAM ask below class valuation?\ncurl -s \"https://api-namecatcher.rocketname.com/public/score/vault\" \\\n  | jq '{score, fair_price_ton, below_class: (.fair_price_ton / 300 >= 1.2)}'\n```\n\n## Agent Skill\n\nThe [`names/ton-usernames`](names/ton-usernames/) skill teaches an agent the full workflow: single-name evaluation, candidate comparison, and pre-purchase checks against Fragment asks.\n\n```bash\nnpx skills add productmap/namecatcher-skills --skill ton-usernames\n# or manually:\ncp -r names/ton-usernames ~/.claude/skills/\n```\n\nA PR adding this skill to the official [ton-org/skills](https://github.com/ton-org/skills/pull/38) is open.\n\n## MCP server\n\nA thin stdio bridge over the same API — for Claude Desktop, Claude Code, and any MCP client. No key needed. Published on npm as [`namecatcher-mcp`](https://www.npmjs.com/package/namecatcher-mcp) (GitHub install `npx -y github:productmap/namecatcher-skills` also works).\n\n[![smithery badge](https://smithery.ai/badge/ceo-j1pw/namecatcher)](https://smithery.ai/servers/ceo-j1pw/namecatcher)\n\n**Remote endpoint (Streamable HTTP)** — same three tools, zero install:\n\n```\nhttps://mcp-namecatcher.rocketname.com/mcp\n```\n\n```bash\nclaude mcp add --transport http namecatcher https://mcp-namecatcher.rocketname.com/mcp\n```\n\n**Claude Code:**\n\n```bash\nclaude mcp add namecatcher -- npx -y namecatcher-mcp\n```\n\n**Claude Desktop / other MCP clients** (`mcpServers` config):\n\n```json\n{\n  \"mcpServers\": {\n    \"namecatcher\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"namecatcher-mcp\"]\n    }\n  }\n}\n```\n\n### Tools\n\n| Tool | Description | Arguments |\n| ---- | ----------- | --------- |\n| `score_name` | Score one username: namability, band, fair price, thesis | `name`, `lang?` |\n| `compare_names` | Score up to 20 candidates and rank them by score | `names[]`, `lang?` |\n| `check_fragment_ask` | Compare a Fragment asking price to the class valuation → fair/ask ratio + verdict | `name`, `ask_ton` |\n\nEnvironment: `NAMECATCHER_API_ORIGIN` (optional) — override the API origin.\n\n## Notes for builders\n\n- The score measures **naming quality**, deterministic per model version — safe to cache\n- It is not demand for a specific lot: always check the live Fragment price before money decisions\n- Pairs naturally with TON wallet tooling ([@ton/mcp](https://mcp.ton.org)): evaluate → then buy\n\n## Links\n\n- 🤖 Bot & mini app: [@NameCatcherBot](https://t.me/NameCatcherBot)\n- 🛒 Username market: [fragment.com](https://fragment.com)\n- 🧩 TON MCP ecosystem: [mcp.ton.org](https://mcp.ton.org)\n\n## License\n\nMIT\n",
  "bytes": 6204,
  "sha": "4d1cea9de33f2307d8339975a93c3d44a3efbf7c0744ecc1b9c6abeb6c1f4a21",
  "repo_slug": "productmap/namecatcher-skills",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_productmap_namecatcher_skills_5d16b6ac/readme"
}