NoteDiscovery MCP Server
The NoteDiscovery MCP server enables AI assistants to fully manage a self-hosted knowledge base across several capability areas:
Search & Discovery
Full-text search across all notes with snippet previews and pagination
List all notes with metadata (title, path, last modified, size)
Get recently modified notes within a configurable time window
List all tags with note counts; filter notes by a specific tag
Reading & Navigation
Read the full markdown content and metadata of any specific note
Retrieve the knowledge graph (nodes + edges) showing note interconnections
Find all backlinks (notes that link to a specific note)
Creating & Editing
Create new notes or overwrite existing ones with markdown content
Append content to an existing note (with optional timestamp)
Move/rename notes to reorganize the knowledge base
Delete notes permanently
Create folders to structure the knowledge base
Templates
List available templates and preview their content
Create new notes from a template with automatic placeholder substitution (title, date, folder, etc.)
Server Management
Health check to verify server connectivity
Retrieve server configuration (app name, version, auth mode, enabled features)
What is NoteDiscovery?
NoteDiscovery is a lightweight, self-hosted note-taking application that puts you in complete control of your knowledge base. Write, organize, and discover your notes with a beautiful, modern interfaceโall running on your own server.
Related MCP server: brainMD
๐ฏ Who is it for?
Privacy-conscious users who want complete control over their data
Developers who prefer markdown and local file storage
Knowledge workers building a personal wiki or second brain
Teams looking for a self-hosted alternative to commercial apps
Anyone who values simplicity, speed, and ownership
โจ Why NoteDiscovery?
vs. Commercial Apps (Notion, Evernote, Obsidian Sync)
Feature | NoteDiscovery | Commercial Apps |
Cost | 100% Free | $xxx/month/year |
Privacy | Your server, your data | Their servers, their terms |
Speed | Lightning fast | Depends on internet |
Offline | Always works | Limited or requires sync |
Customization | Full control | Limited options |
No Lock-in | Plain markdown files | Proprietary formats |
Key Benefits
๐ Total Privacy - Your notes never leave your server
๐ Optional Authentication - Simple password protection for self-hosted deployments
๐ฐ Zero Cost - No subscriptions, no hidden fees
๐ Fast & Lightweight - Instant search and navigation
๐จ Beautiful Themes - Multiple themes, easy to customize
๐ Extensible - Plugin system for custom features
๐ฑ Responsive - Works on desktop, tablet, and mobile
๐ Simple Storage - Plain markdown files in folders
๐งฎ Math Support - LaTeX/MathJax for beautiful equations
๐ HTML Export & Print - Export notes as standalone HTML or print
๐ธ๏ธ Graph View - Interactive visualization of connected notes
โ๏ธ Drawing editor - In-app sketches as
drawing-*.pngnext to your notes โ see documentation/DRAWING.mdโญ Favorites - Star your most-used notes for instant access
๐ Outline Panel - Navigate headings with click-to-jump TOC
๐ค AI Assistant Ready - MCP integration for Claude, Cursor & more
๐ค AI-Powered Note Management
NoteDiscovery includes a built-in Model Context Protocol (MCP) server, letting AI assistants directly interact with your notes:
What AI Can Do | Example |
๐ Search & Discover | "Find all my notes about Docker deployment" |
๐ Create & Edit | "Create a meeting notes template for tomorrow" |
๐ Organize | "Move all project notes to the archive folder" |
๐ท๏ธ Tag & Categorize | "List all notes tagged with #urgent" |
๐ Explore Connections | "Show me the knowledge graph of my notes" |
โ๏ธ Append Ideas | "Add this thought to my daily journal" |
One-line setup for Cursor, Claude Desktop, and other MCP-compatible tools:
{
"mcpServers": {
"notediscovery": {
"command": "docker",
"args": ["run", "--rm", "-i", "-e", "NOTEDISCOVERY_URL=http://host.docker.internal:8000", "ghcr.io/gamosoft/notediscovery:latest", "python", "-m", "mcp_server"]
}
}
}๐ก See MCP.md for complete setup instructions and all available tools.
๐งช Want a fully local setup with a bundled LLM? OLLAMA-STACK.md spins up NoteDiscovery + Ollama + Open WebUI with one command.
๐บ Watch the tour
๐ Quick Start
Quick Setup
Linux/macOS:
mkdir -p notediscovery/data && cd notediscovery
docker run -d --name notediscovery -p 8000:8000 \
-v $(pwd)/data:/app/data \
ghcr.io/gamosoft/notediscovery:latestWindows (PowerShell):
mkdir notediscovery\data; cd notediscovery
docker run -d --name notediscovery -p 8000:8000 `
-v ${PWD}/data:/app/data `
ghcr.io/gamosoft/notediscovery:latestOpen http://localhost:8000 โ done! ๐
๐ก Your notes are saved in
./data/. Themes, plugins, locales and default configuration values are included in the image.
Using Docker Compose
Two docker-compose files are provided:
File | Use Case |
| Recommended - Uses pre-built image from GitHub Container Registry |
| For development - Builds from local source |
| Bundled local AI stack (NoteDiscovery + Ollama + Open WebUI) โ see OLLAMA-STACK.md |
Option 1: Pre-built image (fastest)
Linux/macOS:
mkdir -p notediscovery/data && cd notediscovery
curl -O https://raw.githubusercontent.com/gamosoft/notediscovery/main/docker-compose.ghcr.yml
docker-compose -f docker-compose.ghcr.yml up -dWindows (PowerShell):
mkdir notediscovery\data; cd notediscovery
Invoke-WebRequest -Uri https://raw.githubusercontent.com/gamosoft/notediscovery/main/docker-compose.ghcr.yml -OutFile docker-compose.ghcr.yml
docker-compose -f docker-compose.ghcr.yml up -dOption 2: Build from source (for development)
git clone https://github.com/gamosoft/notediscovery.git
cd notediscovery
docker-compose up -dSee Advanced Docker Setup for volume details.
Running Locally (Without Docker)
For development or if you prefer running directly:
# Clone the repository
git clone https://github.com/gamosoft/notediscovery.git
cd notediscovery
# Install dependencies
pip install -r requirements.txt
# Run the application
python run.py
# Access at http://localhost:8000Requirements:
Python 3.8 or higher
pip (Python package manager)
Using Virtual Environments (Recommended for Arch/Fedora/Ubuntu 23.04+)
Modern Linux distributions enforce PEP 668, which prevents system-wide pip installs. Use a virtual environment instead:
# Clone the repository
git clone https://github.com/gamosoft/notediscovery.git
cd notediscovery
# Create a virtual environment
python -m venv venv
# Activate it (choose your shell):
source venv/bin/activate # Bash/Zsh (most Linux distros)
source venv/bin/activate.fish # Fish (CachyOS, etc.)
source venv/bin/activate.csh # Csh/Tcsh
.\venv\Scripts\activate # Windows PowerShell
# Install dependencies and run
pip install -r requirements.txt
python run.pyโ ๏ธ Warning
You'll need to activate the virtual environment (source venv/bin/activate) each time you open a new terminal before running the app
Advanced Docker Setup
The image includes bundled config, themes, plugins, and locales. To customize, you must:
Map the volume in your docker-compose or docker run command
Provide content - the file/folder must exist with valid content (empty = app might break!)
Volume | Purpose | Bundled? |
| Your notes | โ You must create |
| App settings | โ Yes |
| Custom themes | โ Yes |
| Custom plugins | โ Yes |
| Translations | โ Yes |
Dashboard Integration
An official icon for NoteDiscovery is now available on Dashboard Icons!
Use it in your self-hosted dashboards like Homepage, Homarr, Dashy, Heimdall, etc...
๐ Documentation
Want to learn more?
๐จ THEMES.md - Theme customization and creating custom themes
โจ FEATURES.md - Complete feature list and keyboard shortcuts
โ๏ธ DRAWING.md - Built-in drawing editor (
drawing-*.png), save behavior, and API notes๐ท๏ธ TAGS.md - Organize notes with tags and combined filtering
๐ TEMPLATES.md - Create notes from reusable templates with dynamic placeholders
๐งฎ MATHJAX.md - LaTeX/Math notation examples and syntax reference
๐ MERMAID.md - Diagram creation with Mermaid (flowcharts, sequence diagrams, and more)
๐ PLUGINS.md - Plugin system and available plugins
๐ API.md - REST API documentation and examples
๐ค MCP.md - AI assistant integration (Claude, Cursor, and more)
๐ AUTHENTICATION.md - Enable password protection for your instance
๐ง ENVIRONMENT_VARIABLES.md - Configure settings via environment variables
๐ Multiple Languages
NoteDiscovery supports multiple interface languages via JSON locale files in locales/. Open Settings (gear icon) โ Language to choose one; the list reflects whatever locales are installed (bundled files, mounts, or your own additions).
To add your own language: See the Contributing Guidelines for instructions on creating translation files.
Docker users: Mount your custom locales folder to add or override translations:
volumes:
- ./locales:/app/locales # Custom translations๐ก Pro Tip: If you clone this repository, you can mount the documentation/ folder to view these docs inside the app:
# In your docker-compose.yml
volumes:
- ./data:/app/data # Your personal notes
- ./documentation:/app/data/docs:ro # Mount docs subfolder inside the data folder (read-only)Then access them at http://localhost:8000 - the docs will appear as a docs/ folder in the file browser!
๐ค Contributing
Before submitting a pull request, especially for major changes, please:
Read our Contributing Guidelines
Open an issue first to discuss major features or significant changes
Ensure your code follows the project's style and philosophy
๐ Security Considerations
NoteDiscovery is designed for self-hosted, private use. Please keep these security considerations in mind:
Network Security
โ ๏ธ Do NOT expose directly to the internet without additional security measures
Run behind a reverse proxy (nginx, Caddy) with HTTPS for production use
Keep it on your local network or use a VPN for remote access
By default, the app listens on
0.0.0.0:8000(all network interfaces)
Authentication
Password protection is DISABLED by default (default password:
admin)โ ๏ธ ENABLE AUTHENTICATION AND CHANGE THE DEFAULT PASSWORD if exposing to a network!
See AUTHENTICATION.md for complete setup instructions
To disable auth, set
authentication.enabled: falseinconfig.yamlPerfect for single-user or small team deployments
For multi-user setups, consider a reverse proxy with OAuth/SSO
Data Privacy
Your notes are stored as plain text markdown files in the
data/folderNo data is sent to external services
Regular backups are recommended
Best Practices
Run on
localhostor a private network onlyUse Docker for isolation and easier security management
Keep your system and dependencies updated
Review and audit any plugins you install
Set appropriate file permissions on the
data/directory
TL;DR: Perfect for personal use on your local machine or home network. Enable built-in password protection if needed, or use a reverse proxy with authentication if exposing to wider networks.
๐ License
MIT License - Free to use, modify, and distribute.
Made with โค๏ธ for the self-hosting community
Maintenance
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/gamosoft/NoteDiscovery'
If you have feedback or need assistance with the MCP directory API, please join our Discord server