使用说明

项目简介

News Guy 是一个 MCP 服务器实现,旨在为 AI 应用提供 Fireship YouTube 频道视频的上下文信息。它通过 FastAPI 框架搭建,集成了 YouTube API 和 Gemini API,能够抓取、处理和查询 Fireship 频道的视频字幕,并利用 Gemini 模型回答用户基于视频内容的提问。

主要功能点

  • MCP 服务接口: 提供标准的 MCP 服务接口,虽然代码中没有显式定义 MCP 的 Resources, Tools, Prompts,但通过 'fastapi-mcp' 库集成了 MCP 服务器的基础框架,可以被 MCP 客户端识别和调用。
  • YouTube 视频信息抓取: 自动获取 Fireship 频道最新视频的字幕和元数据。
  • 视频内容向量化: 使用 Sentence Transformers 模型对视频字幕进行向量化,方便快速检索相关内容。
  • 基于内容的问答: 利用 Gemini 模型,根据视频内容回答用户提出的问题。
  • CLI 工具: 提供命令行工具,方便用户直接与 MCP 服务器交互,进行查询和测试。

安装步骤

  1. 创建并激活虚拟环境:

    python -m venv venv
    source venv/bin/activate  # 或 Windows: venv\Scripts\activate
  2. 安装依赖:

    uv pip install -e .
  3. 配置环境变量: 创建 '.env' 文件,并填入 YouTube API Key 和 Gemini API Key。

    echo "YOUTUBE_API_KEY=YOUR_YOUTUBE_API_KEY" >> .env
    echo "GEMINI_API_KEY=YOUR_GEMINI_API_KEY" >> .env
    # 替换 YOUR_YOUTUBE_API_KEY 和 YOUR_GEMINI_API_KEY 为你自己的 API 密钥

    注意: 请务必替换 'YOUR_YOUTUBE_API_KEY' 和 'YOUR_GEMINI_API_KEY' 为您自己的 API 密钥。

  4. 启动服务器:

    uvicorn app.main:app --reload

    服务器默认运行在 'http://localhost:8000'。

服务器配置 (MCP 客户端配置)

MCP 客户端需要配置以下 JSON 信息才能连接到 News Guy MCP 服务器:

{
  "serverName": "News Guy MCP Server",
  "command": "uvicorn",
  "args": ["app.main:app", "--reload"]
}

配置参数说明:

  • 'serverName': 服务器名称,这里设置为 "News Guy MCP Server"。
  • 'command': 启动服务器的命令,这里使用 'uvicorn'。
  • 'args': 启动命令的参数,包括指定 FastAPI 应用入口 'app.main:app' 和开启热重载 '--reload' (开发模式下使用)。

基本使用方法

News Guy 提供了 API 接口和 CLI 工具两种使用方式。

API 接口:

  • '/api/v1/latest-captions': 获取最新 Fireship 视频的字幕。
  • '/api/v1/search?query={query}&k={k}': 根据关键词 'query' 搜索视频字幕,返回最相关的 'k' 条结果。
  • '/api/v1/ask?query={query}&k={k}': 根据问题 'query',基于视频内容生成答案,并返回相关性最高的 'k' 条内容来源。

CLI 工具: 安装项目后,可以直接使用 'newsguy' 命令:

  • 'newsguy query "What's new with Fireship?"': 使用 Gemini 模型回答关于 Fireship 最新动态的问题。
  • 'newsguy latest --format=json': 获取最新视频信息,并以 JSON 格式输出。

MCP 客户端使用: 配置好上述服务器配置信息后,MCP 客户端应该能够连接到 News Guy MCP 服务器。具体如何通过 MCP 客户端调用 News Guy 提供的功能,需要参考 MCP 客户端的文档和 News Guy 服务器的能力声明 (如果 News Guy 实现了能力声明)。 由于 News Guy 代码中没有明确的 MCP 协议交互示例,实际使用可能需要根据 'fastapi-mcp' 库的特性进行探索。

信息

分类

网页与API