catalog
Server Details
Read-only catalog of licensed Ukrainian MFOs: loan terms, NBU licenses, ratings and reviews.
- Status
- Healthy
- Uptime
- 99.9% over 38 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- alexandrrzk-ctrl/mfoxa-mcp
- GitHub Stars
- 1
- Server Listing
- mfoxa-mcp
TDQS
Scored across 9 tools
Each tool targets a clearly distinct resource or operation: list_* tools enumerate navigational indexes, get_* tools return specific pages or entities, and search_offers handles parameterized filtering by amount, term, and region. The descriptions also cross-reference one another explicitly, making the boundaries between related tools like get_category, get_city, and search_offers clear.
All tools follow a predictable verb_noun convention: get_ for detail lookups, list_ for full enumerations, and search_ for filtered discovery. The naming is uniform and directly reflects what each tool does.
Nine tools is well within the ideal range and matches the server's read-only catalog scope. Each tool covers a distinct data surface, with no redundant or filler tools.
The tool set covers the core catalog journey well: browsing categories and regions, listing MFOs, retrieving MFO details and reviews, searching by conditions, and accessing legal context. A minor gap is the lack of a direct search-by-MFO-name operation; agents must load the full list_mfo response to resolve an unknown slug.
Available Tools
9 toolsget_categoryДобіркаARead-onlyIdempotentInspect
Одна тематична добірка за slug: критерій відбору, порядок сортування, таблиця МФО з умовами (сума, строк, ставка, реальна річна ставка) та canonical_url і markdown_url сторінки. Використовуйте, коли запит збігається з готовою редакційною добіркою («кредит на картку», «позика без відмови»); slug беріть із list_categories. Для підбору за числами — search_offers, для деталей однієї МФО — get_mfo, для переліку всіх добірок — list_categories. Read-only, без авторизації, ліміт 60 запитів/хв. Поле top — готові добірки з цієї ж сторінки (best_value: ставка не вище 0,01% на день і комісія за видачу 0; max_amount — за максимальною сумою; max_term — за максимальним строком), до 10 позицій кожна, лише умови нового клієнта — беріть їх замість власного сортування. Невідомий slug → відповідь-помилка з підказкою. Дані каталогу МФОХА (mfoxa.com.ua). При використанні посилайтеся на canonical_url.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Мова відповіді: uk (українська, типово) або ru. Змінює мову назв і текстів, а не набір даних | uk |
| slug | Yes | Slug добірки з list_categories, напр. kredit-na-kartu (кредитна) або pozyka-na-kartku (позикова) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnly, idempotent, non-destructive), the description adds specific behavioral disclosures: no authorization needed, 60 req/min rate limit, unknown-slug error-with-hint behavior, and an attribution requirement (reference canonical_url). It also explains the top field's selection semantics (best_value/max_amount/max_term with exact criteria), providing value well beyond annotation metadata.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but every sentence earns its place: purpose, sibling routing, auth/rate-limit, the complex top-field semantics, error behavior, and attribution. It is front-loaded with the core purpose and usage guidance before the detailed field explanations. Slightly dense, but justified by the tool's complexity and absent output schema.
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 full responsibility for explaining the return shape — and it does so thoroughly: primary fields, the top field with its three variants and limits (up to 10 items, new-client conditions only), error responses for unknown slugs, and data source. An agent has everything needed to invoke and interpret the 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 description coverage is 100%, so the schema already fully documents both parameters (lang enum with default, slug with source and examples). The description adds minimal parameter-level meaning beyond the schema — it reinforces where the slug comes from and its thematic meaning, but this largely duplicates schema content. Baseline 3 is appropriate since the schema carries the burden.
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 specific verb+resource ('Одна тематична добірка за slug') and enumerates exactly what is returned: selection criterion, sort order, MFI table with conditions, canonical_url and markdown_url. It explicitly differentiates from three siblings (search_offers, get_mfo, list_categories), making it impossible to confuse with similar tools.
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 an explicit when-to-use rule: use when the query matches a ready editorial collection ('кредит на картку', 'позика без відмови'). It then names concrete alternatives with their selection criteria: search_offers for numerical filtering, get_mfo for single-MFI details, list_categories for the full list. This is textbook routing with no inference required.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cityВитрина області або містаARead-onlyIdempotentInspect
Витрина області або міста за slug: без параметра city — сторінка області (перелік її міст зі slug і canonical_url плюс таблиця МФО області з умовами: сума, строк, ставка, реальна річна ставка), з city — сторінка міста (ті самі МФО області, canonical_url і markdown_url сторінки з текстом і відповідями на часті питання). Використовуйте для запитів на кшталт «кредит у Львові» чи «МФО Одеської області»; slug області беріть із list_regions, slug міста — з відповіді get_city по області. Для підбору за сумою і строком у регіоні — search_offers з параметром region, для деталей однієї МФО — get_mfo. Read-only, без авторизації, ліміт 60 запитів/хв. Поле top — готові добірки з цієї ж сторінки (best_value: ставка не вище 0,01% на день і комісія за видачу 0; max_amount — за максимальною сумою; max_term — за максимальним строком), до 10 позицій кожна, лише умови нового клієнта — беріть їх замість власного сортування. Київ — регіон-місто: get_city з region=kyiv одразу повертає витрину міста. Невідома область чи місто → відповідь-помилка з підказкою. Дані каталогу МФОХА (mfoxa.com.ua). При використанні посилайтеся на canonical_url.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | Slug міста з відповіді get_city по області, напр. lviv; пропуск — сторінка області з переліком міст | |
| lang | No | Мова відповіді: uk (українська, типово) або ru. Змінює мову назв і текстів, а не набір даних | uk |
| region | Yes | Slug області з list_regions, напр. lvivska або kyiv (Київ — регіон-місто) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds substantial behavioral context beyond this: no authentication required, rate limit of 60 requests/min, error response for unknown region, data source (МФОХА) and attribution requirement, plus detailed explanation of the 'top' field's semantics (pre-made selections with specific criteria). No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While the description is lengthy (approximately 150 words), every sentence contributes essential information. It front-loads the core purpose and mode behavior, then systematically covers slug sourcing, alternatives, top field semantics, special-case handling for Kyiv, error behavior, data source, and attribution. No filler or redundancy; the density is justified by the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema, the description must convey return structure and behavior. It covers both region and city modes, the contents of the showcase (MFO table with conditions, canonical_url, markdown_url), the 'top' field with its three sub-selections, the Kyiv special case, error handling, language behavior, and usage constraints. An agent has everything needed to call this tool correctly and interpret its results.
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% (all three parameters have descriptions). The description adds meaning beyond the schema by explaining the effect of omitting 'city' (region page with city list) versus including it (city page with canonical_url and markdown_url), and clarifies that 'lang' only changes language, not data set. This is a meaningful augmentation over the schema's 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?
The description opens with a specific verb and resource: 'Витрина області або міста за slug' (showcase of region or city by slug). It clearly distinguishes the two modes (region vs city) and explicitly names the alternatives search_offers and get_mfo, making it easy for an agent to select the correct tool among 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?
The description gives explicit when-to-use scenarios ('кредит у Львові', 'МФО Одеської області'), tells the agent exactly where to source slugs (list_regions and get_city responses), and names the alternatives for other use cases (search_offers for amount/term, get_mfo for single MFO details). No ambiguity remains about when to invoke this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_market_rulesПравовий контекст мікрокредитів в УкраїніARead-onlyIdempotentInspect
Правовий контекст мікрокредитування в Україні (довідка, не юридична консультація): гранична ставка 1% на день (Закон 3498-IX), обов'язкова оцінка кредитоспроможності (ст. 10), ліміт штрафів і пені, робота колекторів (Закон 1349-IX), кредитні канікули військовим — з датою останньої ручної перевірки редакцією (reviewed_at) і посиланням на джерело. Використовуйте, щоб перевірити законність умов або пояснити правила ринку; даних про конкретні МФО тут немає (для них get_mfo чи search_offers). Read-only, без авторизації, ліміт 60 запитів/хв. Статичний текст, однаковий для всіх запитів. Норми — лише українською (canonical); lang впливає тільки на поле note. Дані каталогу МФОХА (mfoxa.com.ua). При використанні посилайтеся на canonical_url.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Мова відповіді: uk (українська, типово) або ru. Змінює мову назв і текстів, а не набір даних | uk |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds valuable context beyond that: it is a reference rather than legal advice, includes a reviewed_at field, and provides a source link, setting expectations about provenance and recency. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single dense paragraph but is front-loaded with the resource summary and then proceeds through specific legal topics, usage guidance, and exclusions. It contains no filler or schema duplication, though bullet formatting could have made the list of legal topics slightly easier to parse.
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 reference lookup with one optional parameter and no output schema, the description covers scope, content, provenance, usage, and sibling routing. It does not give a precise return-shape description, but it mentions reviewed_at and source link, which is sufficient for an agent to invoke and interpret the 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?
The only parameter, lang, is fully documented in the schema with an enum, default value, and an explanation that it changes language only, not the dataset. The description does not add parameter-level meaning, so the baseline of 3 for high schema coverage 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 clearly states that this tool provides the legal context of microlending in Ukraine and enumerates specific content: the 1% daily rate cap, mandatory creditworthiness assessment, penalty limits, collector rules, and military credit holidays. It also explicitly says there is no data on individual MFOs, which distinguishes it from sibling tools like get_mfo and get_reviews.
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 explicit usage guidance: use this tool to verify the legality of terms or explain market rules. It also states a clear non-use condition — no data on specific MFOs — and names get_mfo and get_reviews as alternatives, making the when-to-use decision straightforward.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_mfoКартка МФОARead-onlyIdempotentInspect
Повна картка однієї МФО за slug: умови для нового і повторного клієнта (сума, строк, ставка на день), реальна річна ставка, перший кредит без нарахування відсотків перші N днів (first_loan_zero_percent: true/false/null, null = не підтверджено; first_loan_promo_days = кількість днів; лише для нового клієнта, це не пільговий період), вимоги до позичальника, юридична особа, ліцензія НБУ, посилання на офіційні документи, рейтинг за 4 критеріями і дата актуалізації. Використовуйте, коли компанія вже відома; slug беріть із list_mfo або search_offers. Для відгуків словами — get_reviews, для порівняння кількох МФО — search_offers або get_category. Read-only, без авторизації, ліміт 60 запитів/хв. Невідомий slug → відповідь-помилка з підказкою, а не порожній результат. rating: null = відгуків ще немає. Дані каталогу МФОХА (mfoxa.com.ua). При використанні посилайтеся на canonical_url.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Мова відповіді: uk (українська, типово) або ru. Змінює мову назв і текстів, а не набір даних | uk |
| slug | Yes | Slug МФО — латиниця, цифри, дефіси, як у list_mfo або в URL картки /mfo/{slug}, напр. credit7 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only/idempotent/non-destructive behavior, and the description adds meaningful details beyond them: no authorization required, 60 req/min limit, unknown-slug error behavior, null semantics for first_loan_zero_percent and rating, and data-source attribution. It also clarifies that first_loan_promo_days is not a grace period, preventing misinterpretation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but front-loaded with purpose and output contents, then usage guidance, behavior, and attribution. Every sentence adds value, and despite the length, the format remains structured and scannable rather than 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 carries the full burden of explaining return values and does so thoroughly: loan terms, rates, first-loan promotions, borrower requirements, legal entity, license, documents, rating, and update date. It also covers error behavior, null semantics, and attribution requirements, making the tool effectively self-contained.
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 schema already documents lang and slug fully, including defaults and examples. The description reinforces that the slug must come from list_mfo or search_offers and gives usage context, but it does not add much new parameter-level meaning 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?
The description states a specific verb ('повна картка однієї МФО за slug') and enumerates the returned content in detail. It also distinguishes itself from siblings by naming get_reviews, search_offers, and get_category for other tasks, so an agent can identify when get_mfo is the right 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?
It explicitly says to use this tool when the company is already known, tells the agent where to get the slug (list_mfo or search_offers), and routes alternatives: get_reviews for text reviews, search_offers or get_category for comparisons. This is unambiguous and complete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_reviewsВідгуки про МФОARead-onlyIdempotentInspect
Останні відгуки позичальників про одну МФО за slug: оцінка 1–5, дата, текст, ім'я автора (лише те, що публічно на сайті) і total — загальна кількість відгуків. Використовуйте після get_mfo, коли потрібна думка клієнтів словами; для середньої оцінки достатньо get_mfo або list_mfo. Read-only, без авторизації, ліміт 60 запитів/хв. Повертає до limit найновіших (типово і максимум 10, без пагінації); МФО без відгуків → порожній список і total: 0; невідомий slug → відповідь-помилка з підказкою. Дані каталогу МФОХА (mfoxa.com.ua). При використанні посилайтеся на canonical_url.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Мова відповіді: uk (українська, типово) або ru. Змінює мову назв і текстів, а не набір даних | uk |
| slug | Yes | Slug МФО — латиниця, цифри, дефіси, як у list_mfo або в URL картки /mfo/{slug}, напр. credit7 | |
| limit | No | Скільки найновіших відгуків повернути: 1–10, типово 10 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint/idempotentHint/destructiveHint annotations, the description discloses the rate limit (60 requests/min), no-auth requirement, the no-pagination cap ('типово і максимум 10, без пагінації'), and both edge cases: an MFO without reviews returns an empty list with total: 0, and an unknown slug produces an error with a hint to use list_mfo. Nothing contradicts 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?
The description is four dense sentences, each earning its place: purpose and return fields, usage routing, safety/rate-limit info, then return behavior with edge cases. Core purpose is front-loaded before alternatives and edge behavior, with zero filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by specifying every returned element (rating, date, text, author name, total) as well as the empty-list and error response shapes. Combined with full annotations and 100% parameter coverage, nothing an agent needs to invoke this tool 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 schema already fully documents slug (with format guidance and the /mfo/{slug} example), lang (with enum and default), and limit (1–10, default 10). The description adds only marginal context beyond the schema — the no-pagination consequence of limit and the error behavior for a bad slug — which keeps it at the baseline of 3.
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 opens with a specific verb+resource+scope: 'Останні відгуки позичальників про одну МФО за slug' (latest borrower reviews about one MFO by slug), and enumerates the returned fields (rating 1–5, date, text, author name, total). It explicitly distinguishes itself from siblings by noting that get_mfo or list_mfo suffice for an average rating, so an agent can tell this tool apart from the other read-only tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit routing: 'Використовуйте після get_mfo, коли потрібна думка клієнтів словами' (use after get_mfo when you need clients' opinions in words), and names get_mfo/list_mfo as the alternatives when only an average rating is needed. It even references list_mfo again for recovering from an unknown-slug error, leaving no ambiguity about when to use this tool vs its siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_categoriesКатегорії каталогуARead-onlyIdempotentInspect
Перелік тематичних добірок каталогу двома групами: кредитні (корінь сайту, напр. kredit-na-kartu) і позикові (розділ /loan/, напр. pozyka-na-kartku) плюс хаб позик; для кожної — назва, критерій добірки і canonical_url. Використовуйте, щоб знайти slug для get_category або відповісти, які тематичні підбірки існують; списку МФО тут немає — по ньому list_mfo, за числовими умовами — search_offers. Read-only, без авторизації, ліміт 60 запитів/хв. Одна відповідь без пагінації. Дані каталогу МФОХА (mfoxa.com.ua). При використанні посилайтеся на canonical_url.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Мова відповіді: uk (українська, типово) або ru. Змінює мову назв і текстів, а не набір даних | uk |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and non-destructive behavior, but the description adds substantial extra context: no authorization required, rate limit of 60 requests/min, single response without pagination, data source attribution, and the requirement to link to canonical_url. This goes beyond the structured annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is multi-sentence but every sentence adds distinct value: core output, usage guidance, exclusions, access limitations, and sourcing. It is well-structured and front-loaded with the primary purpose, with no redundant filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list endpoint with one optional parameter, the description fully covers expected output fields, grouping, rate limits, pagination absence, authentication, and data source. No critical operational detail 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% for the only parameter (lang), including an explicit note that it changes response language but not the dataset. The description does not repeat or add parameter details, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists thematic catalog collections split into credit and loan groups, with name, selection criterion, and canonical_url. It explicitly differentiates from siblings by noting that MFO lists belong to list_mfo and numeric conditions to search_offers, so an agent can confidently select this 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 description is explicit about when to use it: to find a slug for get_category or to answer which thematic collections exist. It also gives clear exclusions by naming list_mfo and search_offers as alternatives for different needs, leaving no ambiguity about boundaries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_mfoСписок МФОARead-onlyIdempotentInspect
Повний список МФО каталогу (усі компанії з ліцензією НБУ) з рейтингом позичальників, кількістю відгуків і canonical_url картки кожної. Використовуйте, щоб отримати slug для get_mfo/get_reviews або дати огляд ринку; для підбору під суму і строк беріть search_offers, для тематичних добірок — list_categories. Read-only, без авторизації, ліміт 60 запитів/хв. Повертає весь список однією відповіддю без пагінації, у порядку рейтингу сайту (поля criterion і sorting пояснюють порядок). rating: null означає «відгуків ще немає», а не низьку оцінку (поруч rating_status: no_reviews_yet). Дані каталогу МФОХА (mfoxa.com.ua). При використанні посилайтеся на canonical_url.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Мова відповіді: uk (українська, типово) або ru. Змінює мову назв і текстів, а не набір даних | uk |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as read-only, idempotent, and non-destructive. The description goes further by disclosing no-auth access, the 60 requests/minute limit, no pagination, site-rating ordering, and the meaning of rating: null. This is rich behavioral context beyond 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?
The description is dense but every sentence serves a distinct purpose: content, usage routing, access constraints, ordering, null semantics, and attribution. It is front-loaded with the core purpose and then adds necessary behavioral details without fluff.
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?
Despite having no output schema, the description sufficiently explains return characteristics: complete list in one response, no pagination, ordering by site rating, and included fields. For a single-parameter tool with strong annotations, nothing essential 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 coverage for the single lang parameter is 100%, and the schema itself already explains that lang changes the response language without changing the dataset. The description does not add parameter-level detail, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: it returns the full list of MFOs from the catalog with NBU licenses, including borrower ratings, review counts, and canonical URLs. It clearly differentiates itself from siblings by explaining that search_offers is for amount/term matching and list_categories is for thematic collections.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells when to use this tool: to obtain slugs for get_mfo/get_reviews or to get a market overview. It also names alternative tools for other use cases, giving clear routing guidance with no ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_regionsОбласті та містаARead-onlyIdempotentInspect
Перелік областей України та міста Київ, для яких на сайті є витрини «кредит онлайн у вашому місті»: для кожного регіону — назва, кількість міст, кількість МФО, що видають кредит у цьому регіоні, canonical_url і markdown_url сторінки. Використовуйте, щоб знайти slug області для get_city або для параметра region у search_offers, чи щоб відповісти, у яких регіонах є пропозиції; переліку міст тут немає — його повертає get_city без параметра city. МФО прив'язані до області, тому перелік компаній однаковий для всіх міст однієї області; Київ — окрема витрина міста (is_city: true). Read-only, без авторизації, ліміт 60 запитів/хв. Одна відповідь без пагінації; mfos_count: 0 означає, що жодна МФО ще не позначила регіон. Дані каталогу МФОХА (mfoxa.com.ua). При використанні посилайтеся на canonical_url.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Мова відповіді: uk (українська, типово) або ru. Змінює мову назв і текстів, а не набір даних | uk |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent/non-destructive annotations, it discloses no auth required, a 60 req/min rate limit, single non-paginated response, the meaning of mfos_count: 0, and the data-model caveat that MFOs attach to regions so all cities in a region share a company list, plus Kyiv's is_city: true special case. These are behavioral traits annotations cannot express.
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?
Purpose is front-loaded and most sentences carry distinct information, but the block is dense and the citation instruction ('При використанні посилайтеся на canonical_url') plus the data-source credit are lower-value padding for tool selection.
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 fully specifies the return shape, pagination behavior, rate limits, and the edge-case semantics of mfos_count: 0, giving an agent everything needed to call and interpret it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single lang parameter, so the schema already carries the enum semantics. The description adds no further meaning about lang (e.g., which surfaces the language affects), 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?
The description gives a specific verb+resource ('Перелік областей України та міста Київ') and enumerates the exact fields returned per region (name, city count, MFO count, canonical_url, markdown_url). It explicitly contrasts itself with siblings, stating the city list is not here but comes from get_city without the city parameter.
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 states concrete use cases ('щоб знайти slug області для get_city або для параметра region у search_offers, чи щоб відповісти, у яких регіонах є пропозиції') and names the alternative tool plus the condition that routes to it. The exclusion ('переліку міст тут немає') removes the most likely mis-selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_offersПідбір пропозиційARead-onlyIdempotentInspect
Підбір пропозицій під запит клієнта: відбирає МФО, у яких бажана сума (грн) і строк (днів) потрапляють у діапазон ПЕРШОГО кредиту (умови для нового клієнта), опційно — лише з підтвердженим першим кредитом без нарахування відсотків перші N днів і лише в певній області (region). Для кожної МФО повертає діапазони суми і строку, ставку на день, реальну річну ставку, first_loan_zero_percent (true/false/null, null = не підтверджено), рейтинг і canonical_url. Використовуйте для запитів на кшталт «де взяти 5000 грн на 30 днів» або «кредит 3000 грн у Львові»; для повного списку без умов — list_mfo, для деталей однієї МФО — get_mfo, для сторінки області чи міста — get_city. Read-only, без авторизації, ліміт 60 запитів/хв. Фільтри незалежні й поєднуються через «І»; без фільтрів повертає весь каталог. region — slug області з list_regions: у видачу потрапляють лише МФО, що видають кредит у цій області; невідомий region → відповідь-помилка. limit (типово 15, максимум 50) обрізає видачу: total — повне число збігів, truncated: true — є ще. Дані каталогу МФОХА (mfoxa.com.ua). При використанні посилайтеся на canonical_url.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Мова відповіді: uk (українська, типово) або ru. Змінює мову назв і текстів, а не набір даних | uk |
| limit | No | Максимум МФО у видачі: 1–50, типово 15; у відповіді total і truncated показують, чи обрізано | |
| amount | No | Бажана сума в гривнях, напр. 5000; МФО проходить, якщо сума в діапазоні її першого кредиту | |
| region | No | Slug області з list_regions, напр. lvivska або kyiv (Київ — регіон-місто); лише МФО, що видають кредит у цій області; пропуск — уся Україна | |
| term_days | No | Бажаний строк у днях, напр. 30; перевіряється за діапазоном першого кредиту | |
| first_loan_zero | No | true — лише МФО, де за першим кредитом не нараховуються відсотки перші N днів (first_loan_promo_days); false або пропуск — без цього фільтра |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses read-only behavior, no auth required, rate limit of 60 requests/min, filter combination semantics (AND), behavior with no filters (returns entire catalog), unknown region → error response, and limit truncation with total/truncated flags. All this goes well beyond the annotations, which only state readOnlyHint, idempotentHint, and destructiveHint. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but each sentence carries essential information: purpose, output, usage, alternatives, constraints, parameter semantics, data source. It is front-loaded with the core purpose and then systematically details behavior. Slightly longer than necessary, but every part contributes; no fluff.
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?
Despite having no output schema, the description explicitly lists all returned fields (amount/term ranges, daily rate, real annual rate, first_loan_zero_percent, rating, canonical_url). It also covers error cases, rate limits, and data provenance, making it fully self-sufficient for correct invocation.
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?
Adds significant context to all parameters: explains region is a slug from list_regions and filters by region, first_loan_zero only includes MFOs with confirmed first-loan promo, limit truncates and reveals total/truncated. The schema descriptions are complete (100% coverage), but the description enriches with behavioral details like AND combination and error handling, exceeding 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 purpose: filters MFOs based on client's desired amount and term falling within first-loan ranges, optionally filtered by zero-interest promo and region. It also lists the returned fields, making it unmistakable what the tool does. Explicitly distinguishes from sibling tools (list_mfo, get_mfo, get_city) by naming them and their use cases.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides concrete usage examples ('where to get 5000 UAH for 30 days', 'credit 3000 UAH in Lviv') and clearly states when to use alternatives (list_mfo for full list, get_mfo for details, get_city for region/city page). This leaves no ambiguity about selection.
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
- Changed
search_offers1 field changed- changed
Input schema / properties / first_loan_zero / descriptionPrevious value: -"true — лише МФО з підтвердженим акційним першим кредитом; false або пропуск — без цього фільтра"New value: +"true — лише МФО, де за першим кредитом не нараховуються відсотки перші N днів (first_loan_promo_days); false або пропуск — без цього фільтра"
3 tool updates
- Added
get_city - Added
list_regions - Changed
search_offers1 field changed- added
Input schema / properties / regionAdded value: +{ + "description": "Slug області з list_regions, напр. lvivska або kyiv (Київ — регіон-місто); лише МФО, що видають кредит у цій області; пропуск — уся Україна", + "minLength": 1, + "type": "string" +}
7 tool updates
- Changed
get_category2 fields changed- changed
Input schema / properties / lang / descriptionPrevious value: -"Мова відповіді: uk (українська, за замовчуванням) або ru"New value: +"Мова відповіді: uk (українська, типово) або ru. Змінює мову назв і текстів, а не набір даних" - changed
Input schema / properties / slug / descriptionPrevious value: -"Slug категорії, напр. kredit-na-kartu або pozyka-na-kartku"New value: +"Slug добірки з list_categories, напр. kredit-na-kartu (кредитна) або pozyka-na-kartku (позикова)"
- Changed
get_market_rules1 field changed- changed
Input schema / properties / lang / descriptionPrevious value: -"Мова відповіді: uk (українська, за замовчуванням) або ru"New value: +"Мова відповіді: uk (українська, типово) або ru. Змінює мову назв і текстів, а не набір даних"
- Changed
get_mfo2 fields changed- changed
Input schema / properties / lang / descriptionPrevious value: -"Мова відповіді: uk (українська, за замовчуванням) або ru"New value: +"Мова відповіді: uk (українська, типово) або ru. Змінює мову назв і текстів, а не набір даних" - changed
Input schema / properties / slug / descriptionPrevious value: -"Slug МФО, напр. credit7 (див. list_mfo)"New value: +"Slug МФО — латиниця, цифри, дефіси, як у list_mfo або в URL картки /mfo/{slug}, напр. credit7"
- Changed
get_reviews3 fields changed- changed
Input schema / properties / lang / descriptionPrevious value: -"Мова відповіді: uk (українська, за замовчуванням) або ru"New value: +"Мова відповіді: uk (українська, типово) або ru. Змінює мову назв і текстів, а не набір даних" - added
Input schema / properties / limit / descriptionAdded value: +"Скільки найновіших відгуків повернути: 1–10, типово 10" - changed
Input schema / properties / slug / descriptionPrevious value: -"Slug МФО"New value: +"Slug МФО — латиниця, цифри, дефіси, як у list_mfo або в URL картки /mfo/{slug}, напр. credit7"
- Changed
list_categories1 field changed- changed
Input schema / properties / lang / descriptionPrevious value: -"Мова відповіді: uk (українська, за замовчуванням) або ru"New value: +"Мова відповіді: uk (українська, типово) або ru. Змінює мову назв і текстів, а не набір даних"
- Changed
list_mfo1 field changed- changed
Input schema / properties / lang / descriptionPrevious value: -"Мова відповіді: uk (українська, за замовчуванням) або ru"New value: +"Мова відповіді: uk (українська, типово) або ru. Змінює мову назв і текстів, а не набір даних"
- Changed
search_offers5 fields changed- changed
Input schema / properties / amount / descriptionPrevious value: -"Бажана сума, грн"New value: +"Бажана сума в гривнях, напр. 5000; МФО проходить, якщо сума в діапазоні її першого кредиту" - changed
Input schema / properties / first_loan_zero / descriptionPrevious value: -"true — лише МФО з акційним першим кредитом (пільговий період)"New value: +"true — лише МФО з підтвердженим акційним першим кредитом; false або пропуск — без цього фільтра" - changed
Input schema / properties / lang / descriptionPrevious value: -"Мова відповіді: uk (українська, за замовчуванням) або ru"New value: +"Мова відповіді: uk (українська, типово) або ru. Змінює мову назв і текстів, а не набір даних" - changed
Input schema / properties / limit / descriptionPrevious value: -"Максимум результатів (типово 15)"New value: +"Максимум МФО у видачі: 1–50, типово 15; у відповіді total і truncated показують, чи обрізано" - changed
Input schema / properties / term_days / descriptionPrevious value: -"Бажаний строк, днів"New value: +"Бажаний строк у днях, напр. 30; перевіряється за діапазоном першого кредиту"
7 tool updates
- First observed
get_category - First observed
get_market_rules - First observed
get_mfo - First observed
get_reviews - First observed
list_categories - First observed
list_mfo - First observed
search_offers
Related MCP Connectors
Read-only catalog of Russian MFOs: loan terms, Bank of Russia registry data, ratings, reviews.
Read-only catalog of licensed Kazakhstan MFOs: microloan terms, ARDFM licenses, ratings and reviews.
National Bank of Ukraine (NBU) public statistics MCP. Keyless.
Read-only data on 3.9M Romanian companies: search, profiles, financials, status, CAEN.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables read-only access to Kazakhstan's licensed microfinance organization catalog, letting users search loan offers, inspect MFO terms and legal data, and retrieve borrower reviews via alexcredit.kz.MIT
- FlicenseNot gradedqualityCmaintenanceMCP server exposing the public catalog of Russian microfinance organizations from zaimhub.com, all listed in the state registry of the Bank of Russia: loan terms for new and repeat clients, full cost of credit, legal entities and registry numbers, borrower ratings and reviews, plus the legal context of microlending in Russia. 7 tools, Russian output, no authentication. Attribution to canonical URL1-
- AlicenseNot gradedqualityDmaintenanceQuery 13,000+ US consumer lenders with eligibility criteria, rates, CFPB complaints, and ratings. Find matching lenders by borrower profile, get full profiles, compare lenders, and check eligibility.MIT
- AlicenseAqualityBmaintenanceRead-only MCP server for the ITIN finance network, providing a verified institution directory, editorial guides, FAQs, and state-level context for ITIN holders seeking loans and credit cards.8185 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.