Skip to main content
Glama

firmy.ai

Server Details

Polish companies and people: KRS, CEIDG, financials, boards, VAT, sanctions. Free, no API key.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4.4/5.0

Scored across 8 tools

Disambiguation5/5

Each tool targets a distinct resource and action: search_* resolves names to IDs, get_* fetches full records, list_companies browses by city/PKD/legal form, rank_companies orders by a single metric, and refresh_company is explicitly framed as a cache-busting fallback to get_company. The descriptions actively cross-reference each other (e.g. 'gdy masz tylko nazwę, najpierw search_companies'), leaving little room for misselection.

Naming Consistency5/5

All eight names follow a strict verb_noun snake_case pattern (get_, search_, list_, rank_, refresh_), with singular/plural used correctly to signal single-record vs list results (get_company vs list_companies, get_person vs search_persons).

Tool Count5/5

Eight tools is a tight, well-scoped surface for a read-only company/person registry: two search resolvers, two record getters, one browse, one ranking, one refresh, and one account/mode check. Every tool has a clear, non-redundant role.

Completeness4/5

The lifecycle is well covered for a lookup domain: resolve ID → fetch profile with selectable sections → browse/rank → refresh stale data, plus a mode/auth check that gates paid sections. Minor gaps remain, such as no refresh or equivalent for person records and no native multi-company comparison, though the descriptions point users to get_company with financials as a workaround.

Available Tools

8 tools
get_accountTryb i kontoA
Read-onlyIdempotent
Inspect

Zwraca tryb, w jakim działasz (darmowy albo Pro), i czy jesteś zalogowany; w trybie darmowym także krótką instrukcję, jak korzystać z serwera. Tryb darmowy czyta tylko to, co serwis już zna (sekcja spoza pamięci wraca jako "missing" z AUTH_REQUIRED); "id" to KRS, NIP, REGON, adres firmy.ai albo "p-…" osoby; zacznij od search_companies, gdy nie masz identyfikatora. Użyj na początku rozmowy, żeby wiedzieć, czy sekcje spoza pamięci serwisu da się dociągnąć. Koszt: 0 operacji. Przykład: {}.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
hintNo
modeYes
authenticatedYes

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and idempotentHint, so the safety profile is covered. The description adds genuinely useful behavior beyond that: free mode only reads what the service already knows, off-memory sections return 'missing' with AUTH_REQUIRED, and the call costs 0 operations. The only weakness is that the identifier-format sentences describe behavior this zero-parameter tool does not perform.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core content (mode, login, free-tier limits, cost) is front-loaded and useful, but the middle segment about 'id' formats and search_companies is irrelevant to a no-argument tool and inflates the text. One sentence of genuinely off-topic material undercuts an otherwise compact line.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be spelled out; the description still covers what an agent needs — mode, auth state, free-tier restrictions, AUTH_REQUIRED behavior, and cost. Only the misplaced identifier discussion keeps it from being fully tailored to this tool's actual surface.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With zero parameters the baseline is 4, but the description explicitly discusses an 'id' argument (KRS/NIP/REGON/address/'p-…'), which does not exist in this tool's schema. This injects parameter-like semantics that could mislead an agent into expecting or supplying an identifier, so it scores below the clean baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening clause names a concrete verb and resource: returns the operating mode (free or Pro) and login status, plus free-tier usage instructions. This is distinguishable from data-fetching siblings like get_company, though the later sentences about 'id' formats (KRS, NIP, REGON, 'p-…') describe identifier semantics that belong to other tools and muddy the purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Użyj na początku rozmowy' gives an explicit call condition (start of conversation) tied to a stated goal — knowing whether off-memory sections can be fetched. The additional 'zacznij od search_companies, gdy nie masz identyfikatora' is guidance for a different tool and reads as copy-paste, but the core when-to-use is unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_companyProfil firmyAInspect

Tryb darmowy czyta tylko to, co serwis już zna (sekcja spoza pamięci wraca jako "missing" z AUTH_REQUIRED); "id" to KRS, NIP, REGON, adres firmy.ai albo "p-…" osoby; zacznij od search_companies, gdy nie masz identyfikatora. Zwraca profil firmy i sekcje z "include" (bez "include": profile, people, ownership, ai_scores, description) w jednym wywołaniu oraz mapę "available", która mówi, co jeszcze można dopytać (finanse, dokumenty, VAT, sankcje, przetargi i inne). Sekcje do wyboru: profile, people, ownership, subsidiaries, group_structure, sole_proprietor, financials, documents, beneficial_owners, vat, bankruptcy, sanctions, knf_warnings, tenders, public_aid, domain, ai_scores, description, job_offers, foundation_spending, reviews, similar. Użyj, gdy masz KRS, NIP, REGON albo adres strony firmy; gdy masz tylko nazwę, najpierw search_companies. Koszt w trybie Pro (operacje za sekcję, która chybiła w pamięci serwisu): profile 3, subsidiaries 1, sole_proprietor 1, financials 20, documents 1, beneficial_owners 5, vat 1, bankruptcy 4, public_aid 1, domain 1, description 1, job_offers 1, foundation_spending 20; w trybie darmowym 0, a sekcja spoza pamięci wraca jako "missing" z AUTH_REQUIRED. Przykład: {"id": "0000006865", "include": ["financials", "vat", "sanctions"]}.

NameRequiredDescriptionDefault
idYesKRS (10 cyfr), NIP (także z myślnikami), REGON (9 albo 14 cyfr) albo adres strony firmy na firmy.ai (/KRS/…, /NIP/…). Serwer sam rozpoznaje typ.
freshNoPobierz ponownie mimo pamięci serwisu. W trybie darmowym zawsze AUTH_REQUIRED.
id_typeNoWymusza typ identyfikatora, gdy wiesz lepiej: krs, nip, regon albo person. Zwykle zbędne: serwer rozpoznaje typ sam.
includeNoKtóre sekcje zwrócić: profile, people, ownership, subsidiaries, group_structure, sole_proprietor, financials, documents, beneficial_owners, vat, bankruptcy, sanctions, knf_warnings, tenders, public_aid, domain, ai_scores, description, job_offers, foundation_spending, reviews, similar. Sekcja profile jest zawsze. Bez tego pola: profile, people, ownership, ai_scores, description.
estimateNoNic nie pobieraj, pokaż tylko, które sekcje są w pamięci i ile by kosztowały w trybie Pro.

Output Schema

NameRequiredDescription
urlYes
vatNo
modeYes
as_ofYes
domainNo
peopleNo
sourceYes
profileNo
reviewsNo
similarNo
tendersNo
estimateNo
includedYes
ai_scoresNo
availableYes
documentsNo
ownershipNo
sanctionsNo
bankruptcyNo
financialsNo
job_offersNo
public_aidNo
descriptionNo
id_resolvedYes
knf_warningsNo
subsidiariesNo
group_structureNo
sole_proprietorNo
beneficial_ownersNo
foundation_spendingNo

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations by disclosing free-mode limitations (sections outside cache return 'missing' with AUTH_REQUIRED), per-section Pro-mode costs, default included sections, and the 'available' map listing additional queryable data. These are critical operational details not covered by annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense and lengthy, repeating the full section list twice and embedding cost details in a long paragraph. It is not front-loaded: the primary purpose is stated only after free-mode edge cases. Bullet points or tighter grouping would improve scanability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity, the description is thorough: it covers usage prerequisites, mode differences, section defaults, cost model, identifier types, and a sample call. An output schema exists, so return values need not be detailed further; nothing crucial is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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; however, the description adds meaningful context by noting that 'id' can also be a person ID ('p-…') and provides a concrete example. It also repeats default include behavior already in the schema, but the extra person-ID and example justify a 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: returns a company profile plus selected sections via 'include'. Distinguishes from siblings by naming search_companies when no identifier exists and acknowledging person IDs ('p-…') that route to get_person.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says to use this tool when you have KRS, NIP, REGON, or a firm website address, and to call search_companies first when you only have a name. Also clarifies free vs Pro mode behavior and the purpose of 'estimate' and 'fresh'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_personProfil osobyAInspect

Zwraca profil osoby z KRS (funkcje w firmach, bez daty urodzenia) i sekcje z "include" (bez "include": profile, shareholdings, co_managers, sanctions, bio) w jednym wywołaniu oraz mapę "available". Sekcje do wyboru: profile, shareholdings, co_managers, beneficial_owner_in, sanctions, bio, namesakes. Użyj, gdy masz identyfikator osoby "p-…" z search_persons, z odpowiedzi get_company albo adres strony /osoba/…; gdy masz tylko imię i nazwisko, najpierw search_persons. Osoba, która sprzeciwiła się publikacji, odpowiada błędem GONE. Koszt w trybie Pro (operacje za sekcję, która chybiła w pamięci serwisu): profile 1, shareholdings 1, bio 1; w trybie darmowym 0, a sekcja spoza pamięci wraca jako "missing" z AUTH_REQUIRED. Przykład: {"id": "p-a4df0b6002743095015b98a43bddabc8", "include": ["shareholdings", "co_managers"]}.

NameRequiredDescriptionDefault
idYesIdentyfikator osoby "p-…" (z search_persons albo z odpowiedzi get_company), dawny adres z imieniem i datą albo adres strony /osoba/… na firmy.ai.
freshNoPobierz ponownie mimo pamięci serwisu. W trybie darmowym zawsze AUTH_REQUIRED.
id_typeNoWymusza typ identyfikatora, gdy wiesz lepiej: krs, nip, regon albo person. Zwykle zbędne: serwer rozpoznaje typ sam.
includeNoKtóre sekcje zwrócić: profile, shareholdings, co_managers, beneficial_owner_in, sanctions, bio, namesakes. Sekcja profile jest zawsze. Bez tego pola: profile, shareholdings, co_managers, sanctions, bio.
estimateNoNic nie pobieraj, pokaż tylko, które sekcje są w pamięci i ile by kosztowały w trybie Pro.

Output Schema

NameRequiredDescription
bioNo
urlYes
modeYes
as_ofYes
sourceYes
profileNo
estimateNo
includedYes
availableYes
namesakesNo
sanctionsNo
co_managersNo
id_resolvedYes
shareholdingsNo
beneficial_owner_inNo

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, the description discloses important behavior: opted-out people return a GONE error, Pro-mode section costs, free-mode AUTH_REQUIRED/'missing' behavior, default sections when 'include' is omitted, and the presence of an 'available' map. These are concrete operational traits not covered by readOnlyHint/openWorldHint/idempotentHint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with purpose, then usage, error behavior, cost model, and an example. It is dense and mostly earns its length, but the repeated section/default enumeration and cost detail make it slightly longer than strictly necessary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex read tool with five parameters, full schema coverage, and an output schema, the description covers the key gaps: identifier sources, default section behavior, error cases, and cost semantics. An agent has enough context to call it correctly without additional documentation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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 still adds value by explaining the default 'include' set, listing selectable sections, describing per-section cost behavior, and giving a concrete example, though it does not add much for 'fresh', 'id_type', or 'estimate' beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Zwraca profil osoby z KRS', and explains that it returns selected sections plus an 'available' map in one call. It also distinguishes the tool from search_persons by requiring a person identifier rather than a name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly says when to use it: when you have a 'p-…' identifier from search_persons, get_company, or an /osoba/ page. It also names the alternative path: 'gdy masz tylko imię i nazwisko, najpierw search_persons'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_companiesLista firmA
Read-onlyIdempotent
Inspect

Zwraca stronę 100 firm z listy tak, jak ją pokazują listy na stronie: według miasta, działu PKD (dwie cyfry), formy prawnej albo litery początkowej nazwy (litera tylko z miastem). Użyj do przeglądania firm z jednego miasta, branży albo formy prawnej; gdy szukasz konkretnej firmy po nazwie, użyj search_companies. Koszt w trybie Pro: 0 operacji. Lista działu PKD czyta nocne fakty i bywa niedostępna, gdy jeszcze ich nie zbudowano. Przykład: {"pkd_division": "62", "city": "Kraków", "page": 2}.

NameRequiredDescriptionDefault
cityNoMiasto z listy serwisu, np. "Kraków" (z polskimi znakami albo bez).
pageNoNumer strony, od 1 (po 100 firm).
letterNoPierwsza litera albo cyfra nazwy; tylko razem z "city".
legal_formNoForma prawna, np. "Spółka z o.o." albo "Fundacja".
pkd_divisionNoDział PKD, dwie cyfry, np. "62".

Output Schema

NameRequiredDescription
modeYes
itemsYes
sourceNo
next_pageYes
total_countNo

TDQS

A4.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is covered. The description adds real value beyond that: zero cost in Pro mode, and the caveat that PKD-division listings read nightly facts and may be unavailable before those facts are built. These are genuine operational traits the schema 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded in the first clause, followed by usage, cost, availability caveat, and an example — every sentence carries information. It is dense but slightly sprawling for a single paragraph; splitting the caveat would improve scanability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be described. The description covers page size, the page parameter, all filter dimensions, the cost model, and the main failure mode, leaving nothing an agent needs before invoking it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents each of the five parameters. The description still adds the non-obvious cross-field constraint (letter only with city) and a concrete example payload {"pkd_division": "62", "city": "Kraków", "page": 2} showing how filters combine.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a concrete action and resource: returns a page of 100 companies from the site's list, with the exact ordering dimensions (city, two-digit PKD division, legal form, or initial letter). It is immediately distinguishable from search_companies, which is named and reserved for name lookups.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says to use this for browsing companies within one city, industry, or legal form, and explicitly routes name-based lookup to search_companies. It also encodes the cross-parameter rule that the letter filter works only together with city.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rank_companiesRanking firmA
Read-onlyIdempotent
Inspect

Zwraca ranking firm według jednej miary: revenue (przychody), profit (zysk netto), growth (wzrost przychodów r/r), margin (marża netto), altman (wskaźnik Altmana Z) albo valuation (wycena AI), z wartością miary, opcjonalnie dla jednego miasta. Użyj do pytań „największe, najbardziej zyskowne, najszybciej rosnące firmy”; nie użyj do porównania dwóch konkretnych firm (wołaj dla nich get_company z sekcją financials). Koszt w trybie Pro: 0 operacji. Ranking obejmuje tylko firmy ze zbadanymi sprawozdaniami. Przykład: {"metric": "revenue", "city": "Gdańsk", "limit": 10}.

NameRequiredDescriptionDefault
cityNoMiasto z listy serwisu, np. "Gdańsk"; bez niego ranking krajowy.
limitNoIle firm (domyślnie 20, najwyżej 100).
metricYesMiara rankingu: revenue (przychody), profit (zysk netto), growth (wzrost r/r), margin (marża netto), altman (wskaźnik Altmana Z), valuation (wycena AI).

Output Schema

NameRequiredDescription
modeYes
itemsYes
sourceNo
next_pageYes
total_countNo

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare readOnly and idempotent; the description adds real behavioural context: zero operation cost on the Pro plan, the coverage caveat that the ranking includes only companies with examined/audited financial statements, and a concrete call example. The one missing trait is sort order (implicitly descending from 'largest' but never stated).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single dense paragraph that front-loads the resource, then metrics, then usage routing, then caveats and example — good ordering. It does repeat the full metric list already present in the enum descriptions, which is redundant but keeps the tool self-contained.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With annotations, a full schema and an output schema present, the description supplies the remaining decision-relevant facts: cost, data-coverage limitation, alternative route and an example payload. Only sorting direction and the meaning of the AI 'valuation' score remain unstated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and each parameter already carries its own description and enum glosses, so the description's metric glosses mostly restate the schema. The only added value is the worked example showing metric+city+limit combined; baseline 3 applies when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb+resource (returns a company ranking) and enumerates exactly which measures can be ranked (revenue, profit, growth, margin, altman, valuation), plus the optional city scoping. It also explicitly contrasts itself with get_company, so an agent can distinguish it from siblings without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

States the triggering question types ('largest, most profitable, fastest growing companies') and an explicit exclusion: do not use it to compare two specific companies, call get_company with the financials section instead. When-to-use, when-not-to-use and the named alternative are all present.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

refresh_companyOdśwież firmęAInspect

Odświeża dane firmy: unieważnia pamięć podręczną, ładuje ją od nowa razem ze sprawozdaniami, zapisuje wskaźniki i zwraca pola, które się zmieniły; ta sama blokada 6 godzin na firmę co przycisk „Odśwież” na stronie. Użyj, gdy get_company zwraca dane wyraźnie nieaktualne i potrzebujesz nowszych; w innych wypadkach get_company wystarcza. Koszt w trybie Pro: 25 operacji; w trybie darmowym narzędzie odpowiada AUTH_REQUIRED, a z "estimate": true szacunkiem (0 operacji, "allowed": false). Przykład: {"id": "0000006865"}.

NameRequiredDescriptionDefault
idYesKRS, NIP, REGON albo adres strony firmy na firmy.ai.
id_typeNoWymusza typ identyfikatora, gdy wiesz lepiej: krs, nip, regon albo person. Zwykle zbędne: serwer rozpoznaje typ sam.
estimateNoTylko oszacuj koszt, nie odświeżaj.

Output Schema

NameRequiredDescription
codeNo
estimateNo

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnlyHint=false, idempotentHint=false) it discloses concrete operational traits: the same 6-hour lock as the web button, 25 Pro operations cost, free-mode AUTH_REQUIRED response, and the estimate=true path returning a quote with allowed=false. This is exactly the context annotations cannot carry.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the operation's effects, then usage, then cost, then example – a sensible order with no filler. It is dense and packs several clauses into one long sentence, which slightly hurts scannability but costs no accuracy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with an output schema present, the description supplies everything else an agent needs: trigger condition, alternative, locking/rate-limit behavior, pricing, and auth failure mode. The return values themselves are covered by the output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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 adds a concrete call example ({"id": "0000006865"}) and clarifies the estimate parameter's return semantics in free mode, which the schema's one-line description does not convey.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (odświeża) and resource (dane firmy), then enumerates exactly what refresh means: cache invalidation, reload including reports, indicator persistence, and returning changed fields. This clearly separates it from get_company, which only reads.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Użyj, gdy get_company zwraca dane wyraźnie nieaktualne... w innych wypadkach get_company wystarcza" gives an explicit trigger and an explicit default to the sibling. It additionally surfaces the 6-hour per-company lock and the cost, which an agent needs before choosing this over the cheap read.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_companiesSzukaj firmA
Read-onlyIdempotent
Inspect

Zwraca listę firm z KRS pasujących do nazwy, NIP-u, numeru KRS albo REGON-u: id (numer KRS), nazwę, NIP, REGON, miasto, formę prawną, status i adres strony. Użyj, gdy nie masz identyfikatora firmy albo chcesz zawęzić nazwę do miasta; gdy masz KRS lub NIP, wołaj od razu get_company. Koszt w trybie Pro: 0 operacji (wyszukiwarka KRS i baza, bez płatnych źródeł). Przykład: {"query": "CD Projekt", "city": "Warszawa"}.

NameRequiredDescriptionDefault
cityNoMiasto siedziby, np. "Gdańsk"; zawęża wyszukiwanie po nazwie.
pageNoNumer strony wyników, od 1.
limitNoIle wyników na stronie (domyślnie 20, najwyżej 100).
queryYesNazwa firmy, NIP, numer KRS albo REGON (cyfry mogą być oddzielone spacjami albo myślnikami).

Output Schema

NameRequiredDescription
modeYes
itemsYes
sourceNo
next_pageYes
total_countNo

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and idempotentHint, so the safety profile is covered. The description adds genuinely non-structured context: the Pro-mode cost is 0 operations because only KRS search and the database are queried, no paid sources. It does not describe result ordering or page-size behavior, so it stops short of full transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the purpose, then the routing rule, then cost, then an example — a sensible order with little waste. The returned-field enumeration is slightly redundant given an output schema exists, but it is compressed into one clause.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a search tool with a full 4-parameter schema, an output schema, and safety annotations, nothing an agent needs is missing: match keys, sibling routing, cost, and a usage example are all present. Pagination and limits are fully specified in the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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 earns the extra point by giving a concrete example combining 'query' and 'city' and by stating that city narrows a name search, which the schema only implies. Numeric-format tolerance and limits are left to the schema, which already documents them.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Zwraca listę firm z KRS') and enumerates the match keys (nazwa, NIP, KRS, REGON) plus the returned fields. It explicitly contrasts itself with the sibling get_company, so an agent can distinguish the two 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.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives both directions: use this when you have no company identifier or want to narrow a name to a city, and call get_company directly when you already have KRS or NIP. That is an explicit when/when-not with a named alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_personsSzukaj osóbA
Read-onlyIdempotent
Inspect

Zwraca listę osób z KRS o podanym imieniu i nazwisku: publiczny identyfikator "p-…" (id), imiona, nazwisko, liczbę powiązań z firmami i adres strony. Użyj, gdy masz imię i nazwisko, a potrzebujesz identyfikatora osoby do get_person; imiennicy są rozróżniani przez liczbę powiązań, a ich profile przez get_person. Nie ma wyszukiwania po PESEL ani po dacie urodzenia. Koszt w trybie Pro: 0 operacji. Przykład: {"query": "Jan Kowalski"}.

NameRequiredDescriptionDefault
pageNoNumer strony wyników, od 1.
limitNoIle wyników na stronie (domyślnie 20, najwyżej 100).
queryYesImię i nazwisko osoby, np. "Jan Kowalski".

Output Schema

NameRequiredDescription
modeYes
itemsYes
sourceNo
next_pageYes
total_countNo

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover readOnlyHint and idempotentHint, but the description adds real behavioral context: cost of 0 operations in Pro mode, the fact that homonyms are disambiguated by company-link count, and the hard limits on searchable fields. It does not discuss result ordering or how paging interacts with large homonym sets, so it stops short of 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single tight paragraph that front-loads what is returned before the usage routing and constraints. Every sentence carries information, though the list of returned fields is somewhat dense and partially redundant with the output schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a three-parameter read-only search with an output schema, the description covers everything an agent needs: input shape, the downstream tool to call with the returned id, disambiguation of same-name people, unsupported search keys, and cost. No behavioral question is left open.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so page, limit and query are already documented; the description adds the query shape via a concrete example ({"query": "Jan Kowalski"}) and reinforces that the input is a full first+last name. Page and limit semantics are left entirely to the schema, which is acceptable given full coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource (returns a list of persons from KRS matching a first and last name) and enumerates the returned fields (id, names, surname, company-link count, page URL). It also distinguishes itself from the sibling get_person, which is the profile-detail counterpart.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states the exact trigger condition ("Użyj, gdy masz imię i nazwisko, a potrzebujesz identyfikatora osoby do get_person") and routes the agent onward to get_person for profiles. It also declares explicit exclusions: no search by PESEL or date of birth, so the agent knows when this tool will not work.

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. 8 tool updates
    • First observedget_account
    • First observedget_company
    • First observedget_person
    • First observedlist_companies
    • First observedrank_companies
    • First observedrefresh_company
    • First observedsearch_companies
    • First observedsearch_persons

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Remote MCP server that lets AI assistants read tracked competitive intelligence — competitor news, reviews, website changes, social posts and ads — and act on it by managing projects, competitors, battle cards, reports and canvases. Every answer carries a source and a date, and write actions only publish when explicitly shared.
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables 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.
    16
    18 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Browse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources