habitca-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@habitca-mcp get my unfinished todos for today"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
habitca-mcp
A small Model Context Protocol server that exposes the Habitica v3 API as MCP tools, so MCP-aware AI assistants (Claude Code, Hermes Agent, Cursor, etc.) can read and update your Habitica tasks, habits, dailies, rewards, pets, inventory and notifications.
This is a clean rewrite of the original by iBreaker — same surface, no axios/zod/i18n, single-file Node, English-only output.
Install
git clone https://github.com/hxlair/habitca_mcp.git
cd habitca_mcp
npm installNode 18 or newer is required (uses the built-in fetch).
Related MCP server: Habitica MCP
Auth
You need your Habitica API credentials:
Copy your User ID and API Token
Export them in the shell that will launch the server:
export HABITICA_USER_ID=...
export HABITICA_API_TOKEN=...Optional:
export HABITICA_APP_ID=my-mcp-client # sent as x-client header for Habitica analyticsRun
npm start
# or
./index.jsThe server speaks MCP over stdio. It logs habitca-mcp ready to stderr once connected.
Wire into an MCP client
Claude Code / Hermes Agent / Cursor
Add to the client's MCP config:
{
"mcpServers": {
"habitca": {
"command": "node",
"args": ["/absolute/path/to/habitca_mcp/index.js"],
"env": {
"HABITICA_USER_ID": "...",
"HABITICA_API_TOKEN": "..."
}
}
}
}For Hermes specifically:
hermes mcp add habitca \
--env HABITICA_USER_ID=... \
--env HABITICA_API_TOKEN=... \
-- node /absolute/path/to/habitca_mcp/index.jsTools
Tool | Purpose |
| Full user document |
| HP / MP / XP / level / gold / class |
| List tasks (optionally filter by |
| Fetch one task by id |
| Create habit/daily/todo/reward |
| Update a task's fields |
| Score a task |
| Delete a task |
| List checklist items on a task |
| Add a checklist item |
| Edit text/completed on a checklist item |
| Toggle checklist item complete |
| Remove a checklist item |
| Tag CRUD (subset) |
| Inventory views |
| Pet & gear actions |
| Reward purchases |
| Cast a class spell on self / a task / a party member |
| Notification handling |
| Trigger the daily cron manually |
Differences from upstream
Single dependency — only
@modelcontextprotocol/sdk. axios, zod and the i18n layer are gone.English-only output messages.
x-clientheader sent so Habitica can attribute traffic back to the MCP.Better errors — surfaces the Habitica API's
messagefield instead of swallowing it.Structured success messages — score_task returns the gold/exp/level deltas, create_task returns the new id, etc.
Adds
get_taskandrun_cron; minor schema cleanups (priority enum, completedTodos filter).
License
MIT — same as upstream.
Available Tools
28 toolsadd_checklist_itemC
Add a checklist item to a task.
Inputs: taskId (required), text (required).
buy_itemC
Buy an item from a shop.
Inputs: itemKey (required), quantity.
buy_rewardC
Buy a custom reward by key.
Inputs: key (required).
cast_spellB
Cast a class spell, optionally on a target task or party member.
Inputs: spellId (required), targetId.
create_tagD
Create a tag.
Inputs: name (required).
create_taskB
Create a habit, daily, todo, or reward.
Inputs: type (required), text (required), notes, difficulty, +4 more.
delete_checklist_itemC
Delete a checklist item.
Inputs: taskId (required), itemId (required).
delete_taskC
Delete a task by id.
Inputs: taskId (required).
equip_itemC
Equip a pet, mount, costume piece, or battle gear.
Inputs: type (required), key (required).
feed_petB
Feed a pet a piece of food.
Inputs: pet (required), food (required).
get_inventoryA
Get full inventory (items, eggs, food, hatching potions, special).
Inputs: no named parameters.
get_mountsA
Get owned mounts map.
Inputs: no named parameters.
get_notificationsC
Get unread notifications.
Inputs: no named parameters.
get_petsA
Get owned pets map.
Inputs: no named parameters.
get_shopB
Get items in a shop (default: market).
Inputs: shopType.
get_statsA
Get user stats only (HP, MP, XP, level, gold, class).
Inputs: no named parameters.
get_tagsA
Get all tags.
Inputs: no named parameters.
get_taskC
Get a single task by id.
Inputs: taskId (required).
get_task_checklistC
Get checklist items for a task.
Inputs: taskId (required).
get_tasksC
List tasks. Optionally filter by type.
Inputs: type.
get_user_profileA
Get the authenticated user's full profile (stats, prefs, items, party, etc).
Inputs: no named parameters.
hatch_petC
Hatch a pet from an egg + hatching potion.
Inputs: egg (required), hatchingPotion (required).
read_notificationC
Mark a notification as read.
Inputs: notificationId (required).
run_cronA
Run the daily cron (advance day, apply damage from missed dailies). Normally auto-runs on first action of the day.
Inputs: no named parameters.
score_checklist_itemC
Toggle a checklist item complete/incomplete.
Inputs: taskId (required), itemId (required).
score_taskA
Score a task. direction='up' completes a todo/daily or marks a + habit; 'down' is for negative habits.
Inputs: taskId (required), direction.
update_checklist_itemB
Update text/completed on a checklist item.
Inputs: taskId (required), itemId (required), text, completed.
update_taskC
Update fields on a task (text, notes, difficulty, priority, etc).
Inputs: taskId (required), text, notes, difficulty, +2 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 28 tools
Most tools have clearly distinct purposes (e.g., get_task vs get_tasks, buy_item vs buy_reward). A few overlaps exist (get_inventory and get_user_profile both return items) but descriptions reduce ambiguity.
All tool names follow a consistent verb_noun snake_case pattern (e.g., create_task, buy_item, equip_item). No mixing of conventions or chaotic naming.
28 tools cover a broad gamification system (tasks, inventory, pets, spells, shop). Slightly high but justified by the feature set; not excessive.
Core task and checklist operations are complete, but missing CRUD for tags (no delete/update), rewards management beyond buying, and some inventory actions. Notable gaps exist.
Maintenance
Related MCP Connectors
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
Your org's AI agents, tasks, runs, search, and brain files as MCP tools and resources.
214 tools for AI agents over one MCP endpoint: image, video, audio, 3D, data, storage, mail, GPUs.
Manage Superlist tasks and lists in plain language from any MCP-compatible AI agent.
Related MCP Servers
- AlicenseCqualityDmaintenanceEnables AI assistants to interact with the Habitica API to manage tasks, track habits, and engage in gamified productivity features like pet raising and inventory management. It allows users to control their Habitica account through natural language for a personalized and automated productivity experience.2618 npm26MIT
- AlicenseNot gradedqualityCmaintenanceMCP server for managing Habitica as a daily execution layer, enabling agents to read and (with explicit confirmation) create, complete, and score tasks via the Habitica API.17 npmMIT
- AlicenseNot gradedqualityDmaintenanceEnables MCP-compatible clients to read and write a gamified self-improvement RPG character sheet, including quest management, profile viewing, skills, social challenges, and leaderboards.1MIT
- AlicenseNot gradedqualityDmaintenanceEnables managing tasks, tags, and user stats on a self-hosted Habitica instance through MCP tools over Streamable HTTP.17 npmMIT