# Poznote

Self-hosted note-taking app with a REST API and an MCP server of about 60 tools.

Poznote is a PHP and SQLite note app with markdown and HTML notes, task lists, reminders, workspaces, sharing and revisions. It ships a documented REST API and a separate mcp-server container in the same docker-compose.yml. MCP tools cover notes, tasks, folders, snapshots, backups and app settings.

Alternative to: Notion, Obsidian, Evernote, OneNote

- Capabilities: adaptable, operable
- Vertical: notes-knowledge
- Shape: product
- Form factor: web-app
- Execution model: deterministic
- Provenance: unknown (recorded, never ranked)
- Repo: https://github.com/timothepoznanski/poznote (MIT), 996 stars, last commit 2026-11-05
- Last activity: 2026-11-05
- Page: apps/timothepoznanski--poznote.html
- JSON: apps/timothepoznanski--poznote.json

## Use it when

- you want a self-hosted notes app your coding agent can read and write over MCP
- you want read-only, write or admin scopes on what an agent may touch in your notes

## Gotchas

- MCP is HTTP only and published on 127.0.0.1 by default; set POZNOTE_MCP_AUTH_TOKEN before exposing it
- In classic mode any client that reaches the MCP port can act on any profile
- MCP tools above POZNOTE_MCP_SCOPE are not registered at all
- Local accounts start with default passwords listed in docs/API-REST.md; change them before exposing Poznote
- PikaPods and the other hosts on poznote.com/hosting.html are third parties with their own prices

## Editions

- Free: Free, open source
  - source: https://github.com/timothepoznanski/poznote
  - container: curl -o .env https://raw.githubusercontent.com/timothepoznanski/poznote/main/.env.template && curl -o docker-compose.yml https://raw.githubusercontent.com/timothepoznanski/poznote/main/docker-compose.yml && docker compose pull && docker compose up -d
  - one-click: https://www.pikapods.com/apps/poznote

## Adaptable: make it yours

Effort: config-only (11 things to edit), surface kind admin-ui

The .env file holds deployment values: HTTP_WEB_PORT, OIDC client credentials, MCP auth mode, token and scope. The README says day-to-day behavior is set in the Settings UI, and templates are ordinary notes. App settings can be changed through the API or the update_app_setting MCP tool.

- Env vars: HTTP_WEB_PORT, POZNOTE_MCP_PORT, POZNOTE_MCP_AUTH_TOKEN, POZNOTE_MCP_SCOPE, POZNOTE_MCP_AUTH_PROVIDER, POZNOTE_USER_ID, POZNOTE_OIDC_CLIENT_ID, POZNOTE_OIDC_CLIENT_SECRET, POZNOTE_SETTINGS_PASSWORD
- Config files: .env.template, docker-compose.yml
- Prompt files: none
- Accounts you'll need: none

## Operable: what an agent can drive

Operability: official. Interface: mcp at https://github.com/timothepoznanski/poznote/blob/main/docs/MCP-SERVER.md (published by the builder, local).

### Reach (partial coverage)

- Create, read, update, delete and search notes: reachable. MCP tools create_note, get_note, update_note, delete_note, search_notes, list_notes
- Manage task lists and subtasks: reachable. MCP tools list_tasks, add_task, update_task, complete_task, add_subtask
- Set reminders: reachable. MCP tools set_reminder, get_reminder, remove_reminder, list_reminders
- Organize folders and workspaces: reachable. MCP tools create_folder, move_folder, create_workspace, move_note
- Attach files: reachable. MCP tools add_attachment, list_attachments (MAX_ATTACHMENT_BYTES is 25 MB in server.py)
- Browse and restore note revisions: reachable. MCP tools list_snapshots, get_snapshot, restore_snapshot
- Share notes publicly: reachable. MCP tools share_note, unshare_note, list_shared
- Start notes from templates and diaries: reachable. MCP tools list_templates, create_note from_template_id, create_folder is_diary
- Backups, Git sync and app settings: reachable. MCP tools create_backup, restore_backup, git_push, git_pull, update_app_setting (admin scope)
- Manage users, OIDC sign-in and webhooks: not reachable. No such tool in TOOL_SCOPES in server.py; update_app_setting has no documented OIDC or webhook keys. REST /api/v1/admin/users covers users but not through MCP; OIDC and webhooks sit under Settings > Admin Tools with no REST section

## Code stack

- Languages: PHP, JavaScript, Python
- Frameworks: none
- Package manager: none
- Database: SQLite
- Hosting target: docker

## Evidence and confidence

- formFactor: README: Docker-hosted web app with PWA, Chrome extension and mobile share (confidence 0.9)
- executionModel: notes, tasks and sync are deterministic; the optional AI Assistant calls a model you configure (confidence 0.85)
- operability: docs/MCP-SERVER.md lists 62 tools and TOOL_SCOPES in mcp-server/src/poznote_mcp/server.py has the same 62 (24 read, 25 write, 13 admin) at 6.141.1; mcp-server service in docker-compose.yml; docs/API-REST.md documents Basic Auth and app passwords (confidence 0.9)
- effort: README Change Settings: .env is for deployment values and most settings are in the interface; .env.template read in full (confidence 0.7)
- editions: MIT repo; README says free; hosting partners are third-party, no paid edition from the Builder seen (confidence 0.85)
- active: latest commit 2026-11-05; release 6.141.1 on 2026-11-05
- alternativeTo: README heading: alternative to Notion, Obsidian, Evernote, or OneNote. This is the Builder's own claim. The README documents an Obsidian vault import; it documents no Notion, Evernote or OneNote import
- reach:  (confidence 0.95)

## Sources

- https://poznote.com (sourcing:notes-knowledge:github)
- https://github.com/timothepoznanski/poznote/blob/main/docs/MCP-SERVER.md (analysis:notes-knowledge)
