使用说明
项目简介
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 服务器交互,进行查询和测试。
安装步骤
-
创建并激活虚拟环境:
python -m venv venv source venv/bin/activate # 或 Windows: venv\Scripts\activate -
安装依赖:
uv pip install -e . -
配置环境变量: 创建 '.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 密钥。
-
启动服务器:
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