Skip to main content
Glama
ktozvonil

mcp-server-ktozvonil

by ktozvonil

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

lookup_phone

Community verdict, rating, spam level, operator, region, tags and recent reviews for a number

none

post_comment

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-ktozvonil

Claude 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/mcp

Configuration

Env var

Meaning

KTOZVONIL_MCP_URL

Override the endpoint URL (default https://ktozvonil.net/mcp)

KTOZVONIL_TOKEN

OAuth bearer token — only needed for post_comment. Discovery: /.well-known/oauth-protected-resource

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 test

License

MIT © ktozvonil.net

Available Tools

2 tools
lookup_phoneAInspect

Look up a phone number on ktozvonil.net: community verdict, rating, spam level, operator, region, tags and recent reviews.

ParametersJSON Schema
NameRequiredDescriptionDefault
numberYesPhone number (digits, international or local format)

TDQS

A4.3/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesReview text (min 3 chars)
numberYesPhone number (digits, international or local format)
ratingYesStar rating 1-5 (1 = dangerous/spam, 5 = safe/trusted)

TDQS

A4.4/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

  1. 2 tool updatesv1.0.2
    • First observedlookup_phone
    • First observedpost_comment

TDQS

A4.3/5.0

Scored across 2 tools

Disambiguation5/5

The two tools have clearly distinct purposes: one for querying phone number information, the other for posting a review. No overlap in functionality.

Naming Consistency5/5

Both tools follow a consistent verb_noun pattern: 'lookup_phone' and 'post_comment'. Names are clear and predictable.

Tool Count3/5

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.

Completeness3/5

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

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    Enables querying WhatsApp OSINT API to gather intelligence on WhatsApp numbers, including business verification, user status, privacy settings, linked devices, and profile pictures.
    10
    6
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Format, 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
  • A
    license
    Not graded
    quality
    B
    maintenance
    Provides 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 npm
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Provides 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.
    -