Skip to main content
Glama

Verify Swiss business

verify_business

Verify a Swiss business (current scope: Switzerland only) by uid, name and/or address, using evidence from official/public Swiss sources: Zefix (commercial-register index), plus SECO sanctions and FINMA authorisation datasets ingested by the operator. Each check names its source (checks[].sources), data basis, provenance and freshness (observed_at, retrieved_at, source timestamps); explain to the user which source supplied the evidence and when BUMIT observed or retrieved it. A timestamp that is null is unknown — do not infer one. Returns the BUMIT business-verification result (contract 1.0.0-phase13.2); result.outcome is one of VERIFIED, NOT_VERIFIED, REVIEW_REQUIRED, UNAVAILABLE, NOT_FOUND, AMBIGUOUS, UNSUPPORTED — all are business results, not errors. You may call with only a company name; no UID is needed. An exact unique legal-name match is resolved and verified in one call. Otherwise result.outcome is AMBIGUOUS and resolution.candidates lists commercial-register companies (uid, legal_name, seat, canton): BUMIT never selects a partial/similar or duplicate-name candidate. Choose the intended company from your context (or ask the user), then call verify_business again with {"uid": ""}. NOT_FOUND means the register search returned no candidate. REVIEW_REQUIRED: additional review of the blocking checks is required before acting. UNAVAILABLE: evidence could not currently support a conclusion; it is NOT NOT_VERIFIED. Checks marked UNSUPPORTED have no source and must stay unsupported.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
uidNoSwiss UID, canonical (CHE-123.456.789) or compact (CHE123456789). Check digit validated server-side.
nameNoExact legal name. Name-only resolution needs at least 3 characters. Exact normalized equality only; never fuzzy.
addressNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Adds substantial behavior beyond the annotations: it enumerates all seven business outcomes and asserts none are errors, rules that null timestamps are 'unknown — do not infer one', states BUMIT never auto-selects partial/similar/duplicate candidates, and requires the agent to surface provenance and freshness to the user. Annotations cover safety flags, but the description carries the real operational semantics.

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, scope and source list, and given the absence of an output schema most of the outcome taxonomy earns its space. It is still dense and somewhat repetitive (exact/no-fuzzy matching is stated in both the description and the schema), so it is efficient but not maximally tight.

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

Completeness5/5

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

With no output schema, the description takes on the full burden of describing the return shape (result.outcome enum, checks[].sources, provenance fields, resolution.candidates with uid/legal_name/seat/canton) and does so thoroughly. An agent has everything needed to interpret responses and act on each outcome.

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 67% and the description adds matching semantics not fully spelled out in the schema, e.g. that a name-only call can resolve and verify in a single request and that exact unique legal-name matches are resolved automatically. It says little about the address object's role or precedence when uid/name/address are combined, leaving a minor gap.

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 business') and immediately scopes it geographically ('current scope: Switzerland only'), then names the concrete evidence sources (Zefix, SECO, FINMA). There are no sibling tools to disambiguate against, but the purpose is unambiguous on its own.

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 when-to-use guidance ('You may call with only a company name; no UID is needed'), a concrete recovery path for the AMBIGUOUS case (pick from resolution.candidates, then re-call with {"uid": "<candidate uid>"}), and distinguishes outcome states that an agent might otherwise misread (UNAVAILABLE is NOT NOT_VERIFIED; NOT_FOUND means no candidate).

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