返回市场
小鱼洲广播-MCP

小鱼洲广播-MCP

作者:MosesHe5 星标更新:2025-05-20

项目介绍

小宇宙FM MCP服务器

该项目使用Go语言实现了一个MCP(模型上下文协议)服务器,用于与小宇宙FM的API进行交互。它允许大型语言模型通过MCP工具访问小宇宙播客的信息。

主要功能

  • 交互式登录首次使用时,需要使用手机号和验证码登录小宇宙账户以获取token。
  • MCP工具集提供了一系列封装了对小宇宙API调用的MCP工具,包括:
    • get_user_profile_by_id:获取用户公开信息。
    • get_user_stats:获取用户统计数据。
    • get_podcast_details:获取播客详细信息。
    • list_podcast_episodes:获取单个播客的剧集列表(支持分页和排序)。
    • get_episode_details:获取单个剧集的详细信息。
    • search_podcasts:根据关键词搜索播客(支持分页)。
    • search_episodes:根据关键词搜索单个剧集,并可以选择在特定播客内搜索(支持分页)。
    • search_users:根据关键词搜索用户(支持分页)。

快速开始

1. 克隆仓库

git clone https://github.com/MosesHe/xiaoyuzhoufm-mcp.git
cd xiaoyuzhoufm-mcp

2. 构建

go build -o xiaoyuzhoufm-mcp.exe cmd/xiaoyuzhoufm-mcp/main.go

或者简单地:

go build ./cmd/xiaoyuzhoufm-mcp/...

这将在项目的根目录生成一个可执行文件 xiaoyuzhoufm-mcp.exe(Windows)或 xiaoyuzhoufm-mcp(Linux/macOS)。

3. 初始化(登录)

首次使用时,需要运行以下命令进行登录认证:

./xiaoyuzhoufm-mcp.exe init

或者在Linux/macOS上:

./xiaoyuzhoufm-mcp init

初始化过程会引导你完成以下步骤:

  1. 输入区号(默认+86)
  2. 输入小宇宙账户的手机号码
  3. 输入收到的四位验证码

登录成功后,认证token会被保存在用户的主目录 ~/.mcp/xiaoyuzhoufm-mcp/token.json 文件中。

4. 使用服务器(以Cherry Studio为例)

  1. 打开Cherry Studio,进入设置 - MCP服务器,在右上角点击添加服务器。 MCP服务器设置-1

  2. 在设置界面填写名称,选择标准输入输出(STDio)作为类型,输入之前构建的可执行文件路径,并在右上角开启MCP服务器开关。 MCP服务器设置-2

  3. 点击“工具”标签,如果出现工具列表,则设置成功。 工具选项卡

  4. 在对话窗口中选择此MCP服务器开始对话。 对话窗口设置 对话

服务器将自动从 ~/.mcp/xiaoyuzhoufm-mcp/token.json 加载认证token。如果token不存在或已过期,服务器会提示你先运行初始化命令。

5. Token管理

  • token文件存储在 ~/.mcp/xiaoyuzhoufm-mcp/token.json
  • token格式为JSON,包含以下字段:
    {
      "access_token": "...",
      "refresh_token": "...",
      "uid": "...",
      "nickname": "...",
      "last_updated_timestamp": 1234567890
    }
    
  • 如果接近过期,token会在使用时自动刷新

项目结构

.
├── cmd/xiaoyuzhoufm-mcp/
│   └── main.go                 # 主应用程序入口点
├── internal/
│   ├── constants/
│   │   └── constants.go        # 定义项目中使用的常量(如API Base URL)
│   ├── server/
│   │   └── server.go           # MCP服务器实现,包括工具注册和请求处理
│   ├── tools/                  # MCP工具的实现逻辑
│   │   ├── podcast_tool.go
│   │   ├── search_tool.go
│   │   └── user_profile_tool.go
│   └── xyzclient/              # 用于与小宇宙API交互的客户端逻辑
│       ├── auth_api.go         # 认证相关API调用
│       ├── http.go             # HTTP客户端封装
│       ├── podcast_api.go      # 播客相关API调用
│       ├── profile_api.go      # 用户资料相关API调用
│       ├── search_api.go       # 搜索相关API调用
│       ├── token.go            # Token管理
│       └── types.go            # API请求和响应的结构体定义
├── .gitignore
├── go.mod
├── go.sum
├── README.md

全部

  • [] 优化内部错误重试机制
  • [] 优化工具描述
  • [] 简化返回给模型的内容并节省token
  • [] 扩展现有工具集

许可证

本项目基于MIT许可证

声明

本项目仅用于学习和研究目的。请遵守所有适用法律及小宇宙播客的服务条款。