LinkedIn MCP Server

  • src
from linkedin_api import Linkedin from fastmcp import FastMCP from dotenv import load_dotenv import os import logging load_dotenv() mcp = FastMCP("LinkedIn-MCP") logger = logging.getLogger(__name__) def get_creds(): return Linkedin(os.getenv("LINKEDIN_EMAIL"), os.getenv("LINKEDIN_PASSWORD"), debug=True) @mcp.tool() def get_profile(): """ Retrieves the User Profile """ linkedin = get_creds() profile = linkedin.get_profile() return profile @mcp.tool() def get_feed_posts(limit: int = 10, offset: int = 0) -> str: """ Retrieve LinkedIn feed posts. :return: List of feed post details """ linkedin = get_creds() try: post_urns = linkedin.get_feed_posts(limit=limit, offset=offset) except Exception as e: logger.error(f"Error: {e}") return f"Error: {e}" posts = "" for urn in post_urns: posts += f"Post by {urn["author_name"]}: {urn["content"]}\n" return posts if __name__ == "__main__": mcp.run(transport='stdio') # get_feed_posts()