Skip to main content

Model Context Protocol server for wallabag read-it-later instances

Project description

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

wallabag_mcp-0.1.0.tar.gz (13.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

wallabag_mcp-0.1.0-py3-none-any.whl (10.0 kB view details)

Uploaded Python 3

File details

Details for the file wallabag_mcp-0.1.0.tar.gz.

File metadata

  • Download URL: wallabag_mcp-0.1.0.tar.gz
  • Upload date:
  • Size: 13.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for wallabag_mcp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 3a9226b39daeed663707c9b6a49333826d9e6501ff89ea9c5d03e14133b70a41
MD5 a31734f87e8ead95520c94b57f855024
BLAKE2b-256 4d5f4c12f8a505080a5563d43fde54524f3dfadd47369e8136ccbcb617fc1524

See more details on using hashes here.

File details

Details for the file wallabag_mcp-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: wallabag_mcp-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 10.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for wallabag_mcp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f9e493e1fb66ca40a5dbac518cc9b7612b42a20a9acccc036ce1e9549e8bdad7
MD5 5081d545d8c6f54597bd3c2ed637f97e
BLAKE2b-256 00bbe06cf87881368473deb5673a2011d2d6fb02b4dc177729d31ab9266014ad

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page