joplin mcp server for VS Code
io.github.jordanburke/joplin-mcp-server
Search, read, create, edit and sync Joplin notes and notebooks via a headless Joplin sidecar.
client:VS Code
transport:stdio
runtime:npm
Install joplin mcp server in VS Code
.vscode/mcp.json
{
"inputs": [
{
"type": "promptString",
"id": "joplin-token",
"description": "JOPLIN_TOKEN",
"password": true
},
{
"type": "promptString",
"id": "joplin-host",
"description": "JOPLIN_HOST",
"password": true
},
{
"type": "promptString",
"id": "joplin-port",
"description": "JOPLIN_PORT",
"password": true
},
{
"type": "promptString",
"id": "joplin-profile",
"description": "JOPLIN_PROFILE",
"password": true
},
{
"type": "promptString",
"id": "joplin-cli",
"description": "JOPLIN_CLI",
"password": true
},
{
"type": "promptString",
"id": "joplin-sync-target",
"description": "JOPLIN_SYNC_TARGET",
"password": true
},
{
"type": "promptString",
"id": "joplin-sync-path",
"description": "JOPLIN_SYNC_PATH",
"password": true
},
{
"type": "promptString",
"id": "joplin-sync-username",
"description": "JOPLIN_SYNC_USERNAME",
"password": true
},
{
"type": "promptString",
"id": "joplin-sync-password",
"description": "JOPLIN_SYNC_PASSWORD",
"password": true
},
{
"type": "promptString",
"id": "joplin-sync-region",
"description": "JOPLIN_SYNC_REGION",
"password": true
},
{
"type": "promptString",
"id": "joplin-sync-endpoint",
"description": "JOPLIN_SYNC_ENDPOINT",
"password": true
},
{
"type": "promptString",
"id": "joplin-sync-force-path-style",
"description": "JOPLIN_SYNC_FORCE_PATH_STYLE",
"password": true
},
{
"type": "promptString",
"id": "log-level",
"description": "LOG_LEVEL",
"password": true
}
],
"servers": {
"joplin-mcp-server": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"joplin-mcp-server"
],
"env": {
"JOPLIN_TOKEN": "${input:joplin-token}",
"JOPLIN_HOST": "${input:joplin-host}",
"JOPLIN_PORT": "${input:joplin-port}",
"JOPLIN_PROFILE": "${input:joplin-profile}",
"JOPLIN_CLI": "${input:joplin-cli}",
"JOPLIN_SYNC_TARGET": "${input:joplin-sync-target}",
"JOPLIN_SYNC_PATH": "${input:joplin-sync-path}",
"JOPLIN_SYNC_USERNAME": "${input:joplin-sync-username}",
"JOPLIN_SYNC_PASSWORD": "${input:joplin-sync-password}",
"JOPLIN_SYNC_REGION": "${input:joplin-sync-region}",
"JOPLIN_SYNC_ENDPOINT": "${input:joplin-sync-endpoint}",
"JOPLIN_SYNC_FORCE_PATH_STYLE": "${input:joplin-sync-force-path-style}",
"LOG_LEVEL": "${input:log-level}"
}
}
}
}
VS Code prompts for each input the first time the server starts, so no secret is written to the file. VS Code docs