Skip to main content
Glama
si-essence

wallabag

by si-essence

wallabag

MCP connector for a Wallabag server. It speaks the REST API over stdio and over stateless Streamable HTTP on 127.0.0.1.

Wallabag is MIT-licensed software. This connector does not copy that PHP. It only calls the HTTP API on the server you configure. It is not affiliated with Wallabag. Create an API client in your Wallabag account under Developer, then use the OAuth2 password grant, or pass a pre-issued access token.

The operations table is generated from vendor/routes.json, a route snapshot derived from wallabag 2.6.15 ApiBundle controllers (MIT). The snapshot has 35 routes. This connector covers 29 of them in 7 tools. It leaves out 6 endpoints that export files or serve the HTML developer portal. scripts/gen-operations.mjs writes src/operations.ts. Do not edit that file by hand.

Self-hosted servers first. There is no default base URL. WALLABAG_BASE_URL is required. A path prefix is allowed, for example https://example.com/wallabag.

Setup

npm install
npm run ci
npm start
npm run start:http

npm start speaks stdio. npm run start:http serves Streamable HTTP at http://127.0.0.1:3000/mcp and GET /health. HTTP mode has no authentication of its own. Keep it on localhost.

{
  "mcpServers": {
    "wallabag": {
      "command": "node",
      "args": ["/workspace/connectors/wallabag/dist/index.js"],
      "env": {
        "WALLABAG_BASE_URL": "http://127.0.0.1:80",
        "WALLABAG_CLIENT_ID": "...",
        "WALLABAG_CLIENT_SECRET": "...",
        "WALLABAG_USERNAME": "...",
        "WALLABAG_PASSWORD": "...",
        "WALLABAG_ALLOW_WRITES": "false",
        "WALLABAG_TOOLSETS": "entries,tags,annotations,search,config,info"
      }
    }
  }
}

You can set WALLABAG_ACCESS_TOKEN instead of the password-grant variables.

Docker (HTTP, no authentication, keep it on localhost):

docker build -t wallabag .
docker run -p 127.0.0.1:3000:3000 \
  -e WALLABAG_BASE_URL=http://127.0.0.1:80 \
  -e WALLABAG_ACCESS_TOKEN=... \
  wallabag

Do not put tokens in the image.

Regenerate the registry after a Wallabag route bump.

npm run gen:operations

scripts/live-check.mjs talks to a real server over stdio. It needs WALLABAG_BASE_URL and either WALLABAG_ACCESS_TOKEN or the password-grant variables. It sets WALLABAG_TOOLSETS=all. Gated writes run only when WALLABAG_ALLOW_WRITES=true. It prints pass or fail lines only. This workspace does not start Wallabag.

Related MCP server: linkwarden-mcp

Config

Variable

Meaning

WALLABAG_BASE_URL

Required. Origin, http or https, no userinfo, query, or hash. A path prefix is allowed. Example http://127.0.0.1:80.

WALLABAG_CLIENT_ID

OAuth2 client id from Developer → create a client. Required with the other password-grant variables when no access token is set.

WALLABAG_CLIENT_SECRET

OAuth2 client secret. Redacted in logs, errors, and tool output.

WALLABAG_USERNAME

Wallabag username or email for the password grant.

WALLABAG_PASSWORD

Wallabag password. Redacted everywhere.

WALLABAG_ACCESS_TOKEN

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

Must be the literal true before a confirmed write is sent.

WALLABAG_TOOLSETS

Comma list of toolsets, or all. Default is the set below. user is off by default because PUT /api/user registers an account.

WALLABAG_PER_MINUTE

Local request budget. Default 30. Cache hits do not spend it.

WALLABAG_TIMEOUT_MS

Upstream timeout. Default 20000.

WALLABAG_CACHE_TTL_SEC

Read cache TTL. Default 60. Writes clear the cache.

WALLABAG_CONTACT

Contact token in the User-Agent. Must not contain a secret.

MCP_TRANSPORT

stdio or http. --http overrides.

PORT

HTTP port. Default 3000. Bound to 127.0.0.1.

Invalid values are reported by field name and issue code. The rejected value is not included. Tokens, passwords, and client secrets are redacted in logs, errors, tool results, thrown messages, and URLs.

Auth is POST /oauth/v2/token with grant_type=password and application/x-www-form-urlencoded, then Authorization: Bearer <access_token>. A stored refresh_token is used after HTTP 401. The connector never puts credentials in the API URL.

Safety

GET is a read. POST, PUT, PATCH, and DELETE are writes.

A write needs confirm: true as a boolean and WALLABAG_ALLOW_WRITES=true. The string "true" is rejected. Otherwise the tool returns a dry-run preview of method, path, query, and redacted body, and it sends nothing. Deletes, bulk URL lists, and user registration add a warning line on the tool and on the preview.

PUT /api/user can return a new OAuth client_secret. That value is shown once. Later calls redact it. User email, password, token, refresh_token, and client_secret are redacted. Error text drops stack traces and filesystem paths.

HTTP 401 is unauthorized. HTTP 403 is forbidden. HTTP 404 is not found. HTTP 400 and 422 are invalid input. HTTP 429 includes Retry-After. Other failures are server, network, or timeout. Response bodies are capped.

Entry export (epub, pdf, and related files) is not exposed. The HTML developer portal is not exposed.

Tools

Default WALLABAG_TOOLSETS publishes 6 tools. WALLABAG_TOOLSETS=all publishes 7 tools (29 operations). Each tool takes action plus optional params, query, body, and confirm.

action help with optional target returns the path, query, and body fields for one action. Descriptions list action names only, so the tool list stays small.

Toolset

Tool

Default

entries

wallabag_entries

yes

tags

wallabag_tags

yes

annotations

wallabag_annotations

yes

search

wallabag_search

yes

config

wallabag_config

yes

info

wallabag_info

yes

user

wallabag_user

no

wallabag_config includes GET /api/config and tagging-rule export. wallabag_info includes GET /api/info and GET /api/version.

Available Tools

6 tools
wallabag_annotationsA
Destructive

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.

NameRequiredDescriptionDefault
bodyNoJSON body for the Wallabag operation. Secrets are redacted in output.
queryNoQuery parameters.
actionYesWallabag operation to call, or help.
paramsNoExpress path parameters, such as id.
targetNoWith action help, the action whose parameters to describe.
confirmNoSet to the boolean true to execute the write. Omit this field for a dry-run preview. false and the string true are rejected.

TDQS

A3.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations (destructiveHint=true, readOnlyHint=false): it discloses the OAuth2 auth source, the two-step confirm/dry-run write protocol, the WALLABAG_ALLOW_WRITES gate, and exactly which actions trigger an extra destructive warning (deletes, bulk URL lists, user registration). This is precisely the safety context an agent needs for a destructive tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Dense and runs several distinct concerns (auth, environment, help, write gating, destructive warnings, action list) into a flat wall of sentences. Information is useful but not organized hierarchically, forcing the reader to parse it rather than scan.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a multi-action aggregate tool with no output schema, it covers the important operational facts: auth, write safety, dry-run, help mechanism, and destructive-action set. The main gap is semantic -- it never says what an annotation is or what these operations return -- but the operational completeness is strong.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents confirm, body, query, params, action, and target. The description mostly restates the confirm/target semantics already encoded in the schema (const true, help target), adding little beyond it. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States the resource ('annotations toolset') and enumerates the four actions (delete/get/post/put_by_id), so an agent knows this is a Wallabag annotation CRUD surface. However, it never explains what a Wallabag annotation actually is (a highlight/comment on an entry), which is meaningful context for a domain-specific resource. Clear verb+resource, but no active sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explains the mechanics well -- how to use action help, that writes require confirm=true and WALLABAG_ALLOW_WRITES, and that omitting confirm gives a dry-run. But it gives no guidance on when to reach for this tool versus the sibling wallabag_entries or wallabag_search, leaving routing to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wallabag_configB
Read-only

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.

NameRequiredDescriptionDefault
bodyNoJSON body for the Wallabag operation. Secrets are redacted in output.
queryNoQuery parameters.
actionYesWallabag operation to call, or help.
paramsNoExpress path parameters, such as id.
targetNoWith action help, the action whose parameters to describe.

TDQS

B3.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnlyHint=true, destructiveHint=false, openWorldHint=true), so the description earns credit for adding auth context the annotations lack: OAuth2 Bearer from WALLABAG_ACCESS_TOKEN or a password grant. It stops short of describing response shape or pagination, but the auth prerequisite is the highest-value behavioral fact for a self-hosted Wallabag tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short and reasonably front-loaded with the toolset and auth, but the telegraphic style leaves fragments like 'Self-hosted Wallabag first.' that don't clearly earn their place. The order is odd: the help mechanism is buried in the middle rather than after the action list.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 5 parameters, nested body/query/params objects, and no output schema, the description should explain what each action returns and how body/query apply to a read-only config tool. It covers auth and the help mechanism but leaves the two real operations undefined, so an agent still needs an exploratory help call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds only one parameter-level detail — that 'target' pairs with action=help — which the schema's own description of target already states, so it adds essentially no meaning beyond the structured fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

It states this covers the 'config toolset (2 operations)' and enumerates the actions (get, get_taggingrule_export, help), so the resource area is identifiable. But the actions themselves are never explained — 'get' could mean anything — so an agent cannot tell what the tool actually retrieves without opening the schema or calling help.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does provide a discovery path: 'action help with target returns one action's parameters,' which is genuine invocation guidance. However, it never says when to choose wallabag_config over siblings like wallabag_info or wallabag_tags, and 'Self-hosted Wallabag first' is an unexplained fragment rather than a usable condition.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wallabag_entriesA
Destructive

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.

NameRequiredDescriptionDefault
bodyNoJSON body for the Wallabag operation. Secrets are redacted in output.
queryNoQuery parameters.
actionYesWallabag operation to call, or help.
paramsNoExpress path parameters, such as id.
targetNoWith action help, the action whose parameters to describe.
confirmNoSet to the boolean true to execute the write. Omit this field for a dry-run preview. false and the string true are rejected.

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations, the description discloses OAuth2 auth sources, the write-gating environment variable, dry-run behavior that sends nothing, and the extra destructive warning shown for deletes, bulk URL lists, and user registration. These details substantially improve safe invocation and do not contradict the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded and information-dense, with auth and write safety before the action list. The long action enumeration duplicates the schema enum and makes the paragraph run-on, but it is not padded with fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex 14-operation tool with six parameters, the description covers auth, write safety, dry-run behavior, and how to discover per-action parameters via help. It does not explain return values or per-action semantics, but the help action mitigates the biggest invocation gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already carries most parameter meaning. The description reinforces action help, target, and confirm semantics, but it largely repeats what the schema states and does not add new syntax or format guidance for body, query, or params.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states that the tool covers the Wallabag entries toolset and enumerates all 14 supported actions, giving a clear verb/resource picture. It does not explicitly distinguish the tool from siblings such as wallabag_search, so it falls short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear operational guidance: use action help with target to inspect parameters, writes require confirm=true plus WALLABAG_ALLOW_WRITES=true, and omitting confirm produces a dry-run preview. It does not say when to choose this tool over sibling tools like wallabag_search, but the usage context is otherwise strong.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wallabag_infoC
Read-only

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.

NameRequiredDescriptionDefault
bodyNoJSON body for the Wallabag operation. Secrets are redacted in output.
queryNoQuery parameters.
actionYesWallabag operation to call, or help.
paramsNoExpress path parameters, such as id.
targetNoWith action help, the action whose parameters to describe.

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is known. The description adds useful context about OAuth2 Bearer auth and password grant, but does not mention rate limits, response format, or other behavioral limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and mostly front-loaded with scope and auth. It could order the action list before auth details, but there is little wasted text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description should ideally explain what actions like get and get_version return. It covers auth and help behavior but leaves the main return values unspecified, making it only minimally adequate for an agent to call confidently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all five parameters including action, target, body, query, and params. The description adds little beyond restating the action list and help behavior, which is appropriate baseline when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description says it covers the info toolset and names the actions get and get_version, but 'info toolset' and 'get' are vague about the actual resource being retrieved. It does not explicitly differentiate this tool from siblings like wallabag_config or wallabag_entries.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only usage guidance is that action=help with target returns one action's parameters. There is no guidance on when to use this tool versus wallabag_config, wallabag_entries, or other siblings, and no exclusions are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wallabag_tagsA
Destructive

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.

NameRequiredDescriptionDefault
bodyNoJSON body for the Wallabag operation. Secrets are redacted in output.
queryNoQuery parameters.
actionYesWallabag operation to call, or help.
paramsNoExpress path parameters, such as id.
targetNoWith action help, the action whose parameters to describe.
confirmNoSet to the boolean true to execute the write. Omit this field for a dry-run preview. false and the string true are rejected.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Substantial context beyond the annotations: auth source (WALLABAG_ACCESS_TOKEN or password grant), the env-flag gate on writes, the fact that a dry-run sends nothing, and an extra warning tier for destructive actions. The one blemish is boilerplate leakage — 'bulk URL lists' and 'user registration' are not among this toolset's actions, which suggests copied text and slightly muddies the destructive-action warning.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded and dense — toolset scope, auth, write gate, and action list in a few sentences, with no filler sentences. It loses a point for generic boilerplate ('bulk URL lists, and user registration') that doesn't apply to this tag-focused toolset and distracts from the real destructive actions.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a six-parameter, nested-object, no-output-schema tool, the description covers what an agent needs before calling: auth mechanism, write confirmation protocol, dry-run behavior, destructive-action warnings, and a self-service help path to per-action parameter details. Return values are the only omission, and the help action partly compensates.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so action, target, confirm, body, query and params are already documented in the schema; the description adds the useful hint that 'help' with a target returns that action's parameters. It adds nothing about what body/query/params each action expects, so baseline 3 is right.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the resource ('tags toolset') and enumerates the concrete actions (delete_by_id, delete_label, delete_tag_label, get), so an agent knows the domain and the operation surface. It doesn't explain what each action does (e.g. delete_label vs delete_tag_label), leaving ambiguity inside the enum, but the tool is clearly separable from siblings like wallabag_entries or wallabag_search.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explains the write workflow (confirm=true plus WALLABAG_ALLOW_WRITES=true, omit confirm for dry-run) and the help/target mechanism for discovering per-action parameters, which is real operational guidance. It never says when to reach for wallabag_tags versus wallabag_entries or wallabag_search, so alternative selection is only implied by the toolset names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 6 tool updatesv0.1.0
    • First observedwallabag_annotations
    • First observedwallabag_config
    • First observedwallabag_entries
    • First observedwallabag_info
    • First observedwallabag_search
    • First observedwallabag_tags

TDQS

B3.3/5.0

Scored across 6 tools

Disambiguation3/5

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.

Naming Consistency4/5

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).

Tool Count5/5

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.

Completeness4/5

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.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables interaction with a read-later and link sharing social feed app, allowing users to manage links, bookmarks, and share through web, API, and MCP.
    86
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    MCP server for Linkwarden bookmarks providing read-first search and preserved content access with opt-in write, delete, and collection-delete tools, plus heuristic triage workflows.
    89 npm
    34 PyPI
    1
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Enables MCP clients to search, organize, and read preserved article text from a Linkwarden bookmark manager, supporting both read and write operations with safety confirmations.
    28
    89 npm
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables searching, reading, annotating, and managing a Zotero library from any MCP client.
    AGPL 3.0