Skip to main content
Glama
README.md
# Zenith MCP Server

A personal habit tracking MCP server built for an AuDHD + PDA brain.

Tracks the 6 daily non-negotiables of a 90-day mission — connected to Supabase. No UI. No friction. Just a tool your AI can call.

## Tools

| Tool | What it does |
|---|---|
| `log_habit` | Log a habit as done today |
| `get_today_status` | Full dashboard of today's habits |
| `get_streak` | Consecutive day streak for any habit |
| `get_mission_overview` | Full 90-day progress stats |

## Habits tracked

- `prayer_before_phone`
- `cold_shower`
- `box_breathing`
- `pullup_gtg` (multi-session, tracks reps)
- `a25_block`
- `video_published`

> No negative habit tracking. Pink Elephant rule enforced.

## Stack

- [FastMCP](https://github.com/jlowin/fastmcp) — MCP server framework
- [Supabase](https://supabase.com) — Postgres database (free tier)
- [uv](https://github.com/astral-sh/uv) — Python package manager

## Setup

```bash
# 1. Clone and install
git clone https://github.com/YOUR_USERNAME/zenith-mcp
cd zenith-mcp
uv sync

# 2. Add your credentials
cp .env.example .env
# Edit .env with your Supabase URL and secret key

# 3. Run the DB migration in Supabase SQL Editor
# (paste contents of setup_db.sql)

# 4. Run the server
uv run server.py
```

## Day 26/90
Built in public. AuDHD developer. Varna, Bulgaria.

TDQS

A3.9/5.0

Scored across 4 tools

Disambiguation5/5

Each tool serves a clearly distinct purpose: logging a completion, viewing today's dashboard, checking a specific habit's streak, and viewing overall mission progress. There is no overlap or ambiguity between them.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern: log_habit, get_today_status, get_streak, get_mission_overview. The verbs are consistent ('log' and 'get'), and the nouns clearly describe the target.

Tool Count5/5

With 4 tools, the set is concise and well-scoped for a habit-tracking mission server. Each tool covers a necessary interaction (log and three read views), and the count is within the ideal range.

Completeness3/5

The server covers core logging and status views, but lacks a way to list available habits or manage them (create/update/delete). An agent cannot discover valid habit names, which could cause failures when calling log_habit or get_streak.

Maintenance

ActivityInactive
ResponsivenessNo issues