NoteDiscovery MCP Server

NoteDiscovery MCP Server

NoteDiscovery is a self-hosted plain-markdown notes app (MIT, no telemetry) with a built-in stdio MCP server. The server exposes tools so AI clients (Claude Desktop, Cursor, etc.) can search, read, create, edit, tag, and instantiate templates against the same vault the web UI uses.

Category
Visit Server

README

<p align="center"> <img alt="GitHub Stars" src="https://img.shields.io/github/stars/gamosoft/notediscovery?style=flat"> <img alt="Build" src="https://img.shields.io/github/actions/workflow/status/gamosoft/notediscovery/docker-publish.yml"> <img alt="Latest Version" src="https://img.shields.io/github/v/tag/gamosoft/notediscovery"> <img alt="License" src="https://img.shields.io/github/license/gamosoft/notediscovery"> </p>

<p align="center"> <img src="docs/logo.svg" alt="NoteDiscovery" width="120"> </p>

<h1 align="center">NoteDiscovery</h1>

<p align="center"><i>Your Self-Hosted Knowledge Base</i></p>

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.

<p align="center"> <img src="docs/carousel-1.jpg" alt="Editor and sidebar" width="32%"> <img src="docs/carousel-2.jpg" alt="Full-text search" width="32%"> <img src="docs/carousel-6.jpg" alt="Graph view of linked notes" width="32%"> </p> <p align="center"><sub><i>Write ยท Find ยท Discover</i></sub></p>

๐ŸŽฏ 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

<p align="center"> <a href="https://www.notediscovery.com"><img src="docs/website-button.svg" alt="Official Website"></a> ย ย  <a href="https://gamosoft-notediscovery-demo.hf.space"><img src="docs/demo-button.svg" alt="Try Live Demo"></a> </p> <p align="center"> <a href="https://www.pikapods.com/pods?run=notediscovery"><img src="https://www.pikapods.com/static/run-button.svg" alt="Run on PikaPods"></a> ย ย  <a href="https://ko-fi.com/gamosoft"><img src="https://ko-fi.com/img/githubbutton_sm.svg" alt="Buy Me a Coffee at ko-fi.com"></a> </p>


โœจ 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-*.png next 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

<p align="center"> <img src="https://img.shields.io/badge/MCP-Compatible-blueviolet?style=for-the-badge&logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTEyIDJhMTAgMTAgMCAxIDAgMTAgMTBIMTJWMnoiLz48cGF0aCBkPSJNMjEuMTggOC44MmMtLjI4LS40LS43Mi0uODItMS4xOC0uODJoLTNjLS40NiAwLS45LjQyLTEuMTguODItLjI4LjQtLjMyLjk4LS4xMiAxLjQybDEuNSAzYy4yLjQ0LjY2LjcgMS4xMi43aDEuMzZjLjQ2IDAgLjkyLS4yNiAxLjEyLS43bDEuNS0zYy4yLS40NC4xNi0xLjAyLS4xMi0xLjQyeiIvPjwvc3ZnPg==" alt="MCP Compatible"> <img src="https://img.shields.io/badge/Works%20with-Claude-orange?style=for-the-badge" alt="Works with Claude"> <img src="https://img.shields.io/badge/Works%20with-Cursor-blue?style=for-the-badge" alt="Works with Cursor"> </p>

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.

๐Ÿ“บ Watch the tour

<p align="center"> <a href="https://www.youtube.com/watch?v=qur5uemWeJA"> <img src="https://img.youtube.com/vi/qur5uemWeJA/maxresdefault.jpg" alt="Watch a short tour" width="720"> </a> </p> <p align="center"><i>โ–ถ Small walkthrough โ€” sharing, favorites, search, backlinks, and more</i></p>

๐Ÿš€ 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:latest

Windows (PowerShell):

mkdir notediscovery\data; cd notediscovery
docker run -d --name notediscovery -p 8000:8000 `
  -v ${PWD}/data:/app/data `
  ghcr.io/gamosoft/notediscovery:latest

Open 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
docker-compose.ghcr.yml Recommended - Uses pre-built image from GitHub Container Registry
docker-compose.yml For development - Builds from local source

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 -d

Windows (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 -d

Option 2: Build from source (for development)

git clone https://github.com/gamosoft/notediscovery.git
cd notediscovery
docker-compose up -d

See 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:8000

Requirements:

  • 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:

  1. Map the volume in your docker-compose or docker run command
  2. Provide content - the file/folder must exist with valid content (empty = app might break!)
Volume Purpose Bundled?
data/ Your notes โŒ You must create
config.yaml App settings โœ… Yes
themes/ Custom themes โœ… Yes
plugins/ Custom plugins โœ… Yes
locales/ Translations โœ… Yes

Dashboard Integration

<a href="https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@master/svg/notediscovery.svg" target="_blank"> <img src="https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@master/svg/notediscovery.svg" alt="NoteDiscovery Icon" width="64" height="64"> </a>

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: false in config.yaml
  • Perfect 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/ folder
  • No data is sent to external services
  • Regular backups are recommended

Best Practices

  • Run on localhost or a private network only
  • Use 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

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
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
E2B

E2B

Using MCP to run code via e2b.

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