Skip to main content
Glama
himanshu31shr

LinkedIn MCP Server

LinkedIn MCP Server

npm version License: MIT

A Model Context Protocol (MCP) server that provides AI agents with read/write access to the LinkedIn API.

Features

  • Profile Tools: Fetch user profile and email.

  • Post Tools: Create text, link, image, and document posts. Delete posts.

  • Media Tools: Upload images and documents to LinkedIn.

  • Organization Tools: Fetch organization details, post on behalf of an organization, fetch and delete org posts.

  • Social Action Tools: Fetch, create, and delete comments on posts. Add or remove reactions (like, celebrate, etc.).

  • Organization Analytics Tools: Get organization page, follower, and share statistics.

Related MCP server: LinkedIn MCP Server

Prerequisites

You need a LinkedIn Access Token. Create an app on the LinkedIn Developer Portal, then either:

  • Use the built-in OAuth flow (see Development Setup), or

  • Generate a token manually from the developer portal.

The easiest way to use this server is via the published npm package. No cloning required.

Install globally

npm install -g @himanshu31shr/linkedin-mcp-server

Then run it:

LINKEDIN_ACCESS_TOKEN=your-token linkedin-mcp-server

Or run directly with npx

LINKEDIN_ACCESS_TOKEN=your-token npx -y @himanshu31shr/linkedin-mcp-server

MCP Client Configuration

Claude Desktop

Add the following to your claude_desktop_config.json:

Using npx (no install needed):

{
  "mcpServers": {
    "linkedin": {
      "command": "npx",
      "args": ["-y", "@himanshu31shr/linkedin-mcp-server"],
      "env": {
        "LINKEDIN_ACCESS_TOKEN": "your-linkedin-access-token"
      }
    }
  }
}

Using a global install:

{
  "mcpServers": {
    "linkedin": {
      "command": "linkedin-mcp-server",
      "env": {
        "LINKEDIN_ACCESS_TOKEN": "your-linkedin-access-token"
      }
    }
  }
}

Using a local clone:

{
  "mcpServers": {
    "linkedin": {
      "command": "node",
      "args": ["/path/to/linkedin-mcp-server/dist/index.js"],
      "env": {
        "LINKEDIN_ACCESS_TOKEN": "your-linkedin-access-token"
      }
    }
  }
}

Cursor

In Cursor's Settings > AI > MCP Servers, add a new server:

  • Type: command

  • Name: linkedin

  • Command: npx -y @himanshu31shr/linkedin-mcp-server

  • Environment Variables: Add LINKEDIN_ACCESS_TOKEN with your token.

Antigravity / Windsurf / Other MCP Clients

Use the same pattern — point the MCP client to:

npx -y @himanshu31shr/linkedin-mcp-server

And set the LINKEDIN_ACCESS_TOKEN environment variable.

Available Tools

Tool

Description

get_profile

Fetch the authenticated user's LinkedIn profile

get_email

Fetch the authenticated user's email address

create_text_post

Create a text-only post

create_link_post

Create a post with a link attachment

create_image_post

Create a post with an image

create_document_post

Create a post with a document (PDF, etc.)

delete_post

Delete a post by URN

upload_image

Upload an image to LinkedIn

get_organization

Fetch organization details

create_org_post

Create a post on behalf of an organization

get_org_posts

Fetch recent posts for an organization

delete_org_post

Delete an organization post

get_post_comments

Fetch comments on a post

create_comment

Add a comment to a post

delete_comment

Delete a comment

add_reaction

Add a reaction to a post

remove_reaction

Remove a reaction from a post

get_org_page_statistics

Get organization page statistics

get_org_follower_statistics

Get organization follower statistics

get_org_share_statistics

Get organization share statistics

Development Setup

If you want to contribute or run from source:

  1. Clone and install:

    git clone https://github.com/himanshu31shr/linkedin-mcp-server.git
    cd linkedin-mcp-server
    npm install
  2. Build:

    npm run build
  3. Get a LinkedIn Access Token (automated OAuth flow):

    npm run auth

    Follow the prompts — this will save your LINKEDIN_ACCESS_TOKEN to the .env file automatically.

  4. Run locally:

    npm run dev

Scripts

Script

Description

npm run build

Compile TypeScript to JavaScript

npm run dev

Run in development mode with tsx

npm run auth

Run the OAuth token flow

npm test

Run tests with Vitest

npm run test:coverage

Run tests with coverage report

npm run lint

Type-check with TypeScript

npm run inspect

Launch MCP Inspector for debugging

Releasing a New Version

The CD pipeline automatically publishes to npm when a version tag is pushed.

# Bump version (creates commit + tag automatically)
npm version patch   # or: npm version minor / npm version major

# Push commit and tag to trigger publish
git push origin main --tags

The pipeline will:

  1. Validate the tag matches package.json version

  2. Run lint, tests, and build

  3. Publish to npm with provenance

  4. Create a GitHub Release with auto-generated notes

License

MIT

Available Tools

20 tools
add_reactionB

Add a reaction (like, celebrate, etc.) to a LinkedIn post

ParametersJSON Schema
NameRequiredDescriptionDefault
postUrnYesThe URN of the post to react to
reactionTypeYesThe type of reaction to add

TDQS

B3.3/5.0
Behavior2/5

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

No annotations provided, and the description does not disclose behavioral traits such as idempotency, authentication requirements, or rate limits. It only states the basic action.

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?

Single sentence, no wasted words. Efficiently conveys the core purpose.

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 simple 2-param tool with no output schema, the description is minimally adequate but lacks context about response or side effects. Could be more complete for a mutation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for both parameters. The description adds 'like, celebrate, etc.' which echoes the enum but does not add meaningful semantics beyond the schema.

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 action (add), the resource (reaction), and the context (LinkedIn post). It distinguishes from siblings like remove_reaction.

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 on when to use this tool versus alternatives. Does not mention when not to use it or provide context for selection.

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

create_commentB

Add a comment to a LinkedIn post

ParametersJSON Schema
NameRequiredDescriptionDefault
postUrnYesThe URN of the post to comment on
textYesThe text content of the comment
authorUrnNoThe URN of the author (defaults to authenticated user)

TDQS

B3.1/5.0
Behavior2/5

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

No annotations exist, so the description carries full transparency burden. It only states the action without disclosing behavioral traits like authentication requirements, rate limits, or side effects (e.g., mutation). Minimal disclosure.

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?

One sentence of 6 words is concise. The phrase 'LinkedIn post' is slightly redundant given the tool name, but overall efficient and front-loaded.

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 creation tool with 3 parameters (2 required) and no output schema, the description omits important context: return value, posting behavior (e.g., immediate vs pending), and formatting constraints. Incomplete for safe invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (all parameters described with names and types). The description adds no extra meaning beyond the schema; baseline 3 is appropriate.

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 'Add a comment to a LinkedIn post' clearly states the verb (Add), resource (comment), and context (LinkedIn post), which differentiates it from sibling tools like delete_comment.

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 on when to use this tool versus alternatives (e.g., add_reaction) or prerequisites (e.g., user must be authenticated). The description is purely operational.

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

create_document_postC

Create a post with a document (PDF, etc.) on LinkedIn

ParametersJSON Schema
NameRequiredDescriptionDefault
textYes
documentUrlYes
titleNo
visibilityNoPUBLIC

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations, the description carries the full burden but only states the basic function. It does not disclose important behavioral traits such as required permissions, posting behavior (profile vs organization), side effects, or whether the document is uploaded or linked. This leaves the agent uninformed about key operational details.

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

Conciseness3/5

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

The description is a single sentence, which is concise but overly brief for a tool with four parameters. It front-loads the primary action but lacks necessary detail. It earns a 3 as it is not wasteful but also not sufficiently informative for an agent.

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 absence of output schema and 0% schema coverage, the description is incomplete. It does not cover return values, error conditions, posting behavior, or how the parameters interact. A more thorough description is needed to compensate for the minimal schema information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must explain parameters. It fails to mention any of the four parameters (text, documentUrl, title, visibility) or their constraints (e.g., text max length, visibility enum). The description adds no semantic value beyond the schema structure.

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 with a document' and specifies 'PDF, etc.' on LinkedIn, distinguishing it from siblings like create_text_post or create_image_post. However, it could be more precise about document types and does not differentiate from create_org_post which may also create document posts for organizations.

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 explicit guidance on when to use this tool versus alternatives like create_image_post or create_link_post. It implies use for document sharing, but lacks context about prerequisites, limitations, or comparative recommendations for an AI agent.

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

create_image_postC

Create a post with an image on LinkedIn

ParametersJSON Schema
NameRequiredDescriptionDefault
textYes
imageUrlYes
altTextNo
visibilityNoPUBLIC

TDQS

C2.1/5.0
Behavior1/5

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

With no annotations, the description bears the full burden of disclosing behavioral traits but only states 'Create a post with an image on LinkedIn'. It fails to mention side effects, authentication requirements, rate limits, or any other behavioral implications.

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

Conciseness2/5

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

The description is a single sentence, which is concise but incomplete. It does not earn its place as it lacks necessary detail for an agent to use the tool effectively.

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

Completeness1/5

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

Given the tool has 4 parameters, no output schema, and no annotations, the description is grossly insufficient. It fails to cover expected return behavior, error conditions, or usage nuances.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0% description coverage and the tool description does not elaborate on any parameter. Thus, no additional meaning is provided beyond the schema's structural definitions.

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 'Create' and the resource 'a post with an image on LinkedIn', distinguishing it from sibling tools like create_text_post or create_link_post. However, it is brief and lacks additional context that could further clarify its specific purpose.

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 such as create_text_post or create_link_post. The description does not mention any prerequisites or context for use.

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

create_link_postC

Create a post with a link/article on LinkedIn

ParametersJSON Schema
NameRequiredDescriptionDefault
textYes
linkUrlYes
linkTitleNo
visibilityNoPUBLIC

TDQS

C2.4/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 does not disclose behavioral traits such as authentication requirements, rate limits, error handling (e.g., invalid URL), or whether the link creates a preview. The schema's 'uri' format hints at validation but the description adds nothing.

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

Conciseness3/5

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

The description is a single sentence with 9 words, making it concise and front-loaded. However, it is overly terse and omits critical details that would justify its brevity. It strikes a poor balance between conciseness and informativeness.

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 (4 parameters, no output schema, many sibling tools), the description is incomplete. It does not mention required authentication, expected output (e.g., post ID), or how it differs from similar tools. The agent lacks sufficient context to use the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, meaning no parameter descriptions exist. The description adds no meaning beyond the tool name, failing to explain what each parameter (text, linkUrl, linkTitle, visibility) represents or expects. This forces the agent to guess based on names alone.

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 creates a LinkedIn post with a link/article. This verb+resource combination is specific and distinguishes it from sibling tools like create_text_post or create_image_post. However, it could be more precise by mentioning the link article type explicitly.

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 create_text_post or create_image_post. It lacks any context about prerequisites, scenarios, or exclusions, leaving the agent to infer usage from the name alone.

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

create_org_postC

Create a post on behalf of a LinkedIn organization

ParametersJSON Schema
NameRequiredDescriptionDefault
organizationIdYesThe numeric ID of the organization to post as
textYesThe text content of the post
visibilityNoPost visibility: PUBLIC or LOGGED_IN (members only)PUBLIC
linkUrlNoOptional URL to include as an article attachment
linkTitleNoOptional title for the article attachment

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description must fully convey behavioral traits. It only states the action without disclosing side effects (e.g., notifications), required permissions, rate limits, or any destructive potential. The description is insufficient for safe invocation.

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, front-loaded sentence with no wasted words. However, it could be expanded with brief usage or behavioral notes without losing conciseness, so it earns a 4 rather than a 5.

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 creating a post (5 parameters, no output schema), the description omits important details: what is returned, how to verify success, or any constraints. The missing output schema increases the need for description completeness, which is not met.

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 already provides descriptions for all 5 parameters (100% coverage). The tool description adds only the context of 'on behalf of a LinkedIn organization', which slightly clarifies the organizationId purpose but does not add meaning beyond the schema. 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 action ('Create a post') and the target ('on behalf of a LinkedIn organization'). However, it does not differentiate from sibling tools like create_document_post or create_text_post, which likely target personal profiles. The lack of explicit differentiation slightly reduces clarity.

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 such as create_text_post (for personal profiles) or other organization-specific tools. No prerequisites (e.g., admin rights) or exclusions are mentioned, leaving the agent to infer context.

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

create_text_postB

Create a text-only post on LinkedIn

ParametersJSON Schema
NameRequiredDescriptionDefault
textYes
visibilityNoPUBLIC

TDQS

B3/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 does not disclose behavioral traits such as authentication needs, rate limits, or post visibility effects.

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 concise sentence, front-loaded with the essential action.

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?

The tool is simple with two parameters, but the description lacks details on post behavior and profile context; minimal but adequate for a straightforward create action.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description adds no meaning beyond the schema; it does not explain visibility options or text constraints.

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 tool creates a text-only post on LinkedIn, which is a specific verb-resource combination that distinguishes it from sibling tools like create_image_post or create_link_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; the description lacks context for decision-making.

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

delete_commentB

Delete a comment from a LinkedIn post

ParametersJSON Schema
NameRequiredDescriptionDefault
commentUrnYesThe full URN of the comment to delete (e.g., urn:li:comment:(urn:li:activity:123456,789))

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose behavioral traits such as whether deletion is irreversible, permissions needed, or impact on replies.

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?

Single sentence, front-loaded with purpose. No extraneous text. Could include more detail without becoming verbose.

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 simple delete action with one parameter and no output schema, the description is minimally adequate but lacks context on side effects or return values.

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 provides 100% coverage for the only parameter (commentUrn), with a clear description. The tool description adds no additional meaning beyond the schema, meeting the baseline.

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 verb 'Delete' and the resource 'a comment from a LinkedIn post', which is specific and distinguishes it from sibling tools like delete_post or create_comment.

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 on when to use this tool versus alternatives (e.g., delete_post for deleting the entire post) or conditions like ownership requirements.

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

delete_org_postA

Delete a LinkedIn organization post by its URN

ParametersJSON Schema
NameRequiredDescriptionDefault
postUrnYesThe URN of the post to delete (e.g., urn:li:share:123456)

TDQS

A3.5/5.0
Behavior2/5

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

No annotations exist, so description must disclose behavioral traits. It only states 'delete' without noting irreversibility, authorization needs, or soft vs hard delete.

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?

Single, clear sentence that is front-loaded and contains no extraneous 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?

For a simple destructive action with one parameter, the description covers the basics but lacks details on outcomes, errors, or permissions, which 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 already describes the single parameter with an example. The description adds no additional meaning beyond the schema, meeting baseline for 100% coverage.

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?

Description clearly states it deletes a LinkedIn organization post by URN, distinguishing it from the sibling 'delete_post' which presumably handles personal posts.

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

Usage Guidelines3/5

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

The description implies usage for organization posts but does not provide explicit guidance on when to use this tool versus alternatives, or any prerequisites.

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

delete_postA

Delete a post from LinkedIn by its URN

ParametersJSON Schema
NameRequiredDescriptionDefault
postUrnYes

TDQS

A3.6/5.0
Behavior2/5

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

No annotations provided; description only says 'delete' without indicating it is irreversible, required permissions, or other side effects. The description carries the full burden and does not disclose behavioral traits.

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?

One short sentence, front-loaded with key information, no extraneous words.

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

Completeness4/5

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

For a simple delete tool with one parameter and no output schema, the description is mostly complete. It could mention irreversibility or ownership, but not critical.

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?

Single parameter 'postUrn' is clarified by 'by its URN' in the description, adding meaning beyond the schema pattern. However, schema coverage is 0%, so description compensates minimally.

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?

Description clearly states the action (delete), resource (post), and scope (LinkedIn, by URN). It distinguishes from sibling tools like delete_comment and delete_org_post.

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

Usage Guidelines3/5

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

No explicit guidance on when to use this tool versus alternatives, but the name and description make the purpose obvious for a simple delete operation.

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

get_emailB

Get the authenticated user's LinkedIn email address

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/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 burden. It states a read operation ('Get') but does not mention authentication requirements, rate limits, or any other behavioral traits beyond the minimal action.

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?

Single, well-formed sentence with no wasted words. Front-loads the essential action.

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

Completeness4/5

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

Given the tool has no parameters, no output schema, and low complexity, the description is adequate for usage. It states what is retrieved without specifying return format, but for a simple getter, this is sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, and the input schema is empty. Per guidelines, baseline is 4 for zero parameters. The description adds no parameter info, which is acceptable given no parameters.

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?

Description clearly states the verb 'Get' and resource 'email address'. It is specific about the authenticated user's LinkedIn email. However, it does not distinguish from sibling tools like get_profile which might also return email.

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 on when to use this tool versus alternatives, such as get_profile. No context about prerequisites or scenarios.

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

get_organizationB

Get LinkedIn organization details by ID or vanity name

ParametersJSON Schema
NameRequiredDescriptionDefault
organizationIdNoThe numeric ID of the organization
vanityNameNoThe vanity name (URL slug) of the organization

TDQS

B3.4/5.0
Behavior2/5

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

No annotations provided; description only implies a read operation ('get'). Does not disclose behavioral traits like authentication requirements, rate limits, or data scope.

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?

Single sentence, no redundant words, front-loaded with the core action and resource.

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?

No output schema; description omits what kind of details are returned (e.g., name, industry, location). For a data retrieval tool, this is insufficient for an agent to judge if the tool meets its needs.

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 has 100% coverage with clear descriptions for both parameters. The description adds context that parameters are alternative means of identification, but does not clarify mutual exclusivity or requirement.

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?

Clearly specifies the action ('get') and the resource ('LinkedIn organization details'), and distinguishes from sibling tools like get_profile, get_email, and stat-specific tools by focusing on general details.

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

Usage Guidelines3/5

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

Implies usage for retrieving organization details via ID or vanity name, but lacks explicit guidance on when not to use (e.g., for statistics use sibling tools). No alternatives mentioned.

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

get_org_follower_statisticsC

Get follower statistics for a LinkedIn organization

ParametersJSON Schema
NameRequiredDescriptionDefault
organizationIdYesThe numeric ID of the organization

TDQS

C2.9/5.0
Behavior1/5

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

No annotations provided, and description lacks behavioral details like read-only nature, rate limits, error responses, or return format. The description is insufficient 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.

Conciseness4/5

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

Description is a single sentence that directly states the purpose. Very concise, but lacks structure and additional context.

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 output schema and sibling tools for related statistics, the description is minimal. Does not explain what the statistics contain or how they are structured, which is needed for a statistics tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single parameter, and its description is clear. Tool description adds no additional meaning beyond schema, so baseline 3 applies.

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

Purpose5/5

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

Description clearly states verb 'Get' and resource 'follower statistics for a LinkedIn organization', distinguishing it from siblings like get_org_page_statistics and get_org_share_statistics.

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 on when to use this tool vs alternatives, no context, exclusions, or examples provided.

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

get_org_page_statisticsB

Get page view statistics for a LinkedIn organization

ParametersJSON Schema
NameRequiredDescriptionDefault
organizationIdYesThe numeric ID of the organization
timeRangeNoOptional time range filter for the statistics

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations, the description carries full burden. It only states the action but does not disclose return format, pagination, authorization requirements, or any behavioral traits beyond the basic read 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 a single concise sentence with no filler. However, it is so minimal that it could benefit from slightly more detail without becoming verbose.

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?

No output schema exists, yet the description does not hint at return values or structure. Combined with lack of behavioral details, the description is incomplete for a tool with nested parameters and no annotation support.

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 coverage is 100%, so baseline is 3. The description adds no additional meaning to the parameters (organizationId, timeRange) beyond what the schema provides.

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 verb 'Get', the resource 'page view statistics', and the scope 'for a LinkedIn organization'. It distinguishes itself from sibling tools like get_org_follower_statistics and get_org_share_statistics by specifying the metric.

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

Usage Guidelines3/5

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

No explicit guidance on when to use this tool versus alternatives. The purpose is implied, but there is no mention of prerequisites, exclusions, or context for choosing this over related statistics tools.

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

get_org_postsC

Get recent posts from a LinkedIn organization

ParametersJSON Schema
NameRequiredDescriptionDefault
organizationIdYesThe numeric ID of the organization
countNoNumber of posts to retrieve (1-100, default 10)
startNoPagination offset (default 0)

TDQS

C2.9/5.0
Behavior1/5

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

With no annotations, the description bears full responsibility for behavioral disclosure. It fails to mention any behavioral traits such as authentication requirements, rate limits, data freshness, or order of results, leaving critical gaps for an agent.

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 (one short sentence) with no unnecessary words. However, it lacks structure like front-loading key information beyond the basic purpose.

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 output schema, the description should explain return values and pagination behavior. It does not specify what 'recent posts' entails, the sort order, or the response structure, leaving the agent underinformed.

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 baseline is 3. The tool description adds no extra meaning beyond the schema; it does not elaborate on parameter usage or constraints.

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 action (get) and resource (recent posts) with a specific entity (LinkedIn organization), distinguishing it from sibling tools that create, delete, or comment on 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?

No guidance is provided on when to use this tool versus alternatives (e.g., get_post_comments for comments, get_org_page_statistics for analytics). No when-not-to-use or context-specific advice.

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

get_org_share_statisticsB

Get share/post engagement statistics for a LinkedIn organization

ParametersJSON Schema
NameRequiredDescriptionDefault
organizationIdYesThe numeric ID of the organization
shareUrnsNoOptional list of share URNs to filter statistics by

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries full responsibility for behavioral disclosure. It only states 'gets' statistics, offering no details on data freshness, authentication requirements, rate limits, or response format (e.g., aggregated vs. per-share). This is insufficient for a no-annotation tool.

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?

A single sentence of 10 words, starting with the action verb 'Get'. It is perfectly concise, with no unnecessary content.

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 simplicity (2 parameters, no output schema), the description is adequate for a basic get operation. However, it does not explain the response structure (e.g., what engagement metrics are included: likes, comments, shares counts), which leaves the agent partially guessing. There is scope for more 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%, with parameter descriptions like 'The numeric ID of the organization' and 'Optional list of share URNs to filter statistics by'. The tool description adds no additional meaning, so it meets the baseline of 3 for high-coverage schemas.

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 it gets 'share/post engagement statistics for a LinkedIn organization', specifying the verb and resource. It distinguishes from siblings like get_org_follower_statistics and get_org_page_statistics by focusing on share/post engagement, but does not explicitly differentiate from get_org_posts which might also retrieve posts (though likely without engagement metrics). Overall, it is clear and specific.

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 (e.g., get_org_posts, get_org_page_statistics). It does not mention prerequisites, context, or conditions, leaving the agent without decision-making support.

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

get_post_commentsB

Get comments on a LinkedIn post

ParametersJSON Schema
NameRequiredDescriptionDefault
postUrnYesThe URN of the post to get comments for
countNoNumber of comments to retrieve (1-100, default 10)
startNoPagination offset (default 0)

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are present, so the description carries the burden. It only says 'Get comments' without disclosing behavior like pagination, ordering (if any), rate limits, or whether replies are included. Input schema suggests pagination but description adds no 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?

Description is a single concise sentence with no wasted words. However, it could be slightly expanded with additional context without becoming verbose.

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 has 3 parameters (all documented in schema) and no output schema, the description is adequate but lacks details on return format, whether all comments are returned, or any additional context about the comments retrieved.

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 coverage is 100% with all three parameters described. The description does not add any meaning beyond the schema. Baseline of 3 is appropriate as the schema already provides parameter semantics.

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?

Description explicitly states 'Get comments on a LinkedIn post', clearly identifying the action (get) and resource (comments on post). It distinctively separates from sibling tools like create_comment, delete_comment, etc.

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 on when to use this tool versus alternatives is provided. The description lacks any context about prerequisites or conditions where this tool is appropriate.

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

get_profileA

Get the authenticated user's LinkedIn profile including name, email, picture, and unique ID

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. It describes a read operation, but does not mention authentication requirements or rate limits. Additional context would improve 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?

Single clear sentence with no filler. Every word adds value.

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

Completeness4/5

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

Given no parameters, no output schema, and no annotations, the description sufficiently covers the tool's purpose and scope. Could mention that authentication is required, but overall adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters. Schema coverage is 100% (empty). Description does not need to add parameter info, so baseline 4 is appropriate.

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?

Description clearly states the tool retrieves the authenticated user's LinkedIn profile and lists specific fields (name, email, picture, unique ID). This differentiates it from siblings like get_email or get_organization.

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 on when to use this tool versus alternatives. The description provides no context for selection among sibling tools.

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

remove_reactionA

Remove a reaction from a LinkedIn post

ParametersJSON Schema
NameRequiredDescriptionDefault
postUrnYesThe URN of the post to remove the reaction from
reactionTypeYesThe type of reaction to remove

TDQS

A3.9/5.0
Behavior3/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. It states the action but does not disclose any side effects, prerequisites (e.g., authentication), or error conditions (e.g., if reaction doesn't exist). For a simple removal, this is adequate but not comprehensive.

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?

A single sentence with no extraneous words. It efficiently conveys the tool's purpose.

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 has no output schema and is a simple removal, the description is minimally complete. However, it lacks any mention of return value or error handling, which could be helpful for an 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 for both parameters (postUrn and reactionType). The description adds no additional meaning beyond what the schema already provides.

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 'Remove a reaction from a LinkedIn post' clearly states the verb (remove) and resource (reaction from a post). It distinguishes itself from the sibling tool 'add_reaction'.

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

Usage Guidelines4/5

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

The description implies usage for removing reactions, and the sibling 'add_reaction' provides clear context for when not to use this tool. However, no explicit when-not or alternatives are stated.

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

upload_imageA

Upload an image to LinkedIn from a URL and get an image URN for use in posts

ParametersJSON Schema
NameRequiredDescriptionDefault
imageUrlYes
altTextNo

TDQS

A3.8/5.0
Behavior3/5

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

No annotations provided. Description states upload and return of URN but lacks details on permissions, error handling, size limits, or synchronous behavior.

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?

Single sentence front-loads purpose. Could be improved by briefly mentioning altText, but remains efficient.

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

Completeness4/5

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

No output schema, but description usefully mentions returning an image URN. Missing constraints like accepted formats, but adequate for a simple upload tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 0% coverage. Description only mentions 'URL' (imageUrl) but ignores altText parameter entirely, leaving its meaning and constraints undocumented.

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?

Description clearly states verb 'upload', resource 'image', domain 'LinkedIn', and outcome 'get an image URN for use in posts'. Differentiates from sibling tools like create_image_post which creates 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 Guidelines4/5

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

Implies usage for uploading before creating image posts, but does not explicitly state when not to use or mention alternatives like direct file upload.

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
Disambiguation5/5

Each tool has a clearly distinct purpose: post creation is split by content type, reactions, comments, profile info, and organization analytics are separate. No overlapping functionality.

Naming Consistency4/5

Most tools follow verb_noun pattern, but there is minor inconsistency: 'add_reaction' vs 'create_comment', and deletion tools are not parallel (delete_post vs delete_org_post). Overall, the pattern is predictable.

Tool Count5/5

20 tools cover a broad range of LinkedIn operations without feeling excessive. Each tool has a specific role, and the count is appropriate for the server's scope.

Completeness2/5

Significant gaps exist: no tools to retrieve the user's own posts, list a feed, or view reactions. CRUD is incomplete for posts (no read) and reactions (no get). Agents would struggle to perform common workflows.

Maintenance

ActivityStale
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

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/himanshu31shr/linkedin-mcp-server'

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