Make a printable habit tracker for any month as a print-ready PDF.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Use this when the user wants a printable habit tracker ("habit tracker printable", "monthly habit tracker", "habit tracker pdf", "habit tracker template", "30 day habit tracker") for a month or several months. If the user pastes or uploads a list of habits (text or an image), first convert each one into the habits list, with days when a habit is only on some weekdays, then call. Builds a PDF grid with one row per habit and one box per day of the real month, weekday initials, weekend shading, week lines for Monday or Sunday weeks, grey boxes on days a habit is not scheduled, a Done column with the number of scheduled days, optional weekly pages, Letter or A4, landscape or portrait, 28 languages. Returns the month facts, each habit's scheduled day count, a preview and a PDF link. Does not send reminders, does not store ticks, and does not sync with habit apps.
monthly (one habits-by-days grid per month, default), weekly (one page per week with bigger boxes) or both.
Accent colour: a hex code like #0F766E or a name (violet, indigo, blue, teal, green, sage, red, pink, orange, amber, brown, slate, black). Default violet.
First month as YYYY-MM or a name, e.g. "2026-11" or "November 2026" or "next month". Default: this month until the 15th, then next month.
Print a notes area under the grid. Default true.
Paper size: letter or a4. Default letter for English, a4 for other languages.
Title printed at the top, e.g. "Maya's November Goals". Default: Habit Tracker.
The habits to track, one row each: a list like ["Drink 8 glasses of water", "Read 20 minutes", {"name":"Gym","days":"Mon, Wed, Fri"}] or pasted text with one habit per line. days limits a habit to some weekdays ("weekdays", "weekends", "Mon, Wed, Fri"); other days print grey. Up to 31. Omit for an empty tracker to fill in by hand.
How many months, one page each, 1 to 12. Default 1. Example: 3
Print a Done column with each habit's number of scheduled days in the month, e.g. "/ 13". Default true.
Language for month names and weekday initials, e.g. en (default), pl, de, es, fr, it, pt, nl, sv, ru, uk, el, vi. Example: pl
Extra empty rows for habits written by hand. Default: enough to make 10 rows (at least 1), or 12 when no habits are given. Example: 0
First day of the week for week lines and weekly pages: monday or sunday. Default sunday for English, monday for most other languages.
Monthly grid orientation: landscape (default, roomier boxes) or portrait.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http habit-tracker https://habit-tracker.zovo.one/mcp
Use this when the user wants a printable habit tracker ("habit tracker printable", "monthly habit tracker", "habit tracker pdf", "habit tracker template", "30 day habit tracker") for a month or several months. If the user pastes or uploads a list of habits (text or an image), first convert each one into the habits list, with days when a habit is only on some weekdays, then call. Builds a PDF grid with one row per habit and one box per day of the real month, weekday initials, weekend shading, week lines for Monday or Sunday weeks, grey boxes on days a habit is not scheduled, a Done column with the number of scheduled days, optional weekly pages, Letter or A4, landscape or portrait, 28 languages. Returns the month facts, each habit's scheduled day count, a preview and a PDF link. Does not send reminders, does not store ticks, and does not sync with habit apps.
| Argument | Type | Description |
|---|---|---|
| view | string | monthly (one habits-by-days grid per month, default), weekly (one page per week with bigger boxes) or both. |
| color | string | Accent colour: a hex code like #0F766E or a name (violet, indigo, blue, teal, green, sage, red, pink, orange, amber, brown, slate, black). Default violet. |
| month | any | First month as YYYY-MM or a name, e.g. "2026-11" or "November 2026" or "next month". Default: this month until the 15th, then next month. |
| notes | any | Print a notes area under the grid. Default true. |
| paper | string | Paper size: letter or a4. Default letter for English, a4 for other languages. |
| title | string | Title printed at the top, e.g. "Maya's November Goals". Default: Habit Tracker. |
| habits | any | The habits to track, one row each: a list like ["Drink 8 glasses of water", "Read 20 minutes", {"name":"Gym","days":"Mon, Wed, Fri"}] or pasted text with one habit per line. days limits a habit to some weekdays ("weekdays", "weekends", "Mon, Wed, Fri"); other days print grey. Up to 31. Omit for an empty tracker to fill in by hand. |
| months | any | How many months, one page each, 1 to 12. Default 1. Example: 3 |
| totals | any | Print a Done column with each habit's number of scheduled days in the month, e.g. "/ 13". Default true. |
| language | string | Language for month names and weekday initials, e.g. en (default), pl, de, es, fr, it, pt, nl, sv, ru, uk, el, vi. Example: pl |
| blank_rows | any | Extra empty rows for habits written by hand. Default: enough to make 10 rows (at least 1), or 12 when no habits are given. Example: 0 |
| week_start | any | First day of the week for week lines and weekly pages: monday or sunday. Default sunday for English, monday for most other languages. |
| orientation | string | Monthly grid orientation: landscape (default, roomier boxes) or portrait. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"view": {
"type": "string",
"maxLength": 30,
"description": "monthly (one habits-by-days grid per month, default), weekly (one page per week with bigger boxes) or both."
},
"color": {
"type": "string",
"maxLength": 20,
"description": "Accent colour: a hex code like #0F766E or a name (violet, indigo, blue, teal, green, sage, red, pink, orange, amber, brown, slate, black). Default violet."
},
"month": {
"anyOf": [
{
"type": "string",
"maxLength": 30
},
{
"type": "number"
}
],
"description": "First month as YYYY-MM or a name, e.g. \"2026-11\" or \"November 2026\" or \"next month\". Default: this month until the 15th, then next month."
},
"notes": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "string",
"maxLength": 10
}
],
"description": "Print a notes area under the grid. Default true."
},
"paper": {
"type": "string",
"maxLength": 20,
"description": "Paper size: letter or a4. Default letter for English, a4 for other languages."
},
"title": {
"type": "string",
"maxLength": 80,
"description": "Title printed at the top, e.g. \"Maya's November Goals\". Default: Habit Tracker."
},
"habits": {
"anyOf": [
{
"type": "string",
"maxLength": 8000
},
{
"type": "array",
"items": {
"anyOf": [
{
"type": "string",
"maxLength": 400
},
{
"type": "object",
"properties": {
"days": {
"anyOf": [
{
"anyOf": [
{
"type": "string",
"maxLength": 80
},
{
"type": "array",
"items": {
"anyOf": [
{
"type": "string",
"maxLength": 12
},
{
"type": "number"
}
]
},
"maxItems": 7
}
]
},
{
"type": "null"
}
]
},
"name": {
"type": "string",
"maxLength": 400
},
"habit": {
"type": "string",
"maxLength": 400
},
"title": {
"type": "string",
"maxLength": 400
},
"schedule": {
"anyOf": [
{
"anyOf": [
{
"type": "string",
"maxLength": 80
},
{
"type": "array",
"items": {
"anyOf": [
{
"type": "string",
"maxLength": 12
},
{
"type": "number"
}
]
},
"maxItems": 7
}
]
},
{
"type": "null"
}
]
},
"frequency": {
"anyOf": [
{
"type": "string",
"maxLength": 80
},
{
"type": "null"
}
]
}
}
}
]
},
"maxItems": 200
}
],
"description": "The habits to track, one row each: a list like [\"Drink 8 glasses of water\", \"Read 20 minutes\", {\"name\":\"Gym\",\"days\":\"Mon, Wed, Fri\"}] or pasted text with one habit per line. days limits a habit to some weekdays (\"weekdays\", \"weekends\", \"Mon, Wed, Fri\"); other days print grey. Up to 31. Omit for an empty tracker to fill in by hand."
},
"months": {
"anyOf": [
{
"type": "number"
},
{
"type": "string",
"maxLength": 30
}
],
"description": "How many months, one page each, 1 to 12. Default 1. Example: 3"
},
"totals": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "string",
"maxLength": 10
}
],
"description": "Print a Done column with each habit's number of scheduled days in the month, e.g. \"/ 13\". Default true."
},
"language": {
"type": "string",
"maxLength": 20,
"description": "Language for month names and weekday initials, e.g. en (default), pl, de, es, fr, it, pt, nl, sv, ru, uk, el, vi. Example: pl"
},
"blank_rows": {
"anyOf": [
{
"type": "number"
},
{
"type": "string",
"maxLength": 10
}
],
"description": "Extra empty rows for habits written by hand. Default: enough to make 10 rows (at least 1), or 12 when no habits are given. Example: 0"
},
"week_start": {
"anyOf": [
{
"type": "string",
"maxLength": 12
},
{
"type": "number"
}
],
"description": "First day of the week for week lines and weekly pages: monday or sunday. Default sunday for English, monday for most other languages."
},
"orientation": {
"type": "string",
"maxLength": 20,
"description": "Monthly grid orientation: landscape (default, roomier boxes) or portrait."
}
}
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 8, 2026.