Linkwarden MCP
An MCP server for Linkwarden that allows agents to search bookmark collections, organize them into collections and tags, and read preserved article text. It supports reading archived content without fetching live sites, merging updates to prevent data loss, and enforcing read-only or allow-listed tool access via environment variables.
Package and access
Local package with source-attributed installation metadata. Koskamo does not execute packages during review.
What you can do with it
- Search a bookmark collection for specific topics
- Read preserved article text from archived links
- Organize bookmarks into collections and tags
- Summarize or quote saved content without live fetches
Source and maintenance
- Last repository push
- Latest release
- v0.4.0
- Maintenance checked
Packages and installation
Source-provided package data. Koskamo has not executed or live-probed this package.
ghcr.io/ni-c/linkwarden-mcp:0.4.0
{
"transport": "stdio",
"identifier": "ghcr.io/ni-c/linkwarden-mcp:0.4.0",
"registryType": "oci",
"environmentVariables": [
{
"name": "LINKWARDEN_URL",
"format": "string",
"isRequired": true,
"description": "Base URL of the Linkwarden instance, e.g. https://links.example.net (without /api/v1)"
},
{
"name": "LINKWARDEN_TOKEN",
"format": "string",
"isRequired": true,
"description": "Access token from Settings -> Access Tokens"
},
{
"name": "LINKWARDEN_READ_ONLY",
"format": "boolean",
"description": "Set to true to register only the 11 read tools and no write tools"
},
{
"name": "LINKWARDEN_ALLOW_TOOLS",
"format": "string",
"description": "Comma-separated tool names or list_* prefixes to register; 'essential' selects a curated preset (default: all tools)"
},
{
"name": "LINKWARDEN_DENY_TOOLS",
"format": "string",
"description": "Comma-separated tool names or list_* prefixes to remove from whatever LINKWARDEN_ALLOW_TOOLS left"
},
{
"name": "LINKWARDEN_INSECURE_TLS",
"format": "boolean",
"description": "Set to true to accept self-signed certificates for this connection only"
}
]
}Tools
Reported by the attributed source; not independently observed by Koskamo.
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · repository · passed · metadata changed · updated
- · backfill · recorded · Pre-expansion baseline; unobserved rich metadata remains unknown
Connect from your client
Each snippet configures the same source-provided package; replace placeholders before use.
Cursor
{
"mcpServers": {
"linkwarden-mcp-0-4-0": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"LINKWARDEN_URL=<YOUR_LINKWARDEN_URL>",
"-e",
"LINKWARDEN_TOKEN=<YOUR_LINKWARDEN_TOKEN>",
"-e",
"LINKWARDEN_READ_ONLY=<YOUR_LINKWARDEN_READ_ONLY>",
"-e",
"LINKWARDEN_ALLOW_TOOLS=<YOUR_LINKWARDEN_ALLOW_TOOLS>",
"-e",
"LINKWARDEN_DENY_TOOLS=<YOUR_LINKWARDEN_DENY_TOOLS>",
"-e",
"LINKWARDEN_INSECURE_TLS=<YOUR_LINKWARDEN_INSECURE_TLS>",
"ghcr.io/ni-c/linkwarden-mcp:0.4.0"
],
"env": {
"LINKWARDEN_URL": "<YOUR_LINKWARDEN_URL>",
"LINKWARDEN_TOKEN": "<YOUR_LINKWARDEN_TOKEN>",
"LINKWARDEN_READ_ONLY": "<YOUR_LINKWARDEN_READ_ONLY>",
"LINKWARDEN_ALLOW_TOOLS": "<YOUR_LINKWARDEN_ALLOW_TOOLS>",
"LINKWARDEN_DENY_TOOLS": "<YOUR_LINKWARDEN_DENY_TOOLS>",
"LINKWARDEN_INSECURE_TLS": "<YOUR_LINKWARDEN_INSECURE_TLS>"
}
}
}
}Cline
{
"mcpServers": {
"linkwarden-mcp-0-4-0": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"LINKWARDEN_URL=<YOUR_LINKWARDEN_URL>",
"-e",
"LINKWARDEN_TOKEN=<YOUR_LINKWARDEN_TOKEN>",
"-e",
"LINKWARDEN_READ_ONLY=<YOUR_LINKWARDEN_READ_ONLY>",
"-e",
"LINKWARDEN_ALLOW_TOOLS=<YOUR_LINKWARDEN_ALLOW_TOOLS>",
"-e",
"LINKWARDEN_DENY_TOOLS=<YOUR_LINKWARDEN_DENY_TOOLS>",
"-e",
"LINKWARDEN_INSECURE_TLS=<YOUR_LINKWARDEN_INSECURE_TLS>",
"ghcr.io/ni-c/linkwarden-mcp:0.4.0"
],
"env": {
"LINKWARDEN_URL": "<YOUR_LINKWARDEN_URL>",
"LINKWARDEN_TOKEN": "<YOUR_LINKWARDEN_TOKEN>",
"LINKWARDEN_READ_ONLY": "<YOUR_LINKWARDEN_READ_ONLY>",
"LINKWARDEN_ALLOW_TOOLS": "<YOUR_LINKWARDEN_ALLOW_TOOLS>",
"LINKWARDEN_DENY_TOOLS": "<YOUR_LINKWARDEN_DENY_TOOLS>",
"LINKWARDEN_INSECURE_TLS": "<YOUR_LINKWARDEN_INSECURE_TLS>"
}
}
}
}VS Code
{
"servers": {
"linkwarden-mcp-0-4-0": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"LINKWARDEN_URL=<YOUR_LINKWARDEN_URL>",
"-e",
"LINKWARDEN_TOKEN=<YOUR_LINKWARDEN_TOKEN>",
"-e",
"LINKWARDEN_READ_ONLY=<YOUR_LINKWARDEN_READ_ONLY>",
"-e",
"LINKWARDEN_ALLOW_TOOLS=<YOUR_LINKWARDEN_ALLOW_TOOLS>",
"-e",
"LINKWARDEN_DENY_TOOLS=<YOUR_LINKWARDEN_DENY_TOOLS>",
"-e",
"LINKWARDEN_INSECURE_TLS=<YOUR_LINKWARDEN_INSECURE_TLS>",
"ghcr.io/ni-c/linkwarden-mcp:0.4.0"
],
"env": {
"LINKWARDEN_URL": "<YOUR_LINKWARDEN_URL>",
"LINKWARDEN_TOKEN": "<YOUR_LINKWARDEN_TOKEN>",
"LINKWARDEN_READ_ONLY": "<YOUR_LINKWARDEN_READ_ONLY>",
"LINKWARDEN_ALLOW_TOOLS": "<YOUR_LINKWARDEN_ALLOW_TOOLS>",
"LINKWARDEN_DENY_TOOLS": "<YOUR_LINKWARDEN_DENY_TOOLS>",
"LINKWARDEN_INSECURE_TLS": "<YOUR_LINKWARDEN_INSECURE_TLS>"
}
}
}
}Claude Desktop
{
"mcpServers": {
"linkwarden-mcp-0-4-0": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"LINKWARDEN_URL=<YOUR_LINKWARDEN_URL>",
"-e",
"LINKWARDEN_TOKEN=<YOUR_LINKWARDEN_TOKEN>",
"-e",
"LINKWARDEN_READ_ONLY=<YOUR_LINKWARDEN_READ_ONLY>",
"-e",
"LINKWARDEN_ALLOW_TOOLS=<YOUR_LINKWARDEN_ALLOW_TOOLS>",
"-e",
"LINKWARDEN_DENY_TOOLS=<YOUR_LINKWARDEN_DENY_TOOLS>",
"-e",
"LINKWARDEN_INSECURE_TLS=<YOUR_LINKWARDEN_INSECURE_TLS>",
"ghcr.io/ni-c/linkwarden-mcp:0.4.0"
],
"env": {
"LINKWARDEN_URL": "<YOUR_LINKWARDEN_URL>",
"LINKWARDEN_TOKEN": "<YOUR_LINKWARDEN_TOKEN>",
"LINKWARDEN_READ_ONLY": "<YOUR_LINKWARDEN_READ_ONLY>",
"LINKWARDEN_ALLOW_TOOLS": "<YOUR_LINKWARDEN_ALLOW_TOOLS>",
"LINKWARDEN_DENY_TOOLS": "<YOUR_LINKWARDEN_DENY_TOOLS>",
"LINKWARDEN_INSECURE_TLS": "<YOUR_LINKWARDEN_INSECURE_TLS>"
}
}
}
}Let your agent find its tools
Find servers like Linkwarden MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.