MCP server for WeRead. Query your reading data via Claude or any MCP client.
mcp-weread
WeRead MCP Server。把微信读书的书架、阅读统计、划线数据,通过 Model Context Protocol 暴露给 Claude / 其他 LLM 客户端。
它做什么
让你在 Claude Desktop、Claude Code、或任何 MCP-aware 客户端里,直接用自然语言查询自己的微信读书数据:
"帮我列出我最近一周读过的书" "把我在《投资最重要的事》里划的所有线整理成主题" "我这个月平均每天读多少分钟?" "在我读完的书里找出'风险管理'相关的内容"
LLM 会自动调用本 MCP server 的工具拉取数据,再生成回答。
暴露的工具
| 工具 | 功能 |
|------|------|
| get_bookshelf | 获取书架(可指定 limit)|
| get_reading_stats | 获取指定日期范围的每日阅读统计 |
| get_highlights | 获取划线(可按书名过滤)|
| get_book_progress | 获取某本书的阅读进度 |
| search_books | 按关键词搜索书架 |
| get_recent_reads | 获取最近 N 天读过的书 |
安装
pip install mcp-weread
或从源码安装:
git clone https://github.com/YunhaoDou/mcp-weread.git
cd mcp-weread
pip install -e .
配置
1. 获取微信读书 API Key
按 微信读书 Skill 介绍页 的流程扫码登录,拿到 wrk-... 形式的 key。
2. 接入 Claude Desktop
编辑 ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) 或 %APPDATA%\Claude\claude_desktop_config.json (Windows),加入:
{
"mcpServers": {
"weread": {
"command": "mcp-weread",
"env": {
"WEREAD_API_KEY": "wrk-your-api-key-here"
}
}
}
}
重启 Claude Desktop,左下角会出现 weread 工具图标。
3. 接入 Claude Code
在 .mcp.json 加入相同的配置,或在项目配置目录加。
Mock 模式 (无需 API Key)
想先看看效果,设置环境变量直接跑:
WEREAD_MOCK=1 mcp-weread
会用内置的 10 本模拟书 + 模拟阅读统计 + 8 条模拟划线响应所有工具调用。可以接到客户端测试整套流程,确认没问题再换成真实 key。
配置环境变量
| 变量 | 默认 | 说明 |
|------|------|------|
| WEREAD_API_KEY | — | 你的 wrk-... API key |
| WEREAD_MOCK | 0 | 设为 1 启用 mock 模式 |
| WEREAD_AGENT_BASE | https://agent.weread.qq.com | Agent Gateway base URL |
开发
git clone https://github.com/YunhaoDou/mcp-weread.git
cd mcp-weread
pip install -e ".[dev]"
# 本地测试(mock 模式)
WEREAD_MOCK=1 python -m mcp_weread
# 用 MCP Inspector 调试
npx @modelcontextprotocol/inspector python -m mcp_weread
项目结构
src/mcp_weread/
├── __init__.py
├── __main__.py # python -m mcp_weread 入口
├── server.py # MCP server + tool definitions
├── client.py # WeRead API client (真实 + mock)
└── mock_data.py # mock 模式数据
隐私与安全
- API key 通过环境变量传入,不要把它提交到 git
- 所有 HTTP 调用都直连官方 Agent Gateway,无中间人
- Mock 模式完全离线,适合演示和 demo
路线图
- [ ] 加
add_highlight工具(支持回写) - [ ] 加 streaming 支持
- [ ] 加 batched 调用 (减少 LLM round-trip)
- [ ] 出 Docker 镜像