# namecatcher-skills [Health: Active]

**Category:** 💬 Communication  
**Repository:** https://github.com/productmap/namecatcher-skills  
**GitHub Stars:** 0  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/namecatcher-skills

## Description
Score and value collectible Telegram usernames: namability 0-100, fair price, thesis. No API key.

## Tools
Capabilities this server exposes over MCP:

- **score_name** — Score one username: namability, band, fair price, thesis
- **compare_names** — Score up to 20 candidates and rank them by score
- **check_fragment_ask** — Compare a Fragment asking price to the class valuation → fair/ask ratio + verdict

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "namecatcher-skills": {
    "command": "npx",
    "args": ["-y","skills"]
  }
}
```

## Documentation & README

# NameCatcher — username intelligence for AI agents

Score 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**.

Three ways to plug in, thinnest first:

| Layer | For | Install |
| ----- | --- | ------- |
| [Plain HTTP](#api-reference) | any agent that can `curl`/`fetch` | nothing |
| [Agent Skill](#agent-skill) | Claude Code / skills-compatible agents | `npx skills add productmap/namecatcher-skills` |
| [MCP server](#mcp-server) | Claude Desktop/Code, any MCP client | `npx -y namecatcher-mcp` |

Built by [NameCatcher](https://t.me/NameCatcherBot) — the Telegram mini app for username investors: mint catching, market analytics, portfolio, value passports.

## Quick try

```bash
curl -s "https://api-namecatcher.rocketname.com/public/score/wearlab?lang=en" | jq
```

```json
{
  "username": "wearlab",
  "score": 67,
  "band": "strong",
  "fair_price_ton": 400,
  "thesis": "A crisp fusion of \"wear\" and \"lab\" …",
  "lang": "en",
  "analysis_url": "https://t.me/NameCatcherBot?startapp=name_wearlab__pub_api",
  "fragment_url": "https://fragment.com/username/wearlab"
}
```

## API reference

One endpoint, no auth:

```
GET https://api-namecatcher.rocketname.com/public/score/{name}?lang={en|ru}
```

### Parameters

| Param | In | Required | Description |
| ----- | -- | -------- | ----------- |
| `name` | path | yes | Username without `@`. 4–32 chars, `a-z 0-9 _` |
| `lang` | query | no | `en` (default) or `ru` — language of `thesis` |

### Response fields

| Field | Type | Description |
| ----- | ---- | ----------- |
| `username` | string | Canonical (lowercase) username |
| `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 |
| `band` | string | `premium` (≥80) · `strong` (≥66) · `medium` (≥50) · `weak` (<50). Below 50 is not investment-grade |
| `fair_price_ton` | number \| null | Class-based fair price estimate in GRAM (length × score class) |
| `thesis` | string \| null | Short positioning summary (why the name works, for whom). Present only for names already analyzed — `null` is not a quality signal |
| `lang` | string | Language the thesis was returned in |
| `analysis_url` | string | Full breakdown in the NameCatcher mini app |
| `fragment_url` | string | The name's page on Fragment (live market status, buy/bid) |

### Errors

| Status | Body | Meaning |
| ------ | ---- | ------- |
| 400 | `{"error":"INVALID_NAME"}` | Not a valid username string |
| 400 | `{"error":"NOT_COLLECTIBLE"}` | Valid string, but not scorable as a collectible (e.g. too short) |
| 429 | `{"error":"RATE_LIMITED","retry_after_s":n}` | Over 60 req/min per IP — wait `retry_after_s` and retry |
| 429 | `{"error":"DAILY_LIMIT","limit_per_day":1000}` | Over 1,000 req/day per IP |

### Rate limits

**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).

### curl cookbook

```bash
# Score one name (Russian thesis)
curl -s "https://api-namecatcher.rocketname.com/public/score/morya?lang=ru" | jq '{score, band, fair_price_ton}'

# Compare candidates: pick the best of three
for n in pulsefit traintrack fitwave; do
  curl -s "https://api-namecatcher.rocketname.com/public/score/$n" | jq -c '{username, score, band}'
done | sort -t: -k2 -rn

# Pre-purchase check: is a 300 GRAM ask below class valuation?
curl -s "https://api-namecatcher.rocketname.com/public/score/vault" \
  | jq '{score, fair_price_ton, below_class: (.fair_price_ton / 300 >= 1.2)}'
```

## Agent Skill

The [`names/ton-usernames`](https://github.com/productmap/namecatcher-skills/blob/HEAD/names/ton-usernames/) skill teaches an agent the full workflow: single-name evaluation, candidate comparison, and pre-purchase checks against Fragment asks.

```bash
npx skills add productmap/namecatcher-skills --skill ton-usernames
# or manually:
cp -r names/ton-usernames ~/.claude/skills/
```

A PR adding this skill to the official [ton-org/skills](https://github.com/ton-org/skills/pull/38) is open.

## MCP server

A 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).

[![smithery badge](https://smithery.ai/badge/ceo-j1pw/namecatcher)](https://smithery.ai/servers/ceo-j1pw/namecatcher)

**Remote endpoint (Streamable HTTP)** — same three tools, zero install:

```
https://mcp-namecatcher.rocketname.com/mcp
```

```bash
claude mcp add --transport http namecatcher https://mcp-namecatcher.rocketname.com/mcp
```

**Claude Code:**

```bash
claude mcp add namecatcher -- npx -y namecatcher-mcp
```

**Claude Desktop / other MCP clients** (`mcpServers` config):

```json
{
  "mcpServers": {
    "namecatcher": {
      "command": "npx",
      "args": ["-y", "namecatcher-mcp"]
    }
  }
}
```

### Tools

| Tool | Description | Arguments |
| ---- | ----------- | --------- |
| `score_name` | Score one username: namability, band, fair price, thesis | `name`, `lang?` |
| `compare_names` | Score up to 20 candidates and rank them by score | `names[]`, `lang?` |
| `check_fragment_ask` | Compare a Fragment asking price to the class valuation → fair/ask ratio + verdict | `name`, `ask_ton` |

Environment: `NAMECATCHER_API_ORIGIN` (optional) — override the API origin.

## Notes for builders

- The score measures **naming quality**, deterministic per model version — safe to cache
- It is not demand for a specific lot: always check the live Fragment price before money decisions
- Pairs naturally with TON wallet tooling ([@ton/mcp](https://mcp.ton.org)): evaluate → then buy

## Links

- 🤖 Bot & mini app: [@NameCatcherBot](https://t.me/NameCatcherBot)
- 🛒 Username market: [fragment.com](https://fragment.com)
- 🧩 TON MCP ecosystem: [mcp.ton.org](https://mcp.ton.org)

## License

MIT

