{"name":"io.github.ni-c/linkwarden-mcp","slug":"ni-c-linkwarden-mcp","title":"Linkwarden","description":"MCP server for Linkwarden, the self-hosted bookmark manager with page preservation","url":"https://mcp.market/server/ni-c-linkwarden-mcp","rating":null,"grade":"B","score":83,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":26,"stars":0,"forks":0,"downloads_week":46,"last_push_at":"2026-09-16T08:42:17.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"mixed","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/ni-c/linkwarden-mcp","website":"https://linkwarden-mcp.ni-c.de","version":"0.4.0","remotes":[],"packages":[{"registryType":"npm","identifier":"linkwarden-mcp","version":"0.4.0","transport":{"type":"stdio"},"environmentVariables":[{"description":"Base URL of the Linkwarden instance, e.g. https://links.example.net (without /api/v1)","isRequired":true,"format":"string","name":"LINKWARDEN_URL"},{"description":"Access token from Settings -> Access Tokens","isRequired":true,"format":"string","isSecret":true,"name":"LINKWARDEN_TOKEN"},{"description":"Set to true to register only the 11 read tools and no write tools","format":"boolean","name":"LINKWARDEN_READ_ONLY"},{"description":"Comma-separated tool names or list_* prefixes to register; 'essential' selects a curated preset (default: all tools)","format":"string","name":"LINKWARDEN_ALLOW_TOOLS"},{"description":"Comma-separated tool names or list_* prefixes to remove from whatever LINKWARDEN_ALLOW_TOOLS left","format":"string","name":"LINKWARDEN_DENY_TOOLS"},{"description":"Set to true to accept self-signed certificates for this connection only","format":"boolean","name":"LINKWARDEN_INSECURE_TLS"}]},{"registryType":"oci","identifier":"ghcr.io/ni-c/linkwarden-mcp:0.4.0","transport":{"type":"stdio"},"environmentVariables":[{"description":"Base URL of the Linkwarden instance, e.g. https://links.example.net (without /api/v1)","isRequired":true,"format":"string","name":"LINKWARDEN_URL"},{"description":"Access token from Settings -> Access Tokens","isRequired":true,"format":"string","isSecret":true,"name":"LINKWARDEN_TOKEN"},{"description":"Set to true to register only the 11 read tools and no write tools","format":"boolean","name":"LINKWARDEN_READ_ONLY"},{"description":"Comma-separated tool names or list_* prefixes to register; 'essential' selects a curated preset (default: all tools)","format":"string","name":"LINKWARDEN_ALLOW_TOOLS"},{"description":"Comma-separated tool names or list_* prefixes to remove from whatever LINKWARDEN_ALLOW_TOOLS left","format":"string","name":"LINKWARDEN_DENY_TOOLS"},{"description":"Set to true to accept self-signed certificates for this connection only","format":"boolean","name":"LINKWARDEN_INSECURE_TLS"}]}],"tools":[{"name":"bulk_delete_links","description":"Deletes a set of bookmarks and all their preserved copies. Two-step: the","write_action":true,"price_micros":0,"input_schema":null},{"name":"bulk_update_links","description":"Applies the same tag list and/or target collection to a set of links.","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_collection","description":"Creates a collection. Pass parent_id to nest it under an existing","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_link","description":"Saves a bookmark. Linkwarden fetches the page title itself when no name is","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_rss_subscription","description":"Subscribes to an RSS or Atom feed. Linkwarden polls it and files every new","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_tags","description":"Creates tags, or updates the ones that already exist — the underlying route","write_action":true,"price_micros":0,"input_schema":null},{"name":"delete_collection","description":"Deletes a collection. This cascades: every link inside it, every preserved","write_action":true,"price_micros":0,"input_schema":null},{"name":"delete_link","description":"Deletes a bookmark and every preserved copy of the page. Two-step: the","write_action":true,"price_micros":0,"input_schema":null},{"name":"delete_link_preservations","description":"Removes the archived screenshot, PDF, readable text and single-file HTML of","write_action":true,"price_micros":0,"input_schema":null},{"name":"delete_rss_subscription","description":"Stops polling a feed. Links that were already created from it stay where","write_action":true,"price_micros":0,"input_schema":null},{"name":"delete_tags","description":"Deletes one or more tags. The links keep existing, they just lose the tag.","write_action":true,"price_micros":0,"input_schema":null},{"name":"get_collection","description":"Fetches one collection with its link count and the per-member","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_current_user","description":"Reports which Linkwarden account the configured token belongs to and that","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_dashboard","description":"Returns the links Linkwarden shows on its dashboard: the most recently","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_link","description":"Fetches one bookmark with its tags, collection and which preserved","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_link_content","description":"Returns the readable article text Linkwarden extracted and stored when it","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_tag","description":"Fetches one tag with its archival settings. Use search_links with tag_id","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_worker_stats","description":"Reports how many links are waiting to be preserved, how many succeeded and","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_collections","description":"Lists every collection the authenticated account owns or is a member of,","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_rss_subscriptions","description":"Lists the RSS feeds this account subscribes to. Linkwarden polls them and","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_tags","description":"Lists the tags of the authenticated account with the number of links each","write_action":false,"price_micros":0,"input_schema":null},{"name":"merge_tags","description":"Folds several tags into a single new one: every link that carried any of the","write_action":false,"price_micros":0,"input_schema":null},{"name":"rename_tag","description":"Renames a tag; every link carrying it keeps it. Tag names are unique per","write_action":false,"price_micros":0,"input_schema":null},{"name":"represerve_link","description":"Has Linkwarden archive the page again. This first DELETES the existing","write_action":false,"price_micros":0,"input_schema":null},{"name":"search_links","description":"Searches bookmarks, or lists them when no query is given. This is the way","write_action":false,"price_micros":0,"input_schema":null},{"name":"set_link_pinned","description":"Pins a link to the account's dashboard, or removes the pin. Pins are per","write_action":false,"price_micros":0,"input_schema":null},{"name":"update_collection","description":"Changes a collection. Fields that are not given stay as they are: the tool","write_action":true,"price_micros":0,"input_schema":null},{"name":"update_link","description":"Changes a bookmark. Fields that are not given stay as they are: the tool","write_action":true,"price_micros":0,"input_schema":null}],"scan":{"score":83,"grade":"B","scanned_at":"2026-09-20T00:26:20.553Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-20T00:26:20.561Z","components":{"code":{"score":25,"max":25,"notes":["41 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":6,"max":15,"notes":["static API keys via environment variables"]},"maintenance":{"score":15,"max":15,"notes":["last push 4 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"linkwarden-mcp","version":"0.4.0","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":6,"publishedAt":"2026-09-07T20:08:43.385Z","repositoryUrl":"git+https://github.com/ni-c/linkwarden-mcp.git","weeklyDownloads":46}],"repo":{"found":true,"owner":"ni-c","repo":"linkwarden-mcp","archived":false,"pushedAt":"2026-09-16T08:42:17Z","stars":0,"forks":0,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/283341?v=4","ownerCreatedAt":"2010-05-21T13:00:22Z","license":"MIT"},"icon":{"url":"https://linkwarden-mcp.ni-c.de/favicon.svg","source":"site"},"presence":{"stars":0,"forks":0,"downloadsWeek":46,"license":"MIT","lastPushAt":"2026-09-16T08:42:17.000Z","score":26}}}},"grade_history":[],"reviews":[]}