wallabag
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PORT | No | HTTP port. Bound to 127.0.0.1. | 3000 |
| MCP_TRANSPORT | No | stdio or http. --http overrides. | |
| WALLABAG_CONTACT | No | Contact token in the User-Agent. Must not contain a secret. | |
| WALLABAG_BASE_URL | Yes | Required. Origin, http or https, no userinfo, query, or hash. A path prefix is allowed. Example http://127.0.0.1:80. | |
| WALLABAG_PASSWORD | No | Wallabag password. Redacted everywhere. | |
| WALLABAG_TOOLSETS | No | Comma list of toolsets, or all. Default is the default set. user is off by default because PUT /api/user registers an account. | entries,tags,annotations,search,config,info |
| WALLABAG_USERNAME | No | Wallabag username or email for the password grant. | |
| WALLABAG_CLIENT_ID | No | OAuth2 client id from Developer → create a client. Required with the other password-grant variables when no access token is set. | |
| WALLABAG_PER_MINUTE | No | Local request budget. Cache hits do not spend it. | 30 |
| WALLABAG_TIMEOUT_MS | No | Upstream timeout in milliseconds. | 20000 |
| WALLABAG_ACCESS_TOKEN | No | Optional pre-issued Bearer token. Used until HTTP 401. If password-grant variables are also set, a 401 tries refresh_token then the password grant. | |
| WALLABAG_ALLOW_WRITES | No | Must be the literal true before a confirmed write is sent. | false |
| WALLABAG_CACHE_TTL_SEC | No | Read cache TTL in seconds. Writes clear the cache. | 60 |
| WALLABAG_CLIENT_SECRET | No | OAuth2 client secret. Redacted in logs, errors, and tool output. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| wallabag_annotationsA | wallabag_annotations covers the annotations toolset (4 operations). Auth is OAuth2 Bearer from WALLABAG_ACCESS_TOKEN or a password grant. Self-hosted Wallabag first. action help with target returns one action's parameters. Writes need confirm set to the boolean true and WALLABAG_ALLOW_WRITES=true. Omit confirm for a dry-run preview that sends nothing. Destructive actions add an extra warning in the preview: deletes, bulk URL lists, and user registration. Actions: delete_by_id, get_by_id, post_by_id, put_by_id. |
| wallabag_configB | wallabag_config covers the config toolset (2 operations). Auth is OAuth2 Bearer from WALLABAG_ACCESS_TOKEN or a password grant. Self-hosted Wallabag first. action help with target returns one action's parameters. Actions: get, get_taggingrule_export. |
| wallabag_entriesA | wallabag_entries covers the entries toolset (14 operations). Auth is OAuth2 Bearer from WALLABAG_ACCESS_TOKEN or a password grant. Self-hosted Wallabag first. action help with target returns one action's parameters. Writes need confirm set to the boolean true and WALLABAG_ALLOW_WRITES=true. Omit confirm for a dry-run preview that sends nothing. Destructive actions add an extra warning in the preview: deletes, bulk URL lists, and user registration. Actions: delete_by_id, delete_list, delete_tags, delete_tags_list, get, get_by_id, get_exists, get_tags, patch_by_id, patch_reload, post, post_lists, post_tags, post_tags_lists. |
| wallabag_infoC | wallabag_info covers the info toolset (2 operations). Auth is OAuth2 Bearer from WALLABAG_ACCESS_TOKEN or a password grant. Self-hosted Wallabag first. action help with target returns one action's parameters. Actions: get, get_version. |
| wallabag_searchC | wallabag_search covers the search toolset (1 operations). Auth is OAuth2 Bearer from WALLABAG_ACCESS_TOKEN or a password grant. Self-hosted Wallabag first. action help with target returns one action's parameters. Actions: get. |
| wallabag_tagsA | wallabag_tags covers the tags toolset (4 operations). Auth is OAuth2 Bearer from WALLABAG_ACCESS_TOKEN or a password grant. Self-hosted Wallabag first. action help with target returns one action's parameters. Writes need confirm set to the boolean true and WALLABAG_ALLOW_WRITES=true. Omit confirm for a dry-run preview that sends nothing. Destructive actions add an extra warning in the preview: deletes, bulk URL lists, and user registration. Actions: delete_by_id, delete_label, delete_tag_label, get. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 6 tools
Most tools map to distinct Wallabag resources, but wallabag_entries duplicates tag operations (get_tags, post_tags, delete_tags) that also belong under wallabag_tags. wallabag_search also overlaps with filtered entry listing via wallabag_entries.get, leaving real ambiguity about which tool to choose.
All tool names follow a predictable wallabag_<resource> lowercase snake_case pattern with a uniform prefix. The only minor inconsistency is mixing plural resource nouns (entries, tags, annotations) with singular ones (config, info, search).
Six top-level tools bundle many API operations into coherent resource groups, which is well-scoped for a Wallabag server. This avoids both an overly thin surface and an unwieldy one-tool-per-endpoint explosion.
The core lifecycle is covered: entries CRUD/list/search, annotations CRUD, tags, config, and info. However tag operations are split across entry and tag tools, and account/user or export-style operations are absent or unclear, leaving minor gaps.