关于 wallabag MCP
wallabag MCP 为 wallabag 用户和 AI 助手提供文章、标签与批注的操作接口,适用于自托管稍后阅读库。它将 OAuth API 操作封装为结构化工具。
主要功能
- 01分页列出并筛选文章
- 02获取文章元数据和正文
- 03保存、更新及归档文章
- 04管理标签与文章批注
- 05检查连接和身份验证
适用场景
- 01搜索并阅读已保存文章
- 02将网页加入 wallabag
- 03整理文章的标签与已读状态
- 04为文章摘录添加批注
MCP 相关
作为 MCP 服务,它向客户端暴露 wallabag 的文章、标签和批注操作,并通过配置的 OAuth 凭据连接实例。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
uvx wallabag-mcpWALLABAG_BASE_URLBase URL of the wallabag instance, e.g. https://wallabag.example.comWALLABAG_ACCESS_TOKEN密钥Existing OAuth access token; skips password grant if providedWALLABAG_CLIENT_IDOAuth client id; required unless WALLABAG_ACCESS_TOKEN is setWALLABAG_CLIENT_SECRET密钥OAuth client secret; required unless WALLABAG_ACCESS_TOKEN is setWALLABAG_USERNAMEwallabag username; required unless WALLABAG_ACCESS_TOKEN is setWALLABAG_PASSWORD密钥wallabag password; required unless WALLABAG_ACCESS_TOKEN is set本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
wallabag MCP
这是一个面向 wallabag 的模型上下文协议(MCP)服务。wallabag 是一款开源的稍后阅读服务。
此服务为 AI 助手提供了一个结构化接口,用于处理常见的 wallabag 工作流:
- 通过一个轻量的只读健康检查验证连接和身份验证
- 列出、筛选已保存的文章,并分页浏览
- 获取条目元数据或提取后的完整内容
- 保存新的 URL
- 归档/取消归档条目,并为条目加星/取消加星
- 重新加载/重新抓取文章内容
- 删除条目
- 列出并添加标签
- 列出、创建和删除批注
为什么要开发此服务
wallabag 在可自托管环境中广泛使用,但其 API 基于 OAuth,不太适合通用的大模型工具。此 MCP 服务封装了重要的条目、标签和批注操作,并提供了适合 AI 使用的接口和文档化参数。
安装
pipx install git+https://github.com/rusty4444/wallabag-mcp.git
或者从代码检出目录安装:
python -m venv .venv
source .venv/bin/activate
pip install -e .
配置
此服务通过环境变量读取配置:
| 变量 | 必填 | 说明 |
|---|---|---|
WALLABAG_BASE_URL | 是 | wallabag 实例的基础 URL,例如 https://app.wallabag.it |
WALLABAG_ACCESS_TOKEN | 否 | 已有的 OAuth 访问令牌;设置后将跳过密码授权 |
WALLABAG_CLIENT_ID | 除非已设置访问令牌,否则必填 | wallabag 开发者客户端页面中的 OAuth 客户端 ID |
WALLABAG_CLIENT_SECRET | 除非已设置访问令牌,否则必填 | OAuth 客户端密钥 |
WALLABAG_USERNAME | 除非已设置访问令牌,否则必填 | wallabag 用户名 |
WALLABAG_PASSWORD | 除非已设置访问令牌,否则必填 | wallabag 密码 |
WALLABAG_TIMEOUT | 否 | HTTP 超时时间,单位为秒,默认值为 20 |
在 wallabag 实例的 开发者 / API 客户端下创建 wallabag API 客户端。wallabag 官方文档介绍了如何通过 /oauth/v2/token 使用密码授权。
MCP 客户端配置
{
"mcpServers": {
"wallabag": {
"command": "wallabag-mcp",
"env": {
"WALLABAG_BASE_URL": "https://wallabag.example.com",
"WALLABAG_CLIENT_ID": "your-client-id",
"WALLABAG_CLIENT_SECRET": "your-client-secret",
"WALLABAG_USERNAME": "your-username",
"WALLABAG_PASSWORD": "your-password"
}
}
}
}
工具
| 工具 | 用途 |
|---|---|
wallabag_health_check | 通过一个轻量的只读请求验证连接和身份验证 |
wallabag_list_entries | 使用分页和筛选条件列出条目 |
wallabag_get_entry | 获取单个条目,可选包含提取后的内容 |
wallabag_add_entry | 将 URL 保存到 wallabag |
wallabag_update_entry | 更新标题、URL、归档/加星状态或标签 |
wallabag_archive_entry | 将条目标记为已归档/已读 |
wallabag_unarchive_entry | 将条目标记为未归档/未读 |
wallabag_star_entry | 为条目加星/收藏 |
wallabag_unstar_entry | 取消条目的加星/收藏状态 |
wallabag_reload_entry | 请求 wallabag 重新抓取/解析原始 URL |
wallabag_delete_entry | 删除条目 |
wallabag_list_tags | 列出已知标签 |
wallabag_add_tags_to_entry | 将逗号分隔的标签添加到条目 |
wallabag_delete_tag | 全局删除标签 |
wallabag_list_annotations | 列出条目的批注 |
wallabag_create_annotation | 为引用的文章文本创建批注 |
wallabag_delete_annotation | 删除批注 |
开发与验证
python -m venv .venv
source .venv/bin/activate
pip install -e '.[dev]'
ruff check .
pytest
python scripts/live_docs_test.py
live_docs_test.py 用于验证 wallabag 的公开 API 文档和托管的 API 文档页面,无需账户凭据。修改操作和经过身份验证的请求行为则通过模拟 HTTP 测试进行覆盖。
安全
具有写入能力的工具会修改你的稍后阅读资料库。请将 OAuth 密钥保存在环境变量或密钥管理器中,切勿提交到源代码管理中。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。