Skip to main content
Glama

Verify Swiss business

verify_business

Verify a Swiss company using official commercial-register data (Zefix), SECO sanctions data, and FINMA authorisation data. Search by UID or company name (optionally narrowed by address); a UID is not required. Returns structured verification outcomes, source provenance, and data freshness. If a name matches multiple companies, returns candidates for the agent or user to disambiguate; never assume a partial match is the intended company. Unavailable evidence must not be interpreted as a failed verification.

Input Schema

NameRequiredDescriptionDefault
uidNoOptional Swiss UID, canonical (CHE-123.456.789) or compact (CHE123456789). When present it identifies the company directly. Check digit validated server-side; an invalid UID is rejected before any source lookup.
nameNoOptional company legal name; use it when no UID is known. Name-only resolution needs at least 3 characters. A company is resolved only on a unique exact normalized legal-name match — never fuzzy. Otherwise candidates are returned for explicit selection: do not guess; resubmit with the chosen candidate's uid. With uid, the name is compared against the registered name instead.
addressNoOptional Swiss postal address; all four fields are required when address is supplied. It is checked against the official building-address directory (this never proves the company is at that address). With name, locality may narrow several exact legal-name matches by registered seat; it never turns a non-exact match into an identity. Address alone cannot identify a company.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed8 schema fields changed
    • addedInput schema / description
      Added value: +"Identify a Swiss company by uid or name; supply at least one of them. A uid is not required when a name is given. address is optional and only assists; address alone is not supported (result outcome UNSUPPORTED). If uid is given, it identifies the company and a supplied name is checked against the registered name. Only uid, name and address are accepted."
    • addedInput schema / properties / address / description
      Added value: +"Optional Swiss postal address; all four fields are required when address is supplied. It is checked against the official building-address directory (this never proves the company is at that address). With name, locality may narrow several exact legal-name matches by registered seat; it never turns a non-exact match into an identity. Address alone cannot identify a company."
    • addedInput schema / properties / address / properties / house_number / description
      Added value: +"House number."
    • addedInput schema / properties / address / properties / locality / description
      Added value: +"Locality (town). Also compared with the registered seat when narrowing exact name matches."
    • addedInput schema / properties / address / properties / postcode / description
      Added value: +"Postcode."
    • addedInput schema / properties / address / properties / street / description
      Added value: +"Street name, without house number."
    • changedInput schema / properties / name / description
      Previous value: -"Exact legal name. Name-only resolution needs at least 3 characters. Exact normalized equality only; never fuzzy."New value: +"Optional company legal name; use it when no UID is known. Name-only resolution needs at least 3 characters. A company is resolved only on a unique exact normalized legal-name match — never fuzzy. Otherwise candidates are returned for explicit selection: do not guess; resubmit with the chosen candidate's uid. With uid, the name is compared against the registered name instead."
    • changedInput schema / properties / uid / description
      Previous value: -"Swiss UID, canonical (CHE-123.456.789) or compact (CHE123456789). Check digit validated server-side."New value: +"Optional Swiss UID, canonical (CHE-123.456.789) or compact (CHE123456789). When present it identifies the company directly. Check digit validated server-side; an invalid UID is rejected before any source lookup."
  2. First observed

TDQS

A4.6/5.0
Behavior4/5

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

Adds real behavioral context beyond the annotations: non-fuzzy exact-match resolution, candidate return on ambiguity, and the semantics of missing evidence. Annotations already declare openWorldHint=true (external data) and destructiveHint=false, so the safety profile is covered. It does not address the readOnlyHint=false value, which is unexpected for a lookup-style verification, nor cost/rate considerations across three upstream sources.

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

Conciseness4/5

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

Front-loaded with purpose and sources, then usage rules, then the disambiguation caveat — a logical order with no filler. It is dense across five sentences, but every clause carries operational information; nothing is padding.

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

Completeness5/5

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

No output schema exists, yet the description still says returns include verification outcomes, source provenance, and data freshness, and it explains the candidate-list case. Combined with a fully documented nested address schema, an agent has everything needed to call and interpret it.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3; the description goes further by explaining that UID identifies the company directly, that a supplied name is then compared against the registered name, and that name-only resolution requires an exact normalized match plus 3 characters. That adds decision-relevant meaning beyond the schema.

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

Purpose5/5

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

States a specific verb and resource ('Verify a Swiss company') and enumerates the exact data sources consulted (Zefix, SECO sanctions, FINMA authorisation). An agent knows precisely what is being checked and what kind of answer comes back.

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

Usage Guidelines5/5

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

Gives explicit selection rules: UID or name, UID not required, name needs at least 3 characters, address only narrows and can never identify a company. It also states the disambiguation protocol ('never assume a partial match') and a negative rule ('unavailable evidence must not be interpreted as a failed verification'), which is exactly the when/when-not guidance the dimension asks for.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources