wallabag MCP
MCP server for wallabag read-it-later entries, tags, and annotations.
Install
Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).
wallabag-mcpclaude mcp add wallabag-mcp -e 'WALLABAG_BASE_URL=<WALLABAG_BASE_URL>' -e 'WALLABAG_ACCESS_TOKEN=<your wallabag_access_token>' -e 'WALLABAG_CLIENT_ID=<WALLABAG_CLIENT_ID>' -e 'WALLABAG_CLIENT_SECRET=<your wallabag_client_secret>' -e 'WALLABAG_USERNAME=<WALLABAG_USERNAME>' -e 'WALLABAG_PASSWORD=<your wallabag_password>' -- uvx wallabag-mcp==0.1.0
{
"mcpServers": {
"wallabag-mcp": {
"command": "uvx",
"args": [
"wallabag-mcp==0.1.0"
],
"env": {
"WALLABAG_BASE_URL": "<WALLABAG_BASE_URL>",
"WALLABAG_ACCESS_TOKEN": "<your wallabag_access_token>",
"WALLABAG_CLIENT_ID": "<WALLABAG_CLIENT_ID>",
"WALLABAG_CLIENT_SECRET": "<your wallabag_client_secret>",
"WALLABAG_USERNAME": "<WALLABAG_USERNAME>",
"WALLABAG_PASSWORD": "<your wallabag_password>"
}
}
}
}
Environment variables
WALLABAG_BASE_URLrequired Base URL of the wallabag instance, e.g. https://wallabag.example.comWALLABAG_ACCESS_TOKENsecret Existing OAuth access token; skips password grant if providedWALLABAG_CLIENT_IDOAuth client id; required unless WALLABAG_ACCESS_TOKEN is setWALLABAG_CLIENT_SECRETsecret OAuth client secret; required unless WALLABAG_ACCESS_TOKEN is setWALLABAG_USERNAMEwallabag username; required unless WALLABAG_ACCESS_TOKEN is setWALLABAG_PASSWORDsecret wallabag password; required unless WALLABAG_ACCESS_TOKEN is set
Documentation
From the project's README on GitHub, refreshed weekly. Links open on GitHub.
Contents
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.
Frequently asked questions
What is wallabag MCP?
MCP server for wallabag read-it-later entries, tags, and annotations.
How do I install wallabag MCP?
It runs on your machine. In Claude Code: claude mcp add wallabag-mcp -e 'WALLABAG_BASE_URL=<WALLABAG_BASE_URL>' -e 'WALLABAG_ACCESS_TOKEN=<your wallabag_access_token>' -e 'WALLABAG_CLIENT_ID=<WALLABAG_CLIENT_ID>' -e 'WALLABAG_CLIENT_SECRET=<your wallabag_client_secret>' -e 'WALLABAG_USERNAME=<WALLABAG_USERNAME>' -e 'WALLABAG_PASSWORD=<your wallabag_password>' -- uvx wallabag-mcp==0.1.0. For other clients, paste the JSON configuration from this page into their MCP settings.
Does wallabag MCP need an API key?
Yes. It expects WALLABAG_BASE_URL, WALLABAG_ACCESS_TOKEN, WALLABAG_CLIENT_SECRET, WALLABAG_PASSWORD, which you set in its configuration.
Is wallabag MCP open source?
Yes. Its code is on GitHub under the MIT license.
Who maintains wallabag MCP?
It is published by rusty4444. AI.tn lists it but does not maintain or endorse it.
From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.