numertel-mcp
NumerTel MCP delivers real-time phone number reputation and anti-scam intelligence for Poland.
Check phone number reputation (
check_phone_number): Look up any Polish phone number to get the operator (based on UKE ranges), a risk/spam label from user reports, DNO registry status (calls from DNO numbers are spoofed by definition), whitelist verification, and report counts.Analyze suspicious messages (
check_scam_domain): Paste any SMS, email, or text containing links, domains, or phone numbers. Checks domains/URLs/emails against CERT Polska's ~129k scam domain Warning List and Polish phone numbers against the NumerTel database (DNO, whitelist, spam reports). Returns a deterministic verdict with listing dates.Get spam weather (
pogoda_spamowa): View current Polish phone-abuse indicators — new scam domains added to CERT Polska's Warning List, total DNO registry size, and recent numbers from official government warnings.Search for numbers or institution hotlines (
search): Search by a Polish phone number to get its reputation card, or by institution name (e.g., ZUS, mBank) to find verified official hotline numbers.Fetch a full reputation card by ID (
fetch): Retrieve complete reputation details for a number using an ID returned from asearchresult.

English · Polski
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: 130M numbers built on official UKE numbering ranges, user reports, the state DNO registry and CERT Polska's public Warning List.
Remote server (recommended)
One endpoint, zero install:
https://numertel.pl/api/mcpGeneric config that works in most MCP clients:
{
"mcpServers": {
"numertel": {
"type": "http",
"url": "https://numertel.pl/api/mcp"
}
}
}claude mcp add --transport http numertel https://numertel.pl/api/mcpUse the install button above, or add to ~/.cursor/mcp.json:
{
"mcpServers": {
"numertel": { "url": "https://numertel.pl/api/mcp" }
}
}Use the install button above, or add to mcp.json:
{
"servers": {
"numertel": { "type": "http", "url": "https://numertel.pl/api/mcp" }
}
}{
"mcpServers": {
"numertel": {
"command": "npx",
"args": ["mcp-remote", "https://numertel.pl/api/mcp"]
}
}
}Transport: streamable HTTP (JSON-RPC 2.0). Limit: 30 requests/day/IP.
Related MCP server: nipregon-mcp
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, sologin.evil.plhitsevil.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
idfrom 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):
{
"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 (also in this repo):
{
"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 (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-remotebridge (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: 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/mcpKonfiguracja działająca w większości klientów MCP:
{
"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,+48i 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 (plik jest też w tym repo):
{
"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.
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.
Available Tools
5 toolscheck_phone_numberSprawdź numer telefonu (PL)ARead-onlyIdempotentInspect
Sprawdź reputację polskiego numeru telefonu. UŻYJ, gdy użytkownik pyta: kto dzwonił, czy numer to spam/oszustwo, czy telefon rzekomo z banku lub urzędu jest prawdziwy. Zwraca operatora z zakresów UKE (z notą o przenośności MNP), etykietę ryzyka z opinii, status w wykazie DNO UKE (połączenie przychodzące z numeru DNO jest sfałszowane — spoofing), wpis z Białej Listy oficjalnych infolinii i liczniki zgłoszeń. Dane: numertel.pl.
| Name | Required | Description | Default |
|---|---|---|---|
| number | Yes | Polski numer w formacie 9 cyfr, np. 510100100 (akceptowane +48 i spacje — zostaną usunięte) |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | Yes | |
| e164 | Yes | |
| is_dno | Yes | |
| number | Yes | |
| dno_note | No | |
| operator | No | |
| score_avg | No | |
| whitelist | No | |
| spam_label | Yes | |
| attribution | Yes | |
| number_type | No | |
| operator_note | No | |
| sightings_30d | No | |
| total_opinions | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, and idempotentHint. The description adds valuable context beyond annotations by detailing the exact data returned (operator, risk label, DNO status, white list, counters) and explains a nuanced behavior: DNO numbers indicate spoofing. It also cites the data source (numertel.pl), which is useful for trust assessment. This goes beyond a mere statement of safety.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, using two sentences to convey purpose, usage triggers, and output details. It is front-loaded with the action ('Sprawdź reputację') and organized logically: action first, then when to use, then return elements. Every clause adds relevant information without redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read-only lookup tool with a rich output schema and strong annotations, the description covers all necessary aspects: what the tool does, when to use it, what it returns, and even a caveat about DNO/spoofing. It is comprehensive enough for an agent to select and invoke the tool correctly without additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers 100% of parameter semantics with a description for 'number' that mentions format, accepted +48 prefix, and spaces being removed. The tool description adds little extra beyond restating that it handles Polish numbers, since the schema already provides detailed formatting guidance. The baseline of 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Sprawdź reputację polskiego numeru telefonu' (check the reputation of a Polish phone number). It also lists specific user queries that should trigger use, such as 'kto dzwonił' (who called) or 'czy numer to spam/oszustwo' (is the number spam/scam), which distinguishes it from sibling tools like check_scam_domain and find_official_number.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly provides when-to-use guidance: 'UŻYJ, gdy użytkownik pyta: kto dzwonił, czy numer to spam/oszustwo, czy telefon rzekomo z banku lub urzędu jest prawdziwy.' This is clear and actionable. However, it does not explicitly mention when not to use this tool or name alternative tools, though the sibling list and the described features imply appropriate use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_scam_domainSprawdź wiadomość: domeny i numeryARead-onlyIdempotentInspect
Sprawdza wklejoną podejrzaną wiadomość: (1) domeny, linki i adresy e-mail przeciw państwowej Liście Ostrzeżeń CERT Polska (mirror ~129 tys. domen oszustów), (2) polskie numery telefonów z treści przeciw bazie NumerTel (wykaz DNO UKE = spoofing, Biała Lista oficjalnych infolinii, zgłoszenia spamu). UŻYJ, gdy użytkownik pyta: czy ten link/strona/mail jest bezpieczny, albo wkleja całego SMS-a lub e-mail z linkiem i numerem. Przyjmuje pojedynczą domenę, URL, e-mail, numer lub CAŁĄ treść wiadomości (rozpoznaje zapisy evil[.]pl, hxxp:// i +48). Werdykt deterministyczny, zero LLM. Dane: numertel.pl.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Domena, URL, adres e-mail, numer telefonu albo pełna treść wiadomości do sprawdzenia (max 5000 znaków) |
Output Schema
| Name | Required | Description |
|---|---|---|
| as_of | Yes | |
| phones | Yes | |
| source | No | |
| checked | Yes | |
| list_size | Yes | |
| any_listed | Yes | |
| attribution | Yes | |
| any_phone_flagged | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly and idempotent behavior, so the description adds valuable extra context: the verdict is deterministic ('Werdykt deterministyczny, zero LLM') and the data sources are clearly attributed (CERT Polska, NumerTel, numertel.pl). It also discloses recognition of obfuscated formats, which helps set expectations. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but well-structured, front-loading the core action, then usage trigger, then acceptable inputs, then behavioral guarantees. Every sentence earns its place: it packs purpose, scope, examples, and data provenance without fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity, the presence of an output schema, and the readOnly/idempotent annotations, the description covers all essential aspects: what it checks, when to use it, what inputs it accepts, how it behaves (deterministic), and where its data comes from. It does not need to explain return values because the output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although the schema already documents the 'text' parameter well, the description meaningfully enriches it by explaining accepted input forms (single domain, URL, email, number, or entire message) and how obfuscated formats are handled (evil[.]pl, hxxp://, +48). This goes beyond the schema's basic type description and gives the agent practical guidance for what to pass.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb-resource pair: checking pasted suspicious messages against CERT Polska's warning list and NumerTel phone database. It explicitly lists the artifact types (domains, links, emails, phone numbers) and distinguishes itself from the phone-only sibling tool by handling whole messages and multiple entity types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides an explicit trigger condition: 'UŻYJ, gdy użytkownik pyta: czy ten link/strona/mail jest bezpieczny...' This is strong when-to-use guidance. However, it does not mention when not to use it or name alternative sibling tools (e.g., check_phone_number) for phone-only queries, so it lacks explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fetchPobierz kartę numeruARead-onlyIdempotentInspect
Pobiera pełną kartę reputacji numeru po id zwróconym przez search (9 cyfr). Zwraca te same dane co check_phone_number wraz z linkiem do strony numeru.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Id z wyników search: polski numer, 9 cyfr |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so the safety profile is covered. The description adds a meaningful behavioral detail: it returns the same data as check_phone_number plus a link to the number's page. However, it doesn't describe error handling or edge cases, which is acceptable given the low complexity and annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the primary action, and contains no fluff. Every word serves a purpose, and it remains concise while conveying key details about input and output.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (1 parameter, annotations present, no output schema), the description is sufficient. It explains the input source and the output relationship to check_phone_number, providing enough context for an agent to use the tool correctly. Slight deduction for not detailing the exact return structure, but this is mitigated by the 'same data as check_phone_number' reference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% coverage for the single parameter 'id', and the description essentially repeats what the schema already states (Polish number, 9 digits). No additional semantic value is added beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: fetching a full number reputation card by ID returned from search. It also specifies the ID format (9 digits) and distinguishes this from check_phone_number by noting it returns the same data plus a link to the number's page.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description indicates when to use this tool (after obtaining an ID from search) and contrasts it with check_phone_number, implying this is a more complete variant. While it doesn't explicitly mention alternatives or exclusions, the context provides sufficient guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pogoda_spamowaPogoda spamowa w PolsceARead-onlyIdempotentInspect
Aktualne wskaźniki nadużyć telefonicznych w Polsce. UŻYJ, gdy użytkownik pyta o skalę oszustw, phishingu lub spamu w Polsce albo co nowego w kampaniach oszustów. Zwraca: nowe domeny oszustów na Liście Ostrzeżeń CERT Polska (dziś + dziennie w zadanym oknie), rozmiar wykazu DNO UKE i ostatnie numery z oficjalnych ostrzeżeń urzędów. Dane otwarte CC-BY: numertel.pl.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Okno dni wstecz dla statystyk dziennych (1-30, domyślnie 7) |
Output Schema
| Name | Required | Description |
|---|---|---|
| days | Yes | |
| as_of | Yes | |
| source | No | |
| cert_daily | No | |
| attribution | Yes | |
| recent_warnings | No | |
| dno_numbers_total | Yes | |
| cert_new_domains_today | Yes | |
| cert_new_domains_window | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations readOnlyHint and idempotentHint are present. The description adds value by detailing the return data (new domains, UKE list size, official warnings) and noting open data source (CC-BY). No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single paragraph that efficiently conveys purpose, usage, and output. It front-loads the key verb and resource, and every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has one parameter, annotations, and an output schema, the description covers all necessary aspects: purpose, usage context, return data, and data source. It is complete for its role as a statistical aggregation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a single parameter 'days' fully described in the schema. The description does not add further parameter details beyond what the schema provides, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title and description clearly state the tool provides current phone abuse indicators in Poland. It specifies exactly what data is returned (new domains, UKE list size, official warnings) and explicitly instructs when to use it (user asks about scam scale or new fraud campaigns), distinguishing it from sibling tools like check_phone_number or check_scam_domain.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'UŻYJ, gdy użytkownik pyta o skalę oszustów, phishingu lub spamu w Polsce albo co nowego w kampaniach oszustów', providing clear context for use. While it doesn't specifically state when not to use it, the focus and sibling context make the guidance sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchSzukaj: numer lub infoliniaARead-onlyIdempotentInspect
Wyszukiwanie w bazie NumerTel: podaj polski numer telefonu (zwróci jego kartę reputacji) ALBO nazwę banku/urzędu/operatora (zwróci zweryfikowane oficjalne numery z Białej Listy infolinii). Wyniki zawierają id, title i url.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Numer telefonu (9 cyfr / +48...) lub nazwa instytucji, np. 'mBank', 'ZUS' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is covered. The description adds valuable behavioral context: it specifies the Polish number format, the 'White List' source for verified official numbers, and that results contain id, title, and url. This goes beyond the annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core action ('Search in NumerTel database'), and contains no wasted words. It efficiently communicates the two modes and the result structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a single parameter, no output schema, and good annotations, the description fully compensates for the missing output schema by stating the result fields. It also mentions the verified nature of the official numbers. No crucial information is missing for a tool of this simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides 100% coverage for the query parameter, including examples ('mBank', 'ZUS'). The description repeats essentially the same information (number or institution name) without adding new semantic details. Since the schema does the heavy lifting, a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool searches the NumerTel database, with two distinct modes: searching by Polish phone number to get a reputation card, or by institution name to get verified official numbers. It explicitly mentions the result fields (id, title, url), making the tool's purpose unambiguous and differentiated from siblings like check_phone_number.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear guidance on when to use the tool: when a phone number or institution name needs to be looked up in the database. It outlines the two types of queries accepted. However, it does not explicitly contrast with sibling tools such as check_phone_number or find_official_number, so it stops short of a full when-not/alternatives explanation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
5 tool updates
v1.0.0- First observed
check_phone_number - First observed
check_scam_domain - First observed
fetch - First observed
pogoda_spamowa - First observed
search
TDQS
Scored across 5 tools
Each tool has a clearly distinct purpose: checking phone numbers, scanning messages, retrieving full details by ID, fetching scam statistics, and searching by number or name. No overlap in functionality.
Most tool names follow a verb_noun pattern in English (check_phone_number, check_scam_domain). 'fetch' and 'search' are generic but consistent. 'pogoda_spamowa' is Polish, breaking the pattern, causing minor inconsistency.
5 tools is well-scoped for the domain of Polish phone number reputation and scam detection. Each tool serves a necessary function without redundancy or bloat.
The tool set covers core operations: verifying numbers, scanning messages, searching, and retrieving details. Missing a tool for user submissions or reporting scams, but the domain is well-covered for a read-only reputation service.
Maintenance
Related MCP Connectors
Polish company registry: 4.4M firms, KRS/REGON data, VAT white list checks, financial statements
Who-called phone lookups: community verdict, spam rating, operator and reviews (ktozvonil.net).
Polish SMS & voice gateway: send SMS/TTS, contacts, blacklist, tracked links, replies, reports.
Verify Polish companies by NIP/KRS/REGON + EU VAT (VIES). 14 MCP tools (9 no-key).
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceProvides access to Poland's largest business registry database, enabling company search, beneficiary checks, and financial document retrieval via natural language.1-
- AlicenseAqualityCmaintenanceLook up Polish companies from any AI assistant: registry data (KRS, REGON, CEIDG), VAT white list checks before payments, and financial statements of 4.4M businesses. Read-only tools backed by official public registers.4MIT
- AlicenseNot gradedqualityAmaintenanceEnables AI agents to look up Danish phone numbers for operator, company (CVR), and spam/trust information using official open data.MIT
- AlicenseAqualityCmaintenanceEnables querying phone number reputation data from ktozvonil.net, including community verdicts, spam ratings, and operator details, with optional authenticated comment posting via MCP.229 npmMIT