mcp-server-ktozvonil
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-server-ktozvonilWho called me from +38 050 110 89 01?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-server-ktozvonil
MCP (Model Context Protocol) server for ktozvonil.net — a community phone-number reputation service for Ukraine and beyond. Ask your AI assistant "who called me from 050 110 89 01?" and it will answer with the community verdict, spam rating, operator, region, tags and recent reviews.
This package is a thin stdio bridge to the site's native MCP endpoint (https://ktozvonil.net/mcp). Tools are discovered at startup, so the package never goes stale.
Tools
Tool | Description | Auth |
| Community verdict, rating, spam level, operator, region, tags and recent reviews for a number | none |
| Post a review on behalf of an authenticated user (labelled as AI-agent-generated, shown separately, does not affect the community rating) | OAuth bearer |
Related MCP server: CountryCallingCodes
Install
Claude Code
claude mcp add ktozvonil -- npx -y mcp-server-ktozvonilClaude Desktop
{
"mcpServers": {
"ktozvonil": {
"command": "npx",
"args": ["-y", "mcp-server-ktozvonil"]
}
}
}Cursor / Windsurf / other MCP clients
Any client that speaks stdio MCP works the same way: command npx, args -y mcp-server-ktozvonil.
Remote (no install)
MCP clients that support remote servers can skip this package entirely and connect straight to:
https://ktozvonil.net/mcpConfiguration
Env var | Meaning |
| Override the endpoint URL (default |
| OAuth bearer token — only needed for |
Example
User: Кто звонил с +38 050 110 89 01?
Assistant: (calls
lookup_phone) This number has a "spam" community verdict on ktozvonil.net: 78 reports, mostly "intrusive advertising"…
Development
npm install
npm run build
npm testRelated
ktozvonil.net — the service itself (uk/ru/en + 5 more languages)
ua-phone— Ukrainian phone number parsing/formatting libraryAPI docs: ktozvonil.net/.well-known/api-catalog
License
MIT © ktozvonil.net
Available Tools
2 toolslookup_phoneAInspect
Look up a phone number on ktozvonil.net: community verdict, rating, spam level, operator, region, tags and recent reviews.
| Name | Required | Description | Default |
|---|---|---|---|
| number | Yes | Phone number (digits, international or local format) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It clearly identifies the operation as a lookup and discloses the output fields (community verdict, rating, spam level, operator, region, tags, recent reviews). There is no mention of rate limits, auth, or edge cases, but for a straightforward read-only lookup, the provided detail is adequate.
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 sentence that starts with the main action 'Look up' and efficiently packs all essential information—website, output categories—without redundancy or filler.
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?
The tool is simple: one parameter with full schema coverage, no output schema required, and no complex behavior. The description fully covers what the tool does and what it returns, making it complete for an agent to select and invoke it correctly.
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 description coverage is 100% for the 'number' parameter, so the baseline is 3. The description does not add parameter-specific details beyond the schema, but none are needed given the schema already explains the format and meaning.
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 uses a specific verb 'Look up' with a clear resource 'phone number on ktozvonil.net' and enumerates the returned data (community verdict, rating, spam level, operator, region, tags, recent reviews). This clearly distinguishes it from the sibling tool 'post_comment', which serves a different purpose.
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 implies when to use the tool: whenever you need phone number information from ktozvonil.net. The only sibling tool, 'post_comment', has an obviously distinct purpose, so the usage context is clear even though no explicit exclusions or alternative recommendations are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_commentAInspect
Post a phone-number review on behalf of the authenticated user. Requires an OAuth access token with the "write" scope (discover via /.well-known/oauth-protected-resource). The review is labelled AI-agent-generated, shown in a separate section, and does NOT affect the community rating or verdict.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Review text (min 3 chars) | |
| number | Yes | Phone number (digits, international or local format) | |
| rating | Yes | Star rating 1-5 (1 = dangerous/spam, 5 = safe/trusted) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden and discloses critical behavior: the review is labelled AI-agent-generated, shown in a separate section, and does NOT affect the community rating or verdict. This goes beyond basic write semantics and helps the agent understand side effects.
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?
Three tightly focused sentences: purpose, authentication, and side-effect disclosure. Each sentence carries essential information with no redundancy or filler.
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 write tool with no output schema or annotations, the description covers purpose, auth requirements, and behavioral impact. It lacks mention of return values or error scenarios, but these are not essential given the tool's 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?
Input schema covers 100% of parameters with meaningful descriptions (text, number, rating). The tool description adds no additional parameter context, so it meets the baseline without enhancing beyond schema.
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 action ('Post a phone-number review') and the target resource, distinguishing it from the sibling lookup_phone. It also specifies 'on behalf of the authenticated user,' which adds precise context.
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?
Provides clear context for use (requires OAuth write scope, discoverable via /.well-known/oauth-protected-resource), and the sibling 'lookup_phone' makes the alternative obvious. However, it does not explicitly state when not to use this tool or contrast with lookup_phone.
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.
2 tool updates
v1.0.2- First observed
lookup_phone - First observed
post_comment
TDQS
Scored across 2 tools
The two tools have clearly distinct purposes: one for querying phone number information, the other for posting a review. No overlap in functionality.
Both tools follow a consistent verb_noun pattern: 'lookup_phone' and 'post_comment'. Names are clear and predictable.
With only 2 tools, the server feels minimal but arguably covers the core use case (lookup and contribute). However, it is on the low end of the range.
The server provides read and write capabilities for phone number reviews, but lacks update/delete or moderation features. Basic workflow is covered, but there are notable gaps for a full review lifecycle.
Maintenance
Related MCP Connectors
Numverify MCP — wraps the Numverify phone-number validation API (APILayer)
Polish phone number lookup: who called, spam and scam checks, UKE DNO registry, CERT phishing stats
Give AI agents a phone number. Voice calls, SMS, and phone number management for MCP clients.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables querying WhatsApp OSINT API to gather intelligence on WhatsApp numbers, including business verification, user status, privacy settings, linked devices, and profile pictures.106MIT
- AlicenseNot gradedqualityCmaintenanceFormat, validate and normalize international phone numbers, work out exactly how to dial one country from another, clean phone columns in CRM or contact exports, and find calling windows across time zones — using the countrycalling.codes API and MCP server.MIT
- AlicenseNot gradedqualityBmaintenanceProvides 25 pay-per-call tools from agents.oromi.co.uk (business, property, verification, web, crypto) into MCP-capable models, with quote mode for browsing and paid mode using x402.26 npmMIT
- FlicenseNot gradedqualityCmaintenanceProvides access to Russian directories and validation services (e.g., phone, MNP, geo) through a REST API. Enables registration, API calls, payment management, and catalog browsing via MCP tools.-