使用说明

项目简介

本项目是一个基于 Model Context Protocol (MCP) 实现的 B站视频搜索服务器。它提供了一个名为 'bilibili-search' 的工具,允许 MCP 客户端通过发送符合 MCP 协议的 JSON-RPC 请求来搜索 B站 视频,并获取结构化的视频信息。

主要功能点

  • B站视频搜索: 提供关键词搜索 B站 视频的功能。
  • 分页查询: 支持通过参数控制搜索结果的页码。
  • 结果数量限制: 支持限制单次搜索返回的视频数量。
  • 结构化视频信息: 返回清晰的视频信息,包括标题、作者、播放量、时长、发布日期、视频链接、封面图片等。
  • MCP 标准接口: 完全遵循 MCP 协议,易于与任何兼容 MCP 协议的客户端集成。

安装步骤

  1. 安装 Node.js: 确保你的环境中安装了 Node.js (>= 20.12.0)。推荐使用 Node.js 官网 下载安装。

  2. 克隆仓库: 将 GitHub 仓库 'https://github.com/34892002/bilibili-mcp-js' 克隆到本地。

    git clone https://github.com/34892002/bilibili-mcp-js
    cd bilibili-mcp-js
  3. 安装依赖: 根据你选择的包管理器,运行以下命令安装项目依赖。

    • 使用 bun (推荐): 如果你的环境安装了 bun, 运行:

      bun i
    • 使用 npm: 如果你使用 npm,运行:

      npm i

服务器配置

MCP 客户端需要配置以下信息才能连接到此 B站视频搜索 MCP 服务器。以下是 JSON 格式的配置信息,请复制到你的 MCP 客户端配置中。

{
  "serverName": "bilibili-search",
  "command": "node",
  "args": [
    "--loader",
    "ts-node/esm",
    "bilibili-mcp-server.ts"
  ],
  "transport": "stdio"
}

配置参数说明:

  • 'serverName': 服务器名称,这里设置为 'bilibili-search',用于在 MCP 客户端中标识该服务。
  • 'command': 启动服务器的命令,这里使用 'node' 运行 Node.js 代码。
  • 'args': 启动命令的参数列表。
    • '--loader ts-node/esm': 使用 'ts-node/esm' loader 允许直接运行 TypeScript 代码,方便开发和测试。(注意:生产环境建议先将 TypeScript 代码编译为 JavaScript,并直接运行 JavaScript 文件,例如 'node bilibili-mcp-server.js',并相应修改 'args' 配置
    • 'bilibili-mcp-server.ts': 服务器入口文件,指向 'bilibili-mcp-server.ts'。
  • 'transport': 传输协议,这里使用 'stdio',表示通过标准输入输出流进行通信。

基本使用方法

  1. 启动服务器: 根据你选择的包管理器,运行以下命令启动 MCP 服务器。

    • 使用 bun:

      bun bilibili-mcp-server.ts
    • 使用 npm:

      npm run start

    启动成功后,你会在控制台看到 'Bilibili Search MCP server running on stdio' 的提示信息。

  2. MCP 客户端发送请求: 使用任何兼容 MCP 协议的客户端,按照以下步骤操作:

    • 列出可用工具 (可选): 发送 'tools/list' 请求,可以获取服务器提供的工具列表,确认 'bilibili-search' 工具是否可用。

      请求示例 (JSON-RPC):

      {
        "jsonrpc": "2.0",
        "id": 1,
        "method": "tools/list",
        "params": {
          "version": "1.0"
        }
      }
    • 调用 B站 搜索工具: 发送 'tools/call' 请求,调用 'bilibili-search' 工具进行视频搜索。你需要提供 'keyword' 参数作为搜索关键词。还可以选择性地提供 'page' (页码) 和 'limit' (每页结果数) 参数。

      请求示例 (JSON-RPC):

      {
        "jsonrpc": "2.0",
        "id": 2,
        "method": "tools/call",
        "params": {
          "version": "0.1.0",
          "name": "bilibili-search",
          "arguments": {
            "keyword": "猫和老鼠",
            "limit": 5
          }
        }
      }
  3. 接收响应: MCP 服务器会将搜索结果以 JSON-RPC 响应的形式返回给客户端。响应内容会包含搜索到的 B站 视频列表,每个视频包含标题、作者、播放量等详细信息。

    响应示例 (JSON-RPC, 简化):

    {
      "jsonrpc": "2.0",
      "id": 2,
      "result": {
        "content": [
          {
            "type": "text",
            "text": "[{\"title\":\"猫和老鼠\",\"author\":\"...\", ...}, {\"title\":\"...\":\"...\", ...}, ...]"
          }
        ]
      }
    }

    客户端需要解析 'content' 中的 JSON 字符串,以获取结构化的视频搜索结果。

通过以上步骤,你就可以使用此 B站视频搜索 MCP 服务器为你的 LLM 应用提供 B站 视频搜索能力。

信息

分类

网页与API