mcp server
conatus
A self-hosted task manager for projects, recurring work, reminders, collaboration and automation. Inspired by Todoist.
Set up
Runs on your computer. Pick your agent and operating system.
This project does not publish an install method we can turn into a config. Follow the README instead.
README
synced Oct 14, 2026Conatus is a self-hosted task manager inspired by Todoist. It runs on your own server with Docker Compose, with tasks in PostgreSQL and files in S3 storage you control. AI agents can read, create, reschedule and complete your tasks through the MCP server, and your own scripts can use the REST API and webhooks. Conatus is free and open source under the AGPL.
- Projects with sections, sub-tasks, labels, four priorities and saved filters
- Recurring tasks with due dates, separate deadlines, durations and reminders
- Quick add that reads dates, repeats,
p1,#projectand@labelstraight from the task name - List, board and calendar views, plus an iCal feed for your calendar app
- Shared projects with comments, assignees and file attachments
- Todoist import from an API token or a backup file
- A REST API with scoped tokens, signed webhooks and an MCP server for AI agents
- Daily database backups from the first boot
Deploy
1. Get the Compose file and environment template
mkdir conatus
cd conatus
curl -O https://raw.githubusercontent.com/nojusmorkunas/conatus/main/docker-compose.yml
curl -o .env https://raw.githubusercontent.com/nojusmorkunas/conatus/main/.env.example
2. Edit your credentials
Open .env and replace every replace-with-... value with your own:
# latest follows the newest stable release. Pin an exact version without the
# leading "v" to upgrade only when you choose.
CONATUS_VERSION=latest
CONATUS_PORT=4399
POSTGRES_USER=app
POSTGRES_PASSWORD=replace-with-a-long-random-password
POSTGRES_DB=app
AUTH_SECRET=replace-with-a-long-random-secret
S3_ACCESS_KEY=replace-with-a-random-access-key
S3_SECRET_KEY=replace-with-a-long-random-secret-key
# Optional: creates the first administrator on an empty database.
CONATUS_ADMIN_USERNAME=admin
CONATUS_ADMIN_PASSWORD=replace-with-a-long-random-password
If you use a domain or reverse proxy, also set AUTH_URL and PUBLIC_BASE_URL to the external HTTPS address. The reverse proxy guide has Caddy and nginx configs.
3. Start Conatus
docker compose up -d
Docker Compose pulls the Conatus application, operations, PostgreSQL and Silo images. Silo stores attachments and is a maintained fork of MinIO. Open http://localhost:4399 and sign in with the administrator credentials from .env, then remove CONATUS_ADMIN_USERNAME and CONATUS_ADMIN_PASSWORD from .env.
Upgrading
Set CONATUS_VERSION to the new release, then run:
docker compose pull
docker compose up -d
Migrations run automatically before the application starts, and you can upgrade from any earlier published release. Back up the database first, since some migrations need a restore to roll back. See the upgrade guide.
Documentation
The full documentation is at useconatus.com:
- Environment variables
- Backups and restore
- Users, registration and rate limits
- REST API. The OpenAPI 3.1 description is at
/api/v1/openapi.json - Webhooks
- MCP server
- Migrating from Todoist
Contributing
Questions and ideas go in Discussions and bugs in Issues. See CONTRIBUTING.md for local setup, database migrations and the checks a pull request needs to pass.
License
AGPL-3.0-or-later. See LICENSE.