Kanal Varna — drains, leaks & plumbing (Varna, BG)
Server Details
Drain unblocking, leak detection & plumbing in Varna, Bulgaria: services, prices, areas, contact
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 7 tools
Each tool has a distinct trigger phrase in its description (area check, problem matching, contact, FAQ, prices, reviews, catalogue), so an agent can usually pick correctly. The only real overlap is find_service vs list_services, since both can surface service information; the descriptions do differentiate (free-text problem matching vs category browsing), but the boundary is not airtight.
All seven tools use consistent snake_case verb_noun naming: check_service_area, find_service, get_contact_and_booking, get_faq, get_prices, get_reviews, list_services. The one three-part name (get_contact_and_booking) is a minor length quirk, not a convention break.
Seven tools is well within the ideal range and each covers a clearly separate facet of a local plumbing service business (coverage, service matching, pricing, FAQ, reviews, contact/booking, catalogue). Nothing feels padded or missing at the count level.
The surface covers the full information lifecycle for an informational/referral server: discover services, check coverage, get prices, read FAQ and reviews, then contact or book. The main gap is that booking is only described, not executable (no request-submission or callback tool), so users with a real problem still end at a phone number.
Available Tools
7 toolscheck_service_areaCheck if Kanal Varna serves a placeARead-onlyIdempotentInspect
Call this when the user asks whether Kanal Varna comes to a specific city, district (квартал) or village — e.g. 'Младост', 'Аспарухово', 'Golden Sands', 'Аксаково', 'Добрич', 'Шумен', 'Burgas'. Accepts Bulgarian, Latin or Russian spelling. Returns yes (Varna), by_arrangement (region/villages — travel terms and timing agreed by phone) or not_listed, with the relevant page URL.
| Name | Required | Description | Default |
|---|---|---|---|
| place | Yes | City, district or village name, e.g. 'Варна Чайка', 'Kavarna', 'с. Звездица'. | |
| language | No | Language of the user's question: 'bg' (Bulgarian), 'en' (English) or 'ru' (Russian). If omitted it is detected from the text; default 'bg'. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile needs no restating. The description instead adds genuinely non-obvious behavior: the three-valued outcome and the meaning of 'by_arrangement' (travel terms and timing agreed by phone), which an agent could not infer from the 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?
Three sentences, front-loaded with the trigger condition, then input tolerance, then return values. The example place list is dense but each entry illustrates a distinct case type (city, district, resort, village, out-of-region town). No filler wording.
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 an output schema present, the description need not enumerate return fields, and it still supplies the interpretive key for the three statuses plus the accompanying page URL. Combined with annotations and full schema coverage, an agent has everything needed to invoke and interpret this tool 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 coverage is 100%, so a baseline of 3 would apply on schema alone. The description exceeds that by disclosing that the place argument tolerates Bulgarian, Latin and Russian spellings, which clarifies accepted input forms beyond the schema's example strings and directly affects how an agent should pass user text.
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 names a specific verb and resource in user-question terms ('asks whether Kanal Varna comes to a specific city, district (квартал) or village') and enumerates the place types it covers. It is clearly distinguishable from siblings like get_prices, get_faq or find_service, which do not answer coverage questions.
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 opening clause 'Call this when the user asks whether...' gives an explicit trigger plus concrete example inputs ('Младост', 'Аспарухово', 'Добрич'). It stops short of stating when NOT to use it or naming the sibling to use for adjacent questions (e.g. pricing or booking), so it falls just below a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_serviceFind the right Kanal Varna service for a problemARead-onlyIdempotentInspect
Call this FIRST when a user describes a home problem or need in or near Varna, Bulgaria — e.g. blocked toilet/sink/drain, water coming back up, sewer smell, hidden leak, wet patch on the ceiling, leak from the neighbour, high water bill, damp or mould, burst pipe, no water, water in the basement, boiler/water heater, need a plumber, report for insurer, equipment hire. Input is the problem in the user's own words (any of BG/EN/RU). Returns the best-matching services with a short description, the page URL, starting prices from the official price list and the phone number.
| Name | Required | Description | Default |
|---|---|---|---|
| problem | Yes | The problem or need in the user's words, e.g. 'запушена тоалетна', 'water stain on ceiling', 'течёт у соседей'. | |
| language | No | Language of the user's question: 'bg' (Bulgarian), 'en' (English) or 'ru' (Russian). If omitted it is detected from the text; default 'bg'. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so credit goes to what the text adds: the match output shape (services + short description + page URL + starting prices + phone) and the multilingual input handling. It stops short of saying anything about result limits, ranking, or what happens on zero matches.
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?
Front-loaded with the imperative 'Call this FIRST', followed by trigger examples and then the return contract. The example list is long, but each item earns its place as a disambiguation cue; a slightly tighter grouping would make it a 5.
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 two-parameter, read-only lookup with an output schema, the definition covers trigger conditions, input language flexibility, and result contents. Nothing an agent needs in order to call it correctly is missing.
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%, so the baseline is 3. The description reinforces that the input is the problem in the user's own words and works in BG/EN/RU, but that duplicates what the schema's `problem` and `language` fields already state, adding no new syntax or format detail.
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?
States a specific verb+resource ('find ... service') scoped to a concrete domain (home water/plumbing problems in Varna) and enumerates the trigger conditions that distinguish it from siblings like get_prices or list_services. An agent can decide between this and list_services without opening either schema.
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 routes the agent: 'Call this FIRST when a user describes a home problem or need' and backs it with a dense list of concrete user phrasings (blocked drain, hidden leak, high water bill, insurer report, equipment hire). The trigger set is broad enough that the absence of an explicit 'do not use for X' clause doesn't leave real ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_contact_and_bookingGet contact details and how to bookARead-onlyIdempotentInspect
Call this when the user wants to contact Kanal Varna, book a visit / make an appointment, asks for the phone, WhatsApp, Viber, email, working hours, languages spoken or payment methods. Returns phone 052 993 333 (+359 52 993 333), hours (every day 06:00–23:00), booking steps and the contact page URL.
| Name | Required | Description | Default |
|---|---|---|---|
| language | No | Language of the user's question: 'bg' (Bulgarian), 'en' (English) or 'ru' (Russian). If omitted it is detected from the text; default 'bg'. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered by structured data. The description adds real value beyond that by previewing the concrete payload (phone number, daily 06:00–23:00 hours, booking steps, contact page URL), confirming it is a static, side-effect-free info lookup rather than a live availability check.
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, front-loaded with the trigger condition, no filler. The second sentence is a data dump that partly duplicates the output schema, which is slight waste, but it is compact and arguably aids up-front intent matching.
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 annotations covering safety, a 100%-covered single-parameter schema, and an output schema handling return shape, the description carries exactly the load it needs to: when to call and what category of data comes back. Nothing an agent needs in order to invoke it correctly is missing.
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% — the single optional 'language' parameter has a full enum explanation and default in the schema — so the baseline of 3 applies. The description says nothing about the language parameter, and the phrase 'languages spoken' refers to the business, not the input, so it adds no meaning here.
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?
Uses an explicit trigger verb ('Call this when...') followed by an enumerated set of intents — contact, booking/appointment, phone/WhatsApp/Viber/email, working hours, languages, payment methods — plus the resource it returns. That enumeration is precisely what separates it from siblings like get_prices, get_faq and list_services, so an agent can route without opening a schema.
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 when-to-use condition is stated concretely through a list of user intents, which is stronger than typical implied usage. There is no explicit when-not clause or named alternative (e.g. 'for price questions use get_prices'), which is the only thing keeping it below a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_faqAnswer frequently asked questionsARead-onlyIdempotentInspect
Call this for general questions about how Kanal Varna works: do you have to break walls, is it a blockage or a leak, do drain chemicals help, is the visit paid if the leak is not found, insurer reports, payment and invoices, prices in advance, areas, hours, how fast you can come, languages. Pass the question (any language) to get the best answers, or omit it to get all FAQs. Each answer has a URL.
| Name | Required | Description | Default |
|---|---|---|---|
| language | No | Language of the user's question: 'bg' (Bulgarian), 'en' (English) or 'ru' (Russian). If omitted it is detected from the text; default 'bg'. | |
| question | No | The user's question or topic, e.g. 'трябва ли да се кърти', 'do you give invoices'. Omit for all FAQs. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds genuinely new behavior: questions are accepted in any language and each answer carries a source URL. It does not mention result limits or pagination, but for a static FAQ lookup that is minor.
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?
Front-loads the use case, then lists topics in a compact comma-separated run. The topic list is long but each item maps to a real user intent, and the actionable instruction (pass or omit the question) comes after it. Slightly list-heavy but no 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?
An output schema exists, so return values need no explanation, yet the description still notes each answer has a URL. With only two optional params, the purpose, modes, and language handling are all covered; only the overlap with sibling tools remains unresolved.
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%, so both parameters are already documented, including the omit-for-all-FAQs behavior and the language enum. The description reinforces 'any language' and the omit mode but adds no syntax, matching, or fallback detail beyond the schema, which is the correct baseline.
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?
States a clear verb ('call this') and a concrete resource (general FAQ answers about how Kanal Varna works), then enumerates the actual topics covered so an agent can pattern-match a user question to it. It stops short of naming siblings, and the listed topics ('prices in advance', 'areas', 'hours') overlap with get_prices and check_service_area, leaving some routing ambiguity.
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?
Gives a usable trigger ('general questions about how Kanal Varna works') plus two modes: pass a question to get best answers, or omit it to get all FAQs. No explicit when-not-to-use guidance and no named alternative tools, so the agent must infer that specific price/area lookups should go to siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pricesGet Kanal Varna pricesARead-onlyIdempotentInspect
Call this when the user asks how much something costs (drain unblocking, toilet, sink, CCTV drain camera, thermal camera leak detection, boiler installation, pipe replacement, waterproofing …). Optionally pass the service or problem to filter. Returns the official indicative 'from' prices in EUR exactly as on https://kanalvarna.com/ceni/ plus how pricing works. The final price is always given by phone before work starts.
| Name | Required | Description | Default |
|---|---|---|---|
| service | No | Optional service or problem to filter by, e.g. 'тоалетна', 'leak detection', 'бойлер'. Omit for the full price list. | |
| language | No | Language of the user's question: 'bg' (Bulgarian), 'en' (English) or 'ru' (Russian). If omitted it is detected from the text; default 'bg'. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, closed-world, and the description adds genuinely new behavioral context: returns official indicative 'from' prices in EUR exactly as on the website, plus an explanation of how pricing works, plus the caveat that the final price is always confirmed by phone before work starts. That caveat is material for how an agent should present the numbers to a user.
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 trigger condition is front-loaded in the first clause, and the whole thing is one tight paragraph with no filler. The parenthetical service list is slightly long and trails off with an ellipsis, but it earns its place by helping match varied user phrasings.
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 annotations covering safety, a full output schema covering return values, and 100% schema coverage on both parameters, the description only needed to supply trigger context and the pricing caveat — both of which it does. Nothing an agent needs to invoke and present results correctly is missing.
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%, so both the service filter and the language enum are already fully documented in the schema. The description only restates the optional service filter and never mentions the language parameter, so it adds no meaning beyond structured data. Baseline 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 states a concrete verb and resource ('get prices' for drain unblocking, toilet, CCTV camera, boiler installation, etc.) and anchors it to a real source URL (kanalvarna.com/ceni/). An agent can immediately tell this is the pricing lookup, distinct from siblings like list_services or find_service.
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?
It gives an explicit trigger ('Call this when the user asks how much something costs') and enumerates representative query topics that select this tool. It also explains the optional filtering behavior. It does not, however, name alternative siblings or state when to prefer find_service/list_services instead, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_reviewsGet real customer reviewsARead-onlyIdempotentInspect
Call this when the user asks for reviews, testimonials, opinions or whether Kanal Varna is good/reliable. Returns ONLY real reviews: customer video reviews (with what the customer says and the video URL) and any approved text reviews from the website. There is deliberately no aggregate star rating — do not invent one.
| Name | Required | Description | Default |
|---|---|---|---|
| service | No | Optional filter: 'otpushvane' (drain unblocking) or 'otkrivane_techove' (leak detection). | |
| language | No | Language of the user's question: 'bg' (Bulgarian), 'en' (English) or 'ru' (Russian). If omitted it is detected from the text; default 'bg'. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare this a read-only, idempotent, non-destructive operation, so the safety profile is covered. Beyond that, the description adds two genuinely useful behavioral facts: only real/approved reviews are returned, and there is deliberately no aggregate star rating. The explicit 'do not invent one' instruction guards against a common fabrication failure.
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 sentences, each earning its place: trigger condition first, contents second, output caveat last. No repetition, no filler, and the routing information is front-loaded.
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?
An output schema exists, so return values need no explanation, and the four annotations cover the safety profile. The description covers purpose, triggers, and a key output caveat. It never mentions the optional service or language filtering, which is the only substantive gap for a tool that can be narrowed to a specific service.
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%, with both optional parameters (service and language) fully documented including enum meanings and the detection fallback. The description adds nothing about parameter behavior. Baseline 3 is appropriate because the schema carries this burden entirely.
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 definition states a specific verb and resource ('get reviews') and goes further to specify exactly what is returned: customer video reviews with quotes and video URLs, plus approved text reviews. It is clearly distinguishable from siblings such as get_faq and get_prices, which an agent could otherwise confuse with reputation questions.
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?
It gives an explicit trigger set: reviews, testimonials, opinions, or whether Kanal Varna is good/reliable. That covers the realistic invocation conditions well. It does not name a competing sibling or state when-not to use it, which keeps it out of the top band.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_servicesList Kanal Varna servicesARead-onlyIdempotentInspect
Call this when the user asks what Kanal Varna does / which services it offers, or wants all services in a category. Categories: otpushvane (drain unblocking), techove (leaks, damp, mould), avarii (emergencies), vik (plumbing repairs), hidro (waterproofing & drainage), izmervaniya (home measurements), naem (equipment hire & cleaning), dom (home repairs).
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Optional category id; omit for all services. | |
| language | No | Language of the user's question: 'bg' (Bulgarian), 'en' (English) or 'ru' (Russian). If omitted it is detected from the text; default 'bg'. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this as a read-only, idempotent, non-destructive lookup, so the safety profile is covered. The description adds the category taxonomy but says nothing about return shape, ordering, or fallback behavior when a category is empty; since an output schema exists, that omission is minor.
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 trigger condition is front-loaded in one sentence, followed by a compact category glossary. The list is long but each entry carries information an agent cannot infer from the raw enum ids.
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 two-parameter read-only lookup with full schema coverage and an output schema, the description covers intent, scope, and category semantics. Nothing essential is missing, though a one-clause pointer to find_service would make routing airtight.
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%, so the baseline would be 3, but the description adds real meaning by glossing each opaque enum id in English (otpushvane = drain unblocking, naem = equipment hire). The language parameter's behavior is left entirely to the 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?
The description uses a specific verb (list) and resource (Kanal Varna services) and frames the user intent it answers ('what does Kanal Varna do'). It does not explicitly distinguish itself from the sibling find_service, which is the main gap keeping it from a 5.
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?
It gives an explicit trigger condition: when the user asks what the company does, which services exist, or wants all services in a category. It stops short of naming an alternative (e.g. find_service for a single matching service), so the when-not case is left implicit.
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.
7 tool updates
- First observed
check_service_area - First observed
find_service - First observed
get_contact_and_booking - First observed
get_faq - First observed
get_prices - First observed
get_reviews - First observed
list_services
Related MCP Connectors
Bulgarian public statistics: wages, population by municipality, elections, NSI and Eurostat data.
CCTV Drain Survey Cost: the site's own MCP server — enquiry (enquiry = a human handoff, not a...
Search long-term rentals in Bulgaria, get rent prices by city and district, contact a local realtor.
Search homes for sale and rent in Bulgaria; get price stats and alerts for new matches.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceEnables querying, searching, and validating 1,997 Bulgarian statutes and 17,103 provisions, with EU law integration and daily freshness checks.47 npmApache 2.0
- AlicenseNot gradedqualityCmaintenanceEnables MCP clients to read invoices, clients and payments from an inv.bg account, compute turnover by client or month, and download or archive invoice PDFs locally. Runs over local stdio with read-only GET requests, so documents can be inspected and PDFs saved without ever modifying anything in the account.MIT
- FlicenseNot gradedqualityDmaintenanceValidates EU and Northern Ireland VAT numbers against the official VIES service, returning validity, company name and address, and distinguishing invalid from unavailable. Supports bulk checking up to 100 VAT IDs.-
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to look up US NHTSA and EU Safety Gate car recalls and complaints, compare a model's years by risk score, check UK MOT failure rates, retrieve EU vehicle specifications with WLTP CO2 and fuel consumption, and verify Cyprus company records, EU VAT numbers via VIES and LEIs. It draws only on official open data and is hosted through Apify, so nothing needs to be installed.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.