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.
README
🧠 Joplin Server Vector Memory MCP: Your Universal AI Brain
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
- Download one of our provided docker-compose files:
- docker-compose.yml (Stable)
- docker-compose-dev.yml (Latest Dev)
- Run the following command in the directory containing the downloaded file:
docker compose up -d - Monitor Progress: Open
http://localhost:3000in your browser. Log in withsetup/1-mcp-serverto enter your Joplin details. Watch your synchronization and embedding progress in real-time! - 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 port8000.
🎯 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 athttp://localhost:3000providing 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 utilizingsqlite-vecfor 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 athttp://localhost:3000using 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
setupaccount, 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
- Setup Guide: Detailed instructions for advanced configurations.
- Environment Variables: A comprehensive reference for all headless configuration options.
- API Documentation: Deep dive into the available MCP tools and endpoints.
Architecture & Design
- System Architecture: Understand the data flow and component interactions.
- AI Friction Architecture: Learn how we design safe Agentic UX.
- Local Embedding Plan: Details on our zero-configuration local AI fallback strategy.
Development & Contributing
- Kanban Tickets: Current roadmap, planned features, and bug fixes.
- CI/CD AI Feedback Loop: How our autonomous AI agents handle testing and deployment.
Welcome to the future of personal knowledge management. Your AI brain is ready! 🧠✨
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。