M

MCP YouTube到LinkedIn生成器

@NvkAnirudh/YT-to-LinkedIn-MCP-Server
0 Stars 390 次浏览 NvkAnirudh 更新于 2026-08-23

一种模型上下文协议(MCP)服务器,可自动从YouTube视频生成LinkedIn帖子草稿。该服务器根据YouTube视频字幕提供高质量、可编辑的内容草稿。

该服务暂未提供标准配置,请参考 README 手动接入

服务介绍

YouTube to LinkedIn MCP 服务器

一个模型上下文协议(MCP)服务器,能够自动化地从YouTube视频生成LinkedIn帖子草稿。该服务器基于YouTube视频的字幕提供高质量、可编辑的内容草稿。

功能

  • YouTube 字幕提取:使用视频URL从YouTube视频中提取字幕
  • 字幕总结:使用OpenAI GPT生成简洁的视频内容摘要
  • LinkedIn 帖子生成:创建具有自定义语气和风格的专业LinkedIn帖子草稿
  • 模块化API设计:清晰的FastAPI实现,带有明确定义的端点
  • 容器化部署:准备在Smithery上部署

设置说明

前提条件

  • Python 3.8+
  • Docker(用于容器化部署)
  • OpenAI API密钥
  • YouTube数据API密钥(可选,但推荐以获得更好的元数据)

本地开发

  1. 克隆仓库:

    git clone <repository-url>
    cd yt-to-linkedin
    
  2. 创建虚拟环境并安装依赖项:

    python -m venv venv
    source venv/bin/activate  # 在Windows上: venv\Scripts\activate
    pip install -r requirements.txt
    
  3. 在项目根目录下创建一个包含您的API密钥的.env文件:

    OPENAI_API_KEY=your_openai_api_key
    YOUTUBE_API_KEY=your_youtube_api_key
    
  4. 运行应用程序:

    uvicorn app.main:app --reload
    
  5. 访问 http://localhost:8000/docs 上的API文档

Docker 部署

  1. 构建Docker镜像:

    docker build -t yt-to-linkedin-mcp .
    
  2. 运行容器:

    docker run -p 8000:8000 --env-file .env yt-to-linkedin-mcp
    

Smithery 部署

  1. 确保已安装并配置了Smithery CLI。

  2. 部署到Smithery:

    smithery deploy
    

API 端点

1. 字幕提取

端点: /api/v1/transcript
方法: POST
描述: 从YouTube视频中提取字幕

请求体:

{
  "youtube_url": "https://www.youtube.com/watch?v=VIDEO_ID",
  "language": "en",
  "youtube_api_key": "your_youtube_api_key"  // Optional, provide your own YouTube API key
}

响应:

{
  "video_id": "VIDEO_ID",
  "video_title": "Video Title",
  "transcript": "Full transcript text...",
  "language": "en",
  "duration_seconds": 600,
  "channel_name": "Channel Name",
  "error": null
}

2. 字幕总结

端点: /api/v1/summarize
方法: POST
描述: 从视频字幕生成摘要

请求体:

{
  "transcript": "Video transcript text...",
  "video_title": "Video Title",
  "tone": "professional",
  "audience": "general",
  "max_length": 250,
  "min_length": 150,
  "openai_api_key": "your_openai_api_key"  // Optional, provide your own OpenAI API key
}

响应:

{
  "summary": "Generated summary text...",
  "word_count": 200,
  "key_points": [
    "Key point 1",
    "Key point 2",
    "Key point 3"
  ]
}

3. LinkedIn 帖子生成

端点: /api/v1/generate-post
方法: POST
描述: 根据视频摘要生成LinkedIn帖子

请求体:

{
  "summary": "Video summary text...",
  "video_title": "Video Title",
  "video_url": "https://www.youtube.com/watch?v=VIDEO_ID",
  "speaker_name": "Speaker Name",
  "hashtags": ["ai", "machinelearning"],
  "tone": "professional",
  "voice": "first_person",
  "audience": "technical",
  "include_call_to_action": true,
  "max_length": 1200,
  "openai_api_key": "your_openai_api_key"  // Optional, provide your own OpenAI API key
}

响应:

{
  "post_content": "Generated LinkedIn post content...",
  "character_count": 800,
  "estimated_read_time": "About 1 minute",
  "hashtags_used": ["#ai", "#machinelearning"]
}

4. 输出格式化

端点: /api/v1/output
方法: POST
描述: 格式化LinkedIn帖子以便输出

请求体:

{
  "post_content": "LinkedIn post content...",
  "format": "json"
}

响应:

{
  "content": {
    "post_content": "LinkedIn post content...",
    "character_count": 800
  },
  "format": "json"
}

环境变量

变量 描述 是否必需
OPENAI_API_KEY 用于生成摘要和帖子的 OpenAI API 密钥 否(可以在请求中提供)
YOUTUBE_API_KEY 用于获取视频元数据的 YouTube Data API 密钥 否(可以在请求中提供)
PORT 运行服务器的端口(默认:8000)

注意:虽然 API 密钥的环境变量是可选的(因为它们可以在每次请求中提供),但建议在本地开发和测试时设置这些变量。当部署到 Smithery 时,用户需要在请求中提供他们自己的 API 密钥。

许可证

MIT

相关 MCP 服务