company-data
Server Details
Read-only data on 3.9M Romanian companies: search, profiles, financials, status, CAEN.
- Status
- Healthy
- Uptime
- 100.0% over 36 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 5 tools
Each tool addresses a distinct aspect: financial history, profile, status, CAEN code lookup, and search. No overlap in functionality.
All tool names follow a consistent verb_noun pattern using snake_case, e.g., get_company_financials, search_companies.
5 tools are well-scoped for a company data server, covering core operations without excess.
Covers key company data aspects: profile, financials, status, CAEN lookup, and search. Minor gap: no tool for contact details or historical status changes, but core is present.
Available Tools
5 toolsget_company_financialsGet company financialsBRead-onlyInspect
Yearly financial history for a company by CUI: revenue, profit, employees, total assets and liabilities. Amounts in RON.
| Name | Required | Description | Default |
|---|---|---|---|
| cui | Yes | ||
| years | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true and destructiveHint=false, which cover the safety profile. The description adds useful context like amounts in RON and the yearly scope, but does not disclose additional behaviors such as pagination, rate limits, or possible absence of data.
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 two concise sentences that immediately convey the tool's purpose, data fields, and currency without extra fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
It covers the core return content (fields and currency), but omits explanation of the 'years' parameter and any edge cases. Given the lack of an output schema, the description is helpful but not fully complete.
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 0%, so the description must compensate. It mentions 'by CUI' but does not explain what CUI is or how the optional 'years' parameter behaves; 'Yearly financial history' is ambiguous about whether one or multiple years are returned.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as returning yearly financial history for a company by CUI, and lists specific data points (revenue, profit, employees, total assets, liabilities) plus currency. This distinguishes it from sibling tools like get_company_profile or get_company_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use guidance is provided. The description does not mention alternatives, exclusions, or conditions, leaving usage decisions to inference from the tool's purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_company_profileGet company profileARead-onlyInspect
Fetch a single Romanian company by CUI (accepts an 'RO' prefix): identity, address, CAEN activities, latest public financials, and data-source freshness. Does not return contact details.
| Name | Required | Description | Default |
|---|---|---|---|
| cui | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds valuable behavioral context beyond this: it accepts an 'RO' prefix on the CUI, returns specific data categories, and explicitly excludes contact details. This is richer than the baseline and does not contradict any annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence. It front-loads the core purpose and then lists inclusions concisely. There is no wasted wording or redundancy, and every clause adds information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, read-only, no output schema), the description covers the essential context: what the tool does, what data it returns, and one key limitation. It does not explain the exact return structure or error behavior, but for a single-record fetch this is arguably sufficient. More detail would be helpful but is not critical.
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 schema has only one parameter (cui) with zero description coverage, so the description must compensate. It does so by stating that the tool fetches by CUI and explicitly noting that an 'RO' prefix is accepted, which adds meaningful format guidance. It does not describe the expected format in full detail (e.g., whether to include spaces), but it covers the key nuance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Fetch'), identifies the resource ('single Romanian company profile'), and clearly lists what is included (identity, address, CAEN activities, financials, data-source freshness). It also states an explicit exclusion ('Does not return contact details'), which distinguishes it from sibling tools like get_company_financials or get_company_status.
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 clearly implies when to use this tool: when you need a comprehensive profile for a single company by CUI. It does not explicitly name alternative tools or state when not to use it, but the exclusion of contact details and the focus on a single company provide useful context. Not quite a 5 because it lacks explicit 'use X instead' guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_company_statusGet company statusARead-onlyInspect
Public status flags for a company by CUI: registration status, VAT (TVA) registration, fiscal activity, insolvency, dissolution (radiere), and e-Factura.
| Name | Required | Description | Default |
|---|---|---|---|
| cui | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, and the description adds behavioral context by specifying the data is 'public' and listing the exact status categories returned. This goes beyond the annotations to clarify the nature and scope of the response.
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, well-structured sentence that front-loads the key purpose and lists all relevant status types. Every word adds value, with no redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with one parameter and no output schema, the description sufficiently covers the return content by naming the status categories. It does not describe response formatting or edge cases, but the tool's simplicity and strong annotations make this acceptable.
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 schema has 0% description coverage for the 'cui' parameter, but the description explicitly clarifies that the parameter is a CUI (company identifier). This adds essential meaning beyond the schema's raw type definition, though it does not elaborate on format constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves public status flags for a company by CUI and enumerates specific status types (registration, VAT, fiscal activity, insolvency, dissolution, e-Factura). This specific scope distinguishes it from sibling tools like get_company_financials or get_company_profile.
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 usage when needing company status flags, but it does not explicitly mention alternatives or provide when-not-to-use guidance. The sibling tool names give context, but the description itself lacks explicit usage differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resolve_caenResolve CAEN codeARead-onlyInspect
Look up a Romanian CAEN (NACE) activity code and return its official label plus hierarchy (section, division, parent). Labels are in Romanian.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only and non-destructive. The description adds that labels are in Romanian and the return includes hierarchy (section, division, parent), which is useful context. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences that front-load the purpose and output. No unnecessary 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?
For a simple lookup tool with annotations and a one-parameter schema, the description covers the essential purpose and return structure. It lacks details on error handling and code format edge cases, but it is reasonably complete for the tool's 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?
Schema description coverage is 0%, and the description does not explain the 'code' parameter format beyond implying it is a CAEN code. The schema provides type and length, but the description adds no semantic guidance (e.g., numeric format, leading zeros).
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?
Clearly states a specific lookup action for Romanian CAEN codes, with explicit output (official label + hierarchy). Distinct from sibling tools that focus on company 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?
Context is clear: use this to resolve a CAEN code to its label/hierarchy. Does not explicitly name alternatives, but sibling tools are obviously different, so no exclusion needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_companiesSearch Romanian companiesARead-onlyInspect
Search and filter the Firme Românești company directory by name, CAEN activity, county/locality, revenue/profit/employee ranges, and VAT status. Up to 25 results per page with an opaque cursor. Financial filters use a single year (default 2024). Provide at least one filter.
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | ||
| judet | No | ||
| limit | No | ||
| query | No | ||
| cursor | No | ||
| locality | No | ||
| caen_code | No | ||
| max_profit | No | ||
| min_profit | No | ||
| active_only | No | ||
| max_revenue | No | ||
| min_revenue | No | ||
| max_employees | No | ||
| min_employees | No | ||
| vat_registered | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint, openWorldHint, destructiveHint), the description adds valuable behavioral details: pagination ('Up to 25 results per page with an opaque cursor'), the default year for financial filters ('single year, default 2024'), and the mandatory filter requirement. These are not inferable from annotations and significantly aid an agent in invoking the tool correctly.
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 composed of three focused sentences: the first states the core search/filter capability, the second explains pagination, and the third covers the year default and filter requirement. Every sentence earns its place with zero redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex 15-parameter search tool with no output schema and no parameter descriptions, this description covers the essential behavior and constraints well. It explains the main filter dimensions, pagination, and year semantics. However, it does not specify the exact return value shape or format details (e.g., how to structure CAEN codes or locality names), leaving some ambiguity for the agent.
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 0% schema description coverage, the description compensates effectively by mapping filter categories to parameters: name (query), CAEN activity (caen_code), county/locality (judet, locality), revenue/profit/employee ranges (min/max params), and VAT status (vat_registered). It also clarifies the 'year' parameter and cursor/limit pagination semantics, which the schema alone does not convey.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Search and filter the Firme Românești company directory' with specific filter dimensions (name, CAEN, county/locality, revenue/profit/employee ranges, VAT status). This specificity distinguishes it from sibling tools like get_company_profile or resolve_caen, which have different objectives.
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 provides clear context for when to use the tool: when searching or filtering companies, and it explicitly specifies 'Provide at least one filter.' However, it does not explicitly mention when not to use it or name alternatives, though the sibling tool names imply distinct use cases.
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.
5 tool updates
- First observed
get_company_financials - First observed
get_company_profile - First observed
get_company_status - First observed
resolve_caen - First observed
search_companies
Related MCP Connectors
Romania company registry: search 4.2M businesses by name/CUI, directors, financials.
Romanian company register: identity, filed financials, procurement, court records by name or CUI.
Romanian business-registry lookup, director search, contact extraction, and WHOIS/DNS audit.
Romanian company risk checks by CUI — verdict verde/galben/roșu from official public sources.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceProvides keyless access to Romanian public economic and cultural data, including exchange rates, company/VAT lookups, open datasets, official statistics, seismic-risk building records, and classified cultural heritage.MIT
- AlicenseNot gradedqualityBmaintenanceSearch Spanish companies, directors and corporate relationships from official BORME registry filings — ~3.2M companies since 2009. Read-only, anonymous.MIT
- AlicenseNot gradedqualityBmaintenanceProvides lead generation and enrichment tools for AI agents, including Romanian business registry lookups, company/director searches, website contact extraction, and domain WHOIS/DNS security audits.MIT
- AlicenseAqualityCmaintenanceStructured business intelligence for AI agents. 5.5M verified entities across 34 countries, 40.3M BORME mercantile acts, EU VAT validation, GLEIF, healthcare registries. 20 tools.61MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.