{
  "version": "2",
  "generatedAt": "2026-11-06T20:51:57.517Z",
  "listing": {
    "slug": "gamosoft--NoteDiscovery",
    "name": "NoteDiscovery",
    "tagline": "Self-hosted markdown knowledge base with search, graph view and a built-in MCP server.",
    "shortTagline": "Self-hosted markdown notes",
    "description": "NoteDiscovery is a lightweight note app that stores plain markdown files in folders, with search, tags, backlinks, a graph view, templates, themes and plugins. It ships an MCP server in the same repo, usable over stdio or at /mcp over Streamable HTTP, plus a REST API with Swagger docs.",
    "capabilities": [
      "adaptable",
      "operable"
    ],
    "vertical": "notes-knowledge",
    "alternativeTo": [
      "Notion",
      "Evernote"
    ],
    "shape": "product",
    "formFactor": "web-app",
    "executionModel": "deterministic",
    "provenance": "unknown",
    "codeStack": {
      "languages": [
        "Python",
        "JavaScript"
      ],
      "frameworks": [
        "FastAPI"
      ],
      "packageManager": "pip",
      "database": [],
      "hostingTarget": [
        "docker"
      ]
    },
    "modelStack": null,
    "repos": [
      {
        "url": "https://github.com/gamosoft/NoteDiscovery",
        "owner": "gamosoft",
        "name": "NoteDiscovery",
        "license": "MIT",
        "stars": 2871,
        "lastCommit": "2026-11-02"
      }
    ],
    "interface": {
      "kind": "mcp",
      "url": "https://github.com/gamosoft/NoteDiscovery/blob/main/documentation/MCP.md",
      "official": true,
      "hosted": "both"
    },
    "operability": "official",
    "recommendedWrapper": null,
    "reach": [
      {
        "job": "Search and read notes",
        "reachable": true,
        "evidence": "MCP tools search_notes, list_notes, get_note, get_recent_notes"
      },
      {
        "job": "Create and update notes",
        "reachable": true,
        "evidence": "MCP tools create_note, edit_note"
      },
      {
        "job": "Append to a note such as a journal",
        "reachable": true,
        "evidence": "MCP tool append_to_note"
      },
      {
        "job": "Move, rename and delete notes; create folders",
        "reachable": true,
        "evidence": "MCP tools move_note, delete_note, create_folder"
      },
      {
        "job": "Tags",
        "reachable": true,
        "evidence": "MCP tools list_tags, get_notes_by_tag"
      },
      {
        "job": "Knowledge graph and backlinks",
        "reachable": true,
        "evidence": "MCP tools get_graph, get_backlinks"
      },
      {
        "job": "Create notes from templates",
        "reachable": true,
        "evidence": "MCP tools list_templates, get_template, create_note_from_template"
      },
      {
        "job": "Share notes by public link",
        "reachable": false,
        "evidence": "No sharing tool in mcp_server/tools.py; the REST API has share endpoints an agent can call with the API key"
      },
      {
        "job": "Upload media and drawings",
        "reachable": false,
        "evidence": "No media tool in mcp_server/tools.py; the REST API has media endpoints"
      },
      {
        "job": "Themes and plugins",
        "reachable": false,
        "evidence": "No theme or plugin tool in mcp_server/tools.py; the REST API can list themes and toggle plugins"
      }
    ],
    "editions": [
      {
        "name": "Free",
        "price": null,
        "open": true,
        "distributions": [
          {
            "kind": "source",
            "url": "https://github.com/gamosoft/NoteDiscovery"
          },
          {
            "kind": "container",
            "url": "https://github.com/gamosoft/NoteDiscovery/pkgs/container/notediscovery",
            "command": "docker run -d --name notediscovery -p 8000:8000 -v $(pwd)/data:/app/data ghcr.io/gamosoft/notediscovery:latest"
          }
        ]
      }
    ],
    "skills": {
      "kind": "none",
      "paths": [],
      "install": null,
      "note": "No SKILL.md found at the repo root."
    },
    "customization": {
      "summary": "config.yaml and matching env vars set the app name (APP_NAME), the default theme (DEFAULT_THEME), autosave delay, authentication and the API key. Note templates are markdown files in data/_templates. Themes are CSS files in themes/ and plugins are Python files in plugins/.",
      "envVars": [
        "APP_NAME",
        "DEFAULT_THEME",
        "AUTOSAVE_DELAY_MS",
        "AUTHENTICATION_ENABLED",
        "AUTHENTICATION_API_KEY",
        "MCP_ENABLED",
        "NOTES_DIR",
        "PLUGINS_DIR"
      ],
      "configFiles": [
        "config.yaml",
        "docker-compose.ghcr.yml",
        "themes/*.css",
        "data/_templates/*.md"
      ],
      "promptFiles": [],
      "effort": "config-only",
      "editCount": 12
    },
    "useWhen": [
      "you want a markdown notebook on your own server that your agent can search, append to and reorganize",
      "you want a personal Notion or Evernote replacement where every note is a plain file"
    ],
    "accounts": [],
    "active": true,
    "lastActivity": "2026-11-02",
    "gotchas": [
      "The /mcp endpoint is off by default; the stdio server needs no flag. Set MCP_ENABLED=true for /mcp, plus an API key when authentication is on",
      "The stdio MCP server calls the REST API, so NOTEDISCOVERY_URL must reach a running instance",
      "Login is one shared password for a single user: no accounts, no live collaboration and no databases, so it replaces Notion only for personal notes",
      "Authentication is off by default and the default password is admin; change both before exposing the server",
      "MCP.md says pip install notediscovery, but that package is not on PyPI; use Docker or install from source",
      "The project is about one year old (repo created 2025-11-05)"
    ],
    "fit": {
      "adaptable": 3,
      "operable": 3
    },
    "evidence": {
      "formFactor": "README: Docker quick start and web UI",
      "executionModel": "no model call in backend/main.py; MCP lets an outside agent drive it; OLLAMA-STACK.md is an optional separate stack",
      "operability": "mcp_server/tools.py defines the tools named here; backend/mcp_http.py serves /mcp; both are in the Builder's repo, and documentation/MCP.md documents them",
      "effort": "config.yaml and documentation/ENVIRONMENT_VARIABLES.md: APP_NAME and DEFAULT_THEME set branding; TEMPLATES.md: data/_templates/*.md set note workflows; THEMES.md: themes/*.css. These are more than deployment values",
      "editions": "README: MIT, 'Zero Cost'; no paid edition seen",
      "active": "commit on 2026-11-02; release v0.34.0 published 2026-11-02",
      "alternativeTo": "README table 'vs. Commercial Apps (Notion, Evernote, Obsidian Sync)'; notediscovery.com keywords name Evernote and Notion alternatives; AUTHENTICATION.md: single-user deployments",
      "container": "ghcr.io manifest for latest returned 200, tags run to 0.34.0, and the package page answers 200; the Builder's badge counts 538K pulls",
      "users": "177 issues, 250 forks, outside contributors such as juanlb, and a PikaPods one-click listing"
    },
    "confidence": {
      "formFactor": 0.95,
      "executionModel": 0.9,
      "operability": 0.9,
      "effort": 0.85,
      "reach": 0.95,
      "editions": 0.9
    },
    "openQuestions": [],
    "sources": [
      {
        "url": "https://github.com/gamosoft/NoteDiscovery",
        "foundBy": "sourcing:notes-knowledge:github"
      },
      {
        "url": "https://github.com/gamosoft/NoteDiscovery/blob/main/documentation/MCP.md",
        "foundBy": "analysis"
      }
    ],
    "published": true,
    "lastCheckedAt": "2026-11-06",
    "research": {
      "stage": "verified",
      "verdict": "dispute",
      "reason": "Gates pass: MIT, 2,871 stars, release v0.34.0 on 2026-11-02, 177 issues and about 538K image pulls. MCP tools checked in source. Config-only holds because app name, themes and templates change behavior. The ghcr URL and image are live.",
      "disputed": [
        {
          "field": "alternativeTo",
          "reason": "The Builder names Notion on both the README and notediscovery.com, and it replaces Notion for personal notes. It has no databases, accounts or live collaboration, so it is not a full Notion replacement. Evernote is the safer claim. Kept with a gotcha."
        }
      ]
    },
    "url": "apps/gamosoft--NoteDiscovery.html",
    "coverage": "partial",
    "paid": false,
    "source": "research/verified/gamosoft--NoteDiscovery.json"
  }
}
