api-first · mcp-native

Your life already has stats.
UserPoints just shows the sheet.

Paste one prompt into ChatGPT, Claude or your local agent. Every night it asks how your day went and posts a clean JSON payload to UserPoints. We score it, award points, track streaks, and hand you tomorrow's quest.

character sheet

@scott

Builder / Monk

LVL

27

XP8,420 / 10,000

STREAK

46d

TODAY

+0

RANK

#118

FOCUS72
BODY58
CRAFT88
SOCIAL41
MIND66
Dawn PatrolShip ItDeep Work x5Honest Journal

today's log — synced by agent

live
  • 06:40 · habit

    5km run before sunrise

    +60

    BODY

  • 09:15 · quest

    Shipped the billing refactor to prod

    +120

    CRAFT

  • 12:02 · thought

    Realized I say yes to meetings out of guilt, not value

    +45

    MIND

  • 16:30 · event

    Coffee with an old teammate, offered to mentor them

    +70

    SOCIAL

  • 22:10 · habit

    Phone in the drawer, read 20 pages

    +45

    FOCUS

next quest ▸ Say no to one meeting tomorrow.

How it works

No tracker to babysit. Your agent does the logging; you just talk.

1 · Spawn your chronicler

Copy the UserPoints prompt into any LLM. It becomes a nightly agent that interviews you in 60 seconds — no new app to open.

2 · Connect via MCP or token

Add the UserPoints MCP server to Claude Desktop, Cursor or your own runtime — or just give the agent a bearer token and let it POST.

3 · Get scored, level up

We turn quests, habits, thoughts and events into points across five stats, unlock achievements, and generate one quest for tomorrow.

Connect your LLM in two minutes

MCP for Claude Desktop and Cursor. A copy-paste prompt for ChatGPT, Gemini, or any other LLM.

Claude Desktop / Cursor / Windsurf

  1. Sign in and create a token on your dashboard.
  2. Copy the MCP config below.
  3. Paste it into your app's MCP settings and restart.
    • Claude Desktop: Settings → Developer → Edit Config
    • Cursor: Settings → MCP → Add new server
  4. Say "log my day to UserPoints" and your agent handles the JSON.

MCP uses mcp-remote to bridge UserPoints' API into standard tools. No extra account or SDK required.

MCP config
{
  "mcpServers": {
    "userpoints": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://userpoints.com/api/public/v1/days"],
      "env": {
        "UP_TOKEN": "up_live_…your token…"
      }
    }
  }
}

API-first, agent-shaped

One endpoint to write a day, one to read your sheet. Everything a human can see, an agent can call.

POST /v1/days — request
{
  "date": "2026-08-12",
  "entries": [
    {
      "kind": "quest",
      "text": "Shipped the billing refactor to prod",
      "stat": "CRAFT",
      "effort": 4,
      "mood": 2
    },
    {
      "kind": "thought",
      "text": "I say yes to meetings out of guilt",
      "stat": "MIND",
      "effort": 2,
      "mood": -1
    }
  ],
  "notes": "Long day, but I made the hard call."
}
200 OK — response
{
  "awarded": 165,
  "breakdown": [
    { "stat": "CRAFT", "xp": 120, "reason": "high-effort quest" },
    { "stat": "MIND",  "xp":  45, "reason": "honest reflection" }
  ],
  "level": 27,
  "streak": 46,
  "unlocked": ["Ship It"],
  "next_quest": "Say no to one meeting tomorrow."
}

MCP server

userpoints.log_day, userpoints.get_sheet, userpoints.quests — drop-in for Claude, Cursor, Codex.

Bearer tokens

Scoped, revocable, per-device. Your agent on your machine, your data.

Webhooks

Fire on level-up, streak break or achievement so your own automations can react.

How points work

Scoring is transparent and boring on purpose: you can read every award and argue with it. Honesty beats grinding — inflated logs decay.

CRAFT

Quests

Things you finished. Effort × impact, 20–150 points.

BODY

Habits

Repeatable actions. Streak multiplier up to 2×.

MIND

Thoughts

Honest reflections. Rewarded for candor, not length.

SOCIAL

Events

Things that happened to you and how you met them.

From coaches

Better with other people

Guilds

Join a 6-person guild. Shared weekly XP goal, no shaming, one party quest.

Seasons

12-week seasons with a soft reset. Keep your achievements, chase a new rank.

Shareable sheets

Post your weekly recap card. Your friends see the streak and want one.

Day 1 is the hardest level. Start it tonight.

Grab a token, paste the prompt, and let your agent handle the rest.

free while in season 0 · export everything, always