Skip to main content
Glama

Anysite MCP Server

The entire web is your database. Your AI assistant is the query interface.

A Model Context Protocol server that lets Claude, Cursor, ChatGPT, and any MCP client query structured data from LinkedIn, Instagram, Twitter/X, Reddit, YouTube, SEC EDGAR, Y Combinator, Crunchbase, and any URL on the web — through five universal tools, plus CRM write-back tools.

npm version License: MIT Documentation


Quick start

Connect directly to the hosted server at https://mcp.anysite.io/mcp. It speaks MCP over Streamable HTTP with OAuth 2.0, and works with Claude Desktop, Claude Code, Cursor, Cline, Windsurf, ChatGPT, and any MCP-compliant client.

If your client supports HTTP transport, you do not need this npm package. The package exists as a stdio bridge for clients that only speak stdio.

Step 1: Sign up

Create an account at anysite.io. The MCP30 promo covers your first month of MCP Unlimited ($30/month, 6 req/min fair-use, no credit counting). Credit-based plans (Starter $49 / Growth $200 / Scale $300 / Pro $549 / Enterprise from $1,199) also include MCP access; see docs.anysite.io/mcp-server/overview.

Step 2: Connect your client

  1. Settings → Connectors → Add Custom Connector

  2. URL: https://mcp.anysite.io/mcp

  3. Click Connect, authorize in the browser

  4. Required: Settings → Capabilities → Tool access → Tools already loaded

The last step is critical. Claude Desktop's "Load tools when needed" mode uses name-based matching that fails on generic names like discover and execute. If you skip it, the tools exist but the model will not reliably call them.

claude mcp add --transport http anysite "https://mcp.anysite.io/mcp?api_key=YOUR_KEY"
claude mcp list   # should show: anysite connected

The URL carries your API key — treat it as a secret.

Edit ~/.cursor/mcp.json (global) or .cursor/mcp.json in the project root:

{
  "mcpServers": {
    "anysite": {
      "url": "https://mcp.anysite.io/mcp?api_key=YOUR_KEY",
      "transport": "http"
    }
  }
}

Point any compliant client at https://mcp.anysite.io/mcp and authenticate via OAuth or ?api_key=YOUR_KEY.

Step 3: Verify

Ask the assistant:

What MCP tools do you have from anysite?

It should list: discover, execute, get_page, query_cache, export_data — plus eight crm_* tools if the CRM integration is enabled on your account.

Step 4: Run a query

Use anysite to find 20 CTOs at Series B fintech startups in New York,
then show me the ones with AI or ML in their headline.

The assistant runs discover on LinkedIn, picks the right search endpoint, calls execute, then narrows server-side with query_cache.


Related MCP server: Linkd MCP Server

stdio bridge (npm package)

@anysiteio/mcp is a thin local proxy: it runs on stdio and forwards every request to https://mcp.anysite.io/mcp over Streamable HTTP with your token. No business logic lives in the package — tools, instructions, caching and exports all come from the server, so new endpoints and tools appear without a package update.

Use it when your client cannot speak HTTP transport: stdio-only IDE plugins, older Cline/Continue builds, custom stdio runners, or environments where outbound HTTP must go through a managed local process.

Install

npm install -g @anysiteio/mcp

Or run on demand with npx -y @anysiteio/mcp.

Configure your client

{
  "mcpServers": {
    "anysite": {
      "command": "npx",
      "args": ["-y", "@anysiteio/mcp"],
      "env": {
        "ANYSITE_ACCESS_TOKEN": "your_token_here"
      }
    }
  }
}

That is the entire configuration. Only ANYSITE_ACCESS_TOKEN is required — create one at app.anysite.io. The token can also live in ~/.anysite-mcp.env.


The tools

Tool

Purpose

discover(source, category)

List endpoints in a category with their params and LLM hints. Always call before execute.

execute(source, category, endpoint, params)

Fetch data. Returns first 10 items + cache_key.

get_page(cache_key, offset, limit)

Paginate cached items without re-fetching (limit ≤ 50).

query_cache(cache_key, conditions?, sort_by?, aggregate?, group_by?)

Filter / sort / aggregate cached items server-side.

export_data(cache_key, output_format, list_unpack?)

Dump the full dataset to json / jsonl / csv. Returns a download URL.

crm_* (8 tools)

HubSpot-and-friends read/write: connections, schema, upsert contacts/companies, query, undo. Visible only when CRM is enabled for your account.

Sources surfaced through discover: LinkedIn, Instagram, Twitter/X, Reddit, YouTube, SEC EDGAR, Y Combinator, Crunchbase, DuckDuckGo, the universal web parser, plus AI parsers for GitHub, Amazon, Google Maps, G2, BuiltWith, Apify, GLEIF, Newegg and more. New endpoints appear automatically as soon as they ship on the platform.

Data fetched by execute is cached server-side for 7 days: one execute() call, then unlimited get_page / query_cache / export_data calls without re-paying API credits. Export files live for 24 hours (regenerated on demand while the cache entry is alive).


Usage pattern

discover("linkedin", "search")
  → endpoints: ["users", "companies", "posts", ...] with params

execute("linkedin", "search", "users", { keywords: "CTO AI" })
  → { items: [...first 10], total: 50, cache_key: "abc..." , next_offset: 10 }

get_page("abc...", offset=10)            # next page, free
query_cache("abc...", { conditions: [{ field: "location", op: "contains", value: "San Francisco" }] })
export_data("abc...", "csv")             # full dataset as a CSV download URL

The agent figures out the parameter names on its own from discover.


Migrating from 2.x

v3 is a breaking change: the package no longer reimplements the server locally — it proxies the hosted MCP server. What changes for you:

  • export_data returns a download URL (https://mcp.anysite.io/exports/…) instead of a local file path. The file_path field is gone; agents that read the exported file from disk must download it instead. The URL is accessible without a token (the file name is unguessable) and lives for 24 hours — do not share the link if the data is sensitive.

  • export_data parameter is output_format. The old format name is transparently rewritten by the bridge for backward compatibility, but new prompts should use output_format.

  • get_page caps limit at 50 (server-side page size limit).

  • Cache is server-side now (7-day TTL, survives restarts, shared across your sessions) instead of in-process.

  • CRM tools appear (8 crm_* tools) when the CRM integration is enabled on your account.

  • Env vars ANYSITE_API_URL and ANYSITE_OPENAPI_URL are removed — the bridge talks to the MCP server, not the raw API. Use ANYSITE_MCP_URL to point at a different MCP server.

  • bin aliases anysite and mcp are removed — the command is anysite-mcp.

  • Two LinkedIn endpoints that were reachable in 2.x (sn_search/users, company/employees) are excluded by server policy.

  • Tool results no longer carry a mimeType on content items — the server defines the response shape.

  • Cancelling a long tools/call stops the client-side wait, but the server keeps processing the request (stateless transport cannot deliver the cancellation) — the work is still billed.


Skills — ready-made workflows

The MCP server gives raw access. Anysite Skills package that access into named workflows you summon by topic, so the assistant runs a proven pattern instead of improvising. Built for Claude Code (also works in Cursor / Windsurf via the same plugin format).

Workflow

What you say

What it does

Lead generation

"Find me 50 marketing directors at Series A SaaS in Berlin and enrich with email"

LinkedIn search → enrichment → CSV

Competitor intelligence

"Track @competitor across LinkedIn hires, social, YC, and recent posts"

Multi-source intel + hiring velocity + sentiment

Person analyzer

"Deep-dive on this LinkedIn profile before our partnership call"

LinkedIn + Twitter + Reddit + GitHub + web → strategic brief

Market research

"Map the AI legal-tech landscape — startups, funding, momentum"

YC + Crunchbase + SEC + Reddit + Twitter sentiment

Customer pain mining

"Pull verbatim complaints about Salesforce from Reddit and Twitter"

Pain clusters + exact quotes + white-space gaps

Brand reputation

"What is the conversation around our brand this week?"

Cross-platform mention scan with sentiment scoring

Positioning map

"Plot 3-5 competitors on a positioning map, find the empty quadrant"

Five-axis comparison + positioning statement

Full catalog (17 skills, including VC analyst, influencer discovery, audience analysis, content analytics, trend analysis): github.com/anysiteio/agent-skills.

Install

In Claude Code:

/plugin marketplace add https://github.com/anysiteio/agent-skills
/plugin install anysite-lead-generation@anysite-skills

You can install one skill or the whole marketplace. The MCP server connection above is the only prerequisite.


Local development

git clone https://github.com/anysiteio/anysite-mcp.git
cd anysite-mcp
npm install
npm run build:tsc
ANYSITE_ACCESS_TOKEN=... node build/server.js

Inspect the tools interactively:

npm run inspector

Configuration

Env var

Required

Default

Notes

ANYSITE_ACCESS_TOKEN

yes

Create one at app.anysite.io

ANYSITE_MCP_URL

no

https://mcp.anysite.io/mcp

Override the remote MCP server URL

Variables can also live in ./.env or ~/.anysite-mcp.env (real environment variables and ./.env take precedence over ~/.anysite-mcp.env).

If the remote server is unreachable at startup, the bridge still starts in a degraded mode (empty tool list, descriptive errors on calls), keeps reconnecting in the background, and announces the tool list via tools/list_changed once the server is reachable again.


Project layout

src/
├── server.ts   stdio entry (CLI bin): env handling, connect with retries, degraded mode
├── proxy.ts    the bridge: remote client, generic request forwarding, tools/list cache,
│               format→output_format shim, error mapping, background list refresh
├── index.ts    Smithery TypeScript runtime adapter
└── config.ts   env-derived constants

License

MIT

Available Tools

26 tools
get_instagram_post_commentsC

Get Instagram post comments

ParametersJSON Schema
NameRequiredDescriptionDefault
countYesMax result count
postYesPost ID
timeoutNoMax scrapping execution timeout (in seconds)

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states 'Get Instagram post comments' but fails to reveal critical behaviors: it implies data retrieval but doesn't mention that it involves scraping (as hinted in the schema's 'timeout' parameter), potential rate limits, authentication needs, or what the output looks like. This is a significant gap for a tool with no annotation coverage.

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 extremely concise with just three words, front-loading the core action and resource without any wasted language. It efficiently communicates the basic purpose in a minimal format, making it easy to parse quickly.

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

Completeness2/5

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

Given the tool's complexity (involving scraping as implied by the schema), lack of annotations, and no output schema, the description is incomplete. It fails to address key contextual aspects like scraping behavior, output format, error handling, or how it differs from sibling tools. This leaves the agent with insufficient information for effective use.

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?

The schema description coverage is 100%, meaning all parameters are documented in the schema itself. The description adds no additional meaning beyond the schema, such as explaining the relationship between parameters or usage examples. Given the high coverage, a baseline score of 3 is appropriate, as the description doesn't compensate but also doesn't detract from the schema's information.

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

Purpose3/5

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

The description 'Get Instagram post comments' clearly states the verb ('Get') and resource ('Instagram post comments'), making the purpose understandable. However, it lacks specificity about what 'Get' entails (e.g., retrieval, listing, scraping) and does not differentiate from sibling tools like 'get_linkedin_post_comments', leaving room for ambiguity.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It does not mention any prerequisites, context for use, or comparisons to sibling tools such as 'get_instagram_user_posts', which might be relevant for related tasks. This absence leaves the agent without direction on appropriate usage scenarios.

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

get_instagram_userC

Get Instagram user information by URL, alias or ID

ParametersJSON Schema
NameRequiredDescriptionDefault
timeoutNoMax scrapping execution timeout (in seconds)
userYesUser ID, alias or URL

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'Get' but doesn't specify if this is a read-only operation, whether it requires authentication, rate limits, or what happens on errors. The description lacks critical behavioral context for a tool that likely involves web scraping.

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 a single, efficient sentence that directly states the tool's purpose without any wasted words. It's appropriately sized and front-loaded with essential information.

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

Completeness2/5

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

For a tool with no annotations, no output schema, and likely involving web scraping (implied by 'scrapping' in timeout description), the description is inadequate. It doesn't explain what information is returned, error conditions, or important behavioral constraints like rate limits or authentication requirements.

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 both parameters thoroughly. The description adds minimal value by mentioning 'URL, alias or ID' for the user parameter, but doesn't provide additional context beyond what's in the schema. Baseline 3 is appropriate when schema does the heavy lifting.

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?

The description clearly states the verb ('Get') and resource ('Instagram user information'), and specifies the input types ('by URL, alias or ID'). However, it doesn't explicitly distinguish this tool from its sibling Instagram tools (like get_instagram_user_posts), which would require a 5.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools or suggest scenarios where this tool is preferred over others, leaving the agent to infer usage context.

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

get_instagram_user_postsC

Get Instagram user posts

ParametersJSON Schema
NameRequiredDescriptionDefault
countYesMax result count
timeoutNoMax scrapping execution timeout (in seconds)
userYesUser ID, alias or URL

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It mentions 'Get' but doesn't disclose behavioral traits such as whether this is a read-only operation, potential rate limits, authentication needs, or that it involves web scraping (implied by the 'timeout' parameter). The description is minimal and lacks critical context for safe and effective use.

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 description is extremely concise ('Get Instagram user posts'), which is efficient and front-loaded. However, it may be overly brief, risking under-specification. Every word serves a purpose, but more detail could improve clarity without sacrificing conciseness.

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

Completeness2/5

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

Given no annotations, no output schema, and a tool with parameters (including a 'timeout' hinting at scraping), the description is incomplete. It doesn't cover return values, error handling, or behavioral aspects like scraping implications. For a tool with potential complexity, this is inadequate.

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 fully documents parameters (user, count, timeout). The description adds no meaning beyond the schema, as it doesn't explain parameter interactions or usage examples. With high schema coverage, the baseline score of 3 is appropriate, but no extra value is provided.

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

Purpose3/5

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

The description 'Get Instagram user posts' clearly states the action (get) and resource (Instagram user posts), but it's vague about scope and doesn't differentiate from sibling tools like 'get_instagram_user' or 'get_instagram_post_comments'. It lacks specificity about what 'posts' includes (e.g., recent posts, all posts, metadata).

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. There are sibling tools for Instagram (e.g., 'get_instagram_user', 'get_instagram_post_comments'), but the description doesn't mention them or specify contexts like needing user details versus posts. Usage is implied only by the tool name.

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

get_linkedin_chat_messagesC

Get top chat messages from LinkedIn management API. Account ID is taken from environment.

ParametersJSON Schema
NameRequiredDescriptionDefault
companyNoCompany URN where the account is admin (format: company:123456)
countNoMax messages to return
timeoutNoTimeout in seconds
userYesUser URN for filtering messages (must include prefix, e.g. fsd_profile:ACoAA...)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It mentions the account ID source but doesn't describe what 'top' means (recency? engagement?), whether this is a read-only operation, potential rate limits, error conditions, or what format the messages are returned in. The description provides minimal behavioral context beyond the basic operation.

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 description is appropriately concise with two sentences that convey essential information. The first sentence states the core functionality, and the second provides important authentication context. No unnecessary words or redundant information is present.

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

Completeness2/5

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

For a tool with 4 parameters, no annotations, and no output schema, the description is insufficient. It doesn't explain what 'top' means in the context of chat messages, doesn't describe the return format or structure, and provides minimal behavioral context. The authentication note is helpful but doesn't compensate for the overall lack of completeness.

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 input schema already documents all parameters thoroughly. The description doesn't add any parameter-specific information beyond what's in the schema. According to scoring rules, when schema coverage is high (>80%), the baseline is 3 even with no parameter info in the description.

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?

The description clearly states the action ('Get top chat messages') and resource ('LinkedIn management API'), making the purpose understandable. However, it doesn't differentiate this tool from sibling tools like 'get_linkedin_conversations' or 'send_linkedin_chat_message', which would require more specific scope definition.

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

Usage Guidelines2/5

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

The description mentions that 'Account ID is taken from environment' which provides some context about authentication, but offers no guidance on when to use this tool versus alternatives like 'get_linkedin_conversations' or 'send_linkedin_chat_message'. No explicit when/when-not scenarios or sibling tool comparisons are provided.

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

get_linkedin_companyC

Get detailed information about a LinkedIn company

ParametersJSON Schema
NameRequiredDescriptionDefault
companyYesCompany Alias or URL or URN (example: 'openai' or 'company:1441')
timeoutNoTimeout in seconds

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states it 'gets' information, implying a read-only operation, but doesn't mention potential side effects, authentication requirements, rate limits, error conditions, or what format the detailed information returns. This leaves significant gaps for an AI agent to understand how to invoke it safely and effectively.

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 a single, efficient sentence that front-loads the core purpose. There's zero waste—every word contributes to stating what the tool does. It's appropriately sized for a simple lookup tool.

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

Completeness2/5

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

Given no annotations and no output schema, the description is incomplete for a tool that presumably returns complex company data. It doesn't explain what 'detailed information' entails, potential authentication needs, or error handling. For a LinkedIn API tool with likely rich output, this leaves the agent under-informed about how to interpret results or handle failures.

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 both parameters ('company' and 'timeout') thoroughly. The description adds no additional meaning beyond what's in the schema—it doesn't explain what 'detailed information' includes or how parameters affect the output. Baseline 3 is appropriate when the schema does the heavy lifting.

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?

The description clearly states the verb 'Get' and the resource 'detailed information about a LinkedIn company', making the purpose unambiguous. It distinguishes from siblings like 'get_linkedin_company_employees' (which focuses on employees) or 'get_linkedin_profile' (which focuses on individual profiles). However, it doesn't specify what 'detailed information' includes, leaving some ambiguity.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when to choose this over 'get_linkedin_google_company' or 'search_linkedin_posts', nor does it specify prerequisites like needing authentication or valid company identifiers. Usage is implied only by the tool name.

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

get_linkedin_company_employeesC

Get employees of a LinkedIn company

ParametersJSON Schema
NameRequiredDescriptionDefault
companiesYesCompany URNs (example: ['company:14064608'])
countYesMaximum number of results
first_nameNoSearch for exact first name
keywordsNoAny keyword for searching employees
last_nameNoSearch for exact last name
timeoutNoTimeout in seconds

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but offers minimal behavioral insight. 'Get employees' implies a read operation, but it doesn't disclose rate limits, authentication requirements, data freshness, pagination behavior, or what happens when companies parameter contains invalid URNs. For a tool with 6 parameters and no output schema, this leaves significant behavioral questions unanswered.

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 a single, efficient sentence that gets straight to the point with zero wasted words. It's appropriately sized for a tool with clear naming and good schema documentation, though its brevity contributes to gaps in other dimensions.

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

Completeness2/5

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

Given the tool's complexity (6 parameters, no annotations, no output schema), the description is inadequate. It doesn't explain what the tool returns (employee profiles? basic info?), how results are structured, whether all parameters work together, or any limitations. For a data retrieval tool with multiple filtering options and no output schema, users need more context about what to expect.

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 all parameters are documented in the schema itself. The description adds no additional parameter semantics beyond implying the tool operates on LinkedIn company data. It doesn't explain relationships between parameters (e.g., how keywords interacts with first_name/last_name) or provide context about the companies parameter beyond what's in the schema. Baseline 3 is appropriate when schema does the heavy lifting.

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?

The description clearly states the verb ('Get') and resource ('employees of a LinkedIn company'), making the purpose immediately understandable. It distinguishes this tool from siblings like get_linkedin_company (which gets company info) or get_linkedin_user_connections (which gets personal connections). However, it doesn't specify whether this retrieves current employees, all employees, or includes filtering capabilities beyond what the parameters imply.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. With siblings like search_linkedin_users (which might search across LinkedIn) and get_linkedin_user_connections (which gets connections for a specific user), there's no indication whether this tool is for company-specific employee lookup, how it differs from broader searches, or any prerequisites for accessing company employee data.

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

get_linkedin_conversationsC

Get list of LinkedIn conversations from the messaging interface. Account ID is taken from environment.

ParametersJSON Schema
NameRequiredDescriptionDefault
connected_afterNoFilter conversations created after the specified date (timestamp)
countNoMax conversations to return
timeoutNoTimeout in seconds

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the Account ID source but lacks details on permissions, rate limits, pagination, error handling, or what the returned list contains. For a read operation with zero annotation coverage, this leaves significant gaps in understanding how the tool behaves.

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 description is a single, efficient sentence that states the core purpose upfront. It avoids unnecessary words, though it could be slightly more structured by separating the authentication note into a second sentence for clarity.

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?

Given the tool's complexity (a read operation with three parameters), no annotations, and no output schema, the description is minimally adequate. It covers the basic action and authentication but lacks details on return values, error cases, or behavioral constraints, leaving room for improvement in completeness.

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 fully documents the three parameters (connected_after, count, timeout). The description adds no additional parameter information beyond what's in the schema, such as date format examples or usage tips. With high schema coverage, the baseline score of 3 is appropriate as the description doesn't compensate but also doesn't need to.

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?

The description clearly states the verb ('Get list') and resource ('LinkedIn conversations from the messaging interface'), making the purpose understandable. However, it doesn't explicitly differentiate from sibling tools like 'get_linkedin_chat_messages' or 'get_linkedin_user_connections', which might also retrieve conversation-related data, leaving some ambiguity about scope.

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

Usage Guidelines2/5

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

The description mentions that 'Account ID is taken from environment,' which provides some context about authentication, but it offers no guidance on when to use this tool versus alternatives like 'get_linkedin_chat_messages' or other LinkedIn tools. There are no explicit when/when-not instructions or named alternatives.

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

get_linkedin_email_userB

Get LinkedIn user details by email

ParametersJSON Schema
NameRequiredDescriptionDefault
countNoMax results
emailYesEmail address
timeoutNoTimeout in seconds

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states it's a read operation ('Get'), implying non-destructive behavior, but lacks details on permissions required, rate limits, error conditions, or what 'user details' specifically includes (e.g., profile fields, contact info). For a tool with no annotation coverage, this leaves significant gaps in understanding its behavior.

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 a single, efficient sentence with zero wasted words. It's front-loaded with the core purpose and uses clear, direct language. Every element ('Get', 'LinkedIn user details', 'by email') earns its place by conveying essential information.

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?

Given no annotations and no output schema, the description is minimally adequate for a simple lookup tool but lacks depth. It covers the basic purpose and key parameter (email), but doesn't address behavioral aspects like what 'user details' returns, potential errors, or usage constraints. For a tool with 3 parameters and no structured output, more context would be helpful.

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 fully documents all three parameters (email, count, timeout). The description mentions 'by email', which aligns with the required 'email' parameter, but adds no additional semantic context beyond what the schema provides, such as email format requirements or how 'count' affects results. Baseline 3 is appropriate when the schema does the heavy lifting.

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?

The description clearly states the action ('Get') and target resource ('LinkedIn user details'), with the specific lookup method 'by email' distinguishing it from other LinkedIn tools that might use different identifiers. However, it doesn't explicitly differentiate from similar sibling tools like 'get_linkedin_profile' or 'search_linkedin_users', which could also retrieve user information.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, such as 'get_linkedin_profile' (which might use a different identifier) or 'search_linkedin_users' (which might offer broader search capabilities). There's no mention of prerequisites, limitations, or typical use cases for email-based lookup.

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

get_linkedin_google_companyC

Search for LinkedIn companies using Google search. First result is usually the best match.

ParametersJSON Schema
NameRequiredDescriptionDefault
count_per_keywordNoMax results per keyword
keywordsYesCompany keywords for search. For example, company name or company website
timeoutNoTimeout in seconds
with_urnNoInclude URNs in response (increases execution time)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It mentions 'First result is usually the best match,' which hints at result quality but doesn't cover critical aspects like rate limits, authentication needs, error handling, or what 'increases execution time' means for the 'with_urn' parameter. For a search tool with external dependencies, this is insufficient.

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 extremely concise (two sentences) and front-loaded with the core purpose. Every sentence adds value: the first defines the tool, the second provides a useful heuristic about result quality. Zero waste.

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

Completeness2/5

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

Given no annotations and no output schema, the description is incomplete for this tool's complexity. It doesn't explain what the output looks like (e.g., company details, URLs, URNs), error conditions, or how it integrates Google search with LinkedIn data. For a 4-parameter tool with external dependencies, more context is needed.

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 parameters thoroughly. The description adds no additional parameter semantics beyond what's in the schema (e.g., it doesn't explain search algorithm details or result formatting). Baseline 3 is appropriate when schema does the heavy lifting.

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?

The description clearly states the tool's purpose: 'Search for LinkedIn companies using Google search.' It specifies the resource (LinkedIn companies) and method (Google search). However, it doesn't explicitly differentiate from sibling tools like 'get_linkedin_company' or 'google_search', which would require a 5.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. There are multiple sibling tools for LinkedIn data (e.g., 'get_linkedin_company', 'google_search'), but no indication of when this hybrid approach is preferred or what its limitations are compared to direct LinkedIn API tools.

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

get_linkedin_post_commentsC

Get LinkedIn comments for a post by URN

ParametersJSON Schema
NameRequiredDescriptionDefault
countYesMax comments to return
sortNoSort type (relevance or recent)relevance
timeoutNoTimeout in seconds
urnYesPost URN, only activity urn type is allowed (example: activity:7234173400267538433)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It mentions the tool gets comments but lacks behavioral details such as rate limits, authentication requirements, pagination behavior, error handling, or what happens if the URN is invalid. This is a significant gap for a tool that likely interacts with an external API.

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 a single, efficient sentence that directly states the tool's purpose without unnecessary words. It is front-loaded and wastes no space, making it easy to parse quickly.

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

Completeness2/5

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

Given no annotations and no output schema, the description is incomplete. It doesn't cover behavioral aspects like API limits or errors, and lacks details on return values (e.g., comment structure, pagination). For a tool with 4 parameters and likely external dependencies, more context is needed to use it effectively.

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 fully documents all parameters (urn, count, sort, timeout). The description adds no additional parameter semantics beyond the schema, such as explaining URN format constraints or sort behavior implications. Baseline 3 is appropriate when the schema does the heavy lifting.

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?

The description clearly states the action ('Get') and resource ('LinkedIn comments for a post'), specifying it operates on posts identified by URN. It distinguishes from siblings like get_linkedin_post_reactions by focusing on comments rather than reactions, but doesn't explicitly contrast with get_linkedin_user_comments which might retrieve comments made by a user rather than on a post.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. For example, it doesn't mention when to prefer this over get_linkedin_user_comments or how it relates to send_linkedin_post_comment. The description only states what it does, not the context for its application.

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

get_linkedin_post_reactionsB

Get LinkedIn reactions for a post by URN

ParametersJSON Schema
NameRequiredDescriptionDefault
countYesMax reactions to return
timeoutNoTimeout in seconds
urnYesPost URN, only activity urn type is allowed (example: activity:7234173400267538433)

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the action is to 'Get' reactions, implying a read-only operation, but does not disclose any behavioral traits such as rate limits, authentication needs, pagination, or what the return format looks like (e.g., list of reactions with details). For a tool with no annotations, this is a significant gap in transparency.

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 a single, efficient sentence that directly states the tool's purpose without unnecessary words. It is front-loaded and appropriately sized, with every part contributing to clarity, making it highly concise and well-structured.

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?

Given the tool's moderate complexity (3 parameters, no output schema, no annotations), the description is minimally adequate. It covers the basic purpose but lacks details on behavioral aspects, usage context, and return values. With no output schema, the description should ideally hint at the response format, but it does not, leaving gaps in completeness for effective agent use.

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?

The input schema has 100% description coverage, with clear documentation for 'count', 'timeout', and 'urn' parameters. The description adds no additional meaning beyond the schema, such as explaining URN format constraints or usage tips. Since schema coverage is high, the baseline score is 3, as the description does not compensate but also does not detract.

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?

The description clearly states the verb 'Get' and the resource 'LinkedIn reactions for a post by URN', specifying it retrieves reactions for a LinkedIn post using a URN. However, it does not distinguish this from sibling tools like 'get_linkedin_post_comments' or 'get_linkedin_user_reactions', which handle related but different data types, so it lacks explicit sibling differentiation.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, such as 'get_linkedin_post_comments' for comments or 'get_linkedin_user_reactions' for user-specific reactions. It mentions the URN requirement but does not clarify usage context, exclusions, or prerequisites, leaving the agent to infer based on tool names alone.

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

get_linkedin_post_repostsC

Get LinkedIn reposts for a post by URN

ParametersJSON Schema
NameRequiredDescriptionDefault
countYesMax reposts to return
timeoutNoTimeout in seconds
urnYesPost URN, only activity urn type is allowed (example: activity:7234173400267538433)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions retrieving reposts but does not cover critical aspects like rate limits, authentication requirements, error handling, or the format of returned data. This leaves significant gaps in understanding how the tool behaves in practice.

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 a single, direct sentence that efficiently conveys the core purpose without unnecessary words. It is front-loaded and wastes no space, making it easy to parse quickly.

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

Completeness2/5

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

Given the lack of annotations and output schema, the description is incomplete. It does not address behavioral traits, return values, or usage context, which are essential for a tool that interacts with an external API like LinkedIn. This leaves the agent with insufficient information to use the tool effectively beyond basic parameter passing.

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%, meaning all parameters are documented in the input schema. The description adds no additional semantic context beyond implying the 'urn' parameter specifies the post. Since the schema handles parameter details adequately, the baseline score of 3 is appropriate, as the description does not compensate or add value beyond the schema.

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?

The description clearly states the action ('Get LinkedIn reposts') and the target resource ('for a post by URN'), making the purpose understandable. However, it does not explicitly differentiate from sibling tools like 'get_linkedin_post_reactions' or 'get_linkedin_post_comments', which also retrieve post-related data but for different aspects.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, such as other LinkedIn post-related tools (e.g., for reactions or comments). It lacks context about prerequisites, limitations, or scenarios where this tool is preferred, leaving usage decisions ambiguous.

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

get_linkedin_profileB

Get detailed information about a LinkedIn user profile

ParametersJSON Schema
NameRequiredDescriptionDefault
userYesUser alias, URL, or URN
with_educationNoInclude education info
with_experienceNoInclude experience info
with_skillsNoInclude skills info

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. While 'Get' implies a read operation, the description doesn't address important aspects like authentication requirements, rate limits, data freshness, privacy considerations, or what happens when a profile isn't found. For a tool accessing external platform data with no annotation coverage, this is a significant gap.

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 a single, efficient sentence that gets straight to the point with no wasted words. It's appropriately sized for a tool with a clear primary function and doesn't bury important information in unnecessary verbiage.

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?

For a read-only data retrieval tool with 100% schema coverage, the description is minimally adequate. However, the lack of annotations means important behavioral context is missing, and without an output schema, there's no information about what the detailed profile data actually looks like. The description should ideally mention the scope of 'detailed information' or reference the parameter-controlled sections.

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 parameters thoroughly. The description doesn't add any parameter-specific information beyond what's in the schema - it mentions 'detailed information' but doesn't clarify what that includes or how parameters control it. With complete schema coverage, the baseline of 3 is appropriate.

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?

The description clearly states the verb ('Get') and resource ('detailed information about a LinkedIn user profile'), making the purpose immediately understandable. However, it doesn't differentiate this tool from similar sibling tools like 'get_linkedin_user_connections' or 'get_linkedin_user_posts', which also retrieve LinkedIn user data but focus on specific aspects.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. With many sibling tools that retrieve LinkedIn user data (e.g., get_linkedin_user_connections, get_linkedin_user_posts), there's no indication of when this comprehensive profile tool is preferred over more specific ones, nor any mention of prerequisites or limitations.

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

get_linkedin_user_commentsC

Get LinkedIn comments for a user by URN (must include prefix, example: fsd_profile:ACoAA...)

ParametersJSON Schema
NameRequiredDescriptionDefault
commented_afterNoFilter comments that created after the specified date. Accepts timestamp
countNoMax comments
timeoutNoTimeout in seconds
urnYesUser URN (must include prefix, example: fsd_profile:ACoAA...)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the URN format requirement but fails to describe key behaviors such as pagination, rate limits, authentication needs, error handling, or the structure of returned comments. This leaves significant gaps for an agent to understand how the tool operates.

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 description is a single, efficient sentence that front-loads the core purpose and includes a helpful example. It avoids unnecessary words, though it could be slightly more structured by separating guidelines from the core statement.

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

Completeness2/5

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

Given the lack of annotations and output schema, the description is incomplete. It does not explain what the tool returns (e.g., comment objects, metadata), error conditions, or behavioral constraints like rate limits. For a tool with 4 parameters and no structured output, more contextual information is needed for effective use.

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 input schema fully documents all parameters. The description adds minimal value by reiterating the URN format example, which is already in the schema, and does not provide additional context like default behaviors or usage tips. This meets the baseline for high schema coverage.

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?

The description clearly states the action ('Get LinkedIn comments') and resource ('for a user by URN'), providing a specific example of the required URN format. However, it does not explicitly differentiate this tool from sibling tools like 'get_linkedin_post_comments' or 'get_linkedin_user_posts', which reduces the score from a 5.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, such as 'get_linkedin_post_comments' for comments on a specific post or 'get_linkedin_user_posts' for user posts. It lacks context on prerequisites, exclusions, or comparisons with sibling tools, offering only basic parameter instructions.

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

get_linkedin_user_connectionsC

Get list of LinkedIn user connections. Account ID is taken from environment.

ParametersJSON Schema
NameRequiredDescriptionDefault
connected_afterNoFilter users that added after the specified date (timestamp)
countNoMax connections to return
timeoutNoTimeout in seconds

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It mentions that 'Account ID is taken from environment', which adds useful context about authentication. However, it lacks critical details: no information on rate limits, pagination (beyond the 'count' parameter), error handling, or what the returned list contains (e.g., fields like names, IDs). For a read operation with zero annotation coverage, this is insufficient.

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 description is appropriately sized with two concise sentences. The first sentence states the core purpose, and the second adds authentication context. There's no wasted verbiage, and it's front-loaded with the main functionality. A minor deduction because the authentication note could be more integrated, but overall efficient.

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

Completeness2/5

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

Given no annotations and no output schema, the description is incomplete for a tool that retrieves social media connections. It lacks details on return format (e.g., structure of connection objects), error cases, or usage limits. The authentication hint is helpful but doesn't compensate for missing behavioral and output context, making it inadequate for reliable agent use.

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 three parameters thoroughly. The description adds no parameter-specific information beyond what's in the schema. According to scoring rules, when coverage is high (>80%), the baseline is 3 even with no param info in the description, which applies 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?

The description clearly states the verb ('Get') and resource ('list of LinkedIn user connections'), making the purpose unambiguous. It distinguishes from siblings by focusing specifically on user connections rather than posts, comments, or other LinkedIn entities. However, it doesn't explicitly differentiate from 'get_linkedin_profile' which might also retrieve user data, leaving minor ambiguity.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 'search_linkedin_users' or 'get_linkedin_profile'. It mentions that 'Account ID is taken from environment', which hints at authentication context but doesn't clarify prerequisites or exclusions. No explicit when/when-not instructions are given.

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

get_linkedin_user_postsC

Get LinkedIn posts for a user by URN (must include prefix, example: fsd_profile:ACoAAEWn01QBWENVMWqyM3BHfa1A-xsvxjdaXsY)

ParametersJSON Schema
NameRequiredDescriptionDefault
countNoMax posts
timeoutNoTimeout in seconds
urnYesUser URN (must include prefix, example: fsd_profile:ACoAA...)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the URN format requirement, which adds some context, but fails to describe key traits like whether this is a read-only operation, potential rate limits, authentication requirements, or what the output looks like (e.g., list of posts with fields). For a tool with no annotations, this is a significant gap in transparency.

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 description is a single, efficient sentence that front-loads the core purpose. It includes a necessary example for the URN parameter, which adds clarity without verbosity. There's no wasted text, making it appropriately sized for its function.

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

Completeness2/5

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

Given the tool's complexity (retrieving user posts from LinkedIn) and lack of annotations and output schema, the description is incomplete. It doesn't cover behavioral aspects like authentication, rate limits, or output format, which are crucial for an agent to use it correctly. The high schema coverage helps with parameters, but overall context is insufficient for a tool with no structured safety or output information.

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 parameters (urn, count, timeout) with descriptions. The description adds minimal value by reiterating the URN format example from the schema, but doesn't provide additional semantics like why the prefix is needed or how count/timeout affect performance. Baseline 3 is appropriate when the schema does the heavy lifting.

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?

The description clearly states the action ('Get LinkedIn posts') and target ('for a user by URN'), providing a specific verb and resource. It distinguishes from siblings like 'get_linkedin_post_comments' or 'search_linkedin_posts' by focusing on user-specific posts rather than comments or search results. However, it doesn't explicitly differentiate from 'get_linkedin_profile' which might also retrieve user data, making it a 4 rather than a 5.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when to choose this over 'search_linkedin_posts' for broader searches or 'get_linkedin_profile' for user metadata. There's no context about prerequisites, such as authentication needs or rate limits, leaving the agent with minimal usage direction.

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

get_linkedin_user_reactionsC

Get LinkedIn reactions for a user by URN (must include prefix, example: fsd_profile:ACoAA...)

ParametersJSON Schema
NameRequiredDescriptionDefault
countNoMax reactions
timeoutNoTimeout in seconds
urnYesUser URN (must include prefix, example: fsd_profile:ACoAA...)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It only states what the tool does and the URN format, lacking details on permissions needed, rate limits, error handling, response format, or whether it's a read-only operation (implied by 'Get' but not explicit). For a tool with potential API constraints, this is insufficient transparency.

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 a single, efficient sentence that front-loads the core purpose and includes a critical example for the URN. There is no wasted verbiage, and it directly addresses the essential information needed to invoke the tool, making it highly concise and well-structured.

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

Completeness2/5

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

Given the lack of annotations and output schema, the description is incomplete for a tool with three parameters and no behavioral context. It doesn't explain what 'reactions' entail (e.g., types, data structure), how results are returned, or any operational constraints. For a social media data tool, this leaves significant gaps in understanding its full context and usage.

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 input schema fully documents parameters (urn, count, timeout). The description adds minimal value by reiterating the URN format example from the schema but doesn't provide additional context like URN sourcing, count/timeout implications, or default behaviors. This meets the baseline for high schema coverage without enhancing parameter understanding.

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?

The description clearly states the tool's purpose: 'Get LinkedIn reactions for a user by URN'. It specifies the verb ('Get'), resource ('LinkedIn reactions'), and target ('user by URN'), making the function unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'get_linkedin_post_reactions', which targets posts rather than users, though this distinction is implied by the name.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It mentions the URN requirement but doesn't clarify scenarios for choosing this over other LinkedIn tools (e.g., 'get_linkedin_user_posts' or 'get_linkedin_post_reactions'), prerequisites like authentication, or limitations such as data availability. This leaves the agent without contextual usage cues.

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

linkedin_sn_search_usersC

Advanced search for LinkedIn users using Sales Navigator filters

ParametersJSON Schema
NameRequiredDescriptionDefault
company_locationsNoCompany location URN (geo:*) or name, or array of them
company_sizesNoCompany size ranges
company_typesNoCompany types
countYesMaximum number of results (max 2500)
current_companiesNoCurrent company URN (company:*) or name, or array of them
current_titlesNoExact words to search in current titles
educationNoEducation URN (company:*) or name, or array of them
first_namesNoExact first names to search for
functionsNoJob functions
industryNoIndustry URN (industry:*) or name, or array of them
keywordsNoAny keyword for searching in the user profile. Using this may reduce result count.
languagesNoProfile languages
last_namesNoExact last names to search for
levelsNoJob seniority levels
locationNoLocation URN (geo:*) or name, or array of them
past_companiesNoPast company URN (company:*) or name, or array of them
past_titlesNoExact words to search in past titles
timeoutNoTimeout in seconds (20-1500)
years_in_the_current_companyNoYears in current company ranges
years_in_the_current_positionNoYears in current position ranges

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It mentions 'advanced search' but doesn't describe what that means operationally - no information about rate limits, authentication requirements, result format, pagination, or performance characteristics. The description doesn't explain what 'Sales Navigator filters' means in practice or how results differ from regular LinkedIn searches.

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 a single, efficient sentence that communicates the core functionality without unnecessary words. It's appropriately sized for a tool with comprehensive schema documentation and gets straight to the point about what makes this search 'advanced' (Sales Navigator filters).

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

Completeness2/5

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

For a complex search tool with 20 parameters and no annotations or output schema, the description is inadequate. It doesn't explain what the tool returns, how results are structured, or any behavioral aspects. While the schema covers parameters well, the description fails to provide the contextual understanding needed for effective tool selection and use, especially given the absence of output schema.

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 20 parameters thoroughly. The description adds no parameter-specific information beyond what's in the schema. It mentions 'Sales Navigator filters' which hints at the parameter categories, but provides no additional syntax, format, or usage guidance beyond the comprehensive schema descriptions.

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?

The description clearly states the verb ('search') and resource ('LinkedIn users') with the specific context of 'using Sales Navigator filters'. It distinguishes from generic LinkedIn user tools by specifying the advanced Sales Navigator filtering capability. However, it doesn't explicitly differentiate from 'search_linkedin_users' sibling tool, which appears to be a more general search.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention the sibling 'search_linkedin_users' tool or explain when Sales Navigator filters are appropriate versus basic LinkedIn searches. There's no discussion of prerequisites, limitations, or typical use cases for this advanced search functionality.

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

search_linkedin_postsC

Search for LinkedIn posts with various filters like keywords, content type, authors, etc.

ParametersJSON Schema
NameRequiredDescriptionDefault
author_industriesNoIndustry URN, can be obtained in /linkedin/search/industries. Or industry name.
author_titleNoAuthor job title.
authorsNoAuthors URN of posts
content_typeNoDesired content type
countYesMax result count
date_postedNoDate postedpast-month
keywordsNoAny keyword for searching in the post. For exact search put desired keywords into brackets
mentionedNoMentioned users URN in posts
sortNoSort typerelevance
timeoutNoMax scrapping execution timeout (in seconds)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'various filters' but doesn't describe important behavioral aspects: whether this is a read-only operation, what happens when no results are found, whether results are paginated, rate limits, authentication requirements, or what the output format looks like. The description is too minimal for a search tool with 10 parameters.

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 description is a single, efficient sentence that gets straight to the point. It's appropriately sized for a search tool, though it could potentially benefit from a bit more context given the complexity of the parameters. There's no wasted language or redundancy.

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

Completeness2/5

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

For a search tool with 10 parameters, no annotations, and no output schema, the description is insufficiently complete. It doesn't explain what the tool returns (post objects, metadata, error conditions), doesn't mention performance characteristics or limitations, and provides no context about how the search actually works (API calls, scraping, etc.). The 'timeout' parameter suggests scraping behavior that isn't mentioned in the description.

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 10 parameters thoroughly. The description adds minimal value beyond the schema by mentioning 'various filters like keywords, content type, authors, etc.' but doesn't provide additional context about parameter interactions, default behaviors, or practical usage examples. This meets the baseline for high schema coverage.

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?

The description clearly states the tool's purpose: 'Search for LinkedIn posts with various filters'. It specifies the resource (LinkedIn posts) and action (search with filters), making the verb+resource combination explicit. However, it doesn't distinguish this tool from sibling tools like 'search_linkedin_users' or 'search_reddit_posts' beyond mentioning 'LinkedIn posts'.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when this search tool should be preferred over 'get_linkedin_user_posts' (which retrieves posts from specific users) or 'search_reddit_posts' (which searches a different platform). There's no context about use cases, prerequisites, or limitations.

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

search_linkedin_usersC

Search for LinkedIn users with various filters like keywords, name, title, company, location etc.

ParametersJSON Schema
NameRequiredDescriptionDefault
company_keywordsNoExact word in the company name
countYesMaximum number of results (max 1000)
current_companyNoCompany URN or name
educationNoEducation URN or name
first_nameNoExact first name
industryNoIndustry URN or name
keywordsNoAny keyword for searching in the user page.
last_nameNoExact last name
locationNoLocation name or URN
past_companyNoPast company URN or name
school_keywordsNoExact word in the school name
timeoutNoTimeout in seconds (20-1500)
titleNoExact word in the title

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It mentions 'various filters' but doesn't describe important behavioral aspects: whether this is a read-only operation, what permissions are required, rate limits, pagination behavior, or what the return format looks like. For a search tool with 13 parameters, this is insufficient behavioral context.

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 description is a single, efficient sentence that gets straight to the point. It's appropriately sized for a search tool, though it could potentially be more front-loaded with critical information about the tool's scope and limitations.

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

Completeness2/5

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

For a complex search tool with 13 parameters and no output schema, the description is incomplete. It doesn't explain what results look like, how filters interact, whether all filters are optional, or any limitations beyond what's implied. With no annotations and no output schema, users need more context about the tool's behavior and results.

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 13 parameters thoroughly. The description adds minimal value beyond the schema by listing some filter types ('keywords, name, title, company, location etc.'), but doesn't provide additional semantic context about how filters combine or their relative importance. Baseline 3 is appropriate when schema does the heavy lifting.

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?

The description clearly states the tool's purpose: 'Search for LinkedIn users with various filters'. It specifies the resource (LinkedIn users) and action (search with filters). However, it doesn't explicitly differentiate from sibling tools like 'linkedin_sn_search_users' or 'get_linkedin_company_employees', which may have overlapping functionality.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. With multiple LinkedIn-related search tools in the sibling list (like 'linkedin_sn_search_users', 'search_linkedin_posts', 'get_linkedin_company_employees'), there's no indication of when this specific user search tool is appropriate versus other search or retrieval tools.

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

search_reddit_postsC

Search for Reddit posts with various filters

ParametersJSON Schema
NameRequiredDescriptionDefault
countYesMax result count
queryYesMain search query
sortNoType of search results sortingrelevance
time_filterNoTime filter for search resultsall
timeoutNoMax scrapping execution timeout (in seconds)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but only mentions 'various filters' without detailing behavioral traits like rate limits, authentication needs, or potential side effects (e.g., scraping implications from the 'timeout' parameter). This leaves significant gaps in understanding how the tool behaves.

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 a single, efficient sentence that directly states the tool's function without unnecessary words. It's appropriately sized and front-loaded, making it easy to parse quickly.

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

Completeness2/5

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

For a search tool with 5 parameters, no annotations, and no output schema, the description is inadequate. It lacks details on return values, error handling, or operational constraints (e.g., the 'timeout' hinting at scraping), leaving the agent with incomplete context for effective use.

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?

The schema description coverage is 100%, so parameters are well-documented in the schema. The description adds minimal value by mentioning 'various filters' but doesn't elaborate on parameter meanings beyond what the schema provides, aligning with the baseline for high schema coverage.

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?

The description clearly states the action ('search') and resource ('Reddit posts'), making the purpose understandable. However, it doesn't differentiate from sibling tools like 'search_linkedin_posts' or 'google_search' beyond mentioning Reddit specifically, which is why it doesn't reach a 5.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 'google_search' or other search tools in the sibling list. It mentions 'various filters' but doesn't specify contexts or exclusions, leaving the agent without usage direction.

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

send_linkedin_chat_messageC

Send a chat message via LinkedIn management API. Account ID is taken from environment.

ParametersJSON Schema
NameRequiredDescriptionDefault
companyNoCompany URN where the account is admin (format: company:123456)
textYesMessage text
timeoutNoTimeout in seconds
userYesRecipient user URN (must include prefix, e.g. fsd_profile:ACoAA...)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the Account ID source but lacks critical details such as rate limits, error handling, whether the message is sent immediately or queued, or what happens on failure. For a mutation tool (sending messages) with zero annotation coverage, this is a significant gap in transparency.

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 description is a single, efficient sentence that front-loads the core purpose. It avoids unnecessary words, but it could be slightly more structured by separating the authentication note into a second sentence for clarity.

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

Completeness2/5

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

Given the complexity of a mutation tool (sending messages) with no annotations and no output schema, the description is insufficient. It lacks details on behavioral traits (e.g., success/failure responses, side effects), and while the schema covers parameters well, the overall context for safe and effective use is incomplete.

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?

The input schema has 100% description coverage, so the schema already documents all four parameters thoroughly. The description adds no additional meaning beyond what the schema provides (e.g., it doesn't explain parameter interactions or provide examples). This meets the baseline of 3 when schema coverage is high.

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?

The description clearly states the action ('send a chat message') and the target platform ('via LinkedIn management API'), which provides a specific verb+resource combination. However, it doesn't explicitly differentiate from sibling tools like 'send_linkedin_connection' or 'send_linkedin_post', which would require a 5.

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

Usage Guidelines2/5

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

The description mentions that 'Account ID is taken from environment,' which provides some context about authentication, but it doesn't offer guidance on when to use this tool versus alternatives (e.g., 'send_linkedin_connection' or 'send_linkedin_post'), nor does it specify prerequisites or exclusions. This leaves the agent with minimal usage direction.

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

send_linkedin_connectionC

Send a connection invitation to LinkedIn user. Account ID is taken from environment.

ParametersJSON Schema
NameRequiredDescriptionDefault
timeoutNoTimeout in seconds
userYesRecipient user URN (must include prefix, e.g. fsd_profile:ACoAA...)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the action 'send' implying a write operation but lacks details on permissions, rate limits, confirmation of success, or potential side effects (e.g., LinkedIn's invitation limits). This leaves significant gaps for a mutation tool.

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 description is a single, efficient sentence that front-loads the core purpose. It avoids unnecessary words, though it could be slightly more structured by separating authentication details from the action. Overall, it's appropriately sized with minimal waste.

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

Completeness2/5

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

Given the tool is a mutation (sending an invitation) with no annotations and no output schema, the description is incomplete. It lacks information on behavioral traits (e.g., success criteria, error handling), output expectations, and detailed usage context, making it inadequate for safe and effective use by an AI agent.

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?

The input schema has 100% description coverage, clearly documenting both parameters ('user' and 'timeout'). The description adds no additional parameter semantics beyond what's in the schema, such as format examples for 'user' beyond the schema's note or context for 'timeout' usage. Baseline 3 is appropriate as the schema does the heavy lifting.

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?

The description clearly states the action ('Send a connection invitation') and target resource ('LinkedIn user'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'send_linkedin_chat_message' or 'send_linkedin_post' beyond the resource type, missing explicit distinction in the action context.

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

Usage Guidelines2/5

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

The description provides minimal guidance by noting that 'Account ID is taken from environment,' which hints at authentication but doesn't specify when to use this tool versus alternatives like 'get_linkedin_user_connections' for viewing connections or 'send_linkedin_chat_message' for messaging. No explicit when/when-not or alternative recommendations are included.

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

send_linkedin_postC

Create a post on LinkedIn. Account ID is taken from environment.

ParametersJSON Schema
NameRequiredDescriptionDefault
comment_scopeNoWho can comment on the postALL
textYesPost text content
timeoutNoTimeout in seconds
visibilityNoPost visibilityANYONE

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'Account ID is taken from environment,' which adds some authentication context, but fails to cover critical traits like whether this is a destructive write operation, potential rate limits, error handling, or what happens on success (e.g., returns a post ID). For a mutation tool with zero annotation coverage, this is inadequate.

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 extremely concise with just two short sentences that are front-loaded with the core purpose. Every word serves a purpose, with no wasted text or redundancy, making it efficient and easy to parse.

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

Completeness2/5

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

Given this is a mutation tool with no annotations and no output schema, the description is incomplete. It lacks information on behavioral traits (e.g., side effects, error cases), return values, and differentiation from sibling tools. The minimal content doesn't compensate for the missing structured data.

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 fully documents all parameters (text, comment_scope, visibility, timeout). The description adds no parameter-specific information beyond what's in the schema, such as examples or constraints. Baseline 3 is appropriate when the schema does all the work.

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?

The description clearly states the action ('Create a post') and target resource ('on LinkedIn'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'send_linkedin_chat_message' or 'send_linkedin_post_comment', which are also LinkedIn posting tools but for different content types.

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

Usage Guidelines2/5

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

The description provides minimal guidance with 'Account ID is taken from environment,' which hints at authentication context but doesn't explain when to use this tool versus alternatives. No explicit when/when-not instructions or comparisons to sibling posting tools (e.g., chat messages, comments) are included.

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

send_linkedin_post_commentB

Create a comment on a LinkedIn post or on another comment. Account ID is taken from environment.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesComment text
timeoutNoTimeout in seconds
urnYesURN of the activity or comment to comment on (e.g., 'activity:123' or 'comment:(activity:123,456)')

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions that 'Account ID is taken from the environment', which adds some context about authentication. However, it lacks details on permissions, rate limits, error handling, or what happens after creation (e.g., response format). For a mutation tool with zero annotation coverage, this is insufficient.

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 description is concise and front-loaded with the core purpose. Both sentences earn their place: the first defines the action and target, and the second clarifies authentication. There is no wasted text, though it could be slightly more structured.

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

Completeness2/5

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

Given the complexity of a mutation tool with no annotations and no output schema, the description is incomplete. It lacks details on behavioral traits (e.g., side effects, error cases), usage guidelines, and return values. The authentication note helps but does not compensate for the overall gaps.

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 parameters (text, timeout, urn). The description adds no additional meaning beyond what the schema provides, such as explaining URN formats or timeout implications. Baseline 3 is appropriate when the schema does the heavy lifting.

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 clearly states the specific action ('Create a comment') and the target resources ('on a LinkedIn post or on another comment'), distinguishing it from sibling tools like send_linkedin_post (which creates posts) or send_linkedin_chat_message (which sends messages). It also specifies that the Account ID is taken from the environment, adding operational context.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It does not mention when to comment on a post versus a comment, nor does it differentiate from other LinkedIn interaction tools like send_linkedin_post or send_linkedin_chat_message. Usage is implied but not explicitly stated.

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

TDQS

B3.2/5.0
Disambiguation4/5

Most tools have distinct purposes targeting specific platforms (Instagram, LinkedIn, Google, Reddit) and actions (get, search, send). However, there is some overlap between get_linkedin_profile and get_linkedin_email_user, as both retrieve LinkedIn user details, which could cause minor confusion. Overall, the tool boundaries are clear with minimal ambiguity.

Naming Consistency5/5

Tool names follow a highly consistent verb_noun pattern throughout, such as get_instagram_user, search_linkedin_posts, and send_linkedin_chat_message. All tools use snake_case with clear action prefixes (get, search, send), making them predictable and easy to understand. There are no deviations in naming conventions.

Tool Count3/5

With 26 tools, the count is borderline high for a social media data and interaction server, leaning towards heavy. While it covers multiple platforms and actions, the number may feel overwhelming for an agent to navigate efficiently. A more focused set could improve usability without sacrificing functionality.

Completeness4/5

The tool set provides comprehensive coverage for LinkedIn operations, including CRUD-like actions (get, search, send) for profiles, posts, comments, and messages, with minor gaps such as updating or deleting LinkedIn content. Instagram and Reddit tools are more limited (only get/search), but the server's primary focus on LinkedIn is well-covered for core workflows.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol server that enables seamless interaction with LinkedIn for job applications, profile retrieval, feed browsing, and resume analysis through natural language commands.
    31
  • A
    license
    A
    quality
    D
    maintenance
    An unofficial Model Context Protocol server that enables programmatic access to LinkedIn data through tools like user search, company search, profile enrichment, and contact retrieval.
    7
    20
    3
    ISC
  • F
    license
    Not graded
    quality
    D
    maintenance
    A comprehensive Model Context Protocol server that enables AI assistants to interact with LinkedIn APIs for profile management, content creation, networking, messaging, and analytics.
    2
  • A
    license
    A
    quality
    F
    maintenance
    An unofficial Model Context Protocol server that provides LinkedIn tools for searching users, enriching profiles, retrieving contact information, and conducting deep research through natural language interfaces.
    5
    13
    5
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/anysiteio/anysite-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server