[!NOTE] Thank you for the beta access. This report describes what we tested, how, and what we observed, with suggestions meant to help make the MCP server even better for AI agents. Findings are observations from one tester's point of view, not judgements.
| Date | 2026-10-22 09:10 |
| Server | creditsafe-mcp 1022346 |
| Tools | 18 exposed, 16 called at least once |
| Test cases | 98 (95 executed, 3 skipped) |
| Result | 🟢 PASS 55 🟠 WARN 37 🔴 FAIL 3 |
🟢 PASS = behaves as expected | 🟠 WARN = works, worth improving (clarity, size, speed, wording) | 🔴 FAIL = wrong, missing, or unusable by an agent
[!IMPORTANT] The server is reachable and usable: 55 of 95 executed scenarios behave as expected, 37 work but can be improved and 3 fail. Most opportunities concern being LLM-agent friendly, in order of impact:
- 🔴 Functional behaviour differing from expectations (3)
- 🔴 Responses too large for an LLM context window (3)
- 🟠 Errors returned as successful results (26)
- 🟠 Tool and parameter documentation gaps (21)
- 🟠 Missing MCP metadata (annotations, outputSchema) (18)
Two complementary angles, applied to every tool:
reason_code, directors, group structure, beneficial owners, events, adverse information, financials, payment behaviour)?isError), actionable error messages, quality of tool definitions (descriptions, parameter docs, annotations, output schema), latency, noise in payloads, behaviour on invalid or hostile input.| Category | Cases | 🟢 PASS | 🟠 WARN | 🔴 FAIL | ⚪ SKIP |
|---|---|---|---|---|---|
| Account and metadata | 11 | 8 | 2 | 1 | 0 |
| Company search | 19 | 16 | 3 | 0 | 0 |
| Company reports - France | 22 | 13 | 7 | 2 | 0 |
| Company reports - United Kingdom | 15 | 10 | 5 | 0 | 0 |
| Company reports - Germany (reason_code) | 7 | 1 | 6 | 0 | 0 |
| Directors | 8 | 5 | 3 | 0 | 0 |
| Robustness and error handling | 13 | 2 | 11 | 0 | 0 |
| Paid calls (--paid) | 3 | 0 | 0 | 0 | 3 |
list_tools), then searches, then every company tool on FR / GB / DE, directors, then edge cases (empty, very long, special characters, wrong types, unknown tool, invalid country / reason_code).isError flag, presence of an actionable hint, size in characters and estimated tokens, share of empty fields, duration, JSON validity, raw technical text leaks.refresh=True, PDF, director report) are skipped unless explicitly enabled.verbose.log and raw.jsonl; the API key is redacted everywhere.Why it matters: The tool does not return what a user would expect for a valid request.
<details><summary>Observed in 3 place(s)</summary>[!TIP] Suggestion: See each case below.
get_company_overview: Unexpected error: { "error": { "code": "ambiguous", "message": "Multiple companies match '443021241'.", "hint": "Use the Creditsafe ID, safe number, registration number, VAT, or add postcode/city.", "candidates": [ { "get_company_overview: Unexpected error: { "error": { "code": "not_found", "message": "No company found for 'FR96443021241'.", "hint": "Try safe number, registration number, VAT number, or name plus postcode." } }get_company_overview: Expected 'reason' in the responseWhy it matters: An agent pastes every tool result into its context. Huge payloads crowd out the conversation, cost money on every following turn, or exceed the window entirely.
<details><summary>Observed in 3 place(s)</summary>[!TIP] Suggestion: Return a compact view by default; add a
fields/sectionsparameter and pagination; announce truncation explicitly; keep raw payloads behind a separate opt-in tool.
get_company_report_schema: Response of 870,747 chars (~248,785 tokens) exceeds typical LLM context windows (100,000 tokens): the tool is unusable by an agent in this modeget_company_events: Very large response (83,199 chars, ~23,771 tokens): consumes a large share of an LLM context(all tools): Tool definitions alone weigh ~11,122 tokens, paid on every LLM turnWhy it matters: MCP clients and agent frameworks rely on isError=true to trigger retry/repair logic. An error body inside a normal result looks like a success.
<details><summary>Observed in 26 place(s)</summary>[!TIP] Suggestion: Set
isError=trueon every failure, keeping the structured error body.
get_company_search_fields: Error returned as a normal result (isError=false) with an 'error' JSON body: clients cannot detect the failure from the MCP flagget_company_report_schema: Error returned as a normal result (isError=false) with an 'error' JSON body: clients cannot detect the failure from the MCP flagsearch_companies: Error returned as a normal result (isError=false) with an 'error' JSON body: clients cannot detect the failure from the MCP flagsearch_companies: Error returned as a normal result (isError=false) with an 'error' JSON body: clients cannot detect the failure from the MCP flagget_company_directorships: Error returned as a normal result (isError=false) with an 'error' JSON body: clients cannot detect the failure from the MCP flagget_company_overview: Error returned as a normal result (isError=false) with an 'error' JSON body: clients cannot detect the failure from the MCP flagget_company_overview: Error returned as a normal result (isError=false) with an 'error' JSON body: clients cannot detect the failure from the MCP flagget_company_overview: Error returned as a normal result (isError=false) with an 'error' JSON body: clients cannot detect the failure from the MCP flagget_company_directorships: Error returned as a normal result (isError=false) with an 'error' JSON body: clients cannot detect the failure from the MCP flagget_company_beneficial_owners: Error returned as a normal result (isError=false) with an 'error' JSON body: clients cannot detect the failure from the MCP flagget_company_overview: Error returned as a normal result (isError=false) with an 'error' JSON body: clients cannot detect the failure from the MCP flagget_company_overview: Error returned as a normal result (isError=false) with an 'error' JSON body: clients cannot detect the failure from the MCP flagWhy it matters: The LLM chooses tools and fills arguments only from names and descriptions. Missing descriptions or valid values cause wrong calls.
<details><summary>Observed in 21 place(s)</summary>[!TIP] Suggestion: Describe every parameter (format, example, allowed values), use enums/patterns in the JSON schema.
get_company_directorships: Product not available for this country: the refusal is clear and free of charge (good), but this is only discoverable by calling the tool; expose per-country availability in the tool description or in the supported-countries toolget_company_directorships: Product not available for this country: the refusal is clear and free of charge (good), but this is only discoverable by calling the tool; expose per-country availability in the tool description or in the supported-countries toolget_company_beneficial_owners: Product not available for this country: the refusal is clear and free of charge (good), but this is only discoverable by calling the tool; expose per-country availability in the tool description or in the supported-countries toolget_company_search_fields: Parameter 'countries' is a free string without enum/pattern: valid values are only discoverable by trial and errorget_report_languages: Parameter 'country' is a free string without enum/pattern: valid values are only discoverable by trial and errorget_company_report_schema: Parameter 'country' is a free string without enum/pattern: valid values are only discoverable by trial and errorget_company_overview: Parameter 'language' has no descriptionget_company_financials: Parameter 'years' has no descriptionget_company_financials: Parameter 'language' has no descriptionget_company_payment_behaviour: Parameter 'language' has no descriptionget_company_events: Parameter 'language' has no descriptionget_company_adverse_information: Parameter 'language' has no descriptionWhy it matters: Annotations let clients auto-approve read-only calls and warn on costly ones; outputSchema helps downstream parsing.
<details><summary>Observed in 18 place(s)</summary>[!TIP] Suggestion: Declare readOnlyHint / idempotentHint, flag credit-consuming tools, publish outputSchema.
get_my_creditsafe_access: No outputSchema: the shape of the result is undocumentedget_supported_countries: No outputSchema: the shape of the result is undocumentedget_company_search_fields: No outputSchema: the shape of the result is undocumentedget_report_languages: No outputSchema: the shape of the result is undocumentedget_company_report_schema: No outputSchema: the shape of the result is undocumentedsearch_companies: No outputSchema: the shape of the result is undocumentedget_company_overview: No outputSchema: the shape of the result is undocumentedget_company_financials: No outputSchema: the shape of the result is undocumentedget_company_payment_behaviour: No outputSchema: the shape of the result is undocumentedget_company_events: No outputSchema: the shape of the result is undocumentedget_company_adverse_information: No outputSchema: the shape of the result is undocumentedget_company_group_structure: No outputSchema: the shape of the result is undocumentedWhy it matters: Stack-like or pydantic texts are noisy, hard for a model to act on, and leak implementation details.
<details><summary>Observed in 9 place(s)</summary>[!TIP] Suggestion: Map validation failures to short, friendly messages naming the field and the allowed range.
search_companies: Message exposes raw technical details (framework validation text / traceback / 5xx)get_company_financials: Message exposes raw technical details (framework validation text / traceback / 5xx)get_company_financials: Message exposes raw technical details (framework validation text / traceback / 5xx)get_company_financials: Message exposes raw technical details (framework validation text / traceback / 5xx)get_company_overview: Message exposes raw technical details (framework validation text / traceback / 5xx)get_company_overview: Message exposes raw technical details (framework validation text / traceback / 5xx)search_directors: Message exposes raw technical details (framework validation text / traceback / 5xx)get_company_overview: Message exposes raw technical details (framework validation text / traceback / 5xx)get_company_financials: Message exposes raw technical details (framework validation text / traceback / 5xx)Why it matters: A good MCP error says what was wrong and what to do next, so the LLM can self-correct without a human.
<details><summary>Observed in 3 place(s)</summary>[!TIP] Suggestion: Always return code + message + hint (valid values, expected format, next tool to call).
search_companies: Error has no 'hint': an LLM cannot tell how to retrysearch_companies: Error has no 'hint': an LLM cannot tell how to retrysearch_directors: No explicit 'not found' message for an unknown entityWhy it matters: The client gets an HTTP/protocol exception instead of a tool result and cannot show a useful message to the model.
<details><summary>Observed in 2 place(s)</summary>[!TIP] Suggestion: Return a tool-level error for unusual inputs; check that WAF rules do not block legitimate text.
get_company_overview: Call raised at protocol level instead of returning a tool result: HTTP 403 Forbidden (transport level)search_companies: Call raised at protocol level instead of returning a tool result: HTTP 403 Forbidden (transport level)| Tool | get_company_report_schema |
| Arguments | {"country": "GB", "include_raw": true} |
| Expected | Raw schema; flag if enormous |
<details><summary>Response excerpt</summary>[!CAUTION] Response of 870,747 chars (~248,785 tokens) exceeds typical LLM context windows (100,000 tokens): the tool is unusable by an agent in this mode
{
"schema": [
{
"title": "CompanyReportResponse",
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"chargeReference": {
"type": "string"
},
"messages": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
... [+870,347 chars]
| Tool | get_company_overview |
| Arguments | {"company": "443021241", "country": "FR"} |
| Expected | SIREN as the company argument |
<details><summary>Response excerpt</summary>[!CAUTION] Server error code: ambiguous - Multiple companies match '443021241'.; Error returned as a normal result (isError=false) with an 'error' JSON body: clients cannot detect the failure from the MCP flag; Unexpected error: { "error": { "code": "ambiguous", "message": "Multiple companies match '443021241'.", "hint": "Use the Creditsafe ID, safe number, registration number, VAT, or add postcode/city.", "candidates": [ { "
{
"error": {
"code": "ambiguous",
"message": "Multiple companies match '443021241'.",
"hint": "Use the Creditsafe ID, safe number, registration number, VAT, or add postcode/city.",
"candidates": [
{
"creditsafe_id": "FR-X-44302124100072",
"safe_no": "FR22340418",
"registration_number": "44302124100072",
"vat_numbers": [
"FR964430212... [+3,741 chars]
| Tool | get_company_overview |
| Arguments | {"company": "FR96443021241", "country": "FR"} |
| Expected | VAT as the company argument |
<details><summary>Response excerpt</summary>[!CAUTION] Server error code: not_found - No company found for 'FR96443021241'.; Error returned as a normal result (isError=false) with an 'error' JSON body: clients cannot detect the failure from the MCP flag; Unexpected error: { "error": { "code": "not_found", "message": "No company found for 'FR96443021241'.", "hint": "Try safe number, registration number, VAT number, or name plus postcode." } }
{
"error": {
"code": "not_found",
"message": "No company found for 'FR96443021241'.",
"hint": "Try safe number, registration number, VAT number, or name plus postcode."
}
}
What an LLM client sees when it discovers the tools (descriptions, parameter documentation, metadata).
get_my_creditsafe_access: No outputSchema: the shape of the result is undocumentedget_supported_countries: No outputSchema: the shape of the result is undocumentedget_company_search_fields: No outputSchema: the shape of the result is undocumentedget_company_search_fields: Parameter 'countries' is a free string without enum/pattern: valid values are only discoverable by trial and errorget_report_languages: No outputSchema: the shape of the result is undocumentedget_report_languages: Parameter 'country' is a free string without enum/pattern: valid values are only discoverable by trial and errorget_company_report_schema: No outputSchema: the shape of the result is undocumentedget_company_report_schema: Parameter 'country' is a free string without enum/pattern: valid values are only discoverable by trial and errorsearch_companies: No outputSchema: the shape of the result is undocumentedget_company_overview: No outputSchema: the shape of the result is undocumentedget_company_overview: Parameter 'language' has no descriptionget_company_financials: No outputSchema: the shape of the result is undocumentedget_company_financials: Parameter 'years' has no descriptionget_company_financials: Parameter 'language' has no descriptionget_company_payment_behaviour: No outputSchema: the shape of the result is undocumentedget_company_payment_behaviour: Parameter 'language' has no descriptionget_company_events: No outputSchema: the shape of the result is undocumentedget_company_events: Parameter 'language' has no descriptionget_company_adverse_information: No outputSchema: the shape of the result is undocumentedget_company_adverse_information: Parameter 'language' has no descriptionget_company_group_structure: No outputSchema: the shape of the result is undocumentedget_company_group_structure: Parameter 'language' has no descriptionget_company_beneficial_owners: No outputSchema: the shape of the result is undocumentedget_company_beneficial_owners: Parameter 'language' has no descriptionget_company_directors: No outputSchema: the shape of the result is undocumentedget_company_directors: Parameter 'language' has no descriptionget_company_directors: Parameter 'limit' has no descriptionget_company_directorships: No outputSchema: the shape of the result is undocumentedget_company_directorships: Parameter 'language' has no descriptionget_company_directorships: Parameter 'limit' has no descriptionget_company_report_pdf: No outputSchema: the shape of the result is undocumentedget_company_report_pdf: Parameter 'language' has no descriptionsearch_directors: No outputSchema: the shape of the result is undocumentedsearch_directors: Parameter 'countries' is a free string without enum/pattern: valid values are only discoverable by trial and errorget_director_report: No outputSchema: the shape of the result is undocumentedget_director_report: Parameter 'language' has no description(all tools): Tool definitions alone weigh ~11,122 tokens, paid on every LLM turn| Tool | Calls | PASS | WARN | FAIL | Avg s | Max s | Max response (chars) |
|---|---|---|---|---|---|---|---|
get_my_creditsafe_access | 1 | 1 | 0 | 0 | 2.4 | 2.4 | 5,327 |
get_supported_countries | 1 | 1 | 0 | 0 | 1.6 | 1.6 | 8,118 |
get_company_search_fields | 3 | 2 | 1 | 0 | 1.7 | 1.8 | 4,152 |
get_report_languages | 2 | 2 | 0 | 0 | 1.6 | 1.6 | 192 |
get_company_report_schema | 4 | 2 | 1 | 1 | 1.9 | 2.0 | 870,747 |
search_companies | 20 | 16 | 4 | 0 | 1.6 | 2.4 | 5,315 |
get_company_overview | 24 | 7 | 15 | 2 | 2.1 | 3.5 | 10,600 |
get_company_financials | 12 | 7 | 5 | 0 | 2.0 | 4.3 | 28,669 |
get_company_payment_behaviour | 2 | 2 | 0 | 0 | 2.4 | 2.6 | 3,818 |
get_company_events | 2 | 1 | 1 | 0 | 3.3 | 3.8 | 83,199 |
get_company_adverse_information | 3 | 2 | 1 | 0 | 2.0 | 2.5 | 14,683 |
get_company_group_structure | 3 | 2 | 1 | 0 | 3.3 | 3.9 | 25,542 |
get_company_beneficial_owners | 3 | 1 | 2 | 0 | 2.3 | 3.0 | 5,191 |
get_company_directors | 3 | 2 | 1 | 0 | 2.7 | 3.3 | 14,530 |
get_company_directorships | 3 | 1 | 2 | 0 | 2.4 | 3.1 | 10,191 |
get_company_report_pdf | 0 | - | - | - | - | - | - |
search_directors | 8 | 5 | 3 | 0 | 1.9 | 2.3 | 3,970 |
get_director_report | 0 | - | - | - | - | - | - |
| ID | Title | Tool | Verdict | Time (s) | Chars |
|---|---|---|---|---|---|
| 1.01 | Account access and entitlements | get_my_creditsafe_access | 🟢 PASS | 2.4 | 5,327 |
| 1.02 | Supported countries | get_supported_countries | 🟢 PASS | 1.6 | 8,118 |
| 1.03 | Search fields for France | get_company_search_fields | 🟢 PASS | 1.8 | 4,152 |
| 1.04 | Search fields for several countries | get_company_search_fields | 🟢 PASS | 1.7 | 974 |
| 1.05 | Search fields, invalid country | get_company_search_fields | 🟠 WARN | 1.7 | 154 |
| 1.06 | Report languages, France | get_report_languages | 🟢 PASS | 1.6 | 192 |
| 1.07 | Report languages, UK | get_report_languages | 🟢 PASS | 1.6 | 180 |
| 1.08 | Report schema, France (summary) | get_company_report_schema | 🟢 PASS | 1.9 | 686 |
| 1.09 | Report schema, UK (summary) | get_company_report_schema | 🟢 PASS | 1.8 | 686 |
| 1.10 | Report schema, unknown template | get_company_report_schema | 🟠 WARN | 1.7 | 142 |
| 1.11 | Report schema, include_raw | get_company_report_schema | 🔴 FAIL | 2.0 | 870,747 |
| 2.01 | Search by name, France | search_companies | 🟢 PASS | 1.8 | 4,324 |
| 2.02 | Search by registration number (SIREN) | search_companies | 🟢 PASS | 1.6 | 3,803 |
| 2.03 | Search by VAT number | search_companies | 🟢 PASS | 1.6 | 3,803 |
| 2.04 | Search by safe number, UK | search_companies | 🟢 PASS | 1.7 | 620 |
| 2.05 | Search by name, UK large company | search_companies | 🟢 PASS | 1.6 | 4,431 |
| 2.06 | Search, exact match | search_companies | 🟢 PASS | 1.6 | 621 |
| 2.07 | Search, multi-country | search_companies | 🟢 PASS | 1.7 | 4,766 |
| 2.08 | Search, city filter | search_companies | 🟢 PASS | 1.6 | 5,037 |
| 2.09 | Search, postcode filter | search_companies | 🟢 PASS | 2.4 | 5,049 |
| 2.10 | Search, status filter | search_companies | 🟢 PASS | 1.6 | 4,431 |
| 2.11 | Search, page_size=1 | search_companies | 🟢 PASS | 1.6 | 560 |
| 2.12 | Search, page 2 | search_companies | 🟢 PASS | 1.9 | 2,296 |
| 2.13 | Search, page_size above cap | search_companies | 🟠 WARN | 0.6 | 281 |
| 2.14 | Search with typo | search_companies | 🟢 PASS | 1.9 | 5,300 |
| 2.15 | Search with accents | search_companies | 🟢 PASS | 2.3 | 5,171 |
| 2.16 | Search without any criterion | search_companies | 🟠 WARN | 0.9 | 218 |
| 2.17 | Search by name without country | search_companies | 🟠 WARN | 0.9 | 218 |
| 2.18 | Search, lowercase country | search_companies | 🟢 PASS | 1.5 | 4,324 |
| 2.19 | Search, unknown company | search_companies | 🟢 PASS | 2.2 | 5,315 |
| 3.01 | get_company_overview, French company | get_company_overview | 🟢 PASS | 2.8 | 2,292 |
| 3.02 | get_company_financials, French company | get_company_financials | 🟢 PASS | 2.7 | 28,340 |
| 3.03 | get_company_payment_behaviour, French company | get_company_payment_behaviour | 🟢 PASS | 2.2 | 3,818 |
| 3.04 | get_company_events, French company | get_company_events | 🟠 WARN | 2.7 | 83,199 |
| 3.05 | get_company_adverse_information, French company | get_company_adverse_information | 🟢 PASS | 2.5 | 14,683 |
| 3.06 | get_company_group_structure, French company | get_company_group_structure | 🟢 PASS | 2.7 | 25,542 |
| 3.07 | get_company_beneficial_owners, French company | get_company_beneficial_owners | 🟢 PASS | 3.0 | 1,061 |
| 3.08 | get_company_directors, French company | get_company_directors | 🟢 PASS | 2.5 | 14,530 |
| 3.09 | get_company_directorships, French company | get_company_directorships | 🟠 WARN | 3.1 | 421 |
| 3.10 | Overview by company name | get_company_overview | 🟠 WARN | 2.8 | 4,151 |
| 3.11 | Overview by SIREN | get_company_overview | 🔴 FAIL | 2.3 | 4,141 |
| 3.12 | Overview by VAT number | get_company_overview | 🔴 FAIL | 2.2 | 188 |
| 3.13 | Overview without country | get_company_overview | 🟢 PASS | 3.4 | 2,292 |
| 3.14 | Overview repeated (cache check) | get_company_overview | 🟢 PASS | 2.7 | 2,292 |
| 3.15 | Financials, years=1 | get_company_financials | 🟢 PASS | 2.3 | 6,835 |
| 3.16 | Financials, years=5 | get_company_financials | 🟢 PASS | 2.2 | 28,340 |
| 3.17 | Financials, global basis | get_company_financials | 🟢 PASS | 3.2 | 28,669 |
| 3.18 | Financials, English | get_company_financials | 🟢 PASS | 4.3 | 28,340 |
| 3.19 | Financials, invalid basis | get_company_financials | 🟠 WARN | 0.5 | 316 |
| 3.20 | Financials, years=0 | get_company_financials | 🟠 WARN | 0.7 | 295 |
| 3.21 | Financials, years=-3 | get_company_financials | 🟠 WARN | 0.6 | 296 |
| 3.22 | Directorships, limit=1 | get_company_directorships | 🟠 WARN | 1.8 | 421 |
| 4.01 | get_company_overview, UK company | get_company_overview | 🟢 PASS | 2.2 | 2,243 |
| 4.02 | get_company_financials, UK company | get_company_financials | 🟢 PASS | 2.3 | 14,291 |
| 4.03 | get_company_payment_behaviour, UK company | get_company_payment_behaviour | 🟢 PASS | 2.6 | 1,954 |
| 4.04 | get_company_events, UK company | get_company_events | 🟢 PASS | 3.8 | 9,373 |
| 4.05 | get_company_adverse_information, UK company | get_company_adverse_information | 🟢 PASS | 2.1 | 980 |
| 4.06 | get_company_group_structure, UK company | get_company_group_structure | 🟢 PASS | 3.9 | 854 |
| 4.07 | get_company_beneficial_owners, UK company | get_company_beneficial_owners | 🟠 WARN | 1.9 | 421 |
| 4.08 | get_company_directors, UK company | get_company_directors | 🟢 PASS | 2.2 | 8,511 |
| 4.09 | get_company_directorships, UK company | get_company_directorships | 🟢 PASS | 2.4 | 10,191 |
| 4.10 | Overview by name (ambiguous) | get_company_overview | 🟠 WARN | 1.7 | 4,810 |
| 4.11 | Overview by exact legal name | get_company_overview | 🟠 WARN | 1.6 | 5,191 |
| 4.12 | Overview by registration number | get_company_overview | 🟢 PASS | 2.5 | 2,340 |
| 4.13 | Financials with global basis | get_company_financials | 🟢 PASS | 2.8 | 9,165 |
| 4.14 | Group structure of a large group | get_company_group_structure | 🟠 WARN | 3.3 | 5,191 |
| 4.15 | Beneficial owners of a large group | get_company_beneficial_owners | 🟠 WARN | 2.0 | 5,191 |
| 5.01 | DE overview without reason_code | get_company_overview | 🟠 WARN | 3.5 | 4,578 |
| 5.02 | DE overview with reason_code=1 | get_company_overview | 🟠 WARN | 3.3 | 4,578 |
| 5.03 | DE financials with reason_code=2 | get_company_financials | 🟠 WARN | 1.5 | 4,578 |
| 5.04 | DE overview with invalid reason_code=9 | get_company_overview | 🟠 WARN | 0.8 | 304 |
| 5.05 | DE overview with reason_code='abc' | get_company_overview | 🟠 WARN | 0.6 | 306 |
| 5.06 | FR overview with reason_code (should be ignored) | get_company_overview | 🟢 PASS | 2.5 | 2,292 |
| 5.07 | DE directors without reason_code | get_company_directors | 🟠 WARN | 3.3 | 4,578 |
| 6.01 | Search directors, UK | search_directors | 🟢 PASS | 1.6 | 3,717 |
| 6.02 | Search directors, France | search_directors | 🟢 PASS | 2.3 | 2,906 |
| 6.03 | Search directors, multi-country | search_directors | 🟢 PASS | 2.0 | 3,970 |
| 6.04 | Search directors with date of birth | search_directors | 🟢 PASS | 1.9 | 3,816 |
| 6.05 | Search directors, malformed date | search_directors | 🟢 PASS | 2.3 | 316 |
| 6.06 | Search directors, countries only | search_directors | 🟠 WARN | 2.2 | 160 |
| 6.07 | Search directors, missing countries | search_directors | 🟠 WARN | 0.7 | 259 |
| 6.08 | Search directors, unknown people_id | search_directors | 🟠 WARN | 2.3 | 316 |
| 7.01 | Unknown company | get_company_overview | 🟠 WARN | 1.8 | 5,777 |
| 7.02 | Invalid country code | get_company_overview | 🟠 WARN | 2.3 | 187 |
| 7.03 | Empty company | get_company_overview | 🟠 WARN | 1.4 | 279 |
| 7.04 | Blank company | get_company_overview | 🟠 WARN | 1.4 | 279 |
| 7.05 | Very long company string | get_company_overview | 🟠 WARN | 2.0 | 10,600 |
| 7.06 | Special characters and HTML | get_company_overview | 🟠 WARN | 0.0 | 0 |
| 7.07 | SQL-like input | search_companies | 🟠 WARN | 0.0 | 0 |
| 7.08 | Missing required argument | get_company_overview | 🟠 WARN | 0.6 | 260 |
| 7.09 | Wrong argument type | get_company_financials | 🟠 WARN | 0.5 | 314 |
| 7.10 | Unknown extra argument | get_company_overview | 🟢 PASS | 2.6 | 2,292 |
| 7.11 | Unknown tool | get_company_horoscope | 🟢 PASS | 0.6 | 35 |
| 7.12 | Company in insolvency | get_company_overview | 🟠 WARN | 3.4 | 5,132 |
| 7.13 | Adverse info on a company in insolvency | get_company_adverse_information | 🟠 WARN | 1.6 | 5,132 |
| 8.01 | Company PDF report | get_company_report_pdf | ⚪ SKIP | 0.0 | 0 |
| 8.02 | Financials with refresh=True | get_company_financials | ⚪ SKIP | 0.0 | 0 |
| 8.03 | Director report | get_director_report | ⚪ SKIP | 0.0 | 0 |
Full requests and responses: verbose.log, raw.jsonl. Spreadsheet: results.csv / results.xlsx.
comments (0)