linkedin

LinkedIn: The LinkedIn Data API offers access to detailed information on individuals, companies.

Should I use this

Quality & Safety

A
Description quality
95%
Schema completeness
98%
Naming quality
86%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (6)

  • LOWTool 'get_company_companyId_employees' doesn't follow camelCase/snake_casein get_company_companyId_employees
  • LOWTool 'get_company_companyId_employees' name length outside 3-30 rangein get_company_companyId_employees
  • LOWTool 'get_company_companyId_jobs' doesn't follow camelCase/snake_casein get_company_companyId_jobs
  • LOWTool 'get_jobs_detail_jobId' doesn't follow camelCase/snake_casein get_jobs_detail_jobId
  • LOWTool 'get_posts_postId_comments' doesn't follow camelCase/snake_casein get_posts_postId_comments
  • LOWTool 'get_posts_postId_reactions' doesn't follow camelCase/snake_casein get_posts_postId_reactions

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,024Tokens (tool definitions)
~1.3 KBTypical response size
Moderate attention impact (1.58% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "linkedin": {
      "url": "https://mcp.jojapi.com/linkedin"
    }
  }
}

Remote endpoints

https://mcp.jojapi.com/linkedinstreamable-http

What it can do

Tool inventory

Tools (12)

🟒 Read-only🟑 WriteπŸ”΄ Deleteβšͺ Unknown
🟒get_person_profile(memberId)

Returns a full profile including experience, education, and skills. Obtain a `memberId` from `/people/search` or `/company/{companyId}/employees`. Note that profiles which are private or outside your network cannot be retrieved; these appear in listings with the name `LinkedIn Member`. Group: Person. Billing per call: 1 Credits.

Input Schema

{
  "type": "object",
  "properties": {
    "memberId": {
      "type": "string",
      "example": "ACoAAAEkwwAB9KEc2TrQgOLEQ-vzRyZeCDyc6DQ",
      "description": "A LinkedIn member identifier, returned by `/people/search` and\n`/company/{companyId}/employees`."
    }
  },
  "required": [
    "memberId"
  ],
  "additionalProperties": false
}
🟒get_person_profile_posts(memberId, start, count)

Returns an empty list if the person has not posted. Group: Person. Billing per call: 1 Credits.

Input Schema

{
  "type": "object",
  "properties": {
    "memberId": {
      "type": "string",
      "example": "ACoAAAEkwwAB9KEc2TrQgOLEQ-vzRyZeCDyc6DQ",
      "description": "A LinkedIn member identifier, returned by `/people/search` and\n`/company/{companyId}/employees`."
    },
    "start": {
      "type": "integer",
      "default": 0,
      "description": "Offset of the first result. Pass the `cursor` value from the previous response to\nfetch the next page."
    },
    "count": {
      "type": "integer",
      "default": 10,
      "description": "Number of posts per page."
    }
  },
  "required": [
    "memberId"
  ],
  "additionalProperties": false
}
🟒get_people_search(keyword, companyId, geoUrn, title, start, ...)

All filters are optional and can be combined. Returns the same person structure as `/company/{companyId}/employees`. Returns an empty list when nothing matches. Group: Person. Billing per call: 1 Credits.

Input Schema

{
  "type": "object",
  "properties": {
    "keyword": {
      "type": "string",
      "example": "software engineer",
      "description": "Free-text search term."
    },
    "companyId": {
      "type": "string",
      "description": "Restrict results to people at this company."
    },
    "geoUrn": {
      "type": "string",
      "example": "102105699",
      "description": "Location code. TΓΌrkiye is `102105699`."
    },
    "title": {
      "type": "string",
      "example": "engineer",
      "description": "Restrict results by job title."
    },
    "start": {
      "type": "integer",
      "default": 0,
      "description": "Offset of the first result. Pass the `cursor` value from the previous response to\nfetch the next page."
    },
    "count": {
      "type": "integer",
      "default": 25,
      "description": "Number of results per page."
    }
  },
  "additionalProperties": false
}
🟒get_company(slug, companyId)

Provide either `slug` or `companyId`. If neither is given, the request fails with `400 VALIDATION_ERROR`. Take the `slug` from a `/company/search` result rather than guessing it from the company name β€” a company's slug often differs from its display name. Group: Companies. Billing per call: 1 Credits.

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "example": "intel-corporation",
      "description": "The company's short name, as it appears in its LinkedIn URL.\nRequired unless `companyId` is provided."
    },
    "companyId": {
      "type": "string",
      "example": "1035",
      "description": "The company's numeric identifier. Required unless `slug` is provided."
    }
  },
  "additionalProperties": false
}
🟒get_company_search(keyword, start, count)

Use the `slug` or `companyId` from a result to fetch full details from `/company`, the employee list, or the job list. Group: Companies. Billing per call: 1 Credits.

Input Schema

{
  "type": "object",
  "properties": {
    "keyword": {
      "type": "string",
      "example": "teknoloji",
      "description": "Free-text search term."
    },
    "start": {
      "type": "integer",
      "default": 0,
      "description": "Offset of the first result. Pass the `cursor` value from the previous response to\nfetch the next page."
    },
    "count": {
      "type": "integer",
      "default": 25,
      "description": "Number of results per page."
    }
  },
  "required": [
    "keyword"
  ],
  "additionalProperties": false
}
🟒get_company_companyId_employees(companyId, start, count)

Returns people who list this company as their employer. Results may include private or out-of-network profiles, which appear with the name `LinkedIn Member`. Full profiles cannot be retrieved for those records, so check the name before calling `/person-profile` with the returned `memberId`. Group: Companies. Billing per call: 1 Credits.

Input Schema

{
  "type": "object",
  "properties": {
    "companyId": {
      "type": "string",
      "example": "1035",
      "description": "The company's numeric identifier, from `/company/search` or `/company`."
    },
    "start": {
      "type": "integer",
      "default": 0,
      "description": "Offset of the first result. Pass the `cursor` value from the previous response to\nfetch the next page."
    },
    "count": {
      "type": "integer",
      "default": 25,
      "description": "Number of results per page."
    }
  },
  "required": [
    "companyId"
  ],
  "additionalProperties": false
}
🟒get_company_companyId_jobs(companyId, start, count)

Returns an empty list if the company has no open postings. Use the `jobId` from a result with `/jobs/detail/{jobId}`. Group: Companies. Billing per call: 1 Credits.

Input Schema

{
  "type": "object",
  "properties": {
    "companyId": {
      "type": "string",
      "example": "1035",
      "description": "The company's numeric identifier, from `/company/search` or `/company`."
    },
    "start": {
      "type": "integer",
      "default": 0,
      "description": "Offset of the first result. Pass the `cursor` value from the previous response to\nfetch the next page."
    },
    "count": {
      "type": "integer",
      "default": 25,
      "description": "Number of results per page."
    }
  },
  "required": [
    "companyId"
  ],
  "additionalProperties": false
}
🟑get_company_posts(slug, start, count)

Returns the same post structure as `/person-profile/posts`. This endpoint is addressed by `slug` only. Group: Companies. Billing per call: 1 Credits.

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "example": "microsoft-azure",
      "description": "The company's short name, as it appears in its LinkedIn URL."
    },
    "start": {
      "type": "integer",
      "default": 0,
      "description": "Offset of the first result. Pass the `cursor` value from the previous response to\nfetch the next page."
    },
    "count": {
      "type": "integer",
      "default": 10,
      "description": "Number of posts per page."
    }
  },
  "required": [
    "slug"
  ],
  "additionalProperties": false
}
🟒get_jobs_search(keyword, geoId, start, count)

Use the `jobId` from a result with `/jobs/detail/{jobId}`. Group: Jobs. Billing per call: 1 Credits.

Input Schema

{
  "type": "object",
  "properties": {
    "keyword": {
      "type": "string",
      "example": "backend",
      "description": "Search term for the job title or description."
    },
    "geoId": {
      "type": "string",
      "example": "102105699",
      "description": "Location code. TΓΌrkiye is `102105699`; worldwide is `92000000`."
    },
    "start": {
      "type": "integer",
      "default": 0,
      "description": "Offset of the first result. Pass the `cursor` value from the previous response to\nfetch the next page."
    },
    "count": {
      "type": "integer",
      "default": 25,
      "description": "Number of results per page."
    }
  },
  "required": [
    "keyword"
  ],
  "additionalProperties": false
}
🟒get_jobs_detail_jobId(jobId)

Returns the full description for a posting. Several fields are only present on some postings; the company name is most reliably taken from the search result that provided the `jobId`. Group: Jobs. Billing per call: 1 Credits.

Input Schema

{
  "type": "object",
  "properties": {
    "jobId": {
      "type": "string",
      "example": "4458090637",
      "description": "The posting's identifier, from `/jobs/search` or `/company/{companyId}/jobs`."
    }
  },
  "required": [
    "jobId"
  ],
  "additionalProperties": false
}
🟑get_posts_postId_comments(postId, start, count)

Returns an empty list when the post has no comments. Group: Posts. Billing per call: 1 Credits.

Input Schema

{
  "type": "object",
  "properties": {
    "postId": {
      "type": "string",
      "example": "7499133701344083968",
      "description": "The post's `ugcPostId`, taken from `/person-profile/posts` or `/company/posts`.\nUse `ugcPostId` here, not `activityId`."
    },
    "start": {
      "type": "integer",
      "default": 0,
      "description": "Offset of the first result. Pass the `cursor` value from the previous response to\nfetch the next page."
    },
    "count": {
      "type": "integer",
      "default": 25,
      "description": "Number of results per page."
    }
  },
  "required": [
    "postId"
  ],
  "additionalProperties": false
}
🟑get_posts_postId_reactions(postId, start, count)

Returns an empty list when the post has no reactions. Group: Posts. Billing per call: 1 Credits.

Input Schema

{
  "type": "object",
  "properties": {
    "postId": {
      "type": "string",
      "example": "7499133701344083968",
      "description": "The post's `ugcPostId`, taken from `/person-profile/posts` or `/company/posts`.\nUse `ugcPostId` here, not `activityId`."
    },
    "start": {
      "type": "integer",
      "default": 0,
      "description": "Offset of the first result. Pass the `cursor` value from the previous response to\nfetch the next page."
    },
    "count": {
      "type": "integer",
      "default": 25,
      "description": "Number of results per page."
    }
  },
  "required": [
    "postId"
  ],
  "additionalProperties": false
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded12 tools
verifiedversion not recorded12 tools