{
  "markdown": "# <img src=\"logo.png\" alt=\"Unlinked logo\" width=\"40\" /> Unlinked\n\nBring your LinkedIn professional profile into AI assistants — without copy-pasting, scraping, or guessing.\n\n---\n\nUnlinked is a TypeScript MCP server that connects your LinkedIn professional profile and experience to any [Model Context Protocol](https://modelcontextprotocol.io/) client — Claude Desktop, GitHub Copilot, and others. It reads your data directly from LinkedIn's official [Member Data Portability API](https://learn.microsoft.com/en-us/linkedin/dma/member-data-portability/member-data-portability-member/), so your assistant always has accurate, up-to-date context about who you are professionally.\n\n> :eu: **EEA / Switzerland only.** LinkedIn's Member Data Portability API is currently available exclusively to members located in the European Economic Area and Switzerland. Thank you, Digital Markets Act (DMA)!\n\n## What it does\n\nOnce connected, your AI assistant can:\n\n- **Read your full professional profile** — positions, education, skills, certifications, projects, languages, honours, publications, patents, and more\n- **Fetch any specific LinkedIn data domain** by name\n- **Poll for recent profile changes** via the LinkedIn changelog API\n- **Diagnose authorization status** so you can quickly identify consent or permission issues\n\nAll data access is read-only. Your access token is used only to talk to LinkedIn and is never stored, logged, or echoed back.\n\n## Prerequisites\n\n- Node.js 22+\n- A LinkedIn Developer app with the **Member Data Portability API (Member)** product enabled (follow [this guide](https://learn.microsoft.com/en-us/linkedin/dma/member-data-portability/member-data-portability-member/?view=li-dma-data-portability-2025-11))\n- A [member access token](https://learn.microsoft.com/en-us/linkedin/dma/member-data-portability/member-data-portability-member/?view=li-dma-data-portability-2025-11#getting-an-access-token) from the LinkedIn OAuth Token Generator (requires EEA/Switzerland membership)\n\n## Setup\n\n### Claude Desktop\n\nAdd to your `claude_desktop_config.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"unlinked\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@larsbaunwall/unlinked\"],\n      \"env\": {\n        \"LINKEDIN_TOKEN\": \"<your_access_token>\"\n      }\n    }\n  }\n}\n```\n\nThe config file is typically at:\n- **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`\n- **Windows**: `%APPDATA%\\Claude\\claude_desktop_config.json`\n\n### GitHub Copilot (VS Code)\n\nAdd to your user-level MCP config (`File → Preferences → MCP Servers`) or a workspace `.vscode/mcp.json`:\n\n```json\n{\n  \"servers\": {\n    \"unlinked\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@larsbaunwall/unlinked\"],\n      \"env\": {\n        \"LINKEDIN_TOKEN\": \"<your_access_token>\"\n      }\n    }\n  }\n}\n```\n\n## Tools\n\n| Tool | Description |\n| --- | --- |\n| `linkedin_get_profile` | Get the user's LinkedIn résumé: bio, work history, education, skills, certifications, projects, etc. |\n| `linkedin_get_activity` | Get the user's LinkedIn activity: connections, posts, articles, comments, likes, job applications |\n| `linkedin_get_section` | Get raw data for one specific LinkedIn section by exact name |\n| `linkedin_get_recent_changes` | Get recent changes to the user's LinkedIn data (past 28 days), with cursor-based polling |\n| `linkedin_check_access` | Check whether the user has granted LinkedIn data access — useful for diagnosing missing data |\n\n## Configuration\n\n| Environment variable | Required | Description |\n| --- | --- | --- |\n| `LINKEDIN_TOKEN` | Yes | LinkedIn access token. Accepts `Bearer <token>` or a bare token. |\n| `LINKEDIN_API_VERSION` | No | API version in `YYYYMM` format. Defaults to `202312`. |\n\n## Development\n\n```bash\nnpm install\nnpm run build\nnpm run dev        # run directly from source with .env\nnpm run inspect    # test with MCP Inspector\n```\n\nSee [AGENTS.md](AGENTS.md) for implementation guidance.\n\n## License\n\nMIT\n",
  "bytes": 3941,
  "sha": "0730f2ba9b144ed843b1e6d00868213942b425edaea09f543831bcab320188ed",
  "repo_slug": "larsbaunwall/unlinked",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_larsbaunwall_unlinked_572c9df3/readme"
}