Focuh
by maxxthedeveloper · remote · no sign-in to list tools · v3.0.0 · published by GitHub user maxxthedeveloper
ADHD system of record for agents: tasks, goals, loops, calendar, focus stats.
16 tools: 2 can delete or cancel things, 7 change things and 7 only read.
Scanned Oct 21, 2026
- Deletes or cancels2Claude Code: deny: see these tools
- Can't be undone0Claude Code: ask
- Changes things7Claude Code: ask: see these tools
- Only reads7Claude Code: allow: see these tools
No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http focuh https://www.focuh.com/api/mcp --header 'Authorization: <your-authorization>'Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
16 tools
Deletes or cancels 2Claude Code: deny
delete_goalDelete a goal by id.No findings
Why it is in this group
- The name "delete_goal" says "delete": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Delete a goal by id. Linked tasks are kept and unlinked, never deleted.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: false
delete_tasksDelete tasks by ref, every task on a date, or all completed.No findings
Why it is in this group
- The name "delete_tasks" says "delete": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Delete tasks by ref, every task on a date, or all completed. Subtasks go too.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: false
Changes things 7Claude Code: ask
create_goalCreate a goal in a horizon, with optional bottleneck note and lever.No findings
Why it is in this group
- The name "create_goal" says "create": a word for a change.
Description, as the server wrote it Create a goal in a horizon, with optional bottleneck note and lever.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
create_tasksCreate tasks, each with optional nested subtasks.No findings
Why it is in this group
- The name "create_tasks" says "create": a word for a change.
Description, as the server wrote it Create tasks, each with optional nested subtasks. Defaults: today, 30 min.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
pull_loopsCopy loops onto a date as linked tasks — each loop stays in Loops.No findings
Why it is in this group
- The description's first verb is "copy": a word for a change.
Description, as the server wrote it Copy loops onto a date as linked tasks — each loop stays in Loops. Idempotent per loop+date.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
reorder_subtasksReorder a parent's subtasks.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Reorder a parent's subtasks. Pass the complete new order, every one once.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
update_goalUpdate goal fields: title, horizon (moves section), status, bottleneckNote, lever.No findings
Why it is in this group
- The name "update_goal" says "update": a word for a change.
Description, as the server wrote it Update goal fields: title, horizon (moves section), status, bottleneckNote, lever.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
update_tasksChange tasks: date (moves the day), priority, title, estimate, done, time slot.No findings
Why it is in this group
- The name "update_tasks" says "update": a word for a change.
Description, as the server wrote it Change tasks: date (moves the day), priority, title, estimate, done, time slot.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
write_notesAppend to or replace a day's note.No findings
Why it is in this group
- The name "write_notes" says "write": a word for a change.
Description, as the server wrote it Append to or replace a day's note. Read before replacing and preserve ^task markers.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
Only reads 7Claude Code: allow
get_calendarEvents + scheduled/unscheduled tasks for a date.No findings
Why it is in this group
- The name "get_calendar" says "get": a word for reading.
Description, as the server wrote it Events + scheduled/unscheduled tasks for a date. Check before scheduling.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_focus_statsToday/week focus minutes, streak, task completion rates.No findings
Why it is in this group
- The name "get_focus_stats" says "get": a word for reading.
Description, as the server wrote it Today/week focus minutes, streak, task completion rates.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_goalsGoals by horizon (week/month/year/decade) — exactly what the app's Goals view shows.No findings
Why it is in this group
- The name "get_goals" says "get": a word for reading.
Description, as the server wrote it Goals by horizon (week/month/year/decade) — exactly what the app's Goals view shows.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_loopsLoops — undated intentions in 4 buckets (pressing/important/backlog/waiting=parked).No findings
Why it is in this group
- The name "get_loops" says "get": a word for reading.
Description, as the server wrote it Loops — undated intentions in 4 buckets (pressing/important/backlog/waiting=parked). Call before pull_loops.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_notesRead a day's note and recent dates.No findings
Why it is in this group
- The name "get_notes" says "get": a word for reading.
Description, as the server wrote it Read a day's note and recent dates. Preserve ^task markers when writing back.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_subtasksList subtasks of a parent.No findings
Why it is in this group
- The name "get_subtasks" says "get": a word for reading.
Description, as the server wrote it List subtasks of a parent. Returns ids usable as refs.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_tasksToday/tomorrow tasks with id, date and priority.No findings
Why it is in this group
- The name "get_tasks" says "get": a word for reading.
Description, as the server wrote it Today/tomorrow tasks with id, date and priority. Call first to get refs.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 3.0.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http focuh https://www.focuh.com/api/mcp --header 'Authorization: <your-authorization>'Run in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__focuh__get_tasks",
"mcp__focuh__get_subtasks",
"mcp__focuh__get_loops",
"mcp__focuh__get_calendar",
"mcp__focuh__get_goals",
"mcp__focuh__get_focus_stats",
"mcp__focuh__get_notes"
],
"ask": [
"mcp__focuh__create_tasks",
"mcp__focuh__update_tasks",
"mcp__focuh__reorder_subtasks",
"mcp__focuh__pull_loops",
"mcp__focuh__create_goal",
"mcp__focuh__update_goal",
"mcp__focuh__write_notes"
],
"deny": [
"mcp__focuh__delete_tasks",
"mcp__focuh__delete_goal"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as focuh. Review it before you use it.
