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 (readOnlyHint=true, idempotentHint=true) are complemented by description adding details on DNO UKE spoofing check and data source numertel.pl. No contradictions.
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?
Description is concise and front-loaded with use cases, but could be structured with bullets for clarity; still efficient.
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 1 parameter and output schema existence, description covers key return fields and tool purpose adequately.
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%; description adds format cleaning (spaces and +48 accepted and removed) beyond schema's basic format note.
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?
Description clearly states the tool checks reputation of Polish phone numbers, listing specific outputs (operator, risk label, DNO status, White List entry, counters) and distinguishing from siblings like 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?
Explicitly tells when to use: when user asks about who called, spam/scam, authenticity of bank/official calls. Does not explicitly exclude other cases, but guidance is strong.
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?
The description adds behavioral context beyond annotations: 'Werdykt deterministyczny, zero LLM' (deterministic verdict, no LLM) and data source (numertel.pl). It also explains recognition of obfuscated formats like evil[.]pl and hxxp://. No contradiction with annotations (readOnlyHint, idempotentHint).
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 but well-structured with numbered points and formatting. It is informative without being excessively long. However, it could be slightly more concise by grouping some details.
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 complexity (checking multiple types against two databases with specific formats), the description covers purpose, input types, data sources, and deterministic behavior. An output schema exists (not shown but implied) and the description mentions the verdict nature, making it complete.
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 single parameter 'text' has schema description covering 100%. The description adds significant meaning: it explains what checks are performed on the input (against two databases), the types of data it can parse, and context like max length. This goes well beyond the schema's brief description.
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 checks suspicious messages for domains, links, emails against the Polish government warning list, and Polish phone numbers against a spam database. It specifies the verb 'Sprawdza' (checks) and the resource, distinguishing it from siblings like check_phone_number or search.
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 when to use: when a user asks if a link/site/email is safe or pastes an SMS/email with a link and number. It also defines acceptable input types (single domain, URL, email, number, or full message). It lacks explicit when-not-to-use or alternatives, but the guidance is strong enough.
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 tool's safety is clear. The description adds minor behavioral detail (returns same data as check_phone_number plus link) but does not contradict annotations. No additional side effects or error handling disclosed.
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?
Two sentences, each serving a distinct purpose: first states the action and source of id, second clarifies the output compared to a sibling. No filler or redundant information.
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 no output schema, the description compensates by referencing check_phone_number's return shape plus a link. It covers the core requirement. Missing details on error handling or validation of id format, but overall sufficient for a simple tool with one parameter.
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%, and the schema description for 'id' is already informative: Polish number, 9 digits from search. The description reinforces this but adds no new semantic meaning beyond what the schema provides. 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 the tool fetches the full reputation card for a number using an ID from search, and distinguishes from check_phone_number by noting it returns the same data plus a link. The verb 'pobiera' and resource 'kartę reputacji numeru' are precise.
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?
Explicitly states the precondition: must use an id from search with 9 digits. Implicitly suggests using fetch when you need the link, versus check_phone_number without it. However, no explicit 'when not to use' or alternative names for edge cases.
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 description does not need to repeat safety info. It adds useful behavioral context: how queries are interpreted and what results contain (id, title, url). No contradictions 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 one efficient sentence, front-loaded with the core action ('Wyszukiwanie w bazie NumerTel'), and every word serves a purpose. Zero wasted text.
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 dual-mode complexity and lack of output schema, the description adequately covers input interpretation and output fields. It does not mention pagination or limits, but these are likely not critical for this tool's expected use.
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?
With 100% schema coverage, baseline is 3. The description adds meaningful detail beyond the schema: it specifies acceptable formats (9 digits, +48) and gives examples (mBank, ZUS), enhancing the agent's ability to construct valid queries.
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 searches a Polish phone number database, with two distinct modes: phone number query returns reputation card, institution name returns verified official numbers. It also specifies output fields (id, title, url), making the purpose specific and distinguishable 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 explicit guidance on when to use the tool: for Polish phone numbers or institution names. It implies the tool is not for other query types, but does not explicitly mention alternatives or when not to use it. Sibling tools exist (e.g., check_scam_domain) but are not contrasted.
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. Dates show when Glama detected each change.
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
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
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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).
Is this number safe to call or text right now? Live carrier, CNAM, spam and SMS checks for agents.
Phone carrier lookup, append, verification, DNC, and fraud data services.
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-
- AlicenseAqualityBmaintenanceLook 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.255MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/AMR-DEV-PS/numertel-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server