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
verifiedversion not recorded12 tools
verifiedversion not recorded12 tools
verifiedversion not recorded12 tools
verifiedversion not recorded12 tools