Skip to main content
Glama
mambalabsdev

mcp-domain-to-linkedin-url-resolver

Resolve LinkedIn URL

resolve_linkedin_url
Read-onlyIdempotent

Resolve a company domain or name to its LinkedIn company URL, plus slug, confidence, and social links, using public search results. Read-only enrichment for sales and prospecting.

Instructions

Resolve a company domain or name, or a list of domains, to the LinkedIn company URL. Returns one flat, Clay-ready JSON row per company with the LinkedIn URL and slug, a confidence of high, medium, or low, the resolution method, and Facebook, Instagram, X, and YouTube links. The URL is read from public search results; no request is ever sent to LinkedIn. Firmographics (employee count, industry, headquarters, follower count, description) are read from search result snippets only when includeFirmographics is true; with it off, or when no snippet states them, those fields are null. Successful resolutions are cached for 7 days unless skipCache is true. Use it when you have a domain or a name and need the LinkedIn company page; it does not find people. Provide company_domain, company_name, or domains. A run that does not succeed is returned as an error with its run ID. Read-only; requires an APIFY_TOKEN and consumes Apify credits per call.

Input Schema

NameRequiredDescriptionDefault
domainsNoA list of bare company domains to resolve in one run, one row per domain. Example: ["stripe.com", "datadoghq.com"].
batchSizeNoHow many domains from the list are resolved at once. 1 to 10. Default: 2.
skipCacheNoWhen false, the default, a successful resolution is cached for 7 days and reused. Set true to force a fresh resolution. Accepts true or false, or the strings "true" and "false". Default: false.
company_nameNoCompany name. Required if company_domain and domains are not provided.
company_domainNoBare company domain without https:// and without a trailing slash. Example: stripe.com. Required if company_name and domains are not provided.
includeFirmographicsNoWhen true, also reads firmographics from search result snippets about the LinkedIn company page: follower_count and company_description for most established companies, and employee_count_approx, industry, and hq_location when a snippet states them. No request is sent to LinkedIn. Off by default because it can add a search. The firmographic fields are null when it is off or when no snippet states them. Accepts true or false, or the strings "true" and "false". Default: false.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed7 schema fields changedv1.0.7
    • removedInput schema / additionalProperties
      Removed value: -false
    • addedInput schema / properties / batchSize
      Added value: +{
      +  "description": "How many domains from the list are resolved at once. 1 to 10. Default: 2.",
      +  "maximum": 10,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • changedInput schema / properties / company_domain / description
      Previous value: -"Bare company domain without https:// and without a trailing slash. Example: stripe.com. Required if company_name is not provided."New value: +"Bare company domain without https:// and without a trailing slash. Example: stripe.com. Required if company_name and domains are not provided."
    • changedInput schema / properties / company_name / description
      Previous value: -"Company name. Required if company_domain is not provided."New value: +"Company name. Required if company_domain and domains are not provided."
    • addedInput schema / properties / domains
      Added value: +{
      +  "description": "A list of bare company domains to resolve in one run, one row per domain. Example: [\"stripe.com\", \"datadoghq.com\"].",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / includeFirmographics
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "boolean"
      +    },
      +    {
      +      "enum": [
      +        "false",
      +        "true"
      +      ],
      +      "type": "string"
      +    }
      +  ],
      +  "description": "When true, also reads firmographics from search result snippets about the LinkedIn company page: follower_count and company_description for most established companies, and employee_count_approx, industry, and hq_location when a snippet states them. No request is sent to LinkedIn. Off by default because it can add a search. The firmographic fields are null when it is off or when no snippet states them. Accepts true or false, or the strings \"true\" and \"false\". Default: false."
      +}
    • addedInput schema / properties / skipCache
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "boolean"
      +    },
      +    {
      +      "enum": [
      +        "false",
      +        "true"
      +      ],
      +      "type": "string"
      +    }
      +  ],
      +  "description": "When false, the default, a successful resolution is cached for 7 days and reused. Set true to force a fresh resolution. Accepts true or false, or the strings \"true\" and \"false\". Default: false."
      +}
  2. First observedv1.0.3

TDQS

A4.6/5.0
Behavior5/5

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

Goes well beyond the readOnly/openWorld/idempotent annotations: it discloses that the URL is read from public search results and no request hits LinkedIn, that successes are cached 7 days unless skipCache is true, that failures return an error with a run ID, and that it needs an APIFY_TOKEN and consumes Apify credits. That is the exact operational context an agent needs before calling.

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?

The purpose and routing guidance are front-loaded and every sentence is substantive, but the firmographics null behavior is stated twice and the caching/credit notes lengthen the block more than needed. Slightly trimmed, it would lose nothing.

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 itself and does so: per-company JSON rows, the confidence scale, the resolution method, and the social fields. Auth requirements, cost, caching, and error reporting are all covered, leaving no gap for a 6-parameter tool.

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 domains, batchSize, skipCache, company_name, company_domain, and includeFirmographics in comparable detail (including the null-firmographics behavior the description repeats). The description restates the input alternatives and the firmographics tradeoff rather than adding format or default information not already in the schema, so baseline 3 applies.

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 ('Resolve a company domain or name... to the LinkedIn company URL') and enumerates the output shape (URL, slug, confidence, resolution method, social links). An agent knows exactly what comes back without opening a schema. No siblings exist, so no differentiation is needed.

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?

Explicit when-to-use ('Use it when you have a domain or a name and need the LinkedIn company page'), explicit exclusion ('it does not find people'), and the accepted input alternatives ('Provide company_domain, company_name, or domains'). Nothing is left to inference.

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

Deploy Server

Other Tools