Skip to main content
Glama

Search companies by profile fit

exim__profile-match__search
Read-onlyIdempotent

Searches the company database and ranks results by fit to an ideal customer profile, optionally retargeted to a new market. No collection needed.

Input Schema

NameRequiredDescriptionDefault
nameNoSaved ideal profile name (or pass references instead)
queryNoSearch query (defaults to the profile summary)
marketNoTarget market to retarget a proven profile to a new geography (cross-market expansion) — overrides the profile's countries for retrieval + scoring
countryNoCountry term to seed the corpus search
productNoProduct term to seed the corpus search
referencesNoInline references JSON if no saved profile

Output Schema

NameRequiredDescriptionDefault
dataYes
statsNo
_debugNo
summaryYes
warningsNo
nextActionsYes
correlationIdNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / name / description
      Previous value: -"Saved ideal profile name (or pass --references instead)"New value: +"Saved ideal profile name (or pass references instead)"
  2. Changed1 schema field changed
    • changedInput schema / properties / name / description
      Previous value: -"Saved ideal profile name (or pass references instead)"New value: +"Saved ideal profile name (or pass --references instead)"
  3. Changed1 schema field changed
    • changedInput schema / properties / name / description
      Previous value: -"Saved ideal profile name (or pass --references instead)"New value: +"Saved ideal profile name (or pass references instead)"
  4. Changed14 schema fields changed
    • addedInput schema / not
      Added value: +{
      +  "anyOf": [
      +    {
      +      "not": {
      +        "anyOf": [
      +          {
      +            "properties": {
      +              "name": {
      +                "minLength": 1,
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "name"
      +            ]
      +          },
      +          {
      +            "x-argumentCondition": {
      +              "key": "references",
      +              "predicate": "references"
      +            }
      +          },
      +          {
      +            "properties": {
      +              "product": {
      +                "pattern": "\\S",
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "product"
      +            ]
      +          }
      +        ]
      +      }
      +    }
      +  ]
      +}
    • removedInput schema / properties / --country
      Removed value: -{
      -  "description": "Country term to seed the corpus search",
      -  "type": "string"
      -}
    • removedInput schema / properties / --market
      Removed value: -{
      -  "description": "Target market to retarget a proven profile to a new geography (cross-market expansion) — overrides the profile's countries for retrieval + scoring",
      -  "type": "string"
      -}
    • removedInput schema / properties / --name
      Removed value: -{
      -  "description": "Saved ideal profile name (or pass --references instead)",
      -  "type": "string"
      -}
    • removedInput schema / properties / --product
      Removed value: -{
      -  "description": "Product term to seed the corpus search",
      -  "type": "string"
      -}
    • removedInput schema / properties / --query
      Removed value: -{
      -  "description": "Search query (defaults to the profile summary)",
      -  "type": "string"
      -}
    • removedInput schema / properties / --references
      Removed value: -{
      -  "description": "Inline references JSON if no saved profile",
      -  "type": "string"
      -}
    • addedInput schema / properties / country
      Added value: +{
      +  "description": "Country term to seed the corpus search",
      +  "maxLength": 120,
      +  "type": "string"
      +}
    • addedInput schema / properties / market
      Added value: +{
      +  "description": "Target market to retarget a proven profile to a new geography (cross-market expansion) — overrides the profile's countries for retrieval + scoring",
      +  "maxLength": 120,
      +  "type": "string"
      +}
    • addedInput schema / properties / name
      Added value: +{
      +  "description": "Saved ideal profile name (or pass --references instead)",
      +  "maxLength": 120,
      +  "type": "string"
      +}
    • addedInput schema / properties / product
      Added value: +{
      +  "description": "Product term to seed the corpus search",
      +  "maxLength": 120,
      +  "type": "string"
      +}
    • addedInput schema / properties / query
      Added value: +{
      +  "description": "Search query (defaults to the profile summary)",
      +  "maxLength": 120,
      +  "type": "string"
      +}
    • addedInput schema / properties / references
      Added value: +{
      +  "anyOf": [
      +    {
      +      "maxLength": 20000,
      +      "type": "string"
      +    },
      +    {
      +      "type": [
      +        "null",
      +        "boolean",
      +        "number",
      +        "string",
      +        "array",
      +        "object"
      +      ]
      +    }
      +  ],
      +  "contentSchema": {
      +    "type": [
      +      "null",
      +      "boolean",
      +      "number",
      +      "string",
      +      "array",
      +      "object"
      +    ]
      +  },
      +  "description": "Inline references JSON if no saved profile"
      +}
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$defs": {
      +    "value0": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "candidatePool": {
      +          "type": "integer"
      +        },
      +        "coverage": {
      +          "$ref": "#/$defs/value15"
      +        },
      +        "hardConstraints": {
      +          "$ref": "#/$defs/value11"
      +        },
      +        "idealProfileName": {
      +          "type": "string"
      +        },
      +        "ranked": {
      +          "$ref": "#/$defs/value1"
      +        },
      +        "relaxedConstraints": {
      +          "$ref": "#/$defs/value14"
      +        },
      +        "retrievalAttributes": {
      +          "$ref": "#/$defs/value13"
      +        },
      +        "softDimensions": {
      +          "$ref": "#/$defs/value12"
      +        }
      +      },
      +      "required": [
      +        "candidatePool",
      +        "coverage",
      +        "idealProfileName",
      +        "ranked"
      +      ],
      +      "type": "object"
      +    },
      +    "value1": {
      +      "anyOf": [
      +        {
      +          "items": {
      +            "$ref": "#/$defs/value2"
      +          },
      +          "type": "array"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "value10": {
      +      "anyOf": [
      +        {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "value11": {
      +      "anyOf": [
      +        {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "value12": {
      +      "anyOf": [
      +        {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "value13": {
      +      "anyOf": [
      +        {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "value14": {
      +      "anyOf": [
      +        {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "value15": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "blindSpot": {
      +          "type": "string"
      +        },
      +        "confidence": {
      +          "anyOf": [
      +            {
      +              "type": "number"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "country": {
      +          "$ref": "#/$defs/value16"
      +        },
      +        "display": {
      +          "type": "string"
      +        },
      +        "period": {
      +          "$ref": "#/$defs/value17"
      +        },
      +        "scope": {
      +          "type": "string"
      +        },
      +        "status": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "confidence",
      +        "country",
      +        "display",
      +        "period",
      +        "status"
      +      ],
      +      "type": "object"
      +    },
      +    "value16": {
      +      "anyOf": [
      +        {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "value17": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "end": {
      +          "type": "string"
      +        },
      +        "start": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "end",
      +        "start"
      +      ],
      +      "type": "object"
      +    },
      +    "value18": {
      +      "anyOf": [
      +        {
      +          "items": {
      +            "type": [
      +              "null",
      +              "boolean",
      +              "number",
      +              "string",
      +              "array",
      +              "object"
      +            ]
      +          },
      +          "type": "array"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "value19": {
      +      "anyOf": [
      +        {
      +          "items": {
      +            "$ref": "#/$defs/value20"
      +          },
      +          "type": "array"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "value2": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "candidateCompanyId": {
      +          "type": "string"
      +        },
      +        "candidateCompanyName": {
      +          "type": "string"
      +        },
      +        "candidateWebsite": {
      +          "type": "string"
      +        },
      +        "confidence": {
      +          "anyOf": [
      +            {
      +              "type": "number"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "evidence": {
      +          "$ref": "#/$defs/value10"
      +        },
      +        "fitLabel": {
      +          "type": "string"
      +        },
      +        "idealProfileName": {
      +          "type": "string"
      +        },
      +        "matchedAttributes": {
      +          "$ref": "#/$defs/value7"
      +        },
      +        "missingAttributes": {
      +          "$ref": "#/$defs/value8"
      +        },
      +        "negativeSignals": {
      +          "$ref": "#/$defs/value9"
      +        },
      +        "newRank": {
      +          "type": "integer"
      +        },
      +        "originalRank": {
      +          "type": "integer"
      +        },
      +        "recommendedNextAction": {
      +          "type": "string"
      +        },
      +        "signals": {
      +          "$ref": "#/$defs/value3"
      +        },
      +        "similarityScore": {
      +          "type": "number"
      +        }
      +      },
      +      "required": [
      +        "candidateCompanyName",
      +        "fitLabel",
      +        "newRank",
      +        "signals",
      +        "similarityScore"
      +      ],
      +      "type": "object"
      +    },
      +    "value20": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "command": {
      +          "type": "string"
      +        },
      +        "cost": {
      +          "type": "string"
      +        },
      +        "label": {
      +          "type": "string"
      +        },
      +        "rationale": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "command",
      +        "cost",
      +        "label",
      +        "rationale"
      +      ],
      +      "type": "object"
      +    },
      +    "value21": {
      +      "anyOf": [
      +        {
      +          "additionalProperties": {
      +            "type": "number"
      +          },
      +          "type": "object"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "value22": {
      +      "anyOf": [
      +        {
      +          "items": {
      +            "$ref": "#/$defs/value23"
      +          },
      +          "type": "array"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "value23": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "code": {
      +          "type": "string"
      +        },
      +        "message": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "code",
      +        "message"
      +      ],
      +      "type": "object"
      +    },
      +    "value24": {
      +      "anyOf": [
      +        {
      +          "additionalProperties": {
      +            "type": [
      +              "null",
      +              "boolean",
      +              "number",
      +              "string",
      +              "array",
      +              "object"
      +            ]
      +          },
      +          "type": "object"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "value3": {
      +      "anyOf": [
      +        {
      +          "items": {
      +            "$ref": "#/$defs/value4"
      +          },
      +          "type": "array"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "value4": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "dimension": {
      +          "type": "string"
      +        },
      +        "matched": {
      +          "$ref": "#/$defs/value5"
      +        },
      +        "missing": {
      +          "$ref": "#/$defs/value6"
      +        },
      +        "score": {
      +          "type": "number"
      +        },
      +        "weight": {
      +          "type": "number"
      +        }
      +      },
      +      "required": [
      +        "dimension",
      +        "score",
      +        "weight"
      +      ],
      +      "type": "object"
      +    },
      +    "value5": {
      +      "anyOf": [
      +        {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "value6": {
      +      "anyOf": [
      +        {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "value7": {
      +      "anyOf": [
      +        {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "value8": {
      +      "anyOf": [
      +        {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "value9": {
      +      "anyOf": [
      +        {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    }
      +  },
      +  "additionalProperties": false,
      +  "properties": {
      +    "_debug": {
      +      "$ref": "#/$defs/value24"
      +    },
      +    "correlationId": {
      +      "type": "string"
      +    },
      +    "data": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "context": {
      +          "type": [
      +            "null",
      +            "boolean",
      +            "number",
      +            "string",
      +            "array",
      +            "object"
      +          ]
      +        },
      +        "cursor": {
      +          "type": "string"
      +        },
      +        "has_more": {
      +          "type": "boolean"
      +        },
      +        "items": {
      +          "anyOf": [
      +            {
      +              "items": {
      +                "$ref": "#/$defs/value0"
      +              },
      +              "type": "array"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        }
      +      },
      +      "required": [
      +        "context",
      +        "has_more",
      +        "items"
      +      ],
      +      "type": "object"
      +    },
      +    "nextActions": {
      +      "$ref": "#/$defs/value19"
      +    },
      +    "stats": {
      +      "$ref": "#/$defs/value21"
      +    },
      +    "summary": {
      +      "type": "string"
      +    },
      +    "warnings": {
      +      "$ref": "#/$defs/value22"
      +    }
      +  },
      +  "required": [
      +    "data",
      +    "nextActions",
      +    "summary"
      +  ],
      +  "type": "object"
      +}
  5. First observed

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered and the lower bar applies. The description adds the useful behavioral fact that no collection setup is required, but says nothing about result volume, pagination, or scoring behavior beyond "ranks by fit."

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?

Two short sentences, front-loaded with the core action and ranking basis, with no filler. "No collection needed" is the only sentence fragment carrying extra information, though it is telegraphic rather than self-explanatory.

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

Completeness3/5

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

An output schema exists, so return values need not be described, and annotations cover safety. What is missing is the schema's hard input constraint (at least one of name/references/product must be supplied per the not/anyOf block) and any differentiation from the other profile-match tools, both of which matter for correct invocation.

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 the schema already documents all six parameters, including the market override semantics. The description adds only the loose "optionally retargeted to a new market" phrasing, which the market property description states more precisely; baseline 3 is correct here.

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

Purpose4/5

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

States a specific verb (searches) and resource (company database) plus the ranking behavior and its basis (fit to an ideal customer profile). It does not, however, distinguish itself from the closely named siblings in the same family (profile-match__rank, __score, __lookalike, __analyze), so an agent cannot tell from the description alone why it would pick this over rank.

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

Usage Guidelines3/5

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

"No collection needed" implies a usage context (ad-hoc search over the whole corpus rather than a saved collection), and "optionally retargeted to a new market" hints at the market parameter's purpose. But there is no explicit when-to-use/when-not or named alternative; the agent must infer that this is the entry-point search versus the rank/score/lookalike follow-ups.

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.