MCP 서버

Focuh

io.github.maxxthedeveloper/focuh
생산성 공개 · 연결 가능 MCP 2026-07-28

이 MCP로 할 수 있는 일

Provides an ADHD-oriented personal productivity system for goals, tasks, subtasks, calendars, journals, loops, scheduling, and focus statistics.

create_goal
Create Goal
Create a goal in a horizon, with optional bottleneck note and lever.
입력 스키마
{'type': 'object', 'required': ['title', 'horizon'], 'properties': {'lever': {'type': 'string', 'maxLength': 5000}, 'title': {'type': 'string', 'maxLength': 500}, 'horizon': {'enum': ['week', 'month', 'year', 'decade'], 'type': 'string'}, 'bottleneckNote': {'type': 'string', 'maxLength': 5000}}}
create_tasks
Create Tasks
Create tasks, each with optional nested subtasks. Defaults: today, 30 min.
입력 스키마
{'type': 'object', 'required': ['tasks'], 'properties': {'tasks': {'type': 'array', 'items': {'type': 'object', 'required': ['title'], 'properties': {'date': {'type': 'string', 'maxLength': 10, 'description': 'Date'}, 'title': {'type': 'string', 'maxLength': 500, 'description': 'Title'}, 'goalId': {'type': 'string', 'maxLength': 64, 'description': 'Goal'}, 'parent': {'type': 'string', 'maxLength': 500, 'description': 'Parent'}, 'priority': {'enum': ['critical', 'important', 'nice-to-have'], 'type': 'string', 'description': 'Priority'}, 'subtasks': {'type': 'array', 'items': {'type': 'object', 'required': ['title'], 'properties': {'title': {'type': 'string', 'maxLength': 500}, 'estimatedMinutes': {'type': 'number', 'maximum': 1440, 'minimum': 0}}}, 'maxItems': 100}, 'loopBucket': {'enum': ['pressing', 'important', 'backlog', 'waiting'], 'type': 'string', 'description': 'Undated loop; excludes date/priority; waiting=parked'}, 'estimatedMinutes': {'type': 'number', 'maximum': 1440, 'minimum': 0, 'description': 'Minutes'}}}, 'maxItems': 100, 'description': 'Tasks to create'}}}
delete_goal
Delete Goal
Delete a goal by id. Linked tasks are kept and unlinked, never deleted.
파괴적 작업 멱등성
입력 스키마
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'maxLength': 64}}, 'additionalProperties': False}
delete_tasks
Delete Tasks
Delete tasks by ref, every task on a date, or all completed. Subtasks go too.
파괴적 작업 멱등성
입력 스키마
{'type': 'object', 'properties': {'date': {'type': 'string', 'maxLength': 10}, 'tasks': {'type': 'array', 'items': {'type': 'string', 'maxLength': 500}, 'maxItems': 100}, 'filter': {'enum': ['completed'], 'type': 'string'}}}
get_calendar
View Calendar
Events + scheduled/unscheduled tasks for a date. Check before scheduling.
읽기 전용 멱등성
입력 스키마
{'type': 'object', 'properties': {'date': {'type': 'string', 'maxLength': 10}}, 'additionalProperties': False}
get_focus_stats
Focus Statistics
Today/week focus minutes, streak, task completion rates.
읽기 전용 멱등성
입력 스키마
{'type': 'object', 'properties': {}, 'additionalProperties': False}
get_goals
View Goals
Goals by horizon (week/month/year/decade) — exactly what the app's Goals view shows.
읽기 전용 멱등성
입력 스키마
{'type': 'object', 'properties': {'status': {'enum': ['active', 'completed', 'all'], 'type': 'string'}, 'horizon': {'enum': ['week', 'month', 'year', 'decade'], 'type': 'string'}}, 'additionalProperties': False}
get_journal
Read Journal
Read a daily journal and recent dates. Preserve ^task markers when writing back.
읽기 전용 멱등성
입력 스키마
{'type': 'object', 'properties': {'date': {'type': 'string', 'maxLength': 10}}, 'additionalProperties': False}
get_loops
View Loops
Loops — undated intentions in 4 buckets (pressing/important/backlog/waiting=parked). Call before pull_loops.
읽기 전용 멱등성
입력 스키마
{'type': 'object', 'properties': {}, 'additionalProperties': False}
get_subtasks
View Subtasks
List subtasks of a parent. Returns ids usable as refs.
읽기 전용 멱등성
입력 스키마
{'type': 'object', 'required': ['ref'], 'properties': {'ref': {'type': 'string', 'maxLength': 500, 'description': 'Task id, #N, or title'}}, 'additionalProperties': False}
get_tasks
View Tasks
Today/tomorrow tasks with id, date and priority. Call first to get refs.
읽기 전용 멱등성
입력 스키마
{'type': 'object', 'properties': {}, 'additionalProperties': False}
pull_loops
Pull Loops
Copy loops onto a date as linked tasks — each loop stays in Loops. Idempotent per loop+date.
멱등성
입력 스키마
{'type': 'object', 'required': ['loops'], 'properties': {'date': {'type': 'string', 'maxLength': 10}, 'loops': {'type': 'array', 'items': {'type': 'string', 'maxLength': 500}, 'maxItems': 100}}}
reorder_subtasks
Reorder Subtasks
Reorder a parent's subtasks. Pass the complete new order, every one once.
멱등성
입력 스키마
{'type': 'object', 'required': ['ref', 'order'], 'properties': {'ref': {'type': 'string', 'maxLength': 500, 'description': 'Task id, #N, or title'}, 'order': {'type': 'array', 'items': {'type': ['number', 'string'], 'maxLength': 64}, 'maxItems': 100}}}
update_goal
Update Goal
Update goal fields: title, horizon (moves section), status, bottleneckNote, lever.
멱등성
입력 스키마
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'maxLength': 64}, 'lever': {'type': 'string', 'maxLength': 5000}, 'title': {'type': 'string', 'maxLength': 500}, 'status': {'enum': ['active', 'completed', 'paused', 'dropped'], 'type': 'string'}, 'horizon': {'enum': ['week', 'month', 'year', 'decade'], 'type': 'string'}, 'bottleneckNote': {'type': 'string', 'maxLength': 5000}}}
update_tasks
Update Tasks
Change tasks: date (moves the day), priority, title, estimate, done, time slot.
멱등성
입력 스키마
{'type': 'object', 'required': ['tasks'], 'properties': {'tasks': {'type': 'array', 'items': {'type': 'object', 'required': ['ref'], 'properties': {'ref': {'type': 'string', 'maxLength': 500, 'description': 'Task id, #N, or title'}, 'date': {'type': 'string', 'maxLength': 10, 'description': 'Date'}, 'title': {'type': 'string', 'maxLength': 500, 'description': 'Title'}, 'goalId': {'type': 'string', 'maxLength': 64}, 'endTime': {'type': 'string', 'maxLength': 5, 'description': 'End'}, 'priority': {'enum': ['critical', 'important', 'nice-to-have'], 'type': 'string', 'description': 'Priority'}, 'completed': {'type': 'boolean', 'description': 'Done'}, 'startTime': {'type': 'string', 'maxLength': 5, 'description': 'Start'}, 'loopBucket': {'enum': ['pressing', 'important', 'backlog', 'waiting'], 'type': 'string', 'description': 'Into Loops or re-bucket; excl. date; waiting=parked'}, 'estimatedMinutes': {'type': 'number', 'maximum': 1440, 'minimum': 0, 'description': 'Minutes'}}}, 'maxItems': 100, 'description': 'Changes to apply, one entry per task'}}}
write_journal
Write Journal
Append or replace a journal. Read before replacing and preserve ^task markers.
입력 스키마
{'type': 'object', 'required': ['content'], 'properties': {'date': {'type': 'string', 'maxLength': 10}, 'mode': {'enum': ['append', 'replace'], 'type': 'string'}, 'content': {'type': 'string', 'maxLength': 100000}}, 'additionalProperties': False}
추가됨
write_journal
2026년 9월 17일 12:43 PM
추가됨
get_journal
2026년 9월 17일 12:43 PM
추가됨
get_focus_stats
2026년 9월 17일 12:43 PM
추가됨
delete_goal
2026년 9월 17일 12:43 PM
추가됨
update_goal
2026년 9월 17일 12:43 PM
추가됨
create_goal
2026년 9월 17일 12:43 PM
추가됨
get_goals
2026년 9월 17일 12:43 PM
추가됨
get_calendar
2026년 9월 17일 12:43 PM
추가됨
pull_loops
2026년 9월 17일 12:43 PM
추가됨
get_loops
2026년 9월 17일 12:43 PM
추가됨
reorder_subtasks
2026년 9월 17일 12:43 PM
추가됨
get_subtasks
2026년 9월 17일 12:43 PM
추가됨
delete_tasks
2026년 9월 17일 12:43 PM
추가됨
update_tasks
2026년 9월 17일 12:43 PM
추가됨
create_tasks
2026년 9월 17일 12:43 PM
추가됨
get_tasks
2026년 9월 17일 12:43 PM