mochi-quest

mochi-quest

Enables AI agents to act as personal growth coaches, allowing users to set goals, receive personalized daily tasks, and track progress with dynamic replanning and reward systems.

Category
Visit Server

README

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
  • Two-layer task system β€” AI pre-generates a task pool; daily allocation runs instantly from the DB (no LLM latency)
  • Dynamic replan β€” triggers automatically when skip rate is high, you're breezing through optional tasks, or your task pool runs low
  • 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 replan completion to the UI instantly
  • Background daemon β€” node-cron daily check + cross-platform notifications (macOS / Windows / Linux) even when you haven't opened the app

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 + node-notifier (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 add packages/skill/SKILL.md as a skill (or paste it 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
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 task template pool (7–14 days of tasks) during planning sessions. The server allocates daily tasks from this pool using a rule engine β€” no LLM call needed, so the UI loads instantly.

Event-driven Replan

The server monitors four signals and marks replan_pending = true when triggered:

Signal Threshold
Skip rate >50% over last 3 days
Optional completion rate >80% over last 3 days (too easy)
Task pool size <3 days remaining
Assessment change New assessment recorded

The AI checks mq_get_replan_status() at the start of each conversation and regenerates the plan if needed.

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

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured