Firmoscop
Server Details
Romanian companies: full profile, financials, ANAF debts, risk verdict, watchlist, prospect lists.
- Status
- Healthy
- Uptime
- 100.0% over the last 24 hours
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 16 tools
Most tools have clearly distinct purposes (search by name, CAEN code search, ANAF debts, public contracts, watchlist actions). However, profil_firma explicitly bundles the same data as bilanturi_firma, contracte_publice, firme_legate, istoric_firma and datorii_anaf, so an agent must decide between the summary and the detailed versions with only a thin hint in the descriptions. cauta_firma vs prospecteaza_firme is also a subtle boundary (lookup vs filtered prospecting).
All names are lowercase snake_case, which is consistent and readable. There is some mixing of verb_phrase (cauta_firma, verifica_firma, urmareste_firma) and noun_phrase (bilanturi_firma, contracte_publice, istoric_firma, profil_firma) conventions, but the pattern remains predictable enough to navigate.
16 tools is at the upper end of the comfortable range but each covers a distinct data source or workflow (search, profile, financials, debts, contracts, linked firms, history, risk verdict, prospecting, watchlist, account). Slight redundancy from profil_firma duplicating several single-purpose tools keeps it from a 5.
The surface covers the full lifecycle of Romanian company intelligence: discovery (search, CAEN, prospecting), deep profile, financials, ANAF debts, public contracts, linked firms, registry history, risk verdict, and watchlist create/list/remove. No obvious dead ends or missing CRUD operations for the stated domain.
Available Tools
16 toolsbilanturi_firmaBilanțurile unei firme, pe aniARead-onlyIdempotentInspect
Toți anii de bilanț depuși la Ministerul Finanțelor, cel mai recent întâi: cifra de afaceri, rezultatul net, numărul de angajați, capitalurile proprii, datoriile, activele, veniturile și cheltuielile totale. Gratuit. PFA-urile și II-urile nu depun bilanț.
| Name | Required | Description | Default |
|---|---|---|---|
| cui | Yes | CUI-ul firmei (codul unic de înregistrare), cu sau fără prefixul RO. Dacă ai doar numele, află-l întâi cu cauta_firma. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only/idempotent semantics, and the description adds real value beyond them: the newest-first ordering, the exact set of figures returned, the cost (free), and the PFA/II exclusion. It stops short of stating paging or empty-result behavior, but adds meaningful context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the core action and the returned fields, then the cost and the entity-type caveat. Dense field enumeration is justified since there is no output schema, with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Because there is no output schema, the description appropriately enumerates the returned financial fields and the ordering, and notes which entity types yield no data. Only minor gaps (e.g., behavior on unknown CUI) remain, which is adequate for this complexity.
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?
With a single required parameter at 100% schema coverage, the schema already documents the cui format (with/without RO prefix) and the cauta_firma fallback. The description adds no additional parameter detail, 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 states a specific resource (all balance-sheet years filed at the Ministry of Finance for a company), the ordering (most recent first), and the fields returned (turnover, net result, employees, equity, etc.). It is clearly distinct from siblings like cauta_firma or profil_firma, though it does not explicitly name an alternative 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?
Usage is implied by the resource description and the free/no-cost note, and it usefully flags that PFAs and IIs do not file balance sheets (an exclusion for entity types). However, it gives no explicit 'use this vs. that' routing or preconditions beyond what the schema's cui description already implies.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cauta_cod_caenGăsește codul CAEN al unei activitățiARead-onlyIdempotentInspect
Caută codurile CAEN după un cuvânt din activitate („transport”, „software”, „cofetărie”) sau după cod. Gratuit. Codul (sau primele lui cifre) intră apoi în prospecteaza_firme.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Un cuvânt din activitate sau un cod CAEN (ex. „transport” sau „4941”). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world behavior, so the bar is lower. The description adds real value with "Gratuit" and the note that prefixes of the code are accepted, but says nothing about result format, match ranking, or behavior on no-match.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the core action and examples, ending with the routing hint. No filler and nothing repeated from the title.
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 single-parameter read-only lookup with full schema coverage and rich annotations, the description covers purpose, input forms and downstream use. Only the shape of the result (a list of codes/labels, possible empty result) is left implicit.
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 the parameter already carries examples for both modes, so the schema does the heavy lifting. The description's "primele lui cifre" hints at prefix matching beyond what the schema states, but does not clarify matching rules or case/diacritic handling.
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 ("Caută codurile CAEN") plus the two lookup modes (by activity word or by code). This is clearly distinct from the firm-oriented siblings and the examples ("transport", "software", "cofetărie") pin down the granularity of the input.
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 closing sentence establishes where the output goes ("Codul ... intră apoi în prospecteaza_firme"), which effectively tells the agent to run this before prospecting. It does not state exclusions or what to do if no match is found, so it stops short of full when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cauta_firmaCaută o firmă românească după numeARead-onlyIdempotentInspect
Caută în indexul național (registrul comerțului) după numele firmei — sau confirmă un CUI — și întoarce candidați cu CUI, localitate și stare. Gratuit. Folosește CUI-ul rezultat cu profil_firma (fișa completă) sau verifica_firma (verdictul de risc).
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Numele (sau o parte din numele) firmei — minim 3 caractere —, ori CUI-ul ei. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, closed-world and non-destructive behavior, so the safety profile is covered. The description adds useful context beyond that: the underlying source is the trade registry index, the call is free, and results are candidate lists rather than a single resolved match — which matters for how an agent should treat ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact sentences, all load-bearing: what it does, what it returns and that it is free, then which sibling to hand the CUI to. The core action is front-loaded with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully enumerates the returned fields and frames results as candidates. For a one-parameter lookup this is nearly sufficient; a brief note on how candidates are ranked or how many typically come back would close the last gap.
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 the single param already documents both the name-fragment (min 3 chars) and CUI forms. The description restates the name-or-CUI duality without adding format, partial-match, or ambiguity-resolution guidance 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 and resource — searching the national trade registry index by company name or confirming a CUI — and names the exact fields returned (CUI, localitate, stare). This clearly separates it from siblings like profil_firma or verifica_firma, which are referenced as downstream steps rather than alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the agent: use the resulting CUI with profil_firma for the full record or verifica_firma for the risk verdict, and notes the call is free. It gives a clear when-to-use but stops short of stating exclusions, such as when to skip this and go straight to a known CUI elsewhere.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compara_firmeCompară 2–5 firme pe fapteARead-onlyIdempotentInspect
Pune 2–5 firme una lângă alta pe aceleași fapte: stare în registru, vechime, localitate, CAEN, TVA, inactivitate fiscală, ultimul bilanț (cifră de afaceri, rezultat, angajați, capitaluri, datorii), evoluția cifrei de afaceri, restanțe ANAF, contracte publice și firme legate. Gratuit. Arată faptele; alegerea rămâne a utilizatorului.
| Name | Required | Description | Default |
|---|---|---|---|
| cuiuri | Yes | Între 2 și 5 CUI-uri. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, non-destructive semantics, yet the description adds real context: the exact field set returned and the neutrality stance (facts only, no recommendation). It omits error behavior for unknown CUIs and how missing balance-sheet data is represented, 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?
One dense front-loaded sentence delivering the resource and the comparison dimensions, followed by a short neutrality note. The field enumeration is long but each item is informative; no filler beyond the mild redundancy of citing '2–5' again.
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?
No output schema exists, so the enumerated fact list effectively documents what comes back, which is the right call for this tool. Minor gaps remain around result ordering and handling of firms with no balance sheet, but nothing essential for 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 coverage is 100% and the single 'cuiuri' array already carries the 2–5 min/max bounds; the description merely restates '2–5 firme' without adding format guidance (e.g. whether CUI prefixes like 'RO' are accepted). 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 concrete verb and scope ('Pune 2–5 firme una lângă alta pe aceleași fapte') and enumerates the exact dimensions compared (registry status, CAEN, VAT, balance sheet, ANAF arrears, public contracts, related firms). This clearly separates it from single-firm siblings like verifica_firma or profil_firma.
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 comparative use case is implied by 'una lângă alta' and by the closing note 'Arată faptele; alegerea rămâne a utilizatorului', but the description never says explicitly when to prefer it over calling single-firm tools repeatedly, nor does it name an alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
contracte_publiceContractele publice ale unei firme (SEAP)ARead-onlyIdempotentInspect
Contractele atribuite firmei ca furnizor în achizițiile publice (SEAP): autoritatea contractantă, obiectul, valoarea și data, cele mai recente întâi, câte 100 de rânduri pe pagină (loturile identice strânse într-o linie). Gratuit.
| Name | Required | Description | Default |
|---|---|---|---|
| cui | Yes | CUI-ul firmei (codul unic de înregistrare), cu sau fără prefixul RO. Dacă ai doar numele, află-l întâi cu cauta_firma. | |
| page | No | Pagina (implicit 1). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive, closed-world behavior, so the description need only add beyond that. It does: results ordered most-recent-first, 100 rows per page, and identical lots collapsed into a single line — details an agent could not infer from annotations or 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?
A single dense sentence that front-loads the resource and scope, then packs fields, ordering, page size, deduplication and cost with no wasted words.
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?
No output schema exists, and the description names the key returned fields and ordering, so an agent knows what to expect. Minor gap: nothing about total counts or how to detect the last page, though pagination mechanics are mostly covered by the 100-rows-per-page note.
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. The description adds meaning beyond the schema by disclosing the fixed page size of 100 rows, which tells the agent how the 'page' parameter maps to result volume — a useful complement to the schema's bare 'Pagina (implicit 1)'.
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: contracts awarded to the firm as supplier in SEAP public procurement, plus the returned fields (contracting authority, object, value, date). It is clearly distinct from siblings like bilanturi_firma or datorii_anaf, though it does not explicitly name a contrasting sibling.
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 only implied: the 'ca furnizor' scope tells the agent this is supplier-side awards, and 'Gratuit' signals cost. There is no explicit when-to-use or when-to-prefer-an-alternative statement; the pointer to cauta_firma for name-to-CUI lookup lives in the schema, not the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
contul_meuContul Firmoscop conectatARead-onlyIdempotentInspect
Planul contului, creditele rămase luna asta (pentru liste) și câte firme urmărește, plus ce e gratuit pe conexiunea asta. Gratuit.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this as read-only, idempotent, non-destructive, and closed-world. The description adds useful behavioral context beyond that: the call is free ('Gratuit') and credits are specifically for lists, though it does not discuss return format or rate limits.
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 short sentence that front-loads the key returned data. It is slightly repetitive with 'ce e gratuit' followed later by a standalone 'Gratuit.', but remains efficient.
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 zero-parameter, read-only account tool with no output schema, the description explains the main return values: plan, remaining credits, followed-company count, and free connection features. It is largely complete, though it could be clearer about the response structure.
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 tool has zero parameters, so there are no parameter semantics to explain. Per the baseline for 0-param tools, a 4 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 names the specific account data returned: plan, remaining monthly credits, followed-company count, and free features on the connected account. It does not use an explicit verb like 'retrieves', but the content clearly distinguishes this account-info tool from the company-focused 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?
Usage is only implied by the listed return data; there is no explicit 'use when' guidance or comparison to alternatives. Since no sibling directly duplicates this account-information role, the implied context is adequate but not strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
datorii_anafRestanțele unei firme la bugetul de statARead-onlyIdempotentInspect
Datoriile restante ale firmei la buget, din lista publicată trimestrial de ANAF: totalul, principalul, accesoriile, sumele contestate și defalcarea pe bugete (stat, asigurări sociale, șomaj, sănătate), cu data situației. Gratuit.
| Name | Required | Description | Default |
|---|---|---|---|
| cui | Yes | CUI-ul firmei (codul unic de înregistrare), cu sau fără prefixul RO. Dacă ai doar numele, află-l întâi cu cauta_firma. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, closed-world behavior, so the safety profile is covered elsewhere. The description adds non-obvious context the annotations cannot: the data comes from a quarterly published list with a 'data situației' timestamp, and the service is free — both material for judging staleness and cost.
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?
One front-loaded sentence states the resource, its source, the returned fields, and the freshness marker; 'Gratuit.' is a quick tag on the end. It is dense but every clause carries information an agent needs, with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description usefully enumerates what comes back (total, principal, accessories, contested amounts, per-budget breakdown, situation date). Combined with annotations covering the safety profile and a fully documented single parameter, an agent has enough to call it correctly; only the empty-result case is unstated.
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?
With a single parameter and 100% schema description coverage, the schema already explains the CUI format and the RO-prefix tolerance. The description adds nothing beyond what the schema states, 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 names a specific resource and its source: outstanding company debts to the state budget drawn from ANAF's quarterly published list, with a field enumeration. This is clearly distinguishable in substance from siblings like bilanturi_firma or profil_firma, but no sibling is named to make the boundary explicit.
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 only implied: an agent can infer it should call this to check a firm's tax arrears, but there is no statement of when to use it versus bilanturi_firma, verifica_firma, or istoric_firma. The only routing hint (resolve the CUI with cauta_firma) lives in the schema, not the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
despre_firmoscopDespre FirmoscopARead-onlyIdempotentInspect
Ce este Firmoscop, cum se interpretează verdictele și ce costă. Gratuit, nu consumă credite.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
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 a valuable behavioral fact not in annotations: the call is free and consumes no credits. It does not describe the return format, but with annotations covering safety this is a useful addition.
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 efficient sentence that front-loads the three topics the tool covers. Every clause earns its place, with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-parameter informational tool with no output schema, the description sufficiently covers what the agent will get: service explanation, verdict interpretation, and pricing. It could mention the response format, but that is a minor gap.
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 tool has zero parameters, so there is no parameter semantics to explain. The baseline for a no-parameter tool is 4, and the description correctly does not invent parameter details.
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 exactly what the tool provides: what Firmoscop is, how to interpret verdicts, and cost information. This is clearly distinct from sibling tools that query company data, though it does not explicitly name an alternative.
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 content topics (service explanation, verdict interpretation, cost), and 'Gratuit, nu consumă credite' encourages calling it. However, there is no explicit guidance on when to use this versus sibling tools or when not to call it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
firme_legateFirmele legate prin aceleași persoaneARead-onlyIdempotentInspect
Alte firme care au în conducere aceleași persoane ca firma dată (administratori, reprezentanți), cu starea fiecăreia — câte sunt în insolvență sau radiate. Util pentru grupuri de firme și pentru a vedea istoricul oamenilor din spatele firmei. Gratuit.
| Name | Required | Description | Default |
|---|---|---|---|
| cui | Yes | CUI-ul firmei (codul unic de înregistrare), cu sau fără prefixul RO. Dacă ai doar numele, află-l întâi cu cauta_firma. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds real value beyond them by describing the shape of the result (linked companies plus their status counts) and disclosing cost ('Gratuit'), which annotations cannot express. It stops short of stating result limits or pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences: the first defines the resource and its output, the second covers use case and cost. Front-loaded, no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, read-only, closed-world lookup with no output schema, the description adequately conveys what comes back (linked firms with status) and that it is free. Minor gaps remain around result size limits and per-company fields, but nothing blocks 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?
There is a single parameter with 100% schema description coverage, and the schema itself even routes the agent to cauta_firma when only a name is known. The description contributes nothing about 'cui', 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 states a specific resource ('alte firme care au în conducere aceleași persoane ca firma dată') and what it returns ('starea fiecăreia — câte sunt în insolvență sau radiate'), which is distinct from profil_firma, istoric_firma, or compara_firme. It never names a sibling explicitly, so differentiation is inferred rather than stated.
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?
'Util pentru grupuri de firme și pentru a vedea istoricul oamenilor din spatele firmei' gives a usage context, but there are no exclusions or routing advice (e.g., when to prefer istoric_firma or profil_firma instead). The agent must infer the boundary from the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
firme_urmariteFirmele urmărite de contARead-onlyIdempotentInspect
Lista firmelor pe care contul le urmărește, cu ultimul verdict, data ultimei verificări și schimbările recente de verdict. Gratuit.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly/idempotent/non-destructive, so the safety profile is covered; the description adds value by disclosing the payload contents (last verdict, last check date, recent verdict changes) and that the call is free. It does not state pagination, ordering, or an item cap, which is the remaining gap for a list operation.
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?
One front-loaded sentence with no filler; every clause (followed companies, verdict, check date, recent changes, free) conveys something an agent would want before calling.
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, so the description must carry the return-value burden and it does by naming the four data points returned, and with no parameters nothing is left undocumented. The only shortfall is absence of result-size or ordering behavior, which matters somewhat for a list 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?
Zero parameters, so the baseline is 4. There is nothing for the description to disambiguate, and it correctly does not invent inputs.
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, 'Lista firmelor pe care contul le urmărește' (the list of companies the account follows), and enumerates the fields it returns. It implicitly distinguishes itself from the action siblings urmareste_firma and opreste_urmarirea by being the listing counterpart, though it never names them explicitly.
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's clear from the wording when to consult this (to see what you follow), and 'Gratuit' signals no cost, which is a mild usage cue. But there is no explicit when-versus-when-not guidance or reference to the follow/unfollow siblings, so an agent must infer the boundary itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
istoric_firmaIstoricul modificărilor din registrul comerțuluiARead-onlyIdempotentInspect
Modificările observate în registrul comerțului pentru o firmă — denumire, stare, sediu (județ, localitate), activitate principală (CAEN), număr de înmatriculare —, cu valoarea veche, cea nouă și data la care au apărut în registru. Gratuit.
| Name | Required | Description | Default |
|---|---|---|---|
| cui | Yes | CUI-ul firmei (codul unic de înregistrare), cu sau fără prefixul RO. Dacă ai doar numele, află-l întâi cu cauta_firma. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, non-destructive, closed-world behavior, so the bar is lower; the description still adds useful context by disclosing that the call is free and that results carry old value, new value, and registry date. It does not say how far back the history goes or whether results are exhaustive, which keeps it from 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?
One front-loaded sentence that leads with the resource and then the returned fields, closing with the cost note. Dense but every clause (field list, old/new/date trio, 'Gratuit') contributes information; no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description does the work of describing the return shape (tracked fields plus old/new value and date), which is enough for an agent to know what it will get. Missing only depth/coverage caveats about the history window.
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?
There is a single parameter with 100% schema description coverage, and the schema already explains the optional RO prefix and the fallback to cauta_firma. The description adds nothing about the CUI beyond what the schema provides, 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 states a specific resource (changes recorded in the trade registry for a company) and enumerates the tracked fields (name, status, address, CAEN, registration number) with old/new values and dates. This clearly separates it from current-state siblings like profil_firma, though it never names an alternative explicitly.
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 only implied: an agent can infer it should call this when it needs change history rather than a snapshot, but there is no explicit 'use this when…' or 'for current data use profil_firma' routing. The schema mentions cauta_firma, but that guidance lives in the schema, not the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
opreste_urmarireaScoate o firmă de sub urmărireADestructiveIdempotentInspect
Oprește urmărirea unei firme în contul tău. Firma poate fi pusă din nou sub urmărire oricând. Gratuit.
| Name | Required | Description | Default |
|---|---|---|---|
| cui | Yes | CUI-ul firmei (codul unic de înregistrare), cu sau fără prefixul RO. Dacă ai doar numele, află-l întâi cu cauta_firma. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=true, and readOnlyHint=false. The description adds meaningful context beyond those annotations: the action is reversible ('poate fi pusă din nou sub urmărire oricând') and free ('Gratuit'), which helps the agent understand impact and cost. It does not contradict 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 three short sentences and front-loads the core action before adding reversibility and cost. Every sentence contributes useful information with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter mutation, the description plus annotations cover the key points: scope, reversibility, idempotency, and cost. It stops short of describing error behavior or confirmation output, but no output schema exists and the annotation set already covers idempotency.
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 the single 'cui' parameter is fully documented in the schema, including that it may include the RO prefix and how to find it via cauta_firma. The description itself adds no 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 states a specific verb and resource: 'Oprește urmărirea unei firme' (stop tracking a company), scoped to 'în contul tău'. This clearly distinguishes it from the sibling tracking tool urmareste_firma and from listing tools like firme_urmarite.
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 implies when to use it by saying it stops tracking, and notes the action is reversible at any time. However, it does not explicitly name alternatives such as urmareste_firma for re-following or firme_urmarite for viewing tracked companies, so usage guidance remains implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
profil_firmaFișa completă a unei firmeARead-onlyIdempotentInspect
Tot ce știe Firmoscop despre o firmă românească, într-un singur apel: identitate (denumire, nr. de înmatriculare, adresa sediului, cod CAEN, vechime, stare în registru), fiscal (TVA, cod TVA UE, inactivitate, mare contribuabil, restanțe ANAF), bilanțurile recente cu sănătatea financiară și recomandarea de termen și plafon, reprezentanți și asociați, firme-mamă, istoricul modificărilor din registru, sumarul contractelor publice și al firmelor legate. Fiecare bloc are data sursei. Gratuit. Nu interoghează instanțele live — pentru verdictul de risc folosește verifica_firma.
| Name | Required | Description | Default |
|---|---|---|---|
| cui | Yes | CUI-ul firmei (codul unic de înregistrare), cu sau fără prefixul RO. Dacă ai doar numele, află-l întâi cu cauta_firma. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive/closed-world, so the safety profile is covered. The description adds genuinely non-structured context: it is free, every block carries its source date (freshness/trust signal), and it does not hit live court records. It stops short of saying whether data is cached or how stale the registry snapshot can be, 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?
The core claim is front-loaded in the first clause, and the two trailing sentences (source dating, free, no live court query + alternative) each earn their place. The middle enumeration of data blocks is long but it is payload, not filler — it is what tells the agent this is a superset tool. Slightly dense as a single sentence.
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 burden of describing returns and does so block by block, including the financial-health and term/limit recommendation outputs. Combined with the freshness caveat and the sibling routing rule, an agent has everything needed to call this correctly 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% and the single parameter's description already covers the RO-prefix tolerance and the name-to-CUI fallback via cauta_firma. The description adds nothing about the cui argument. Baseline 3 is appropriate when the schema fully carries parameter meaning.
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?
"Tot ce știe Firmoscop despre o firmă românească, într-un singur apel" states a specific resource and scope, then enumerates the concrete blocks returned (identity, fiscal, balance sheets, representatives, parent companies, registry history, public contracts). An agent can distinguish it from bilanturi_firma, istoric_firma, or contracte_publice without opening any schema, because those are framed as subsets of this aggregate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an explicit exclusion plus the alternative: "Nu interoghează instanțele live — pentru verdictul de risc folosește verifica_firma", which routes the agent correctly for risk scoring. The schema adds a second routing rule (name-only → cauta_firma), and "Gratuit" removes cost as a decision factor. When-to-use, when-not, and alternatives are all covered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prospecteaza_firmeGăsește firme după criterii (CAEN, județ, localitate, mărime…)ARead-onlyInspect
Listă de firme românești filtrate după domeniu (cod CAEN, prefix acceptat — „41” = construcții), județ și localitate (diacriticele nu contează), formă juridică (SRL/PFA/SA…), benzi de cifră de afaceri și angajați (min/max), înscriere în e-Factura și intervalul datei de înmatriculare („firme noi”), sortate descrescător după cifra de afaceri. Firme și PFA-uri, fără sediile secundare (puncte de lucru cu cod fiscal propriu) și fără date de contact/reprezentanți. Costă 1 credit pe pagina de 25 de firme, debitat doar după ce lista s-a produs; un filtru invalid primește o eroare explicată și nu costă nimic. Ideal pentru lead-gen / cercetare de piață; folosește CUI-urile cu verifica_firma.
| Name | Required | Description | Default |
|---|---|---|---|
| caen | No | Cod CAEN sau prefix (ex. „4120” sau „41”). | |
| page | No | Pagina (implicit 1). | |
| county | No | Județul (ex. „Cluj”, „București”). | |
| address | No | Text din adresa sediului (stradă sau cod poștal; ONRC abreviază — caută partea distinctivă, ex. „dorobantilor”). | |
| finYear | No | Anul de bilanț pe care se aplică pragurile financiare (cifră de afaceri, angajați, evoluție). Implicit: ultimul bilanț al fiecărei firme, dar numai dacă e din ultimul an fiscal publicat sau din cel dinaintea lui; firmele cu bilanț mai vechi nu trec pragurile. | |
| eFactura | No | Doar firme înscrise în RO e-Factura (true) sau doar neînscrise (false). | |
| locality | No | Localitatea (ex. „Cluj-Napoca”; diacriticele nu contează). | |
| legalForm | No | Forma juridică: SRL, SA, PFA, II, IF, AF, PF, SNC… | |
| activeOnly | No | Doar firme active (exclude insolvență/radiere). | |
| maxTurnover | No | Cifra de afaceri maximă (lei) — benzi de mărime. | |
| minTurnover | No | Cifra de afaceri minimă (lei). | |
| localityType | No | Mediul: „urban” (municipii, orașe, sectoarele Bucureștiului) sau „rural” (comune, sate). | |
| maxEmployees | No | Numărul maxim de angajați; 0 = firme fără angajați în bilanț. | |
| minEmployees | No | Numărul minim de angajați. | |
| registeredAfter | No | Înmatriculate la/după data asta (YYYY-MM-DD) — „firme noi”. | |
| registeredBefore | No | Înmatriculate până la data asta — vechime minimă. | |
| turnoverGrowthPct | No | Evoluția cifrei de afaceri față de anul precedent, în %: pozitiv = creștere minimă (ex. 20), negativ = scădere minimă (ex. −30 pentru prăbușiri). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the readOnly/openWorld annotations: discloses the credit cost model (1 credit per 25-firm page, debited only after the list is produced, invalid filters are free), the exclusion of secondary offices with own tax code, and the absence of contact/representative data. It also states the default sort (descending turnover), which the agent needs to interpret results.
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?
Dense but front-loaded: capability first, then scope restrictions, then cost, then usage. The opening sentence is very long and packs many filters, but every clause carries information and nothing is redundant padding.
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 17-parameter, zero-required tool with no output schema, the description covers filtering scope, exclusions, sort order, paging cost and error behavior. It stops short of describing the returned record shape (which fields per firm), a gap that matters more here because no output schema exists to compensate.
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 adds genuine meaning by explaining CAEN prefix semantics ("41" = construcții), diacritic-insensitive matching, and that registeredAfter expresses "firme noi". It does not add semantics for parameters not already well documented in the schema, but the value-add on the trickiest filters is real.
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?
Starts with a specific verb and resource (listă de firme românești) and enumerates the filter dimensions it operates on (CAEN, județ, localitate, formă juridică, turnover/angajați, e-Factura, dată înmatriculare), so an agent immediately knows this is a filtered firm-search tool. It does not contrast itself with the sibling cauta_firma, which is presumably the name-based lookup, so the differentiation is only partial.
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 frames the use case ("Ideal pentru lead-gen / cercetare de piață") and gives a follow-up route ("folosește CUI-urile cu verifica_firma"). It lacks an explicit when-not clause, e.g. that a known company name should go to cauta_firma instead, so the alternative branching is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
urmareste_firmaPune o firmă sub urmărireAIdempotentInspect
Adaugă firma în lista de urmărire a contului: Firmoscop o re-verifică zilnic și semnalează în cont când i se schimbă verdictul. Contul gratuit urmărește până la 25 de firme, planurile plătite fără plafon. Gratuit; apelul repetat pe aceeași firmă nu schimbă nimic.
| Name | Required | Description | Default |
|---|---|---|---|
| cui | Yes | CUI-ul firmei (codul unic de înregistrare), cu sau fără prefixul RO. Dacă ai doar numele, află-l întâi cu cauta_firma. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Although annotations already declare idempotentHint=true and destructiveHint=false, the description adds substantive behavioral context that annotations cannot: daily automatic re-verification, in-account alerts on verdict change, a 25-company cap on free accounts, no cap on paid plans, and no charge. This is exactly what an agent needs to know beyond the structured hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the action and mechanism first, then the quota, then cost/idempotency. No redundant restatement of the name or title.
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 one-parameter follow action with no output schema, the description covers purpose, scheduling, notification, cost, quota, and repeat-call safety. The only minor gap is that it doesn't say what the immediate response looks like (for example, a confirmation that the company is now followed), but the notification model substitutes for an output schema.
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% on the single parameter, and the schema description itself explains the CUI format (with/without RO prefix) and points to cauta_firma when only the name is known. The description adds nothing about the parameter, 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 opens with a concrete verb plus resource ('Adaugă firma în lista de urmărire'), and then immediately distinguishes the tool from the lookup siblings by explaining that it sets up recurring re-verification, not a one-off check. The mentioned notification behavior also clearly separates it from a plain search.
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 useful guidance on the preconditions: the free plan allows up to 25 companies, paid plans have no cap, the call is free, and repeating the call on the same company changes nothing. However, it never names alternatives: opreste_urmarirea (stop following) and firme_urmarite (list follows) are siblings. The advice to use cauta_firma first only appears in the schema, not here.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verifica_firmaVerifică o firmă româneascăARead-onlyInspect
Verdict de risc comercial (verde/galben/roșu) pentru o firmă românească, construit determinist din surse publice oficiale interogate la sursă: ANAF (TVA, inactivitate), bilanțuri MF, dosare de instanță (insolvențe, litigii ca pârât), BPI. Folosește-l înainte ca utilizatorul să emită facturi cu termen de plată, să semneze contracte sau să dea avansuri. Costă 1 credit pe conexiunea cu cheie API; re-verificarea aceleiași firme în 7 zile e gratuită. Răspunsul include și un link de raport pentru om.
| Name | Required | Description | Default |
|---|---|---|---|
| cui | Yes | CUI-ul firmei (codul unic de înregistrare), cu sau fără prefixul RO. Firme și PFA-uri. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnlyHint and destructiveHint=false already covering safety, the description still adds real operational context: cost of 1 credit per API-key connection, a free re-check window of 7 days for the same company, deterministic construction from official sources queried at source, and a human-readable report link in the response. It does not cover failure modes (unknown CUI, unavailable sources) or what the free re-check requires, keeping it 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The verdict and its sources are front-loaded in the first sentence, followed by when to use it and then cost/caching. Three dense sentences, no filler, nothing repeated from annotations.
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 one-parameter tool with no output schema, the description conveys the output's core shape (green/yellow/red verdict plus a report link) and the underlying evidence categories. It leaves the response's detailed fields and the meaning of the intermediate color ambiguous, but no essential calling information 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 is 100% and the single cui parameter is already documented as accepting the RO prefix and covering both companies and PFA-holders. The description adds no normalization, formatting, or lookup-failure guidance 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 artifact (a traffic-light commercial risk verdict) for a specific resource (a Romanian company) and enumerates the sources it aggregates (ANAF, MF filings, court dockets, BPI). This is clearly distinguishable from siblings like profil_firma, datorii_anaf, or bilanturi_firma, which each expose one slice of that data.
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 explicit triggering situations: before issuing invoices with payment terms, signing contracts, or paying advances. It does not, however, name an alternative tool or a when-not condition (e.g. when a single-source cheaper check like datorii_anaf suffices), so the routing is clear on the positive side only.
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.
13 tool updates
- Added
bilanturi_firma - Added
cauta_cod_caen - Changed
cauta_firma1 field changed- changed
Input schema / properties / query / descriptionPrevious value: -"Numele (sau o parte din numele) firmei — minim 3 caractere."New value: +"Numele (sau o parte din numele) firmei — minim 3 caractere —, ori CUI-ul ei."
- Added
compara_firme - Added
contracte_publice - Added
contul_meu - Added
datorii_anaf - Added
firme_legate - Added
firme_urmarite - Added
istoric_firma - Added
opreste_urmarirea - Added
profil_firma - Added
urmareste_firma
1 tool update
- Changed
prospecteaza_firme1 field changed- changed
Input schema / properties / maxEmployees / descriptionPrevious value: -"Numărul maxim de angajați."New value: +"Numărul maxim de angajați; 0 = firme fără angajați în bilanț."
1 tool update
- Changed
prospecteaza_firme1 field changed- changed
Input schema / properties / finYear / descriptionPrevious value: -"Anul de bilanț pe care se aplică pragurile financiare (implicit: ultimul bilanț al fiecărei firme)."New value: +"Anul de bilanț pe care se aplică pragurile financiare (cifră de afaceri, angajați, evoluție). Implicit: ultimul bilanț al fiecărei firme, dar numai dacă e din ultimul an fiscal publicat sau din cel dinaintea lui; firmele cu bilanț mai vechi nu trec pragurile."
4 tool updates
- First observed
cauta_firma - First observed
despre_firmoscop - First observed
prospecteaza_firme - First observed
verifica_firma
Publisher details
- Operator
- Cristian Fagarasan (individual developer, Romania) · Publisher source
- Operator website
- https://firmoscop.ro
- Vendor relationship
- First-party
- Documentation
- https://firmoscop.ro/developers
- Trust center
- Not available
- Restrictions
- Free account: 10 credits per month, no card required. Paid plans and non-expiring credit packs for higher volume. Sign in with OAuth (browser login) or use a free API key (Bearer fk_...). · Publisher source
Related MCP Connectors
Romanian companies: ONRC registry, ANAF financials, VAT, EU/UN/US sanctions, administrator links.
Romanian company data from the official registers: CUI lookup, VAT, financials, new companies
Read-only data on 3.9M Romanian companies: search, profiles, financials, status, CAEN.
Romanian company register: identity, filed financials, procurement, court records by name or CUI.
Related MCP Servers
- AlicenseAqualityBmaintenanceRomanian public data with no API keys: ANAF company status by CUI (VAT, fiscally inactive, deregistered), filed financial statements, Portal Just court cases and BNR exchange rates. Includes shop_check, which flags whether an online shop looks like a scam.628 PyPIMIT
- AlicenseAqualityBmaintenanceRomanian company data for AI agents and developers: 4.2M firms from the ONRC registry, ANAF fiscal status and 18 years of financial statements, as a remote MCP server and REST API. Free key, 25 lookups/day.217MIT
- AlicenseAqualityCmaintenanceStructured business intelligence for AI agents. 11.3M verified entities, 40.3M BORME mercantile acts, EU VAT validation (VIES), GLEIF LEI and healthcare registries. 12 tools.61MIT
- FlicenseNot gradedqualityNot gradedmaintenanceThe most comprehensive signal intelligence on Swiss businesses — 800K+ companies with people, FINMA/SRO regulatory data, building permits, procurement tenders, and AI-enriched profiles from the official commercial register.-
Glama MCP Gateway
Add one secure layer between your agents and this server.