{"name":"io.github.flumpiey/linkwarden-mcp","slug":"flumpiey-linkwarden-mcp","title":"Linkwarden MCP","description":"Read-first Linkwarden bookmarks MCP with opt-in write, delete, and collection tools.","url":"https://mcp.market/server/flumpiey-linkwarden-mcp","rating":null,"grade":"B","score":78,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":23,"stars":1,"forks":0,"downloads_week":30,"last_push_at":"2026-08-27T10:08:02.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"pypi","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/flumpiey/linkwarden-mcp","website":"https://github.com/flumpiey/linkwarden-mcp","version":"0.1.6","remotes":[],"packages":[{"registryType":"pypi","registryBaseUrl":"https://pypi.org","identifier":"linkwarden-mcp","version":"0.1.6","runtimeHint":"uvx","transport":{"type":"stdio"},"environmentVariables":[{"description":"Linkwarden instance base URL (no /api/v1 suffix)","isRequired":true,"name":"LINKWARDEN_API_URL"},{"description":"Access token from Linkwarden settings (Authorization: Bearer)","isRequired":true,"isSecret":true,"name":"LINKWARDEN_API_KEY"},{"description":"Comma-separated write scopes: links,collections,tags,raw. Empty = read-only.","name":"LINKWARDEN_MCP_WRITE_SCOPES"},{"description":"Comma-separated delete scopes (never implied by write scopes)","name":"LINKWARDEN_MCP_DELETE_SCOPES"}]}],"tools":[{"name":"align_tags_with_similar_links","description":"Suggest tags used on similar-domain links already in the library.","write_action":false,"price_micros":0,"input_schema":null},{"name":"analyze_collection_overlap","description":"Compare two collections for shared domains, tags, and URLs.","write_action":false,"price_micros":0,"input_schema":null},{"name":"apply_triage_plan","description":"","write_action":false,"price_micros":0,"input_schema":null},{"name":"auto_tag_by_domain","description":"","write_action":false,"price_micros":0,"input_schema":null},{"name":"bulk_sort_by_rules","description":"","write_action":false,"price_micros":0,"input_schema":null},{"name":"create_collection","description":"","write_action":true,"price_micros":0,"input_schema":null},{"name":"delete_collection","description":"","write_action":true,"price_micros":0,"input_schema":null},{"name":"delete_links","description":"","write_action":true,"price_micros":0,"input_schema":null},{"name":"delete_tags","description":"","write_action":true,"price_micros":0,"input_schema":null},{"name":"find_duplicate_links","description":"Group links with the same normalized URL (scan capped at 500).","write_action":false,"price_micros":0,"input_schema":null},{"name":"find_unsorted_links","description":"List unsorted links (default: Unorganized; scan capped at 500).","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_library_overview","description":"Summarise library totals, empty collections, and unused tags.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_link","description":"Get full metadata for one link.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_sorting_dashboard","description":"One-shot triage dashboard: unsorted, duplicates, empty, largest.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_collections","description":"List collections with link counts.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_resources","description":"","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_tags","description":"List tags with link counts.","write_action":false,"price_micros":0,"input_schema":null},{"name":"merge_tags","description":"","write_action":false,"price_micros":0,"input_schema":null},{"name":"organise_links","description":"","write_action":false,"price_micros":0,"input_schema":null},{"name":"queue_archive","description":"","write_action":false,"price_micros":0,"input_schema":null},{"name":"read_link_content","description":"Read preserved plain text for a link (textContent or archive fallback).","write_action":false,"price_micros":0,"input_schema":null},{"name":"recommend_collection_for_links","description":"Consensus collection recommendation for a batch of links.","write_action":false,"price_micros":0,"input_schema":null},{"name":"save_link","description":"","write_action":false,"price_micros":0,"input_schema":null},{"name":"search_links","description":"Search saved links by query, collection, tag, or pin status.","write_action":false,"price_micros":0,"input_schema":null},{"name":"smart_save_link","description":"","write_action":false,"price_micros":0,"input_schema":null},{"name":"suggest_collection_for_url","description":"Suggest top collections for a URL (heuristic; read-only).","write_action":false,"price_micros":0,"input_schema":null},{"name":"suggest_collection_structure","description":"Hygiene report: empty collections, near-duplicate names, overcrowded.","write_action":false,"price_micros":0,"input_schema":null},{"name":"suggest_links_for_collection","description":"Find links elsewhere that likely belong in a collection.","write_action":false,"price_micros":0,"input_schema":null},{"name":"suggest_tags_for_link","description":"Suggest existing-library tags for a link or URL (never invents new names).","write_action":false,"price_micros":0,"input_schema":null},{"name":"triage_links","description":"Propose collection/tags for link ids (bulk-capped; no writes).","write_action":false,"price_micros":0,"input_schema":null},{"name":"update_link","description":"","write_action":true,"price_micros":0,"input_schema":null}],"scan":{"score":78,"grade":"B","scanned_at":"2026-10-31T05:52:32.120Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-10-31T05:52:32.046Z","components":{"code":{"score":25,"max":25,"notes":["15 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":12,"max":15,"notes":["last push 65 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"pypi","identifier":"linkwarden-mcp","version":"0.1.6","found":true,"weeklyDownloads":30,"license":"MIT","dependencyCount":10,"publishedAt":"2026-08-27T10:08:59.933582Z","repositoryUrl":"https://github.com/flumpiey/linkwarden-mcp"}],"repo":{"found":true,"owner":"flumpiey","repo":"linkwarden-mcp","archived":false,"pushedAt":"2026-08-27T10:08:02Z","stars":1,"forks":0,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/15123171?v=4","ownerCreatedAt":"2015-10-14T10:54:51Z","license":"MIT"},"icon":{"url":"https://raw.githubusercontent.com/flumpiey/linkwarden-mcp/main/docs/icon-512.png","source":"registry","width":512,"height":512},"presence":{"stars":1,"forks":0,"downloadsWeek":30,"license":"MIT","lastPushAt":"2026-08-27T10:08:02.000Z","score":23}}}},"grade_history":[],"reviews":[]}