1. 模型概述
Bilibili MCP JS是一个基于Model Context Protocol (MCP) 的开源服务器项目,专门为Bilibili(B站)平台提供AI模型与外部工具和数据源之间的标准化连接。它本质上是一个AI时代的”万能插座”,让各种AI模型能够无缝访问和操作B站的内容和功能。
核心能力
-
B站视频搜索:支持按关键词搜索Bilibili上的视频内容,返回视频标题、作者、播放量、时长等详细信息
-
用户认证系统:提供完整的OAuth 2.0安全认证流程,支持本地Token缓存和扫码快速授权
-
视频管理功能:支持完整的视频投稿流程,包括视频上传预处理、分片上传、封面图片上传和稿件提交
-
用户信息管理:获取用户基本信息、统计数据(关注数、粉丝数、投稿数)和投稿历史查询
技术特点
-
基于Node.js的轻量级实现,易于部署和扩展
-
采用JSON-RPC 2.0协议,支持实时双向交互
-
提供标准化MCP接口,可被任何兼容MCP协议的AI客户端调用
-
支持多种传输方式,包括Stdio(本地)和HTTP SSE(远程)
应用场景
-
AI助手集成视频搜索:在聊天机器人中集成B站视频搜索功能,当用户询问教程或视频推荐时自动返回相关内容
-
内容分析与趋势研究:分析B站上特定主题视频的流行趋势和用户偏好
-
自动化视频管理:为内容创作者和MCN机构提供批量视频上传、管理和分析功能
-
智能创作助手:结合AI能力,辅助用户进行视频内容创作、优化和发布
2. 安装与部署方式
前置要求
-
Node.js 18.0 或更高版本(推荐20.12.0+)
-
npm 或 yarn 包管理器
-
B站账号(需要开通开发者权限,获取API访问凭证)
Windows系统安装
步骤一:安装Node.js环境
-
访问 Node.js官网 下载Windows安装包
-
运行安装程序,选择默认配置即可
-
打开命令提示符(CMD)或PowerShell,验证安装:
node --version npm --version
步骤二:安装Bilibili MCP JS
# 使用npm全局安装(推荐) npm install -g @mcpcn/mcp-bilibili # 或者使用npx直接运行 npx @mcpcn/mcp-bilibili
步骤三:配置环境变量
创建系统环境变量或使用.env
文件配置B站API凭证:
BILIBILI_CLIENT_ID=你的客户端ID BILIBILI_CLIENT_SECRET=你的客户端密钥 REDIRECT_URI=http://localhost:3000/auth/callback
步骤四:运行服务器
# 直接运行(如果全局安装) mcp-bilibili # 或者使用npx npx @mcpcn/mcp-bilibili
苹果系统(macOS)安装
使用Homebrew安装Node.js
# 安装Homebrew(如果未安装) /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" # 安装Node.js brew install node # 验证安装 node --version npm --version
后续安装步骤与Windows系统相同。
Linux系统安装(Ubuntu为例)
# 安装Node.js curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - sudo apt-get install -y nodejs # 验证安装 node --version npm --version # 安装Bilibili MCP JS sudo npm install -g @mcpcn/mcp-bilibili # 运行服务器 mcp-bilibili
安装常见问题及解决方案
-
权限错误(EACCES)
# 解决方案:使用sudo或更改npm默认目录 sudo npm install -g @mcpcn/mcp-bilibili # 或者 npm config set prefix ~/.npm-global
-
模块找不到错误(Cannot find module)
# 解决方案:清理缓存并重新安装 npm cache clean --force npm install
-
B站API限制错误
-
申请更高权限的API接口
-
添加请求延迟避免频率限制
-
检查API凭证是否正确配置
-
-
端口占用错误
# 解决方案:更改端口或终止占用进程 lsof -ti:3000 | xargs kill -9 # 或者修改配置使用其他端口
3. 配套客户端
Bilibili MCP JS兼容任何支持MCP协议的客户端,以下是主要推荐:
1. Claude Desktop
-
状态:免费
-
配置方式:
-
编辑配置文件
~/.config/claude/claude_desktop_config.json
-
添加Bilibili MCP服务器配置:
{ "mcpServers": { "bilibili": { "command": "mcp-bilibili", "env": { "BILIBILI_ACCESS_TOKEN": "你的访问令牌" } } } }
-
2. Cursor IDE
-
状态:免费增值模式
-
配置方式:
-
在设置中启用MCP服务
-
添加Bilibili MCP服务器配置
-
配置API认证信息
-
3. MCP Inspector(调试工具)
-
状态:免费开源
-
配置方式:
# 安装并运行MCP Inspector npx @modelcontextprotocol/inspector node build/index.js
4. 案例讲解:智能视频搜索与分析助手
场景描述
假设你是一个内容创作者,想要寻找B站上最近热门的”人工智能教程”视频,并分析它们的共同特点和流行趋势。
实现代码
// bilibili-video-analyzer.js const { BilibiliMCPClient } = require('@mcpcn/mcp-bilibili'); class VideoAnalyzer { constructor() { this.client = new BilibiliMCPClient({ clientId: process.env.BILIBILI_CLIENT_ID, clientSecret: process.env.BILIBILI_CLIENT_SECRET }); } // 搜索热门视频 async searchPopularVideos(keyword, limit = 10) { try { // 认证获取访问令牌 await this.client.authenticate(); // 搜索视频 const searchResults = await this.client.searchVideos({ keyword: keyword, sort: 'click', // 按点击量排序 duration: 0, // 全部时长 limit: limit }); return searchResults; } catch (error) { console.error('搜索视频失败:', error.message); throw error; } } // 分析视频数据 analyzeVideoData(videos) { const analysis = { total: videos.length, totalViews: 0, totalDuration: 0, avgViews: 0, avgDuration: 0, topCreators: {}, commonTags: {} }; // 计算统计数据 videos.forEach(video => { analysis.totalViews += video.play; analysis.totalDuration += video.duration; // 统计创作者出现次数 if (!analysis.topCreators[video.author]) { analysis.topCreators[video.author] = 0; } analysis.topCreators[video.author]++; // 统计常见标签 if (video.tags) { video.tags.split(',').forEach(tag => { tag = tag.trim(); if (tag) { if (!analysis.commonTags[tag]) { analysis.commonTags[tag] = 0; } analysis.commonTags[tag]++; } }); } }); // 计算平均值 analysis.avgViews = analysis.totalViews / analysis.total; analysis.avgDuration = analysis.totalDuration / analysis.total; // 排序创作者和标签 analysis.topCreators = Object.entries(analysis.topCreators) .sort((a, b) => b[1] - a[1]) .slice(0, 5) .reduce((obj, [key, value]) => { obj[key] = value; return obj; }, {}); analysis.commonTags = Object.entries(analysis.commonTags) .sort((a, b) => b[1] - a[1]) .slice(0, 10) .reduce((obj, [key, value]) => { obj[key] = value; return obj; }, {}); return analysis; } // 生成报告 generateReport(keyword, videos, analysis) { console.log(`=== B站"${keyword}"视频分析报告 ===\n`); console.log(`共分析 ${analysis.total} 个视频`); console.log(`总播放量: ${analysis.totalViews.toLocaleString()}`); console.log(`平均播放量: ${Math.round(analysis.avgViews).toLocaleString()}`); console.log(`平均时长: ${Math.round(analysis.avgDuration / 60)}分钟\n`); console.log('热门创作者:'); Object.entries(analysis.topCreators).forEach(([creator, count], index) => { console.log(`${index + 1}. ${creator} (${count}个视频)`); }); console.log('\n常见标签:'); Object.entries(analysis.commonTags).forEach(([tag, count], index) => { console.log(`${index + 1}. ${tag} (${count}次出现)`); }); console.log('\n推荐策略:'); console.log('1. 与热门创作者合作可能获得更多曝光'); console.log('2. 使用常见标签可以提高视频被发现的机会'); console.log('3. 视频时长建议控制在平均时长附近'); } } // 使用示例 async function main() { const analyzer = new VideoAnalyzer(); try { // 搜索"人工智能教程"相关视频 console.log('正在搜索B站上的"人工智能教程"视频...'); const videos = await analyzer.searchPopularVideos('人工智能教程', 15); // 分析视频数据 const analysis = analyzer.analyzeVideoData(videos); // 生成并显示报告 analyzer.generateReport('人工智能教程', videos, analysis); } catch (error) { console.error('分析失败:', error.message); } } // 运行分析 main();
运行结果示例
=== B站"人工智能教程"视频分析报告 === 共分析 15 个视频 总播放量: 2,456,789 平均播放量: 163,786 平均时长: 18分钟 热门创作者: 1. 李宏毅AI教程 (3个视频) 2. 吴恩达深度学习 (2个视频) 3. 王木头学AI (2个视频) 常见标签: 1. 机器学习 (15次出现) 2. 深度学习 (12次出现) 3. Python (10次出现) 4. 人工智能 (9次出现) 5. 神经网络 (7次出现) 推荐策略: 1. 与热门创作者合作可能获得更多曝光 2. 使用常见标签可以提高视频被发现的机会 3. 视频时长建议控制在平均时长附近
5. 使用成本与商业价值
使用成本评估
-
开发与部署成本
-
软件成本:完全开源免费
-
硬件需求:低至中等(可在普通PC或云服务器运行)
-
开发时间:节省大量开发时间,传统方式需要数周的集成工作现在只需几天
-
-
运营与维护成本
-
API调用成本:B站开放平台API免费使用(但有调用频率限制)
-
服务器成本:轻量级Node.js应用,低资源消耗
-
维护成本:基于标准化协议,减少兼容性问题
-
-
学习成本
-
技术门槛:中等,需要基本的JavaScript/Node.js知识
-
文档完整性:提供完整的API文档和示例
-
社区支持:活跃的开源社区支持
-
商业价值分析
-
效率提升价值
-
开发效率:传统方式需要为每个AI模型单独开发B站接口,MCP实现了”一次开发,多模型使用”,效率提升10倍以上
-
内容创作效率:自动化视频管理和分析功能,帮助内容创作者节省大量时间
-
-
数据价值
-
实时数据分析:可以实时获取和分析B站视频数据,把握市场趋势
-
用户行为洞察:通过分析视频表现和用户互动,优化内容策略
-
-
创新价值
-
新业务模式:支持创建新型AI驱动的视频内容服务和应用
-
智能推荐系统:结合AI能力,提供更精准的内容推荐和个性化体验
-
-
竞争优势
-
先发优势:早期采用MCP协议的项目在AI+视频领域具有技术领先优势
-
生态整合:可轻松集成到现有的AI工具链和生态系统中
-
投资回报率(ROI)分析
成本项 | 传统方式 | 使用Bilibili MCP JS | 节省 |
---|---|---|---|
开发时间 | 4-6周 | 3-7天 | 85% |
维护成本 | 高(多平台适配) | 低(标准化协议) | 70% |
硬件资源 | 中等 | 低 | 40% |
生态扩展 | 困难(需单独适配) | 容易(自动兼容) | 90% |
风险与挑战
-
API限制风险:B站API的调用频率限制可能影响大规模应用
-
平台政策风险:B站开放平台政策变化可能影响服务稳定性
-
技术依赖风险:依赖MCP协议的普及和发展
-
数据隐私合规:需要确保用户数据收集和使用符合相关法规
总结
Bilibili MCP JS作为一个基于MCP协议的B站集成工具,展现了标准化连接的巨大价值。它不仅大幅降低了AI模型与B站平台集成的复杂度,还为内容创作者、MCN机构和开发者提供了强大的视频搜索、管理和分析能力。
从技术角度看,项目实施简单、文档完整,遵循行业标准协议,具有良好的可扩展性和维护性。从商业角度看,它能够显著降低开发成本、提高运营效率,并支持创新业务模式的探索。
对于正在寻找B站生态与AI能力结合方案的组织和个人,Bilibili MCP JS是一个值得认真考虑的选择,特别是对于那些希望快速实现AI驱动视频服务而又不想投入大量开发资源的项目。
推荐适用场景:
-
内容创作者和MCN机构需要自动化视频管理
-
数据分析团队需要研究B站视频趋势和用户行为
-
AI应用开发者希望集成B站视频搜索和推荐功能
-
研究人员需要获取B站视频数据进行学术研究
关注 “悠AI” 更多干货技巧行业动态