Skip to main content
Glama

Search the company registry

well_search_company_registry
Read-only

Search the public company registries for a company by name, to find the one a workspace IS before you create its company workspace. This draws nothing on the user's screen.

Use it in the zero-company case: a membership workspace has no company attached and no detected candidate, so you search the registry for the user's company. Each hit carries an id — the registry ref — that you pass to well_create_company_candidate as registry_ref to mint a candidate from that hit, then well_create_company_workspace to make it the company workspace.

Pass country when the user names one, to scope the search to that jurisdiction. The result carries degraded: true when a provider was unreachable and the hits are partial. Confirm the exact company with the user before you create anything from a hit; never pick one from a name alone.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
qYesThe company name to search for. At least 2 characters.
countryNoScope the search to this jurisdiction. Omit to search across registries.
workspace_idNoTarget workspace. Optional: this tool describes the token itself rather than one workspace's data, so omitting it returns the same answer.
conversation_idNoThe conversation id returned by the previous Well result, in its meta under well/conversation_id, in its structuredContent, or in its JSON text block. Pass it back on every call in the same conversation, including a call a card makes, so the chosen workspace and the earlier answers still apply. It decides the conversation on its own: nothing the host states about the session replaces it. Omit it only on the first call of a conversation.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
hitsYes
errorNo
successYes
degradedYesTrue when a registry provider was unreachable and the hits are partial; the search still returned what it could.
conversation_idNoThe conversation this result belongs to. Pass it back as the conversation_id argument on every later Well call in the same conversation.
conversation_id_noteNoPresent only when the server opened a fresh lane, stating that no choice recorded earlier was read.
conversation_id_sourceNoWhere the conversation id came from: the host's own request meta, the caller's argument, or a fresh lane the server opened.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • addedInput schema / properties / conversation_id
      Added value: +{
      +  "description": "The conversation id returned by the previous Well result, in its meta under well/conversation_id, in its structuredContent, or in its JSON text block. Pass it back on every call in the same conversation, including a call a card makes, so the chosen workspace and the earlier answers still apply. It decides the conversation on its own: nothing the host states about the session replaces it. Omit it only on the first call of a conversation.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / conversation_id
      Added value: +{
      +  "description": "The conversation this result belongs to. Pass it back as the conversation_id argument on every later Well call in the same conversation.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / conversation_id_note
      Added value: +{
      +  "description": "Present only when the server opened a fresh lane, stating that no choice recorded earlier was read.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / conversation_id_source
      Added value: +{
      +  "description": "Where the conversation id came from: the host's own request meta, the caller's argument, or a fresh lane the server opened.",
      +  "enum": [
      +    "host_meta",
      +    "argument",
      +    "minted"
      +  ],
      +  "type": "string"
      +}
  2. Added

TDQS

A4.7/5.0
Behavior4/5

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 annotations: 'This draws nothing on the user's screen' (no UI side effect), 'degraded: true when a provider was unreachable and the hits are partial' (failure mode disclosure), and the instruction to confirm with the user before creating anything. It doesn't describe pagination or result count limits, but the output schema likely covers the return shape, and the key behavioral traits are disclosed.

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

Conciseness5/5

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

The description is four sentences, each earning its place: the first states the core purpose and side-effect-free nature, the second gives the exact usage scenario and downstream flow, the third covers the optional country parameter and degraded mode, and the fourth gives a safety rule. It is front-loaded with the most important information and has zero filler.

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?

For a read-only search tool with a rich output schema, the description covers everything an agent needs to call it correctly: when to use it, what to do with the results, how to handle partial results, and a safety rule. The output schema handles return values, and the annotations handle the safety profile. The only minor gap is no explicit mention of pagination or result limits, but that is not essential for correct invocation and the description is complete for its purpose.

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 description coverage is 100%, so the schema already documents all four parameters. The description adds meaning beyond the schema by explaining the semantic role of the result id ('the registry ref that you pass to well_create_company_candidate as registry_ref'), the purpose of country ('scope the search to that jurisdiction'), and the meaning of degraded results. It also clarifies that workspace_id is optional and that omitting it returns the same answer, which is already in the schema but reinforced. The description doesn't add syntax details, but with 100% coverage, the baseline is 3 and the added workflow context raises it to 4.

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?

The description states a specific verb ('Search'), a specific resource ('public company registries'), and a precise purpose ('to find the one a workspace IS before you create its company workspace'). It also distinguishes itself from related tools by naming the downstream flow (well_create_company_candidate, well_create_company_workspace) and the zero-company case, so an agent can tell it apart from siblings like well_search_context or well_list_member_candidates.

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?

The description explicitly says when to use this tool ('in the zero-company case: a membership workspace has no company attached and no detected candidate'), how to use the result (pass the hit's id as registry_ref to well_create_company_candidate), and when to pass the country parameter ('when the user names one'). It also gives a clear exclusion: never pick a company from a name alone; confirm with the user. This is explicit when/when-not guidance with named alternatives.

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