krtw00/konbu

๐Ÿข Workplace & Productivity
0 Views
0 Installs

๐ŸŽ๏ธ ๐Ÿ  โ˜๏ธ ๐ŸŽ ๐ŸชŸ ๐Ÿง - Self-hostable all-in-one planner (calendar, notes, todos, bookmarks) with built-in MCP server for AI assistant integration. Single Go binary, MIT.

Quick Install

One-Click IDE Configuration
claude_desktop_config.json
{
  "mcpServers": {
    "krtw00-konbu": {
      "command": "npx",
      "args": [
        "-y",
        "krtw00-konbu"
      ]
    }
  }
}
Or

Using an AI coding agent (Claude Code, Cursor, etc.)? Copy a ready-made prompt that tells it to fetch the setup instructions and install this server for you.

Documentation Overview

konbu

konbu

Your personal digital planner, kept by an AI butler.
CLI ยท MCP ยท Self-hostable ยท AI-native

One Go binary that binds your memos, todos, schedule, and tables into a single planner โ€” searchable from one place, kept by AI.
Connect Claude, Cursor, or any MCP client to your data.

MIT License Deploy

ๆ—ฅๆœฌ่ชž | English

konbu screenshot

AI chat demo โ€” managing schedule and todos with natural language


Try It

  • Cloud -- Use instantly at konbu-cloud.codenica.dev (free, no setup)
  • Self-hosted -- Run on your own server with Docker (see below)

What is konbu?

konbu is a personal digital planner โ€” a Filofax-style system planner, digitized. A self-hostable Go binary that binds your memos, todos, schedule, and structured tables into one notebook, kept by an AI butler, and surfaces everything from a single search interface. It's yours alone โ€” nothing is ever shared out. Not a replacement for Notion + Todoist + Calendar โ€” a replacement for the act of searching four apps to find one thing.

What's different:

  • Native MCP server + CLI client -- Two parallel routes for the AI butler (Claude / Cursor / any MCP client) or shell / scripts to operate your planner.
  • Cross-resource full-text search -- One query across memos, todos, events, and structured tables. This is the core UX, not a side feature.
  • Structured tables (= table-memo, planned) -- Track blood pressure, household budgets, or inventory. Markdown can't express these; tables can.
  • BYOK AI chat -- Bring your own OpenAI/Anthropic API key, or use the included free tier.
  • Personal by design -- One notebook, for you only. Pulls in from outside (Google Calendar), never leaks out.
  • Self-hostable -- One Go binary, Docker compose, or use the hosted version.

End the state of having your day scattered across four different apps.

Features

  • Cross-resource Full-text Search -- Search across memos, todos, events, and structured tables in one query (core UX)
  • CLI & MCP Server -- Built-in CLI client and MCP server. AI agents like Claude and Cursor can read and write your data directly
  • AI Agent Chat -- "Add groceries to my todo" "What's on my schedule tomorrow?" in natural language. BYOK supported, free tier included
  • Memos -- Markdown notes with tagging, live preview
  • ToDo -- Inline task creation with due dates, tags, and notes
  • Calendar -- Monthly view with event CRUD and iCal import (personal, owner-only)
  • Structured Tables (= table-memo, planned) -- Track structured data (blood pressure, household budget, inventory) as rows ร— columns
  • Export/Import -- JSON export, Markdown ZIP export, iCal import
  • i18n -- English and Japanese

Quick Start

cp .env.example .env
docker compose up -d

Open http://localhost:8080 and create your account. The dev compose file sets DEV_USER=dev@local to skip registration.

Production (with Traefik)

# Edit .env with real credentials and your domain
docker compose -f docker-compose.prod.yml up -d

Native (without Docker)

# Prerequisites: Go 1.25+, Node.js 22+, PostgreSQL 16+

# Build frontend
cd web/frontend && npm ci && npm run build && cd ../..

# Build server
go build -o bin/server ./cmd/server

# Start (runs all SQL migrations automatically on boot)
DATABASE_URL="postgres://..." SESSION_SECRET="..." ./bin/server

Configuration

VariableRequiredDefaultDescription
DATABASE_URLYes--PostgreSQL connection string
SESSION_SECRETYesdev fallbackSession signing key
PORTNo8080Server port
DEV_USERNo--Auto-login as this email (dev only)
OPEN_REGISTRATIONNo--Set true to allow anyone to register (for Cloud)
BASE_URLNo--Public app URL used for OAuth callbacks
GOOGLE_CLIENT_IDNo--Enable Google OAuth login
GOOGLE_CLIENT_SECRETNo--Enable Google OAuth login
WEBHOOK_SECRETNo--GitHub Sponsors webhook secret
STRIPE_SECRET_KEYNo--Enable Stripe checkout and subscription billing
STRIPE_WEBHOOK_SECRETNo--Verify incoming Stripe webhook events
STRIPE_PRICE_MONTHLYNo--Stripe Price ID used for monthly Pro checkout
STRIPE_PRICE_YEARLYNo--Stripe Price ID used for yearly Pro checkout
GITHUB_FEEDBACK_TOKENNo--GitHub token used to create anonymized feedback issues
GITHUB_FEEDBACK_REPONo--Repository to receive feedback issues, e.g. krtw00/konbu
GITHUB_FEEDBACK_LABELSNo--Comma-separated labels added to forwarded feedback issues
AI_ENCRYPTION_KEYNo--64 hex chars used to encrypt BYOK AI keys
DEFAULT_AI_PROVIDERNoopenaiServer-side free-tier AI provider
DEFAULT_AI_API_KEYNo--Server-side free-tier AI key
DEFAULT_AI_ENDPOINTNo--Override free-tier provider endpoint
DEFAULT_AI_MODELNo--Override free-tier provider model
R2_ACCESS_KEY_IDNo--Attachment upload credentials
R2_SECRET_ACCESS_KEYNo--Attachment upload credentials
R2_ENDPOINTNoCloudflare R2 defaultAttachment storage endpoint
R2_BUCKETNokonbu-attachmentsAttachment storage bucket
R2_PUBLIC_URLNo--Optional public base URL for attachments
SMTP_HOSTNo--SMTP relay host for reminder emails (e.g. smtp-relay.brevo.com). Notifications are disabled unless all five SMTP_* variables are set.
SMTP_PORTNo--SMTP relay port (typically 587 for STARTTLS)
SMTP_USERNAMENo--SMTP relay login
SMTP_PASSWORDNo--SMTP relay password / API key
SMTP_FROMNo--From address for outgoing reminder emails
NOTIFICATION_TICK_INTERVALNo1mNotification sweep interval (Go duration, e.g. 30s, 2m)

Reminders / notifications

When the SMTP_* variables above are all set, the server starts a single in-process sweep loop that sends email reminders for upcoming events and due ToDos. Each user opts in via Settings (user_settings.notifications.enabled = true) and can override the recipient email, lead time, due-time, and timezone.

Notifications are a server-only feature โ€” they run inside the API server process and require PostgreSQL. The MCP --standalone mode (SQLite) does not send reminders.

Docker Compose (prod) variables

VariableDescription
POSTGRES_PASSWORDPostgreSQL password
KONBU_DOMAINDomain for Traefik TLS routing

CLI

The CLI is a standalone client that connects to a remote konbu server via API. Server code is not included in the CLI binary.

go install github.com/krtw00/konbu/cmd/konbu@latest

Setup

# Set environment variables (recommended: add to ~/.zshrc or ~/.bashrc)
export KONBU_API=https://konbu.example.com
export KONBU_API_KEY=your-api-key

# Or pass as flags
konbu --api https://... --api-key your-key memo list

Generate an API key in Settings > Security on the web UI.

Commands

All commands support --json flag for machine-readable output.

konbu memo list                        # List memos
konbu memo show <id>                   # Show memo content
konbu memo add "title" -c "content"    # Create memo (-c - for stdin)
konbu memo edit <id> --title "new"     # Update memo
konbu memo rm <id>                     # Delete memo

konbu todo list                        # List todos
konbu todo show <id>                   # Show todo details
konbu todo add "task" -t "tag1,tag2"   # Create todo
konbu todo add "task" -d 2025-04-01    # Create with due date
konbu todo edit <id> --desc "notes"    # Update todo
konbu todo done <id>                   # Mark done
konbu todo reopen <id>                 # Reopen
konbu todo rm <id>                     # Delete

konbu event list                       # List events
konbu event show <id>                  # Show event details
konbu event add "title" -s <RFC3339>   # Create event
konbu event edit <id> --title "new"    # Update event
konbu event rm <id>                    # Delete

konbu tag list                         # List tags
konbu tag rm <id>                      # Delete tag

konbu search "query"                   # Cross-search

konbu api-key list                     # List API keys
konbu api-key create "key-name"        # Create API key
konbu api-key rm <id>                  # Delete API key

konbu export json -o backup.json       # Export as JSON
konbu export markdown -o backup.zip    # Export as Markdown ZIP
konbu import ical calendar.ics         # Import iCal file

Short IDs (first 8 chars) can be used in place of full UUIDs.

MCP Server

konbu can run as a built-in MCP (Model Context Protocol) server in two modes โ€” pick whichever fits.

Standalone mode (SQLite, no server required)

If you just want konbu as a local MCP backend for Claude Desktop, Cursor, or any MCP client, install the CLI and run it with --standalone. No PostgreSQL, no web server, no API key โ€” everything is stored in a local SQLite file.

go install github.com/krtw00/konbu/cmd/konbu@latest
konbu mcp --standalone

Data is persisted at ~/.konbu/konbu.db by default. Override with --db /path/to/db.sqlite if needed.

Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json on macOS, %APPDATA%\Claude\claude_desktop_config.json on Windows):

{
  "mcpServers": {
    "konbu": {
      "command": "konbu",
      "args": ["mcp", "--standalone"]
    }
  }
}

Cursor accepts the same config at ~/.cursor/mcp.json (or via the settings UI).

Docker

A multi-arch image (linux/amd64, linux/arm64) is published to GitHub Container Registry. Pull it directly โ€” no build step needed:

docker pull ghcr.io/krtw00/konbu-mcp:latest

For reproducible setups, pin to a release tag instead โ€” e.g. docker pull ghcr.io/krtw00/konbu-mcp:v0.2.0.

Then point your MCP client at it. Data persists in a named volume:

{
  "mcpServers": {
    "konbu": {
      "command": "docker",
      "args": ["run", "--rm", "-i", "-v", "konbu-data:/data", "ghcr.io/krtw00/konbu-mcp:latest"]
    }
  }
}

Prefer building from source? docker build -f docker/Dockerfile.mcp -t konbu-mcp . from the repo root produces the same image (CGO-free, distroless static, ~22 MB).

Standalone mode exposes memo / todo / calendar event CRUD plus cross-resource search. Tags, attachments, and AI chat are server-only (use the connected mode below for those).

Connected mode (talk to a konbu server)

If you're running a konbu server (self-hosted or konbu Cloud), point the MCP server at it over HTTP. You get the full feature set: tags, attachments, and AI chat.

  1. Install the konbu CLI binary (see CLI section above)
  2. Generate an API key in Settings > Security on the web UI
  3. Add konbu to your MCP client config:
{
  "mcpServers": {
    "konbu": {
      "command": "konbu",
      "args": ["mcp"],
      "env": {
        "KONBU_API": "http://localhost:8080",
        "KONBU_API_KEY": "your-api-key"
      }
    }
  }
}

Usage examples

After restarting your MCP client, interact with konbu in natural language:

  • "What's on my schedule tomorrow?"
  • "Add a dentist appointment next Friday at 1pm"
  • "Create a todo to buy groceries with tag 'shopping'"
  • "Show me notes tagged 'meeting' from last week"
  • "Mark the 'review PR' todo as done"

API

Base path: /api/v1

ResourceEndpoints
AuthPOST /auth/register, POST /auth/login, POST /auth/logout, GET /auth/setup-status, GET /auth/providers, GET /auth/google/login, GET /auth/google/callback
UserGET/PUT /auth/me, GET/PUT /auth/settings, POST /auth/change-password, POST /auth/delete-account
API KeysGET/POST /api-keys, DELETE /api-keys/:id
MemosGET/POST /memos, GET/PUT/DELETE /memos/:id, GET/POST /memos/:id/rows, POST /memos/:id/rows/batch, GET /memos/:id/rows/export, PUT/DELETE /memos/:id/rows/:rowId
ToDosGET/POST /todos, GET/PUT/DELETE /todos/:id, PATCH /todos/:id/done, PATCH /todos/:id/reopen
EventsGET/POST /events, GET/PUT/DELETE /events/:id
CalendarsGET/POST /calendars, GET/PUT/DELETE /calendars/:id (owner-only)
TagsGET/POST /tags, PUT/DELETE /tags/:id
SearchGET /search?q=...
ChatGET/POST /chat/sessions, GET/PUT/DELETE /chat/sessions/:id, POST /chat/sessions/:id/messages, GET/PUT /chat/config
AttachmentsPOST /attachments, GET /attachments/*
ExportGET /export/json, GET /export/markdown
ImportPOST /import/ical

Development

# Start PostgreSQL
docker compose up -d postgres

# Frontend dev server
cd web/frontend && npm run dev

# Run server
DEV_USER=dev@local go run ./cmd/server

# Build CLI
go build -o bin/konbu ./cmd/konbu

# Run tests
go test ./...
cd web/frontend && npm test
cd web/frontend && npm run test:e2e

Project Structure

cmd/
  server/       # API server
  konbu/        # CLI client
internal/
  handler/      # HTTP handlers
  service/      # Business logic
  repository/   # DB access (sqlc)
  middleware/   # Auth, logging
  client/       # API client (used by CLI)
  mcp/          # MCP server
web/frontend/   # React + Vite SPA
sql/            # Schema and migrations
docker/         # Dockerfile

Roadmap

  • Browser push reminders (email reminders are already supported when SMTP_* env is configured)
  • Mobile UI improvements
  • CI test coverage
  • AI chat enhancements (context improvements, new model support)

Sponsors

If you find konbu useful, consider sponsoring the project.

License

MIT

Related MCP Servers

6figr-com/jobgpt-mcp-server

๐Ÿ“‡ โ˜๏ธ ๐Ÿ  ๐ŸŽ ๐ŸชŸ ๐Ÿง - MCP server for JobGPT โ€” search jobs, auto-apply, generate tailored resumes, track applications, and find recruiters from any MCP client. 34 tools for job search, applications, resumes, and outreach.

๐Ÿข Workplace & Productivity0 views
Agentled/mcp-server

๐Ÿ“‡ โ˜๏ธ - AI-native workflow orchestration with long-term memory, 100+ integrations, and unified credits. 32 MCP tools for building and running intelligent business workflows โ€” lead enrichment, content publishing, company research, media production, and more. Knowledge Graph that learns across executions.

๐Ÿข Workplace & Productivity0 views
alex13slem/openproject-codex-plugin

๐Ÿ“‡ โ˜๏ธ ๐Ÿ  ๐ŸŽ ๐ŸชŸ ๐Ÿง - Write-capable MCP server for OpenProject API v3 with Community Edition support. Search, create, update, assign, prioritize, and comment on work packages. Published as io.github.alex13slem/openproject in the official MCP Registry and installable with npx -y openproject-codex-plugin.

๐Ÿข Workplace & Productivity0 views
ap311036/ews-meeting-mcp

๐Ÿ ๐Ÿ  ๐ŸŽ ๐ŸชŸ ๐Ÿง - Safely schedule Outlook meetings on on-prem Exchange EWS. Resolves attendees, discovers rooms, suggests slots, and requires preview-confirmed create/update/cancel writes with local credential handling and audit-friendly lifecycle records.

๐Ÿข Workplace & Productivity0 views

Engagement

Views
0
Installs
0
Upvotes
0

Views and upvotes are unique per visitor network (hashed IP). Installs count copy actions.

Status

Health: Not checked yet

We have not completed a health check for this listing yet.

No check timestamp yet.

Unclaimed listing (imported or pending owner verification). Claim it โ†’
โ˜… Spotlight Slot

Feature Your MCP Server

Get maximum visibility for your server across our directory, search results, and detail pages.

Spotlight Your Server

Own this project?

This directory is pre-filled from public sources. Claim via GitHub README, site badge, or DNS TXT to get the verified badge and attach your website.

Claim this listing

Promote this listing

Optional paid placement. Free listings stay free forever.

Share & Embed

Add our SVG badge (dark/light directory styles) or embeddable widget to your site.