xonta-docs
Server Details
Tools for AI agents preparing Russian business documents: validates INN, KPP, OGRN, BIC and bank accounts by checksum, writes amounts in Russian words with VAT, declines Russian names and job titles by case, and counts working days by the official Russian calendar. Free, no API key.
- Status
- Healthy
- Uptime
- 100.0% over 21 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 11 tools
Each tool has a clearly distinct purpose: generating invoices/acts, parsing documents, validating requisites, checking text compliance, and linguistic transformations. The only mild overlap is between make_invoice and make_act, but their document types are clearly separated, and parse_document versus validate_requisites serve extraction versus validation roles.
All names use lowercase snake_case without stylistic mixing, which is coherent. Most follow a verb_noun pattern (check_foreign_words, decline_name, make_invoice, parse_document, validate_requisites), while a few are noun-only or single verbs (amount_in_words, transliterate, typograph, working_days), causing minor deviation.
The server has 11 tools, squarely within the well-scoped 3-15 range. Each tool covers a distinct Russian business-document or text-processing capability, so no tool feels redundant or out of place.
The surface covers core Russian document workflows: invoice/act generation, document parsing, requisites validation, amount-in-words, name declension, typography, transliteration, and working-day calculations. Minor gaps exist, such as no contract or commercial-offer generator and no document update/edit operation, but agents can work around these for most stated purposes.
Available Tools
11 toolsamount_in_wordsСумма прописью (с НДС)ARead-onlyIdempotentInspect
Сумма прописью для счетов, актов и договоров: «Одна тысяча двести тридцать четыре рубля 56 копеек». Считает НДС (в том числе или сверху) и выдаёт готовую строку «…, в том числе НДС (22%) 222 руб. 63 коп.». Рубли, доллары, евро, юани. Russian 'amount in words' for invoices with VAT line.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Сумма: 1234.56 или «1 234,56» | |
| kopecks | No | Копейки цифрами (по умолчанию) или словами | |
| currency | No | Валюта, по умолчанию RUB | |
| vat_rate | No | Ставка НДС в процентах (22, 20, 10, 7, 5, 0) или «без НДС». Не указывать — НДС не считается | |
| vat_included | No | true (по умолчанию) — НДС уже в сумме; false — начислить сверху |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/closed-world, so the safety profile is covered. The description adds real behavioral context beyond that: VAT can be either included in or added on top of the amount, and currency coverage is limited to RUB/USD/EUR/CNY. It does not mention limits or edge cases (e.g. negative or zero amounts), so not a 5.
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 concrete output example, then the VAT behavior, then currencies — a sensible order with no filler. The final English sentence duplicates the opening Russian one, which is mild redundancy rather than waste.
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?
There is no output schema, yet the description supplies two literal example strings including the generated VAT clause, so the agent knows exactly what comes back. For a 5-parameter, single-purpose formatting tool this is sufficient to call 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 coverage is 100%, so baseline is 3, and the description genuinely adds meaning: it explains vat_included as 'в том числе или сверху' and pairs the VAT-rate concept with a produced output line. That clarifies the interplay between vat_rate and vat_included better than the schema alone, though it still does not document the kopecks enum values.
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?
Names a specific transformation (amount → words) plus the concrete artifact it produces for invoices/acts/contracts, with a worked example. Nothing in the sibling set (decline_name, validate_requisites, working_days) overlaps, so an agent can route correctly without 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?
States the context of use explicitly ('для счетов, актов и договоров') and notes the VAT-line scenario, which is clear guidance on when this tool applies. It stops short of naming when NOT to use it or pointing to an alternative, since none of the siblings compete here.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_foreign_wordsИностранные слова в тексте (подсказки к закону о русском языке)ARead-onlyIdempotentInspect
Помогает подготовить текст для потребителей (сайт, карточка товара, рассылка, реклама, вывеска) с учётом требований об использовании русского языка, действующих с 1 марта 2026 года. Находит слова латиницей, жаргонные англицизмы (дедлайн, кэшбэк, сейл) с вариантами русских замен и распространённые заимствования, которые стоит сверить со словарём. Это автоматическая подсказка, а не юридическое заключение: сервис не сверяет текст с нормативными словарями, утверждёнными распоряжением Правительства № 1102-р. Highlights Latin-script words and anglicisms in Russian consumer-facing text, with Russian replacements. Not legal advice.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Текст для проверки, до 50 000 символов | |
| allow | No | Товарные знаки и названия, которые не нужно отмечать, через запятую: «Nike, Яндекс Маркет» |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent/non-open-world annotations, the description adds meaningful caveats: results are hints only, not legal conclusions, and the service does not check text against the normative dictionaries approved by Government order No. 1102-р. It also reveals the shape of output (candidate anglicisms plus Russian replacements), which the annotations cannot convey.
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 purpose, effective date, description of findings, and the legal disclaimer are front-loaded and well ordered. It is somewhat long because the Russian statement is then restated in compressed English, which is mild redundancy rather than bloat.
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 read-only, two-parameter tool with full schema coverage, no output schema, and safety annotations already supplied, the description covers everything needed: what it flags, examples, the replacement suggestions, and the limits of its authority. Nothing essential to correct invocation 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% and both parameters are documented there, including the 'Nike, Яндекс Маркет' example for allow. The description implies text is what gets scanned but adds no format, length, or override semantics beyond the schema, so the 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?
States a specific verb and resource: it finds Latin-script words, jargon anglicisms (дедлайн, кэшбэк, сейл) and common loanwords in Russian consumer-facing text, with Russian replacement suggestions. The scope is unambiguous, though it never positions itself relative to plausible siblings like transliterate or typograph.
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?
Concrete usage context is given: preparing text for consumers (site, product card, newsletter, advertising, signage) under the Russian-language rules effective 1 March 2026. It also sets a boundary by declaring it is an automatic hint and not a legal opinion, but offers no explicit alternative tool or when-not-to-use condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_medical_textПроверка карточки и рекламы: лекарства, медизделия, БАД, медуслугиARead-onlyIdempotentInspect
Проверяет текст карточки товара на маркетплейсе или рекламы по статьям 24 и 25 закона «О рекламе» и постановлению Правительства № 821 (проверка карточек с 1 октября 2026): есть ли обязательное предупреждение («Не является лекарственным средством» для БАД; о противопоказаниях, инструкции или консультации специалиста — для лекарств, медизделий и медуслуг), найден ли номер регистрации и верен ли его формат (РЗН, ФСР, ЛП, СГР), а также подсвечивает рискованные формулировки: обещания излечения, гарантии, «без побочных эффектов», отзывы и благодарности, лечебные свойства у БАД. Это подсказка, а не юридическое заключение: номера не сверяются с госреестрами. Checks Russian medical product cards and ads against advertising law. Not legal advice.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | Тип: drug — лекарство, device — медизделие, supplement — БАД, service — медуслуга. Если не указать, определится по тексту | |
| text | Yes | Текст карточки товара или рекламы, до 30 000 символов | |
| channel | No | card — карточка товара (по умолчанию), ad — реклама |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint=false; the description adds the reason for the closed-world claim ('номера не сверяются с госреестрами') and an important epistemic caveat that this is a hint, not a legal opinion. These are genuine additions beyond structured data, though the response structure itself is not described.
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 action and legal basis, and every clause carries information (what is checked, what counts as a defect, the legal-advice disclaimer). It is composed of one very long run-on Russian sentence followed by two terse English sentences, which is dense but not padded.
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 no output schema, the description must convey what comes back, and it does: presence/absence of mandatory warnings, registration number detection and format validity, plus flagged risky formulations. Combined with the 'not legal advice' limit, an agent has enough to call it and interpret results, though the exact result shape is unspecified.
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 is 3, but the description goes further: it spells out the four categories that map to the 'kind' enum and distinguishes which mandatory warning applies to supplements versus drugs/devices/services, adding interpretive meaning the raw enum labels do not carry.
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 and resource (checks a product card or ad text) and pins the exact legal basis: articles 24–25 of the advertising law and Government decree No. 821, effective 1 Oct 2026. It also enumerates what is examined — mandatory warnings, registration number presence/format (РЗН, ФСР, ЛП, СГР) and risky phrasing — so it is unmistakable against any sibling utility tool.
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 scope statement ('карточки товара на маркетплейсе или рекламы') plus the kind domain (БАД, лекарства, медизделия, медуслуги) makes the applicable context clear, and the deadline note tells the agent when the card-checking regime applies. No explicit exclusions or named alternatives are given, but no sibling tool is a plausible substitute.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
decline_nameСклонение ФИО и должности по падежамARead-onlyIdempotentInspect
Склоняет ФИО и должность по падежам для договоров, доверенностей и приказов: «в лице генерального директора Иванова Ивана Петровича», «выдана Кузнецовой Анне Сергеевне». Сам определяет пол по отчеству или имени, возвращает полную форму и инициалы. case=all — все шесть падежей сразу. Declines Russian full names and job titles by grammatical case.
| Name | Required | Description | Default |
|---|---|---|---|
| case | No | Падеж: genitive (родительный, по умолчанию), dative, accusative, instrumental, prepositional, nominative, по-русски, или all | |
| order | No | Порядок слов в full_name: last_first (по умолчанию) или first_last | |
| gender | No | Пол, если его нельзя определить по отчеству | |
| position | No | Должность, например «генеральный директор» или «главный бухгалтер» | |
| full_name | No | ФИО целиком, по умолчанию в порядке «Фамилия Имя Отчество» | |
| last_name | No | Фамилия (вместо full_name) | |
| first_name | No | Имя | |
| middle_name | No | Отчество |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and closed-world, so safety is covered. The description adds genuinely non-structured behavior: it auto-detects gender from patronymic or first name, and it returns the full declined form plus initials — useful output-shape context absent from the schema.
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 core action, then examples, then behavioral notes, with an English gloss at the end. The inline examples are informative rather than padding; the only mild redundancy is repeating the action in English after the Russian.
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 8 optional parameters and no output schema, the description compensates by describing what comes back (full form and initials) and how gender and case=all behave. Remaining gap is the relationship between full_name and the split last/first/middle_name parameters, which only the schema covers.
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 baseline is 3. The description goes beyond it by mapping the 'all' value of case (all six cases at once) and by explaining the gender-inference fallback, which clarifies why the gender parameter exists only as a backup.
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 and resource: declines Russian full names and job titles by grammatical case. The concrete examples («в лице генерального директора Иванова Ивана Петровича») make the output shape unmistakable and clearly distinguish it from siblings like amount_in_words or validate_requisites.
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?
Names the document contexts where it applies (contracts, powers of attorney, orders) and explains the case=all shortcut for retrieving all six cases at once. It does not explicitly state when to avoid it or name an alternative, but the domain of use is clear from the examples.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
make_actАкт оказанных услуг (PDF, DOCX)ARead-onlyIdempotentInspect
Формирует акт выполненных работ (оказанных услуг): исполнитель и заказчик, основание, таблица услуг, итог, НДС, сумма прописью, фраза об отсутствии претензий, блок подписей обеих сторон. Проверяет реквизиты сторон по контрольным суммам. Возвращает ссылку на PDF и/или DOCX (действует 24 часа). Generates a Russian services acceptance act (akt) as PDF/DOCX.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | Дата ГГГГ-ММ-ДД или ДД.ММ.ГГГГ, по умолчанию сегодня | |
| basis | No | Основание, например «Договор № 12 от 01.10.2026» | |
| buyer | Yes | Заказчик | |
| items | Yes | Позиции документа | |
| format | No | Формат файла: pdf (по умолчанию), docx или both | |
| number | Yes | Номер документа | |
| seller | Yes | Исполнитель | |
| comment | No | Дополнительный текст внизу документа | |
| vat_rate | No | НДС: «без НДС» (по умолчанию) или ставка в процентах: 22, 20, 10, 7, 5, 0 | |
| vat_included | No | true (по умолчанию) — цены уже с НДС; false — начислить НДС сверху | |
| include_base64 | No | Вернуть файл ещё и в base64 (по умолчанию только ссылка) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint/idempotent, so safety is covered. The description still adds real behavior: requisites are validated against checksums, and the returned link expires after 24 hours. It does not say what happens on a failed checksum validation or whether files persist anywhere, which keeps it below a 5.
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 action and format, then a single dense sentence listing document sections. The long enumeration is informative rather than padded, though a briefer phrasing could have carried the same meaning.
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 an 11-parameter generator with nested objects and no output schema, the description supplies the missing return information: links to PDF and/or DOCX and the 24-hour validity window, plus the validation behavior. An agent has what it needs to call and interpret the result.
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 every parameter including nested seller/buyer/item fields is already documented in the schema; baseline 3 applies. The description corroborates the semantic content (VAT, amount in words, line-item table) but adds no syntax or constraint beyond 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?
States a specific verb (Формирует/Generates) plus the exact resource: a Russian services acceptance act (акт оказанных услуг) as PDF/DOCX. It also enumerates the document's substantive sections (parties, basis, line items, totals, VAT, amount in words, signature block), making the artifact unambiguous versus a plain invoice.
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?
No statement of when to pick this over the sibling make_invoice, nor any prerequisites (e.g. run validate_requisites first, or that requisites are auto-checked). Usage must be inferred from the name and title alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
make_invoiceСчёт на оплату (PDF, DOCX)ARead-onlyIdempotentInspect
Формирует счёт на оплату по российской форме: банковский блок получателя, поставщик и покупатель, таблица позиций, итог, НДС или «Без налога (НДС)», сумма прописью, подписи. Перед формированием проверяет ИНН, КПП, БИК и счета по контрольным суммам; при ошибке в реквизитах документ не создаётся. Может добавить срок оплаты в рабочих днях по производственному календарю. Возвращает ссылку на PDF и/или DOCX (действует 24 часа). Generates a Russian invoice (schet na oplatu) as PDF/DOCX.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | Дата ГГГГ-ММ-ДД или ДД.ММ.ГГГГ, по умолчанию сегодня | |
| basis | No | Основание, например «Договор № 12 от 01.10.2026» | |
| buyer | Yes | Покупатель (плательщик) | |
| items | Yes | Позиции документа | |
| format | No | Формат файла: pdf (по умолчанию), docx или both | |
| number | Yes | Номер документа | |
| seller | Yes | Поставщик (получатель денег) с банковскими реквизитами | |
| comment | No | Дополнительный текст внизу документа | |
| vat_rate | No | НДС: «без НДС» (по умолчанию) или ставка в процентах: 22, 20, 10, 7, 5, 0 | |
| vat_included | No | true (по умолчанию) — цены уже с НДС; false — начислить НДС сверху | |
| include_base64 | No | Вернуть файл ещё и в base64 (по умолчанию только ссылка) | |
| payment_due_working_days | No | Срок оплаты в рабочих днях — в счёт добавится «Оплатить не позднее …» |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the readOnly/idempotent annotations: it discloses pre-flight control-sum validation of INN/KPP/BIK/accounts and that the document is NOT created on bad requisites, that the returned link expires in 24 hours, and that a working-day payment deadline can be appended via the production calendar. These are consequential behaviors an agent must know before calling.
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 what the tool produces, then validation behavior, then optional features and the return value, with minimal filler. The bilingual tail sentence is slightly redundant with the opening, which keeps it short of 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?
With no output schema, the description carries the return-value burden and does so: a PDF and/or DOCX link valid 24 hours, plus an optional base64 payload. Validation-failure behavior is covered; error shapes and pagination-equivalent concerns are not described, leaving a small gap for a complex nested-parameter 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%, so the baseline is 3; the description still adds meaning by explaining the VAT branch (rate vs. «Без налога (НДС)»), the sum-in-words/signature rendering driven by seller fields, and the working-day payment clause tied to payment_due_working_days. It is more than a restatement of the schema, though it does not clarify every optional field.
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 and artifact (forms a Russian-form schet na oplatu) and enumerates the document's structure (banking block, seller/buyer, line-item table, total, VAT, sum in words, signatures). This clearly separates it from siblings like make_act or validate_requisites 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?
Usage is implied by the name and the description of what gets generated, but there is no explicit when-to-use/when-not guidance or routing to alternatives such as validate_requisites (whose job the built-in INN/KPP/BIK check partially overlaps) or amount_in_words. An agent can infer intent, but the decision guidance is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
parse_documentРаспознавание документа: счёт, акт, УПД, счёт-фактура, договорARead-onlyIdempotentInspect
Извлекает данные из российского документа в PDF или DOCX с текстовым слоем: тип, номер и дату, продавца и покупателя (название, ИНН, КПП, ОГРН, адрес), банковские реквизиты, основание, позиции (наименование, количество, единица, цена, сумма), итог, НДС и сумму прописью. Сразу проверяет ИНН, КПП, БИК и счета по контрольным суммам, сверяет сумму позиций с итогом и расчёт НДС. Разбор по правилам: что не найдено, возвращается пустым, а не выдумывается. Сканы и фото без текстового слоя пока не поддерживаются. Файл не сохраняется. Extracts structured data from Russian invoices, acts, UPD and contracts (PDF/DOCX).
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Публичная ссылка на PDF или DOCX (до 10 МБ) | |
| base64 | No | Или содержимое файла в base64 | |
| filename | No | Имя файла, если передаёте base64, например schet.pdf | |
| include_text | No | Вернуть также распознанный текст документа |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, closed-world, and idempotent behavior, but the description adds substantial context beyond them: it validates INN, KPP, BIK and account checksums, reconciles item totals against the grand total and VAT, returns empty fields rather than inventing values, and does not save the uploaded file. This is unusually rich behavioral disclosure.
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 purpose and key limitations are front-loaded, and the long field enumeration is justified because there is no output schema. The final English summary is slightly redundant after the fuller Russian text, but overall the description is dense and well-organized rather than wasteful.
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 there is no output schema, the description carries the burden of describing returned fields and does so thoroughly: document type, number, date, parties, bank details, line items, totals, VAT, and amount in words. It also covers validation behavior, missing-field behavior, and unsupported input types, leaving little an agent needs beyond the schema and annotations.
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 url, base64, filename, and include_text are already documented. The description adds a file-level constraint (text layer required) but does not explain parameter formats, alternatives between url and base64, or usage syntax beyond what the schema provides. Baseline 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?
States a specific verb (extracts) and resource (structured data from Russian PDF/DOCX documents), and enumerates the exact document types and fields covered. This clearly separates it from generation siblings like make_invoice/make_act and from the standalone validation/utility siblings.
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 clear context for use: Russian documents in PDF or DOCX with a text layer. It also states a key when-not condition: scans and photos without a text layer are not supported. It does not name alternative tools such as validate_requisites or amount_in_words, so it falls short of explicit alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transliterateТранслитерация: загранпаспорт, ГОСТ, адрес страницыARead-onlyIdempotentInspect
Переводит кириллицу в латиницу по выбранной системе: passport — как в загранпаспорте и на банковских картах (приказ МВД № 889, рекомендации ИКАО), gost — ГОСТ 7.79-2000 система Б, slug — для адресов страниц и имён файлов (строчные буквы и дефисы). Cyrillic to Latin transliteration.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Текст на кириллице | |
| system | No | Система: passport (по умолчанию), gost или slug |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint=false, so the safety profile is fully covered without description help. The description adds useful behavioral detail – that slug yields lowercase hyphenated output and that passport follows МВД 889/ICAO and gost follows GOST 7.79-2000 system B – i.e. deterministic standard-based mapping, but says nothing about handling of non-Cyrillic input or mixed strings.
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 core action, then a compact enumeration of the three modes, with no filler. The trailing English one-liner is slightly redundant given the body text, which keeps it from being maximally tight.
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 only two parameters, full schema coverage, and no output schema or nesting, the description supplies everything needed to call the tool correctly, including the default system. Only edge-case behavior (non-Cyrillic characters, numbers passed as text) is left unaddressed.
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 is 3, but the description goes beyond the schema's terse 'passport (default), gost or slug' by explaining what each enum value actually implements and confirming the default. That is genuine added meaning for the enum parameter rather than repetition.
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 (Cyrillic→Latin transliteration) and then names each of the three output systems with concrete use cases, so the agent knows exactly what the tool produces. None of the sibling tools (decline_name, typograph, amount_in_words) does transliteration, so there is no ambiguity to resolve.
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 clear selection context for each mode: passport for foreign passports/bank cards, slug for page addresses and filenames. It does not state explicit exclusions or name an alternative tool, but the sibling set has no overlapping capability, so the option-level guidance is the relevant one and it is well covered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
typographТипограф для русского текстаARead-onlyIdempotentInspect
Приводит русский текст к типографским правилам: кавычки «ёлочки» и „лапки“ для вложенных, длинное тире, многоточие, диапазоны чисел через короткое тире, неразрывные пробелы после предлогов и союзов, перед частицами, между числом и единицей измерения или валютой, в сокращениях. Можно получить результат с для HTML. Russian typography: quotes, dashes, non-breaking spaces.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Текст | |
| format | No | html — дополнительно вернуть вариант с |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint=false, so the safety profile is covered. The description adds one behavioral detail beyond that — that an HTML variant with is available — but says nothing about input size limits, whether the original text is preserved, or determinism, leaving the annotation to carry the rest.
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 list of typography rules is front-loaded in the first sentence, with the HTML note and the English gloss trailing. The bilingual restatement ('Russian typography: quotes, dashes, non-breaking spaces') is largely redundant with the preceding Russian text, a minor bit of waste.
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 only two simple parameters, full schema coverage, and rich annotations, the definition covers enough. There is no output schema, but the description states what the output is (typographically corrected text, optionally with ), so nothing essential is left dangling.
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 echoes the 'html — дополнительно вернуть вариант с ' behavior already stated in the schema and adds no new syntax or format detail for the 'text' parameter.
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 ('Приводит русский текст к типографским правилам') and then enumerates the concrete transformations performed (guillemets, nested quotes, em dash, ellipsis, numeric ranges, non-breaking spaces). This is distinct from every sibling (transliterate, amount_in_words, decline_name), so an agent can route to it unambiguously.
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?
Usage is implied by the description of what gets corrected, but there is no explicit when-to-use framing, no prerequisite statement (e.g. input must be Russian), and no mention of alternative tools for text processing. An agent can infer the context but must do so itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_requisitesПроверка реквизитов (ИНН, КПП, ОГРН, БИК, счёт, СНИЛС)ARead-onlyIdempotentInspect
Проверяет российские реквизиты по контрольным суммам: ИНН (10/12 цифр), КПП, ОГРН/ОГРНИП, БИК, расчётный и корреспондентский счёт (ключевание по БИК), СНИЛС. Находит опечатки до выставления счёта или платежа и указывает, если реквизиты похожи на реквизиты разных лиц. Validates Russian company/bank identifiers (INN, KPP, OGRN, BIC, bank account, SNILS) by checksums. Offline, instant.
| Name | Required | Description | Default |
|---|---|---|---|
| bik | No | БИК банка, 9 цифр. Нужен для проверки счетов | |
| inn | No | ИНН, 10 или 12 цифр | |
| kpp | No | КПП, 9 символов | |
| ogrn | No | ОГРН (13 цифр) или ОГРНИП (15 цифр) | |
| snils | No | СНИЛС, 11 цифр (можно с дефисами и пробелом) | |
| account | No | Расчётный счёт, 20 цифр | |
| corr_account | No | Корреспондентский счёт банка, 20 цифр |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly/idempotent/closed-world, so the safety profile is covered. The description adds genuine behavior not in the annotations: the validation is offline and instant, and it flags when the supplied identifiers look like they belong to different persons/entities. It stops short of describing partial-input behavior or the exact response shape.
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 core action and the identifier list, then the payoff (catching typos) and the key property (offline, instant). It is slightly redundant because the same content is given twice in Russian and English, but each version is tight and waste-free.
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 7-parameter, all-optional, no-output-schema tool, the description covers purpose, the identifier set, and even one aspect of the result (mismatched-persons warning). The remaining gap is that it never clarifies that zero required parameters means partial sets are acceptable and what is reported per field.
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 each parameter already carries its own Russian description with digit counts, so the description's digit hints largely duplicate the schema. No additional semantics (e.g. which combinations are meaningful, or behavior when only some fields are supplied) are added beyond what the schema states.
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 (проверяет/validates) and an explicit, enumerated resource set (ИНН, КПП, ОГРН/ОГРНИП, БИК, расчётный/корреспондентский счёт, СНИЛС), including the checksum method. Nothing among the siblings (amount_in_words, decline_name, working_days) overlaps, so the agent can select this unambiguously.
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 clear use context — catching typos before issuing an invoice or payment ("до выставления счёта или платежа") — which tells the agent when to reach for it. It does not name any alternative tool or state exclusions, but no sibling competes for this job.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
working_daysРабочие дни по производственному календарю РФARead-onlyIdempotentInspect
Производственный календарь России с праздниками и переносами. Три режима: (1) date + add_working_days — какая дата будет через N рабочих дней («оплата в течение 5 рабочих дней»); (2) date + end_date — сколько рабочих дней и часов между датами; (3) только date — рабочий ли это день, праздник, сокращённый день и ближайший рабочий день. Russian business-day calendar with official holidays and transfers.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | Дата ГГГГ-ММ-ДД или ДД.ММ.ГГГГ. По умолчанию сегодня (Москва) | |
| end_date | No | Конец периода для подсчёта рабочих дней (включительно) | |
| add_working_days | No | Сколько рабочих дней прибавить (можно отрицательное) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true and openWorldHint=false, so the safety profile is covered. The description adds that the data is the official RF calendar with holidays and transfers, but omits coverage years/freshness and any note on whether the calendar is bundled or remote, so beyond the mode mechanics it contributes modestly.
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 resource statement, then a cleanly numbered three-mode list; every clause carries information an agent needs. The only mild redundancy is the bilingual English restatement at the end, which duplicates the opening rather than adding content.
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 no output schema, the description does describe what each mode returns (a resulting date, a count of days and hours, a day classification plus next working day). It stops short of stating the response shape or the calendar's year coverage, which an agent might need for edge dates outside the supported range.
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 is 3, but the description goes further by defining the meaning of parameter combinations rather than individual fields — which pair triggers addition, counting, or classification. It does not restate format details already in the schema, which 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?
Names the specific resource (Russian production calendar with official holidays and transfers) and enumerates exactly what the tool computes in each of its three modes. Sibling tools (amount_in_words, decline_name, validate_requisites) are in unrelated domains, so no disambiguation is needed and none is attempted.
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 maps each parameter combination to a distinct use case: date + add_working_days for deadline arithmetic, date + end_date for day/hour counting, and date alone for weekday/holiday classification. It even frames a real scenario ("оплата в течение 5 рабочих дней"), leaving no inference about when to pick a mode.
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 tool update
- Added
check_medical_text
4 tool updates
- Added
check_foreign_words - Added
parse_document - Added
transliterate - Added
typograph
2 tool updates
- Added
make_act - Added
make_invoice
4 tool updates
- First observed
amount_in_words - First observed
decline_name - First observed
validate_requisites - First observed
working_days
Related MCP Servers
- AlicenseNot gradedqualityCmaintenancePerplexity for social: ask what competitors are running across social and get answers grounded in real ad and creative data, not guesses.2Apache 2.0
- AlicenseCqualityBmaintenanceCompetitor Monitor AI - MCP server providing AI-powered tools and automation by MEOK AI Labs113 npm54 PyPIMIT
- AlicenseAqualityCmaintenanceEnables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.1618 npm1MIT

industrylens-mcpofficial
AlicenseNot gradedqualityBmaintenanceBrowse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.