{
  "markdown": "![NumerTel MCP Server](assets/banner.png)\n\n**English** · [Polski](#numertel-mcp-server-po-polsku)\n\n# NumerTel MCP Server\n\nCheck **Polish phone numbers** from any AI assistant: who called, is it spam or\na scam, is this really a bank's number — plus live phone-abuse stats for Poland.\n\nBacked by [NumerTel.pl](https://numertel.pl): 130M numbers built on official\nUKE numbering ranges, user reports, the state **DNO registry** and CERT\nPolska's public Warning List.\n\n[![License: MIT](https://img.shields.io/badge/license-MIT-0CCC68)](LICENSE)\n[![Website](https://img.shields.io/badge/website-numertel.pl-0F172A)](https://numertel.pl/dla-deweloperow)\n[![MCP Registry](https://img.shields.io/badge/MCP_registry-pl.numertel%2Fnumertel-blue)](https://registry.modelcontextprotocol.io/v0/servers?search=numertel)\n[![Glama MCP server](https://glama.ai/mcp/servers/@AMR-DEV-PS/numertel-mcp/badge)](https://glama.ai/mcp/servers/@AMR-DEV-PS/numertel-mcp)\n\n[![Install MCP Server](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/en/install-mcp?name=numertel&config=eyJ1cmwiOiJodHRwczovL251bWVydGVsLnBsL2FwaS9tY3AifQ==)\n[![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)\n\n## Remote server (recommended)\n\nOne endpoint, zero install:\n\n```\nhttps://numertel.pl/api/mcp\n```\n\nGeneric config that works in most MCP clients:\n\n```json\n{\n  \"mcpServers\": {\n    \"numertel\": {\n      \"type\": \"http\",\n      \"url\": \"https://numertel.pl/api/mcp\"\n    }\n  }\n}\n```\n\n<details>\n<summary><b>Claude Code</b></summary>\n\n```bash\nclaude mcp add --transport http numertel https://numertel.pl/api/mcp\n```\n</details>\n\n<details>\n<summary><b>Cursor</b></summary>\n\nUse the install button above, or add to `~/.cursor/mcp.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"numertel\": { \"url\": \"https://numertel.pl/api/mcp\" }\n  }\n}\n```\n</details>\n\n<details>\n<summary><b>VS Code</b></summary>\n\nUse the install button above, or add to `mcp.json`:\n\n```json\n{\n  \"servers\": {\n    \"numertel\": { \"type\": \"http\", \"url\": \"https://numertel.pl/api/mcp\" }\n  }\n}\n```\n</details>\n\n<details>\n<summary><b>Claude Desktop (or any client without native streamable HTTP)</b></summary>\n\n```json\n{\n  \"mcpServers\": {\n    \"numertel\": {\n      \"command\": \"npx\",\n      \"args\": [\"mcp-remote\", \"https://numertel.pl/api/mcp\"]\n    }\n  }\n}\n```\n</details>\n\nTransport: streamable HTTP (JSON-RPC 2.0). Limit: 30 requests/day/IP.\n\n## Try asking your assistant\n\n- \"Who called me from 500 100 200?\"\n- \"Is +48 22 598 40 44 really my bank, or a scam?\"\n- \"How bad is phone phishing in Poland today?\"\n\n## Tools\n\n- **check_phone_number** — full reputation card for a Polish number: operator\n  (original UKE range, MNP note), risk label from user reports, UKE **DNO\n  registry** status (an *incoming* call from a DNO number is spoofed by\n  definition), verified official-hotline whitelist, report counts.\n  Inputs: `number` (string, 9 digits). Read-only, structured output.\n- **spam_weather** — phone-abuse indicators for Poland: new scam domains on\n  CERT Polska's Warning List (today + daily series), DNO registry size and the\n  latest numbers from official warnings. Inputs: `days` (1-30, default 7).\n  Read-only, structured output, open data (CC-BY).\n- **check_scam_domain** — analyzes a whole pasted suspicious message on two\n  axes: (1) domains, links and email addresses against CERT Polska's official\n  Warning List (a mirror of ~129k scam domains), and (2) Polish phone numbers\n  found in the text against the NumerTel base (UKE **DNO** registry = spoofing,\n  verified official-hotline whitelist, spam reports). Accepts a single\n  domain/URL/email/number or a full message (extracts `evil[.]pl` / `hxxp://`\n  / `+48`); suffix match, so `login.evil.pl` hits `evil.pl`. Deterministic\n  verdict with the listing date, zero LLM. Read-only, structured output.\n- **find_official_number** — the real, official number of a Polish bank, office\n  or operator. Given an institution name (e.g. ZUS, mBank, NFZ), returns its\n  verified numbers from the whitelist with source link and verification date.\n  Inputs: `institution` (string). Read-only, structured output.\n- **recent_scam_domains** — the latest phishing domains from CERT Polska's\n  official Warning List, defanged (`evil[.]pl`, never clickable).\n  Inputs: `limit` (1-50, default 15). Read-only, open data (CC-BY).\n- **search** — a Polish phone number OR an institution name (returns verified\n  official hotlines from the whitelist). ChatGPT deep-research compatible.\n- **fetch** — full card by `id` from search results.\n\n## Prompts\n\nReady-made actions that appear in Claude's \"+\" menu under the NumerTel brand:\n`sprawdz_numer` (full number analysis with fresh embedded data),\n`przeanalizuj_sms` (scam analysis of a pasted SMS — runs on the client's\nmodel), `pogoda_spamowa_dzis` (today's phone-abuse report for Poland).\n\n## Also works in\n\n- **ChatGPT** (Plus/Pro, incl. Poland): Settings -> Apps & Connectors ->\n  Advanced -> Developer mode -> Create connector -> paste\n  `https://numertel.pl/api/mcp` (No authentication).\n- **Gemini CLI**: `{\"mcpServers\":{\"numertel\":{\"httpUrl\":\"https://numertel.pl/api/mcp\"}}}`\n- **Microsoft Copilot Studio**: Tools -> Add Tool -> MCP -> paste the URL.\n\nHigher limits: API key via `Authorization: Bearer` header\n(kontakt@numertel.pl).\n\nExample response (shortened):\n\n```json\n{\n  \"number\": \"225984044\",\n  \"operator\": \"Strefa Warszawa\",\n  \"spam_label\": \"dno_spoofing\",\n  \"is_dno\": true,\n  \"dno_note\": \"Numer służy wyłącznie do odbierania połączeń (wykaz DNO UKE)...\",\n  \"url\": \"https://numertel.pl/numer/225984044\"\n}\n```\n\n## Local stdio server (single file, zero dependencies)\n\nFor clients that only support stdio. Requires Node 18+. Download\n[`numertel-mcp.mjs`](https://numertel.pl/numertel-mcp.mjs) (also in this repo):\n\n```json\n{\n  \"mcpServers\": {\n    \"numertel\": {\n      \"command\": \"node\",\n      \"args\": [\"/path/to/numertel-mcp.mjs\"],\n      \"env\": { \"NUMERTEL_API_KEY\": \"(optional, for higher limits)\" }\n    }\n  }\n}\n```\n\n## REST API\n\nThe same data over plain REST — see the\n[developer docs](https://numertel.pl/dla-deweloperow) (Polish):\n`GET https://numertel.pl/api/v1/check/{number}` (20 req/day/IP without a key)\nand `GET https://numertel.pl/api/v1/spam-weather` (no limit, CC-BY).\nHigher limits / API keys: kontakt@numertel.pl\n\n## Troubleshooting\n\n- **Client doesn't support remote MCP servers** — use the `mcp-remote` bridge\n  (see Claude Desktop above) or the local stdio file.\n- **HTTP 429** — the free daily limit was reached; try tomorrow or ask for a key.\n- **\"Numer spoza znanych zakresów\" (404)** — the number is outside Polish\n  numbering ranges; pass 9 digits in national format.\n\n## Privacy\n\nThe server is read-only and returns only data already public on\nnumertel.pl number pages — never opinion contents, never personal data.\nQueries are not logged beyond anonymous daily rate-limit counters.\nAttribution \"dane: numertel.pl\" with a link is required when presenting\nresults publicly; aggregate datasets are CC-BY 4.0.\n\n## License\n\nMIT (this client and manifest). The NumerTel.pl service itself is a separate,\nproprietary product.\n\n---\n\n# NumerTel MCP Server (po polsku)\n\nSprawdzaj **polskie numery telefonów** z poziomu dowolnego asystenta AI: kto\ndzwonił, czy to spam lub oszustwo, czy numer naprawdę należy do banku. Do tego\nbieżące wskaźniki nadużyć telefonicznych w Polsce.\n\nZa serwerem stoi [NumerTel.pl](https://numertel.pl): 130 mln numerów na bazie\noficjalnych zakresów UKE, opinie użytkowników, państwowy **wykaz DNO** i jawna\nLista Ostrzeżeń CERT Polska.\n\n## Serwer zdalny (zalecany)\n\nJeden adres, zero instalacji:\n\n```\nhttps://numertel.pl/api/mcp\n```\n\nKonfiguracja działająca w większości klientów MCP:\n\n```json\n{\n  \"mcpServers\": {\n    \"numertel\": {\n      \"type\": \"http\",\n      \"url\": \"https://numertel.pl/api/mcp\"\n    }\n  }\n}\n```\n\nW Claude Code wystarczy: `claude mcp add --transport http numertel https://numertel.pl/api/mcp`.\nPrzyciski szybkiej instalacji dla Cursor i VS Code znajdziesz na górze strony.\nTransport: streamable HTTP (JSON-RPC 2.0). Limit: 30 zapytań dziennie na adres IP.\n\n## Zapytaj asystenta\n\n- „Kto dzwonił z numeru 500 100 200?\"\n- „Czy 22 598 40 44 to prawdziwy numer banku, czy oszustwo?\"\n- „Jaka jest dziś skala phishingu w Polsce?\"\n\n## Narzędzia\n\n- **check_phone_number** zwraca operatora (pierwotny zakres UKE z notą o\n  przenośności), etykietę ryzyka z opinii, status w wykazie DNO UKE\n  (połączenie *przychodzące* z numeru DNO jest z definicji sfałszowane),\n  wpis z Białej Listy oficjalnych infolinii i liczniki zgłoszeń.\n  Wejście: `number` (string, 9 cyfr, `+48` i spacje są usuwane). Tylko odczyt.\n- **spam_weather** zwraca bieżące wskaźniki nadużyć w Polsce: nowe domeny\n  oszustów na Liście Ostrzeżeń CERT (dziś / 7 / 30 dni) i rozmiar wykazu DNO.\n  Bez parametrów. Tylko odczyt, dane otwarte (CC-BY).\n- **find_official_number** zwraca prawdziwy oficjalny numer banku, urzędu lub\n  operatora. Po nazwie instytucji (np. ZUS, mBank, NFZ) zwraca zweryfikowane\n  numery z Białej Listy ze źródłem i datą weryfikacji. Wejście: `institution`.\n  Tylko odczyt.\n- **recent_scam_domains** zwraca najnowsze domeny phishingowe z Listy Ostrzeżeń\n  CERT Polska, w zapisie defanged (`evil[.]pl`). Wejście: `limit` (1-50,\n  domyślnie 15). Tylko odczyt, dane otwarte (CC-BY).\n\n## Wariant lokalny (stdio, jeden plik)\n\nDla klientów obsługujących wyłącznie stdio. Wymaga Node 18+. Pobierz\n[`numertel-mcp.mjs`](https://numertel.pl/numertel-mcp.mjs) (plik jest też w tym repo):\n\n```json\n{\n  \"mcpServers\": {\n    \"numertel\": {\n      \"command\": \"node\",\n      \"args\": [\"/sciezka/do/numertel-mcp.mjs\"],\n      \"env\": { \"NUMERTEL_API_KEY\": \"(opcjonalnie, wyzszy limit)\" }\n    }\n  }\n}\n```\n\n## REST API\n\nTe same dane przez zwykły REST, dokumentacja:\n[numertel.pl/dla-deweloperow](https://numertel.pl/dla-deweloperow).\n`GET https://numertel.pl/api/v1/check/{numer}` (20 zapytań/dzień/IP bez klucza)\noraz `GET https://numertel.pl/api/v1/spam-weather` (bez limitu, CC-BY).\nWyższe limity i klucze API: kontakt@numertel.pl\n\n## Rozwiązywanie problemów\n\n- **Klient nie wspiera zdalnych serwerów MCP**: użyj mostka `mcp-remote`\n  (sekcja Claude Desktop wyżej) albo pliku stdio.\n- **HTTP 429**: wyczerpany dzienny limit darmowy, spróbuj jutro lub napisz po klucz.\n- **„Numer spoza znanych zakresów\" (404)**: numer jest spoza polskiej numeracji,\n  podaj 9 cyfr w formacie krajowym.\n\n## Prywatność\n\nSerwer działa tylko w trybie odczytu i zwraca wyłącznie dane publicznie widoczne\nna stronach numerów w numertel.pl. Nigdy treści opinii, nigdy danych osobowych.\nZapytania nie są logowane poza anonimowymi licznikami limitów. Przy publicznej\nprezentacji wyników wymagana jest atrybucja „dane: numertel.pl\" z linkiem.\n\n## Licencja\n\nMIT (ten klient i manifest). Sam serwis NumerTel.pl jest osobnym, zamkniętym\nproduktem.\n",
  "bytes": 10995,
  "sha": "c64607b04f880d02329e95daa6451a1bfcd241ec96330b78a35e4c40f596bd1d",
  "repo_slug": "amr-dev-ps/numertel-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_pl_numertel_numertel_7629d6ec/readme"
}