# numertel [Health: Active]

**Category:** 💻 Developer Tools  
**Repository:** https://github.com/AMR-DEV-PS/numertel-mcp  
**GitHub Stars:** 1  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/numertel

## Description
Polish phone number lookup: who called, spam and scam checks, UKE DNO registry, CERT phishing stats

## Tools
Capabilities this server exposes over MCP:

- **check_phone_number** — full reputation card for a Polish number: operator
- **spam_weather** — phone-abuse indicators for Poland: new scam domains on
- **check_scam_domain** — analyzes a whole pasted suspicious message on two
- **find_official_number** — the real, official number of a Polish bank, office
- **recent_scam_domains** — the latest phishing domains from CERT Polska's
- **search** — a Polish phone number OR an institution name (returns verified
- **fetch** — full card by `id` from search results.

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

```json
"mcpServers": {
  "numertel": {
    "command": "npx",
    "args": ["mcp-remote","https://numertel.pl/api/mcp"]
  }
}
```

## Documentation & README

![NumerTel MCP Server](https://raw.githubusercontent.com/AMR-DEV-PS/numertel-mcp/HEAD/assets/banner.png)

**English** · [Polski](#numertel-mcp-server-po-polsku)

# NumerTel MCP Server

Check **Polish phone numbers** from any AI assistant: who called, is it spam or
a scam, is this really a bank's number — plus live phone-abuse stats for Poland.

Backed by [NumerTel.pl](https://numertel.pl): 130M numbers built on official
UKE numbering ranges, user reports, the state **DNO registry** and CERT
Polska's public Warning List.

[![License: MIT](https://img.shields.io/badge/license-MIT-0CCC68)](LICENSE)
[![Website](https://img.shields.io/badge/website-numertel.pl-0F172A)](https://numertel.pl/dla-deweloperow)
[![MCP Registry](https://img.shields.io/badge/MCP_registry-pl.numertel%2Fnumertel-blue)](https://registry.modelcontextprotocol.io/v0/servers?search=numertel)
[![Glama MCP server](https://glama.ai/mcp/servers/@AMR-DEV-PS/numertel-mcp/badge)](https://glama.ai/mcp/servers/@AMR-DEV-PS/numertel-mcp)

[![Install MCP Server](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/en/install-mcp?name=numertel&config=eyJ1cmwiOiJodHRwczovL251bWVydGVsLnBsL2FwaS9tY3AifQ==)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install_Server-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://insiders.vscode.dev/redirect/mcp/install?name=numertel&config=%7B%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fnumertel.pl%2Fapi%2Fmcp%22%7D)

## Remote server (recommended)

One endpoint, zero install:

```
https://numertel.pl/api/mcp
```

Generic config that works in most MCP clients:

```json
{
  "mcpServers": {
    "numertel": {
      "type": "http",
      "url": "https://numertel.pl/api/mcp"
    }
  }
}
```

<details>
<summary><b>Claude Code</b></summary>

```bash
claude mcp add --transport http numertel https://numertel.pl/api/mcp
```
</details>

<details>
<summary><b>Cursor</b></summary>

Use the install button above, or add to `~/.cursor/mcp.json`:

```json
{
  "mcpServers": {
    "numertel": { "url": "https://numertel.pl/api/mcp" }
  }
}
```
</details>

<details>
<summary><b>VS Code</b></summary>

Use the install button above, or add to `mcp.json`:

```json
{
  "servers": {
    "numertel": { "type": "http", "url": "https://numertel.pl/api/mcp" }
  }
}
```
</details>

<details>
<summary><b>Claude Desktop (or any client without native streamable HTTP)</b></summary>

```json
{
  "mcpServers": {
    "numertel": {
      "command": "npx",
      "args": ["mcp-remote", "https://numertel.pl/api/mcp"]
    }
  }
}
```
</details>

Transport: streamable HTTP (JSON-RPC 2.0). Limit: 30 requests/day/IP.

## Try asking your assistant

- "Who called me from 500 100 200?"
- "Is +48 22 598 40 44 really my bank, or a scam?"
- "How bad is phone phishing in Poland today?"

## Tools

- **check_phone_number** — full reputation card for a Polish number: operator
  (original UKE range, MNP note), risk label from user reports, UKE **DNO
  registry** status (an *incoming* call from a DNO number is spoofed by
  definition), verified official-hotline whitelist, report counts.
  Inputs: `number` (string, 9 digits). Read-only, structured output.
- **spam_weather** — phone-abuse indicators for Poland: new scam domains on
  CERT Polska's Warning List (today + daily series), DNO registry size and the
  latest numbers from official warnings. Inputs: `days` (1-30, default 7).
  Read-only, structured output, open data (CC-BY).
- **check_scam_domain** — analyzes a whole pasted suspicious message on two
  axes: (1) domains, links and email addresses against CERT Polska's official
  Warning List (a mirror of ~129k scam domains), and (2) Polish phone numbers
  found in the text against the NumerTel base (UKE **DNO** registry = spoofing,
  verified official-hotline whitelist, spam reports). Accepts a single
  domain/URL/email/number or a full message (extracts `evil[.]pl` / `hxxp://`
  / `+48`); suffix match, so `login.evil.pl` hits `evil.pl`. Deterministic
  verdict with the listing date, zero LLM. Read-only, structured output.
- **find_official_number** — the real, official number of a Polish bank, office
  or operator. Given an institution name (e.g. ZUS, mBank, NFZ), returns its
  verified numbers from the whitelist with source link and verification date.
  Inputs: `institution` (string). Read-only, structured output.
- **recent_scam_domains** — the latest phishing domains from CERT Polska's
  official Warning List, defanged (`evil[.]pl`, never clickable).
  Inputs: `limit` (1-50, default 15). Read-only, open data (CC-BY).
- **search** — a Polish phone number OR an institution name (returns verified
  official hotlines from the whitelist). ChatGPT deep-research compatible.
- **fetch** — full card by `id` from search results.

## Prompts

Ready-made actions that appear in Claude's "+" menu under the NumerTel brand:
`sprawdz_numer` (full number analysis with fresh embedded data),
`przeanalizuj_sms` (scam analysis of a pasted SMS — runs on the client's
model), `pogoda_spamowa_dzis` (today's phone-abuse report for Poland).

## Also works in

- **ChatGPT** (Plus/Pro, incl. Poland): Settings -> Apps & Connectors ->
  Advanced -> Developer mode -> Create connector -> paste
  `https://numertel.pl/api/mcp` (No authentication).
- **Gemini CLI**: `{"mcpServers":{"numertel":{"httpUrl":"https://numertel.pl/api/mcp"}}}`
- **Microsoft Copilot Studio**: Tools -> Add Tool -> MCP -> paste the URL.

Higher limits: API key via `Authorization: Bearer` header
(kontakt@numertel.pl).

Example response (shortened):

```json
{
  "number": "225984044",
  "operator": "Strefa Warszawa",
  "spam_label": "dno_spoofing",
  "is_dno": true,
  "dno_note": "Numer służy wyłącznie do odbierania połączeń (wykaz DNO UKE)...",
  "url": "https://numertel.pl/numer/225984044"
}
```

## Local stdio server (single file, zero dependencies)

For clients that only support stdio. Requires Node 18+. Download
[`numertel-mcp.mjs`](https://numertel.pl/numertel-mcp.mjs) (also in this repo):

```json
{
  "mcpServers": {
    "numertel": {
      "command": "node",
      "args": ["/path/to/numertel-mcp.mjs"],
      "env": { "NUMERTEL_API_KEY": "(optional, for higher limits)" }
    }
  }
}
```

## REST API

The same data over plain REST — see the
[developer docs](https://numertel.pl/dla-deweloperow) (Polish):
`GET https://numertel.pl/api/v1/check/{number}` (20 req/day/IP without a key)
and `GET https://numertel.pl/api/v1/spam-weather` (no limit, CC-BY).
Higher limits / API keys: kontakt@numertel.pl

## Troubleshooting

- **Client doesn't support remote MCP servers** — use the `mcp-remote` bridge
  (see Claude Desktop above) or the local stdio file.
- **HTTP 429** — the free daily limit was reached; try tomorrow or ask for a key.
- **"Numer spoza znanych zakresów" (404)** — the number is outside Polish
  numbering ranges; pass 9 digits in national format.

## Privacy

The server is read-only and returns only data already public on
numertel.pl number pages — never opinion contents, never personal data.
Queries are not logged beyond anonymous daily rate-limit counters.
Attribution "dane: numertel.pl" with a link is required when presenting
results publicly; aggregate datasets are CC-BY 4.0.

## License

MIT (this client and manifest). The NumerTel.pl service itself is a separate,
proprietary product.

---

# NumerTel MCP Server (po polsku)

Sprawdzaj **polskie numery telefonów** z poziomu dowolnego asystenta AI: kto
dzwonił, czy to spam lub oszustwo, czy numer naprawdę należy do banku. Do tego
bieżące wskaźniki nadużyć telefonicznych w Polsce.

Za serwerem stoi [NumerTel.pl](https://numertel.pl): 130 mln numerów na bazie
oficjalnych zakresów UKE, opinie użytkowników, państwowy **wykaz DNO** i jawna
Lista Ostrzeżeń CERT Polska.

## Serwer zdalny (zalecany)

Jeden adres, zero instalacji:

```
https://numertel.pl/api/mcp
```

Konfiguracja działająca w większości klientów MCP:

```json
{
  "mcpServers": {
    "numertel": {
      "type": "http",
      "url": "https://numertel.pl/api/mcp"
    }
  }
}
```

W Claude Code wystarczy: `claude mcp add --transport http numertel https://numertel.pl/api/mcp`.
Przyciski szybkiej instalacji dla Cursor i VS Code znajdziesz na górze strony.
Transport: streamable HTTP (JSON-RPC 2.0). Limit: 30 zapytań dziennie na adres IP.

## Zapytaj asystenta

- „Kto dzwonił z numeru 500 100 200?"
- „Czy 22 598 40 44 to prawdziwy numer banku, czy oszustwo?"
- „Jaka jest dziś skala phishingu w Polsce?"

## Narzędzia

- **check_phone_number** zwraca operatora (pierwotny zakres UKE z notą o
  przenośności), etykietę ryzyka z opinii, status w wykazie DNO UKE
  (połączenie *przychodzące* z numeru DNO jest z definicji sfałszowane),
  wpis z Białej Listy oficjalnych infolinii i liczniki zgłoszeń.
  Wejście: `number` (string, 9 cyfr, `+48` i spacje są usuwane). Tylko odczyt.
- **spam_weather** zwraca bieżące wskaźniki nadużyć w Polsce: nowe domeny
  oszustów na Liście Ostrzeżeń CERT (dziś / 7 / 30 dni) i rozmiar wykazu DNO.
  Bez parametrów. Tylko odczyt, dane otwarte (CC-BY).
- **find_official_number** zwraca prawdziwy oficjalny numer banku, urzędu lub
  operatora. Po nazwie instytucji (np. ZUS, mBank, NFZ) zwraca zweryfikowane
  numery z Białej Listy ze źródłem i datą weryfikacji. Wejście: `institution`.
  Tylko odczyt.
- **recent_scam_domains** zwraca najnowsze domeny phishingowe z Listy Ostrzeżeń
  CERT Polska, w zapisie defanged (`evil[.]pl`). Wejście: `limit` (1-50,
  domyślnie 15). Tylko odczyt, dane otwarte (CC-BY).

## Wariant lokalny (stdio, jeden plik)

Dla klientów obsługujących wyłącznie stdio. Wymaga Node 18+. Pobierz
[`numertel-mcp.mjs`](https://numertel.pl/numertel-mcp.mjs) (plik jest też w tym repo):

```json
{
  "mcpServers": {
    "numertel": {
      "command": "node",
      "args": ["/sciezka/do/numertel-mcp.mjs"],
      "env": { "NUMERTEL_API_KEY": "(opcjonalnie, wyzszy limit)" }
    }
  }
}
```

## REST API

Te same dane przez zwykły REST, dokumentacja:
[numertel.pl/dla-deweloperow](https://numertel.pl/dla-deweloperow).
`GET https://numertel.pl/api/v1/check/{numer}` (20 zapytań/dzień/IP bez klucza)
oraz `GET https://numertel.pl/api/v1/spam-weather` (bez limitu, CC-BY).
Wyższe limity i klucze API: kontakt@numertel.pl

## Rozwiązywanie problemów

- **Klient nie wspiera zdalnych serwerów MCP**: użyj mostka `mcp-remote`
  (sekcja Claude Desktop wyżej) albo pliku stdio.
- **HTTP 429**: wyczerpany dzienny limit darmowy, spróbuj jutro lub napisz po klucz.
- **„Numer spoza znanych zakresów" (404)**: numer jest spoza polskiej numeracji,
  podaj 9 cyfr w formacie krajowym.

## Prywatność

Serwer działa tylko w trybie odczytu i zwraca wyłącznie dane publicznie widoczne
na stronach numerów w numertel.pl. Nigdy treści opinii, nigdy danych osobowych.
Zapytania nie są logowane poza anonimowymi licznikami limitów. Przy publicznej
prezentacji wyników wymagana jest atrybucja „dane: numertel.pl" z linkiem.

## Licencja

MIT (ten klient i manifest). Sam serwis NumerTel.pl jest osobnym, zamkniętym
produktem.

