Leverages OpenAI GPT models to summarize video transcripts and generate professional LinkedIn post content with customizable tone, voice, and audience targeting.
Extracts transcripts from YouTube videos to be used for content generation, supporting multiple languages and retrieving video metadata like title and channel name.
YouTube to LinkedIn MCP Server
A Model Context Protocol (MCP) server that automates generating LinkedIn post drafts from YouTube videos. This server provides high-quality, editable content drafts based on YouTube video transcripts.
Features
YouTube Transcript Extraction: Extract transcripts from YouTube videos using video URLs
Transcript Summarization: Generate concise summaries of video content using OpenAI GPT
LinkedIn Post Generation: Create professional LinkedIn post drafts with customizable tone and style
Modular API Design: Clean FastAPI implementation with well-defined endpoints
Containerized Deployment: Ready for deployment on Smithery
Related MCP server: mcp-server-youtube-transcript
Setup Instructions
Prerequisites
Python 3.8+
Docker (for containerized deployment)
OpenAI API Key
YouTube Data API Key (optional, but recommended for better metadata)
Local Development
Clone the repository:
git clone <repository-url> cd yt-to-linkedinCreate a virtual environment and install dependencies:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate pip install -r requirements.txtCreate a
.envfile in the project root with your API keys:OPENAI_API_KEY=your_openai_api_key YOUTUBE_API_KEY=your_youtube_api_keyRun the application:
uvicorn app.main:app --reloadAccess the API documentation at http://localhost:8000/docs
Docker Deployment
Build the Docker image:
docker build -t yt-to-linkedin-mcp .Run the container:
docker run -p 8000:8000 --env-file .env yt-to-linkedin-mcp
Smithery Deployment
Ensure you have the Smithery CLI installed and configured.
Deploy to Smithery:
smithery deploy
API Endpoints
1. Transcript Extraction
Endpoint: /api/v1/transcript
Method: POST
Description: Extract transcript from a YouTube video
Request Body:
Response:
2. Transcript Summarization
Endpoint: /api/v1/summarize
Method: POST
Description: Generate a summary from a video transcript
Request Body:
Response:
3. LinkedIn Post Generation
Endpoint: /api/v1/generate-post
Method: POST
Description: Generate a LinkedIn post from a video summary
Request Body:
Response:
4. Output Formatting
Endpoint: /api/v1/output
Method: POST
Description: Format the LinkedIn post for output
Request Body:
Response:
Environment Variables
Variable | Description | Required |
OPENAI_API_KEY | OpenAI API key for summarization and post generation | No (can be provided in requests) |
YOUTUBE_API_KEY | YouTube Data API key for fetching video metadata | No (can be provided in requests) |
PORT | Port to run the server on (default: 8000) | No |
Note: While environment variables for API keys are optional (as they can be provided in each request), it's recommended to set them for local development and testing. When deploying to Smithery, users will need to provide their own API keys in the requests.
License
MIT
This server cannot be installed