Skip to main content
Glama

Mochi Quest 🍑

An open-source, AI-powered personal growth coaching system.

Mochi Quest lets you describe your goals β€” lose weight, learn English, become a Googler β€” and an AI coach builds a personalized plan, assigns daily tasks, tracks your progress, and dynamically adjusts when things get too hard or too easy.

Agent-agnostic: works with Claude, GPT, Gemini, or any MCP-capable AI agent.


Features

  • Goal clarification β€” AI interviews you to understand your situation, constraints, and current level before building a plan

  • Cycle-based planning β€” AI plans a full cycle (7–14 days) with a per-day task menu; daily allocation runs instantly from the DB (no LLM latency)

  • Dynamic replan β€” triggers automatically at cycle end, when skip rate is high, or when all optional tasks are done (too easy)

  • Multi-goal balance β€” set a weight per goal; daily tasks are allocated proportionally within your daily limit

  • Coin + reward system β€” earn coins from tasks, redeem for self-defined rewards; AI adjusts pricing if a reward conflicts with your goals

  • Streak tracking β€” per-goal streaks + global streak (all goals done = global +1); milestone bonuses at 7/30/100/365 days

  • Web dashboard β€” local UI for checking off tasks, viewing plan roadmap, wallet, and streaks

  • Real-time updates β€” SSE pushes events to the UI instantly

  • Background daemon β€” node-cron daily check at 4am (configurable): streak update, task allocation, cycle-end detection, replan flagging

  • Push notifications β€” server POSTs typed events to the agent's webhook URL (pre-filtered); agent uses Discord to ask the user questions or report results


Related MCP server: agent-runtime-mcp

Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚               AI Agent Layer              β”‚
β”‚   Claude / GPT / Gemini / any MCP agent  β”‚
β”‚   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚   β”‚          SKILL.md                β”‚   β”‚
β”‚   β”‚  coaching behavior & decisions   β”‚   β”‚
β”‚   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                   β”‚ MCP (stdio)
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚         MCP Server  (Node.js)            β”‚
β”‚  Goals Β· Plans Β· Tasks Β· Wallet Β· Streaksβ”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
β”‚  β”‚    SQLite  (~/.mochi-quest/data.db) β”‚ β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
β”‚  REST API :3030  ←──── Web UI (React)    β”‚
β”‚  node-cron (4am daily check, daemon)     β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

One command (mochi-quest start) runs the MCP server, REST API, and scheduler together.


Quick Start

Prerequisites

  • Node.js 20+

  • pnpm 9+

  • An MCP-capable AI agent (Claude Code, Cursor, etc.)

Install

git clone https://github.com/YOUR_USERNAME/mochi-quest.git
cd mochi-quest
pnpm install

Build

# Build server
cd packages/server && pnpm build

# Build web UI
cd packages/web && pnpm build

Run

# Start everything (MCP + REST API + scheduler + built Web UI)
node packages/server/dist/index.js start

# Or as a background daemon
node packages/server/dist/index.js start --daemon

The web dashboard is available at http://localhost:3030.

Docker

docker compose up -d --build

The Docker server stores SQLite data in the mochi_quest_data volume and serves the built Web UI, REST API, scheduler, and MCP entrypoint from one container.

Full deployment notes: docs/deployment.md.

Connect to your AI agent

Add the MCP server to your agent's config:

Claude Code (~/.claude/settings.json or project .mcp.json):

{
  "mcpServers": {
    "mochi-quest": {
      "command": "node",
      "args": ["/path/to/mochi-quest/packages/server/dist/index.js", "mcp"]
    }
  }
}

Then install skills/mochi-quest/ as a skill (or paste the SKILL.md body into your system prompt).


MCP Tools

Tool

Description

mq_get_dashboard

Full overview: goals, today's tasks, wallet, streaks, replan status

mq_list_goals / mq_create_goal / mq_update_goal

Goal management

mq_get_plan / mq_generate_plan / mq_adjust_plan

Plan management

mq_get_today_tasks / mq_get_optional_tasks

Fetch tasks

mq_complete_task / mq_skip_task

Report task status

mq_get_wallet / mq_list_rewards / mq_redeem_reward

Coin & reward system

mq_add_assessment / mq_get_user_state

Track progress assessments

mq_get_streak / mq_get_streak_milestones

Streak info

mq_get_replan_status

Check if AI action is needed (offline catch-up)

mq_send_notification

Send a message to configured Discord channel

mq_register_webhook

Register agent webhook URL for push events

mq_get_settings / mq_update_settings

Global settings

Full tool reference: packages/skill/SKILL.md


Project Structure

mochi-quest/
β”œβ”€β”€ packages/
β”‚   β”œβ”€β”€ server/          # MCP Server + REST API (Node.js + TypeScript)
β”‚   β”‚   └── src/
β”‚   β”‚       β”œβ”€β”€ db/      # SQLite schema & queries
β”‚   β”‚       β”œβ”€β”€ mcp/     # MCP tool implementations
β”‚   β”‚       β”œβ”€β”€ api/     # REST API routes (Hono)
β”‚   β”‚       └── scheduler.ts  # node-cron daily check + notifications
β”‚   β”œβ”€β”€ web/             # Web dashboard (React + Vite + Tailwind)
β”‚   β”‚   └── src/
β”‚   β”‚       β”œβ”€β”€ pages/   # Dashboard, Goals, Tasks, Wallet, Settings
β”‚   β”‚       β”œβ”€β”€ components/
β”‚   β”‚       β”œβ”€β”€ hooks/   # useSSE for real-time updates
β”‚   β”‚       └── lib/     # API client + types
β”‚   └── skill/
β”‚       └── SKILL.md     # AI coaching behavior definition
└── docs/
    └── spec.md          # Full system specification

How It Works

Planning vs Execution

The AI generates a cycle-based plan (7–14 days) during planning sessions β€” a day-by-day schedule where each day has specific tasks, plus an optional pool for the whole cycle. The server allocates daily tasks by day_in_cycle with no LLM call, so the UI loads instantly.

Event-driven Replan

Every meaningful state change emits a typed event through a unified pipeline:

emitEvent(type, data)
  β”œβ”€β”€ writeLog()           β†’ DB audit log
  β”œβ”€β”€ emitSseEvent()       β†’ Web UI badge (real-time)
  └── notifyAgentWebhook() β†’ Agent HTTP endpoint (pre-filtered)

The server pre-filters before pushing β€” the agent only receives actionable signals:

Event

Pushed to agent when…

Agent action

task_completed

optional_completion_rate === 1.0

Ask user: plan too easy? Consider replan

cycle_ended

always

Replan immediately, notify user

daily_check_ran

any goal skip_rate_3d > 0.5

Ask user why; decide whether to replan

assessment_recorded

always

Review plan; replan if significantly changed

The agent registers its webhook URL via mq_register_webhook or the settings page. As offline catch-up, mq_get_replan_status() at session start returns any pending replans from while the webhook was offline.

Multi-goal Task Allocation

Each goal has a daily_task_weight (1–5). Tasks are allocated proportionally:

weights = [3, 2, 1]  β†’  budget = 6  β†’  tasks = [3, 2, 1]

Adjust weights any time: "Focus more on English this week."


Data Storage

All data is stored locally in ~/.mochi-quest/data.db (SQLite). No cloud sync, no accounts.


Notifications (Daemon Mode)

node packages/server/dist/index.js start --daemon

The built-in scheduler runs a daily check at the configured notification time (default: 08:00) and sends a native OS notification when there are pending tasks.

  • macOS: Notification Center

  • Windows: Toast Notification

  • Linux: libnotify (notify-send)


Roadmap

  • Integration adapters (Fitbit, Garmin, Duolingo, LeetCode)

  • Habitica sync (push tasks to Habitica, webhook completion back)

  • Server-driven replan (server calls LLM directly in daemon mode)

  • Apple Health companion app

  • Auto-start installer (mochi-quest setup)


Contributing

Pull requests welcome. Please open an issue first to discuss larger changes.


License

MIT

Related MCP Connectors

Related MCP Servers

  • F
    license
    B
    quality
    D
    maintenance
    A productivity coaching assistant designed for ADHD support that provides intelligent task management, goal tracking, and personalized recommendations. It utilizes a persistent memory system to learn user patterns and preferences, helping to reduce decision paralysis through actionable suggestions.
    28
    1
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to persist and retrieve memories via a personal knowledge graph, with tools for emotional intelligence, CRM, life management, social features, self-training, and autonomous insights.
    395 npm
    6
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Provides AI agents with a lightweight task-management and self-verification layer to define goals, track checkpoints, detect scope drift, and verify completion against explicit done criteria.
    12
    MIT