Integrates with
LinkedIn
LinkedIn Profile Analyzer MCP
A powerful LinkedIn profile analyzer MCP (Machine Control Protocol) server that interacts with LinkedIn's API to fetch, analyze, and manage LinkedIn posts data. This MCP is specifically designed to work with Claude AI.
Features
- Fetch and store LinkedIn posts for any public profile
- Search through posts with keyword filtering
- Get top performing posts based on engagement metrics
- Filter posts by date range
- Paginated access to stored posts
- Easy integration with Claude AI
Prerequisites
- Python 3.7+
- RapidAPI key for LinkedIn Data API
- Claude AI access
Getting Started
1. Get RapidAPI Key
- Visit LinkedIn Data API on RapidAPI
- Sign up or log in to RapidAPI
- Subscribe to the LinkedIn Data API
- Copy your RapidAPI key from the dashboard
2. Installation
- Clone the repository:
git clone https://github.com/rugvedp/linkedin-mcp.git
cd linkedin-mcp
- Install dependencies:
pip install -r requirements.txt
- Set up environment variables:
- Create a
.env
file - Add your RapidAPI key:
- Create a
RAPIDAPI_KEY=your_rapidapi_key_here
Project Structure
linkedin-mcp/
├── main.py # Main MCP server implementation
├── mcp.json # MCP configuration file
├── requirements.txt # Python dependencies
├── .env # Environment variables
└── README.md # Documentation
MCP Configuration
The mcp.json
file configures the LinkedIn MCP server:
{
"mcpServers": {
"LinkedIn Updated": {
"command": "uv",
"args": [
"run",
"--with",
"mcp[cli]",
"mcp",
"run",
"path/to/your/script.py"
]
}
}
}
Make sure to update the path in args
to match your local file location.
Available Tools
1. fetch_and_save_linkedin_posts
Fetches LinkedIn posts for a given username and saves them locally.
fetch_and_save_linkedin_posts(username: str) -> str
2. get_saved_posts
Retrieves saved posts with pagination support.
get_saved_posts(start: int = 0, limit: int = 10) -> dict
3. search_posts
Searches posts for specific keywords.
search_posts(keyword: str) -> dict
4. get_top_posts
Returns top performing posts based on engagement metrics.
get_top_posts(metric: str = "Like Count", top_n: int = 5) -> dict
5. get_posts_by_date
Filters posts within a specified date range.
get_posts_by_date(start_date: str, end_date: str) -> dict
Using with Claude
- Initialize the MCP server in your conversation with Claude
- Use the available tools through natural language commands
- Claude will help you interact with LinkedIn data using these tools
API Integration
This project uses the following endpoint from the LinkedIn Data API:
GET /get-profile-posts
: Fetches posts from a LinkedIn profile- Base URL:
https://linkedin-data-api.p.rapidapi.com
- Required Headers:
x-rapidapi-key
: Your RapidAPI keyx-rapidapi-host
:linkedin-data-api.p.rapidapi.com
- Base URL:
Contributing
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Author
Repository
Acknowledgments
- RapidAPI for providing LinkedIn data access
- Anthropic for Claude AI capabilities