joplin-server-vector-memory

joplin-server-vector-memory

Enables AI assistants to securely search and retrieve information from a user's encrypted Joplin notebook via vector memory and MCP.

Category
Visit Server

README

🧠 Joplin Server Vector Memory MCP: Your Universal AI Brain

SafeSkill CI Pipeline Quality Gate Status Coverage Bugs Code Smells Duplicated Lines (%) Lines of Code Security Rating Technical Debt Maintainability Rating Vulnerabilities NPM Version License pre-commit Commitizen friendly Docker Image Size

In an era where cognitive labor is increasingly augmented by a rotating cast of AI assistants, your intellectual capital shouldn't be trapped in isolated digital silos. Joplin Server Vector Memory MCP transforms your personal notes into a universal "AI Brain"—a secure, centralized, and delightfully interoperable memory engine designed for the multi-agent future. Think of it as the ultimate VIP lounge where all your AI tools can securely access your best ideas! ✨

An AI-native semantic search engine and memory bridge, this system acts as a secure, local connection between your End-to-End Encrypted (E2EE) Joplin Server ecosystem and any MCP (Model Context Protocol) client.


🚀 Quick Start Guide

Ready to supercharge your AI assistants? Let's get started:

Option 1: Docker Run

docker pull ghcr.io/adamoutler/joplin-server-vector-memory-dev:latest
docker run -p 127.0.0.1:3000:3000 -p 127.0.0.1:8000:8000 -v data:/app/data ghcr.io/adamoutler/joplin-server-vector-memory-dev:latest

Option 2: Docker Compose

  1. Download one of our provided docker-compose files:
  2. Run the following command in the directory containing the downloaded file:
    docker compose up -d
    
  3. Monitor Progress: Open http://localhost:3000 in your browser. Log in with setup / 1-mcp-server to enter your Joplin details. Watch your synchronization and embedding progress in real-time!
  4. Connect Your AI: Configure your favorite AI client (e.g., Gemini CLI via .gemini/settings.json, Claude Desktop, etc.) to point to the local FastMCP server running on port 8000.

🎯 Core Philosophy & Architecture

Our primary architectural mandate is Interoperability and Record/Convey. By default, most AI platforms hoard your project context and learned skills within their proprietary agent memories. This system breaks that paradigm. Whether you are coding with GitHub Copilot, analyzing data with Claude Code, brainstorming via Gemini CLI, or automating with GPT Codex, this bridge allows any AI to interface seamlessly with your complete Joplin knowledge base. 🤝

🕊️ Transferrable Knowledge (Zero Vendor Lock-in)

Guarantee the sovereignty of your data. Export and utilize your notes across any AI platform, ensuring your personal memory is always an open highway, never a walled garden. Record insights once, and empower any AI agent to recall and build upon them instantly.

🛡️ Safe Agentic UX via Friction Architecture

Designing APIs and MCP tools for AI agents requires a different paradigm than designing for humans. Instead of optimizing for visual UX, we optimize for Agentic UX. We've implemented a pioneering API design that manages AI behavior through a "sliding scale of friction" (Levels -1 to 3). This framework intentionally guides AIs toward safe behaviors and safeguards your data against destructive hallucinations—employing measures up to "Extreme Friction," which requires multi-turn cryptographic proof for permanent note deletions. Not today, rogue agents! 🛑 (Read more in our AI Friction Architecture Guide)


🧩 System Components

The architecture is split into robust, specialized components to keep your data moving fast and securely:

  • 🔄 Sync Client (client/): A Node.js headless daemon that synchronizes and decrypts your notes using @joplin/lib. It features a snazzy web dashboard at http://localhost:3000 providing distinct "Sync Status" and "Embedding Status" indicators for transparent, real-time feedback while your brain gets indexed.
  • 🚀 MCP Server (server/): A high-performance Python FastMCP server exposing robust semantic search and note management tools directly to your AI clients.
  • 🗄️ Vector Database (database/): Built on a trusty local SQLite database utilizing sqlite-vec for embedded vector distance calculations so fast, if you blink, you'll miss them. ⚡
  • 🪄 Adaptive Embeddings: Powered by Ollama (all-minilm) for high-performance vector embeddings by default. Don't have Ollama running? No worries! The system features a zero-configuration local fallback using an embedded CPU model (all-MiniLM-L6-v2) ensuring seamless, out-of-the-box operation.

🔒 Security & Authentication

Your privacy is paramount. We've built the system so that your credentials stay yours alone.

  • Initial Boot (Setup Mode): On first run (if no credentials are provided via .env), the system boots into Setup Mode. The background sync daemon is paused. You must access the dashboard at http://localhost:3000 using the default setup credentials (Username: setup, Password: 1-mcp-server).
  • In-Memory Credentials: The system is designed so that neither the Joplin Server password nor the E2EE Master Password is ever saved to the Docker volume by default. Passwords live strictly in volatile RAM.
  • Optional Redis Caching: For users who want persistent logins across container or host reboots without storing passwords in plaintext files, you can enable the optional Redis profile (docker compose --profile redis up -d). This securely caches your credentials in Redis, allowing the system to automatically resume syncing after a restart.
  • Auto-Unlock via Browser: The system intercepts your browser's native Basic Auth login to acquire the passwords securely.
  • User Lock & Factory Reset: Upon entering your real Joplin Server credentials into the dashboard, the system permanently binds exclusively to that username. It forces a logout of the setup account, requiring you to log back in using your real Joplin username and password. It cannot be hijacked by other accounts. To switch users, the authenticated owner must access the "Danger Zone" in the dashboard to perform a Factory Reset, which wipes the local databases and relinquishes the lock.

📚 What's Next? Further Resources

Usage & Setup

Architecture & Design

Development & Contributing

Welcome to the future of personal knowledge management. Your AI brain is ready! 🧠✨

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured