Calendars for AI agents: free/busy, next free slot, and bookings PostgreSQL never double-books.
npx @getmcp/cli add io.github.PILOTAAI/slotlockRequires Docker Engine. Community-contributed server. Review source before installing.
DATABASE_URLpostgres:// URL of a PostgreSQL 16 database the container can reach, as a role that is not a superuser and has no BYPASSRLS: serve refuses one, since row-level security would not confine it. Without SLOTLOCK_MIGRATE_DATABASE_URL this role also applies the schema, so it must be able to create it.
SLOTLOCK_AUTH_TOKENBearer token MCP and A2A clients must send: at least 32 random characters (openssl rand -hex 32).
SLOTLOCK_CONFIRMATION_SECRETSigns pending write confirmations: at least 32 random characters, different from the token. Not needed when SLOTLOCK_CONFIRM_WRITES is none.
Config file: ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"io.github.PILOTAAI/slotlock": {
"command": "docker",
"args": [
"127.0.0.1:{PORT}:{PORT}",
"run",
"-i",
"--rm",
"-e",
"DATABASE_URL",
"-e",
"SLOTLOCK_AUTH_TOKEN",
"-e",
"SLOTLOCK_CONFIRMATION_SECRET",
"-e",
"PORT",
"-e",
"SLOTLOCK_MIGRATE_DATABASE_URL",
"-e",
"SLOTLOCK_CONFIRM_WRITES",
"-e",
"SLOTLOCK_AVAILABILITY",
"-e",
"SLOTLOCK_REST_API",
"-e",
"SLOTLOCK_TENANT",
"ghcr.io/pilotaai/slotlock:0.2.0",
"serve",
"--migrate"
],
"env": {
"DATABASE_URL": "",
"SLOTLOCK_AUTH_TOKEN": "",
"SLOTLOCK_CONFIRMATION_SECRET": "",
"PORT": "8080",
"SLOTLOCK_MIGRATE_DATABASE_URL": "",
"SLOTLOCK_CONFIRM_WRITES": "all",
"SLOTLOCK_AVAILABILITY": "",
"SLOTLOCK_REST_API": "on",
"SLOTLOCK_TENANT": "default"
}
}
}
}Ephemeral data sandbox for AI workflows with guardrails and security
Reasonbook: decisions that survive the session, in a local record AI agents keep.
Self-hosted homelab log intelligence over MCP, CLI, and REST with SQLite/FTS.
Rust MCP server for homelab logs, syslog, Docker logs, FTS search, and AI transcript correlation.