douban-mcp
MCP server for querying Douban books, movies, TV shows, and group topics, with tools for searching, retrieving details, and listing reviews.
README
豆瓣 MCP 服务器
一个基于 Model Context Protocol (MCP) 的豆瓣数据服务,提供图书、电影、电视剧和小组话题相关查询能力,适合接入 Claude Desktop、Cherry Studio、5ire、MCP Inspector 等支持 stdio 的 MCP 客户端。
项目定位
本项目面向“工具调用”场景,而不是完整的豆瓣网页封装。当前重点是提供以下几类能力:
- 图书搜索与图书长评列表
- 电影 / 电视剧搜索
- 电影 / 电视剧详情
- 电影 / 电视剧长评列表
- 豆瓣小组话题列表与话题详情
- 在本地默认浏览器中打开豆瓣图书页面
工具总览
当前服务实际注册的 MCP tools 如下:
| Tool | 说明 |
|---|---|
search-book |
按关键词或 ISBN 搜索图书 |
list-book-reviews |
获取图书长评列表 |
search-movie |
搜索电影或电视剧 |
get-movie-detail |
获取电影详情 |
get-tv-detail |
获取电视剧详情 |
list-movie-reviews |
获取电影长评列表 |
list-tv-reviews |
获取电视剧长评列表 |
browse |
在默认浏览器打开图书详情页 |
list-group-topics |
获取小组话题列表 |
get-group-topic-detail |
获取小组话题详情 |
工具说明
search-book
按关键词或 ISBN 搜索图书。q 和 isbn 至少需要提供一个。
参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
q |
string |
否 | 图书搜索关键词,例如 三体 |
isbn |
string |
否 | ISBN 编号,例如 9787501524044 |
返回特点:
- 返回 Markdown 表格
- 包含出版时间、书名、作者、评分、豆瓣 ID、ISBN
list-book-reviews
获取指定图书的长评列表。
参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
id |
string |
是 | 豆瓣图书 ID |
返回特点:
- 返回 Markdown 表格
- 包含标题、评分、摘要、评论 ID
search-movie
搜索电影或电视剧。结果中会同时返回结构化文本摘要和完整 raw_json,便于 LLM 二次解析。
参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
q |
string |
是 | 电影或电视剧关键词,例如 霸王别姬、绝命毒师 |
返回特点:
- 每个结果包含
title、type、year、rating、subtitle、id、uri - 末尾附带
raw_json - 搜索结果可能同时包含电影和电视剧
get-movie-detail
获取电影详情。
参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
id |
string |
是 | 豆瓣电影 ID,例如 1291546 |
返回特点:
- 返回结构化文本
- 包含标题、原名、年份、类型、评分、类型标签、国家/地区、语言、上映日期、片长、导演、演员、别名、简介
- 末尾附带完整
raw_json
get-tv-detail
获取电视剧详情。
参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
id |
string |
是 | 豆瓣电视剧 ID,例如 2995166 |
返回特点:
- 输出结构与
get-movie-detail一致 - 末尾附带完整
raw_json
list-movie-reviews
获取电影长评列表。
参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
id |
string |
是 | 豆瓣电影 ID |
返回特点:
- 返回 Markdown 表格
- 包含标题、评分、摘要、评论 ID
list-tv-reviews
获取电视剧长评列表。
参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
id |
string |
是 | 豆瓣电视剧 ID |
返回特点:
- 返回 Markdown 表格
- 包含标题、评分、摘要、评论 ID
browse
在本机默认浏览器中打开图书详情页。
参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
id |
string |
是 | 豆瓣图书 ID |
说明:
- 这是本地动作,不返回网页内容
- 适合在桌面环境中配合 MCP 客户端使用
list-group-topics
获取豆瓣小组话题列表,支持按小组、标签、日期过滤。
参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
id |
string |
否 | 豆瓣小组 ID,默认值为 732764 |
tags |
string[] |
否 | 标签过滤,例如 ["python"] |
from_date |
string |
否 | 起始日期,格式 YYYY-MM-DD |
返回特点:
- 返回话题列表
- 适合配合
get-group-topic-detail继续获取单个话题正文
get-group-topic-detail
获取单个豆瓣小组话题详情。
参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
id |
string |
是 | 豆瓣话题 ID |
返回特点:
- 返回话题详细内容
- 包含正文、摘要及相关元数据
输出格式说明
为了兼顾“人读”和“模型读”,当前工具输出主要分为两类:
- 表格型输出:主要用于评论列表和图书搜索,适合直接展示
- 结构化文本输出:主要用于电影 / 电视剧搜索与详情,字段稳定,并保留
raw_json
如果你在上层 Agent 中需要更可靠地抽取字段,优先使用带 raw_json 的工具输出。
使用要求
运行环境
- Node.js 18+
- 支持 stdio 的 MCP 客户端
- 能访问豆瓣接口的网络环境
Cookie
部分接口依赖豆瓣 Cookie。未提供有效 Cookie 时,部分请求可能失败、返回不完整,或触发风控。
当前通过环境变量 COOKIE 注入,例如:
export COOKIE='bid=...; ck=...; dbcl2=...; frodotk_db=...;'
接入示例
Claude Desktop / 通用 MCP 配置
{
"mcpServers": {
"douban-mcp": {
"command": "node",
"args": [
"/absolute/path/to/douban-mcp/dist/index.js"
],
"env": {
"COOKIE": "bid=...;ck=...;dbcl2=...;frodotk_db=..."
}
}
}
}
本地开发
npm install
npm run build
npm start
常用命令:
| 命令 | 说明 |
|---|---|
npm run build |
编译 TypeScript 并生成 dist/ |
npm run dev |
监听编译 |
npm start |
启动 MCP 服务 |
测试说明
仓库当前包含一个基于 MCP 客户端直连的集成测试脚本:
node tests/mcp-tools.mjs
注意:
package.json里仍保留了npm test -> jest- 当前仓库未看到对应的 Jest 测试配置,实际验证建议优先运行上面的集成脚本
已知限制
- 豆瓣接口并非公开稳定官方 MCP 接口,返回结构可能变化
- 依赖 Cookie 和当前可用网络环境
browse需要桌面环境,不适合纯无头服务器- README 中列出的能力以当前代码为准,若接口升级请同步更新文档
依赖
参考资料
License
MIT
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。