schrift
Synchronizes tasks with Apple Reminders via CalDAV, so completing, editing, rescheduling, or deleting tasks on iPhone/iPad writes the changes back into the corresponding Markdown note.
Provides a CalDAV task list for Thunderbird, allowing tasks from Schrift to be viewed and edited in Thunderbird and changes to be reflected back into the Markdown notes.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@schriftMaak een notitie voor de vergadering van morgen met actiepunten"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Schrift
Self-hosted notities, wiki en taken in Markdown. Volledig te bedienen door AI via een MCP-server, en taken synchroon met elke CalDAV-app, zoals Apple Herinneringen.
Markdown op schijf. Elke notitie is een gewoon
.md-bestand in een map. Leesbaar voor mensen, AI en andere tools.Taken in je tekst. Elke
- [ ]in een notitie is een taak, met optioneel📅 2026-10-20 14:00. Afvinken op je telefoon zet[x]in de notitie.AI-native. Een MCP-server met 27 tools geeft Claude (of een andere assistent) dezelfde mogelijkheden als jij: lezen, zoeken, schrijven, taken beheren, gespreksverslagen maken en importeren. Elke wijziging is een versie die je kunt terugdraaien.
Rustige interface. WYSIWYG-editor, mappenboom die je zelf ordent, licht en donker thema, werkt op je telefoon als app.
Het ontwerp en de keuzes staan in docs/PLAN.md.
Functies
Notities | Mappen en submappen, tags, |
Editor | WYSIWYG met |
Taken | Overzicht per Verlopen, Vandaag, Komende 7 dagen, Later en Zonder datum. Filter per map. Snel toevoegen aan de Inbox |
Zoeken | Full-text (titels, tekst, tags en tekst uit PDF's) plus semantisch zoeken met een lokaal model |
CalDAV | Eén takenlijst per gebruiker voor Apple Herinneringen, Thunderbird, DAVx⁵ en andere |
MCP | OAuth 2.1 voor claude.ai en de Claude-apps, Bearer-tokens voor Claude Code |
Accounts | Meerdere gebruikers, wachtwoord plus verplichte tweestapsverificatie, app-wachtwoorden per apparaat |
Taal | Nederlands en Engels |
Related MCP server: second-brain-mcp
Zelf hosten
Schrift draait als één container met al zijn gegevens in /data. Zet hem achter een reverse proxy die HTTPS verzorgt (Caddy, Traefik, nginx…). HTTPS is verplicht, behalve op localhost.
git clone https://github.com/CasvanLeijden/Schrift.git && cd Schrift
export SCHRIFT_SECRET_KEY=$(python3 -c "import secrets; print(secrets.token_urlsafe(48))")
# Pas SCHRIFT_BASE_URL in docker-compose.yml aan naar je eigen adres.
docker compose up -d --build
docker compose exec schrift schrift user create jouwnaam --adminLog daarna in op je adres. Bij de eerste keer stel je tweestapsverificatie in met een authenticator-app. Extra gebruikers maak je aan via Instellingen › Gebruikers.
Kant-en-klaar image en automatisch bijwerken
Elke commit op main die door de tests komt, wordt gepubliceerd als ghcr.io/casvanleijden/schrift:latest (plus een tag sha-… per commit). Wil je niet zelf bouwen, gebruik dan dat image in plaats van build: .:
services:
schrift:
image: ghcr.io/casvanleijden/schrift:latestAutomatisch bijwerken kan zonder dat GitHub toegang tot je server nodig heeft: laat de server periodiek het nieuwste image ophalen. docker compose up -d herstart de container alleen als het image is veranderd. Bijvoorbeeld met een systemd-timer:
# /etc/systemd/system/schrift-update.service
[Service]
Type=oneshot
WorkingDirectory=/opt/schrift
ExecStart=/usr/bin/docker compose pull -q
ExecStart=/usr/bin/docker compose up -d
# /etc/systemd/system/schrift-update.timer
[Timer]
OnBootSec=2min
OnUnitActiveSec=2min
[Install]
WantedBy=timers.targetConfiguratie
Variabele | Standaard | Betekenis |
|
| Publiek adres. Gebruikt voor links in taken en voor OAuth. |
| — | Lange willekeurige tekst voor sessies. Verplicht in productie. |
|
| Notities, bijlagen, database en het zoekmodel. |
|
| Semantisch zoeken. Downloadt eenmalig een model van ~220 MB naar |
|
| Maximale grootte van een bijlage. |
|
| Extra origins (JSON-lijst) die formulieren mogen posten, als je Schrift onder meerdere adressen draait. |
Reverse proxy
Stuur alles door naar poort 8000, inclusief de paden /caldav, /.well-known/ en /mcp. Zet de headers X-Forwarded-Proto en X-Forwarded-For. Een voorbeeld voor Caddy:
schrift.example.com {
reverse_proxy localhost:8000
}Backup
Alles staat in /data:
users/<id>/notes/– de Markdown-bestanden (bron van de waarheid)users/<id>/attachments/– bijlagenschrift.db– index, taken, versies, accounts en tokens
Maak een consistente kopie van de database voordat je /data back-upt, bijvoorbeeld:
docker compose exec schrift python -c "import sqlite3; s=sqlite3.connect('/data/schrift.db'); d=sqlite3.connect('/data/schrift.backup.db'); s.backup(d)"Bewerk je Markdown-bestanden buiten Schrift om (bijvoorbeeld na een restore of met een ander programma)? Dan neemt schrift scan de wijzigingen op. Dat gebeurt ook automatisch bij elke start.
Taken synchroniseren (CalDAV)
Maak in Instellingen › CalDAV een app-wachtwoord voor je apparaat.
iPhone of iPad: Instellingen › Apps › Herinneringen › Herinneringen-accounts › Voeg account toe › Andere › Voeg CalDAV-account toe. Vul bij Server je domeinnaam in (
schrift.example.com), plus je gebruikersnaam en het app-wachtwoord.Andere apps: gebruik de server-URL
https://schrift.example.com/caldav/.
Je taken verschijnen in de lijst Schrift. Taken uit een map krijgen de hoofdmap als label achter de titel, bijvoorbeeld Offerte sturen [ZOKA]. In Instellingen › CalDAV kun je mappen uitsluiten; hun taken blijven dan alleen in Schrift. Wat je in de app aanpast (afvinken, titel, datum, verwijderen), wordt teruggeschreven in de notitie. Nieuwe taken uit de app komen in je Inbox.
Claude koppelen (MCP)
claude.ai, Claude desktop en de mobiele apps: voeg een custom connector toe met de URL https://schrift.example.com/mcp. Je logt in bij Schrift en geeft toestemming.
Claude Code: maak een token in Instellingen › MCP-server en voeg de server toe:
claude mcp add --transport http schrift https://schrift.example.com/mcp \
--header "Authorization: Bearer sk_schrift_..."De server heeft tools voor notities (zoeken, lezen, maken, gericht bewerken, verplaatsen, verwijderen, versies), mappen, tags, taken, bijlagen, gespreksverslagen (create_meeting_report) en bulkimport (import_notes). Daarnaast zijn er twee prompts: gespreksverslag en importeren.
Ontwikkelen
Vereist: Python 3.12, uv en Node 18 of nieuwer.
cp .env.example .env
make setup # Python- en JS-pakketten, bundels en CSS
uv run schrift user create jij --admin
make dev # http://localhost:8000
make js-watch # editor-bundel opnieuw bouwen bij wijzigingen
make css-watch # Tailwind opnieuw bouwen bij wijzigingen
make test # pytest en de editor-roundtriptests
make lintMap | Inhoud |
| Het enige schrijfpad voor notities, mappen en taken |
| Frontmatter, taken, wikilinks |
| CalDAV-server |
| MCP-tools en OAuth |
| Web-routes en API |
| Editor (TipTap) en de interactie in de sidebar |
Licentie
MIT.
This server cannot be deployed
Maintenance
Related MCP Connectors
Agent-native notes, tasks, dev-docs, vaults, sync & handoffs. MCP + OpenAPI dual surface.
MCP-native notes and memory for ChatGPT, Claude, and other AI tools.
Markdown-based note-taking with a hosted MCP server. Your notes serve you and your AI.
Connect AI to your flomo notes. Search, create, edit notes and manage tags via MCP.
Related MCP Servers
- AlicenseAqualityAmaintenanceEnables AI assistants to interact with Joplin notes, notebooks, and tags through a standardized MCP interface, supporting CRUD operations, search, and organization.19183 PyPI173MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to capture, search, update, and delete notes in a local Markdown vault with automatic categorization and tagging, making knowledge management seamless.3 npm1MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to interact with a Markdown-based knowledge base with backlinks, tags, and full-text search, supporting note creation, reading, updating, renaming, and deletion through MCP tools.25 npmMIT
- AlicenseNot gradedqualityCmaintenanceEnables MCP-compatible clients to create, list, search, and delete notes, read all notes as markdown, and use prompts to summarize or clean up notes.MIT