pypi wallabag-mcpstdioMITupdated 3mo ago
A Model Context Protocol (MCP) server for wallabag, the open-source read-it-later service.
What can you do with wallabag MCP?
wallabag MCP
A Model Context Protocol (MCP) server for wallabag, the open-source read-it-later service.
This server gives AI assistants a structured interface for common wallabag workflows:
- Verify connectivity and authentication with a tiny read-only health check
- List, filter, and page through saved articles
- Fetch entry metadata or full extracted content
- Save new URLs
- Archive/unarchive and star/unstar entries
- Reload/refetch article extraction
- Delete entries
- List and add tags
- List, create, and delete annotations
Why this exists
wallabag is widely used in self-hosted setups, but its API is OAuth-based and awkward for general LLM tools. This MCP server wraps the important entry, tag, and annotation operations with an AI-friendly surface and documented parameters.
Installation
pipx install git+https://github.com/rusty4444/wallabag-mcp.git
Or from a checkout:
python -m venv .venv
source .venv/bin/activate
pip install -e .
Configuration
The server reads configuration from environment variables:
| Variable | Required | Description |
|---|---|---|
WALLABAG_BASE_URL |
Yes | Base URL of your wallabag instance, e.g. https://app.wallabag.it |
WALLABAG_ACCESS_TOKEN |
Optional | Existing OAuth access token; if set, password grant is skipped |
WALLABAG_CLIENT_ID |
Required unless access token is set | OAuth client id from wallabag's developer client page |
WALLABAG_CLIENT_SECRET |
Required unless access token is set | OAuth client secret |
WALLABAG_USERNAME |
Required unless access token is set | wallabag username |
WALLABAG_PASSWORD |
Required unless access token is set | wallabag password |
WALLABAG_TIMEOUT |
No | HTTP timeout in seconds, default 20 |
Create a wallabag API client from your wallabag instance under Developer / API clients. wallabag's official docs show the password grant against /oauth/v2/token.
MCP client config
{
"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"
}
}
}
}
Tools
| Tool | Purpose |
|---|---|
wallabag_health_check |
Verify connectivity and authentication with a tiny read-only request |
wallabag_list_entries |
List entries with pagination and filters |
wallabag_get_entry |
Fetch one entry, optionally including extracted content |
wallabag_add_entry |
Save a URL into wallabag |
wallabag_update_entry |
Update title, URL, archive/starred state, or tags |
wallabag_archive_entry |
Mark an entry archived/read |
wallabag_unarchive_entry |
Mark an entry unarchived/unread |
wallabag_star_entry |
Star/favourite an entry |
wallabag_unstar_entry |
Remove starred/favourite state |
wallabag_reload_entry |
Ask wallabag to refetch/reparse the original URL |
wallabag_delete_entry |
Delete an entry |
wallabag_list_tags |
List known tags |
wallabag_add_tags_to_entry |
Add comma-separated tags to an entry |
wallabag_delete_tag |
Delete a tag globally |
wallabag_list_annotations |
List annotations for an entry |
wallabag_create_annotation |
Create an annotation on quoted article text |
wallabag_delete_annotation |
Delete an annotation |
Development and validation
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 validates wallabag's public API documentation and the hosted API docs page without needing account credentials. Mutation and authenticated request behaviours are covered with mocked HTTP tests.
Safety
Write-capable tools mutate your read-it-later library. Keep OAuth secrets in environment variables or a secret manager, never in source control.
Install
Add wallabag MCP to your client. Pick the one you use.
claude mcp add wallabag-mcp -- uvx wallabag-mcpcodex mcp add wallabag-mcp -- uvx wallabag-mcpamp mcp add wallabag-mcp -- uvx wallabag-mcp{
"mcpServers": {
"wallabag-mcp": {
"command": "uvx",
"args": [
"wallabag-mcp"
]
}
}
}Add to `claude_desktop_config.json`, then restart Claude Desktop.
{
"mcpServers": {
"wallabag-mcp": {
"command": "uvx",
"args": [
"wallabag-mcp"
]
}
}
}Add to `~/.cursor/mcp.json`, or `.cursor/mcp.json` for a single project.
code --add-mcp '{"name":"wallabag-mcp","command":"uvx","args":["wallabag-mcp"]}'Or add the block manually to `.vscode/mcp.json` under `servers`.
{
"mcpServers": {
"wallabag-mcp": {
"command": "uvx",
"args": [
"wallabag-mcp"
]
}
}
}Add to `~/.codeium/windsurf/mcp_config.json`.
{
"mcpServers": {
"wallabag-mcp": {
"command": "uvx",
"args": [
"wallabag-mcp"
]
}
}
}Add to `cline_mcp_settings.json` via the MCP Servers panel.
{
"mcpServers": {
"wallabag-mcp": {
"command": "uvx",
"args": [
"wallabag-mcp"
]
}
}
}Add to `~/.gemini/settings.json`.
{
"mcpServers": {
"wallabag-mcp": {
"type": "local",
"command": "uvx",
"args": [
"wallabag-mcp"
],
"tools": [
"*"
]
}
}
}Add to `~/.copilot/mcp-config.json`, or run `/mcp add` inside the CLI.
{
"context_servers": {
"wallabag-mcp": {
"command": {
"path": "uvx",
"args": [
"wallabag-mcp"
]
}
}
}
}Add to your Zed `settings.json`.
uvx wallabag-mcpRun `goose configure`, choose **Add Extension → Command-line Extension**, and paste this command.
17 tools
wallabag MCP exposes 17 tools to a connected agent.
- wallabag_health_check
- Verify connectivity and authentication with a tiny read-only request
- wallabag_list_entries
- List entries with pagination and filters
- wallabag_get_entry
- Fetch one entry, optionally including extracted content
- wallabag_add_entry
- Save a URL into wallabag
- wallabag_update_entry
- Update title, URL, archive/starred state, or tags
- wallabag_archive_entry
- Mark an entry archived/read
- wallabag_unarchive_entry
- Mark an entry unarchived/unread
- wallabag_star_entry
- Star/favourite an entry
- wallabag_unstar_entry
- Remove starred/favourite state
- wallabag_reload_entry
- Ask wallabag to refetch/reparse the original URL
- wallabag_delete_entry
- Delete an entry
- wallabag_list_tags
- List known tags
- wallabag_add_tags_to_entry
- Add comma-separated tags to an entry
- wallabag_delete_tag
- Delete a tag globally
- wallabag_list_annotations
- List annotations for an entry
- wallabag_create_annotation
- Create an annotation on quoted article text
- wallabag_delete_annotation
- Delete an annotation
Score
71 / 100
Good
- Documentation25/25
- Maintenance13/25
- Trust13/20
- Capability8/15
- Install experience12/15
- Documents what it does and how to connect
- Has a resolvable package or endpoint
- Exposes at least one tool, prompt or resource
- README has substantive content
- Includes a code example
- Documents its configuration
- Mentions credentials or security posture
- Last commit 93 days ago
- Has a release history
- Repository is not archived
- Licensed MIT
- Namespace verified in the official MCP registry
- Claimed by its owner
- Published under an organisation
- 17 tool(s) documented
- Provides prompt templates
- Provides resources
- 12 documented install method(s)
- Published to a package registry
- Offers a hosted endpoint — no local install
Version history
| Versions | Published |
|---|---|
| 0.1.0Latest | May 18, 2026 |