Skip to main content
Glama

MIL — Machine Intelligence Layer

search_companies

Read-only

Search and discover Swedish companies without knowing their organisation number. Filter by company name (partial match), industry code, or presence of active distress signals. Returns compact summary cards — each card includes the organisation_number needed to call get_company for full intelligence. All parameters are optional; omit all to browse all companies in the dataset. Discovery flow: (1) call search_companies to find a company, (2) use the returned organisation_number to call get_company for full intelligence.

Input Schema

NameRequiredDescriptionDefault
nameNoPartial company name to search (case-insensitive substring match on legal name)
limitNoMaximum number of companies to return (default 20, max 100)
localityNoRegistered locality, combined with ANY matching SNI
has_signalsNoIf true, return only companies with active distress signals. If false, return only companies without. Omit to return all.
industry_codeNoSwedish SNI numeric prefix (2–5 digits), matching any registered activity; e.g. '62' for IT
organisation_numberNoCanonical 10-digit or source 12-digit company identity

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / industry_code / description
      Previous value: -"Swedish SNI industry code to filter by (exact match, e.g. '62010' for software development)"New value: +"Swedish SNI numeric prefix (2–5 digits), matching any registered activity; e.g. '62' for IT"
  2. First observed

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and openWorldHint, so safety is covered. The description adds real behavioral value beyond that: the return is 'compact summary cards' containing organisation_number, and the tool is positioned as the entry point of a two-step flow. It stops short of describing pagination or result-count behavior beyond the schema-level limit.

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-loads the core purpose and the non-obvious 'no organisation number needed' constraint before the filter list. The numbered discovery flow slightly repeats the get_company pointer already stated in the preceding sentence, which is minor redundancy in an otherwise efficient description.

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 carries the return-value burden and does so by describing compact summary cards and the organisation_number they contain. Combined with the stated optionality of all six parameters and the two-step discovery flow, an agent has everything needed to call it correctly and chain to get_company.

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

Parameters3/5

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

Schema description coverage is 100%, so every parameter is already documented with its matching semantics (substring match, SNI prefix, locality combined with ANY matching SNI, has_signals tri-state). The description restates name/industry_code/has_signals filtering but adds no syntax or semantics beyond the schema, and omits locality and organisation_number entirely — baseline 3 is appropriate.

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 ('Search and discover Swedish companies') and immediately clarifies the key scoping fact: it works without an organisation number, which is exactly what separates it from get_company. The filter dimensions and return shape are also named, so an agent can distinguish it from siblings without opening any schema.

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

Usage Guidelines4/5

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

Provides an explicit discovery flow naming get_company as the follow-up alternative, and explicitly says all parameters are optional and can be omitted to browse everything. It does not address the other plausible siblings, such as find_distress_signals (which overlaps with the has_signals filter) or search, so the when-not guidance is incomplete.

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.