Skip to main content
Glama

Look up a company on LinkedIn

campaignstack_lookup_company

Call this when the user asks for a company that campaignstack_get_companies with a query does not find. With query, CampaignStack searches the web for matching LinkedIn company pages and returns up to 5 (companyId is set when CampaignStack already holds one). With linkedinUrl, CampaignStack reads that public company page and adds the company to the shared company database; the answer is ready with a companyId, or queued (call again with the same linkedinUrl to check), or failed. Pass exactly one of the two. Free, up to 50 searches and 50 new pages per workspace per day. It does not add the company to a campaign or reach anyone at it.

Input Schema

NameRequiredDescriptionDefault
queryNoCompany name or domain to find on LinkedIn. Returns up to 5 company pages; none is added yet.
linkedinUrlNoA linkedin.com/company/ page to add. Call again with the same URL to read where the read stands.
workspaceIdNoWorkspace ID. Omit it when this connection reaches one workspace: a workspace key (cs_) is bound to its own, and a user key (csu_) or connected app whose person belongs to exactly one workspace defaults to that one. Required only when the person belongs to several; the error then lists them, and campaignstack_whoami reports them too.

Output Schema

NameRequiredDescriptionDefault
okNo
itemsNo
failedNo
resultsNo
warningsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.4/5.0
Behavior3/5

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

Annotations declare readOnly=false, openWorld=true, idempotent=false, destructive=false, so the write/open-world profile is already structured. The description adds real value beyond that: rate limits ('50 searches and 50 new pages per workspace per day'), the shared-database write side effect, and async states (ready / queued / failed) with a re-poll instruction. However, most of the async detail is already implied by the linkedinUrl schema, so with annotations plus 100% schema coverage this lands at a solid 3 rather than higher.

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 the call condition, then the two modes, then limits and exclusions. Dense but every sentence carries information; slightly long, with a couple of parenthetical asides that could be trimmed.

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?

An output schema exists, so return format needn't be spelled out, and the description still covers the async result states, rate limits, side effects, and mutual exclusivity of parameters. Nothing an agent needs to invoke this correctly is missing.

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 100%, so baseline is 3, but the description clarifies behavioral differences between the modes: query returns up to 5 pages with none added, while linkedinUrl reads and adds the page and can be re-called to check progress. That meaning goes beyond the schema text, particularly the polling semantics of linkedinUrl.

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 (look up) and resource (a company on LinkedIn), and explicitly frames it as the fallback to campaignstack_get_companies with a query. An agent can distinguish this from siblings like get_companies or enrich_companies 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 Guidelines5/5

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

Gives an explicit trigger: 'Call this when the user asks for a company that campaignstack_get_companies with a query does not find.' It also names the two mutually exclusive input modes ('Pass exactly one of the two') and states the exclusion that it does not add to a campaign or reach anyone.

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