Skip to main content
← Claude 연결 (MCP)

MCP 서버 레퍼런스

Fecit MCP 서버의 전체 기술 스펙 — 연결, 인증, 그리고 MCP 클라이언트가 호출할 수 있는57개 tool 전부.

연결

https://fecit.vaudium.net/api/mcp
프로토콜
Model Context Protocol (MCP)
전송
Streamable HTTP (stateless, JSON 응답)
스코프
fecit

인증

서버는 OAuth 2.1 인증 서버입니다. 원격 MCP를 지원하는 클라이언트는 자동으로 발견·연결하며, 수동 키 관리가 필요 없습니다.

  • 동적 클라이언트 등록 (RFC 7591) — /api/mcp/register
  • Authorization Code + PKCE (S256), refresh 토큰 지원
  • 메타데이터 발견: /.well-known/oauth-protected-resource, /.well-known/oauth-authorization-server (path-aware)
  • 로그인은 Fecit 동의 페이지에서 진행 (Google·Apple·아이디/비밀번호) — 비밀번호는 클라이언트에 전달되지 않습니다
  • access 토큰 수명 14일, refresh 토큰 90일; 커넥터 제거로 언제든 폐기

데이터 접근

  • tool은 본인 데이터에만 접근하며, Fecit 앱과 동일한 권한을 따릅니다.
  • 각 tool은 기존 Fecit API 엔드포인트를 재사용 — 별도의 권한 표면이 없습니다.
  • tool은 읽기·쓰기·파괴적으로 표시되어, 클라이언트가 확인 흐름을 걸 수 있습니다.

Tools (57)

읽기쓰기파괴적· param* = 필수

tool 설명은 서버가 제공하는 원문(영어)입니다.

Tasks

list_tasks읽기

List the user's task records (execution instances). Filter by keyword, state, date range (ISO 8601), or project. Returns brief entries — use get_task for full detail.

keyword: stringstate: registered | started | completed | cancelledfrom_date: stringto_date: stringproject_id: stringlimit: integerskip: integer
get_task읽기

Get a task record in full detail, including all structured writing fields (description, target, expectation, obstacle, stakes, result, retrospect), schedule, state, and satisfaction.

task_id*: string
create_task쓰기

Create a task record. priority/difficulty 1-5, dates ISO 8601, project_id links it to a goal. Title only — add a description later via update_task_writing only if the user dictates one. reminder_minutes_before (needs start_date): 0/5/15/30/60/1440; omit = none.

start_date: stringend_date: stringduration_seconds: integerpriority: integerdifficulty: integerproject_id: stringreminder_minutes_before: integer
update_task쓰기

Change a task record's fields after creation — pass only what changes. start_date/end_date set the schedule (ISO 8601); reminder_minutes_before is 0/5/15/30/60/1440 before start (needs a start_date); satisfaction 1-5 rates a completed task; priority/difficulty 1-5; point_color is the star color; address is a place name; instruction is how-to guidance; assigned_to is an achiever id (project tasks only); duration_seconds is planned duration. (To change state use set_task_state; for writing spaces target/result/… use update_task_writing.)

task_id*: stringstart_date: stringend_date: stringreminder_minutes_before: integersatisfaction: integerpriority: integerdifficulty: integerpoint_color: peach | salmon | scarlet | maple | apricot | lemon | lime | avocado | mint | seafoam | water | sky | peacock | indigo | violet | lavender | arctic | steel | charcoal | midnightaddress: stringinstruction: stringassigned_to: stringduration_seconds: integer
set_task_state쓰기

Change a task record's state (registered → started → completed / cancelled).

task_id*: stringstate*: registered | started | completed | cancelled
set_focused_task쓰기

Set (or unset) the user's single focused task — the one task to concentrate on now. Focusing a task automatically unfocuses any previously focused task.

task_id*: stringis_focused: boolean
update_task_writing쓰기

Write one of a task's structured writing spaces (Fecit core). Fields: target=current situation; expectation=desired change; obstacle=what's in the way; stakes=cost if it fails; result=what happened; retrospect=lessons; also description. Plain text with newlines OK.

task_id*: stringfield*: description | target | expectation | obstacle | stakes | result | retrospectvalue*: string
add_subtasks쓰기

Split a big task into a sequential chain of subtasks linked in order (step 1 → 2 → …). Use when a task feels too big and the user wants concrete next steps. Provide 2-5 SHORT ordered action titles (never numbered in the text); never more than 5. Steps append after existing ones; don't over-split a simple to-do.

task_id*: stringtitles*: array
delete_task파괴적

Permanently delete a task record. This cannot be undone.

task_id*: string

Task preparation & rules

add_preparation_item쓰기

Add a preparation item to a task record (what's needed to do it). materials/tools take quantity+unit, venue takes address, personnel takes specialty, qualification takes issuer; cost is free text. Existing items are in get_task (each has an `order`).

task_id*: stringcategory*: materials | tools | venue | personnel | qualificationdescription: stringquantity: stringunit: stringaddress: stringspecialty: stringissuer: stringcost: string
remove_preparation_item파괴적

Remove a preparation item from a task record by its `order` (from get_task).

task_id*: stringcategory*: materials | tools | venue | personnel | qualificationorder*: integer
add_response_rule쓰기

Add a response rule (implementation intention) to a task record — an if-then plan: when `situation` happens, do `response`. Existing rules are visible in get_task (each has an `order`).

task_id*: stringsituation*: stringresponse*: string
remove_response_rule파괴적

Remove a response rule from a task record by its `order` (from get_task).

task_id*: stringorder*: integer

Task templates

search_task_templates읽기

Search the user's task templates (reusable blueprints in the Library).

keyword: stringlimit: integerskip: integer
get_task_template읽기

Get a task template in full detail.

template_id*: string
create_task_from_template쓰기

Instantiate a task record from a template, optionally scheduling it.

template_id*: stringstart_date: stringend_date: string

Projects (Goals)

list_projects읽기

List the user's projects. A project IS a goal (not a folder), carrying target/expectation/result/retrospect.

state: registered | started | completedkeyword: stringlimit: integerskip: integer
get_project읽기

Get a project (goal) in full detail: goal-definition fields (target, expectation, obstacle, stakes), outcome fields (result, retrospect, satisfaction), state, dates, and milestones.

project_id*: string
create_project쓰기

Create a new project (goal). abbreviation is a short code (e.g. 'FIT' for a fitness goal) used in task codes.

abbreviation*: string
update_project_goal쓰기

Write into a project's goal-definition or outcome fields. target: the concrete goal / expectation: anticipated outcome / obstacle: foreseen blockers / stakes: why it matters / result: what actually happened / retrospect: lessons learned.

project_id*: stringfield*: description | target | expectation | obstacle | stakes | result | retrospectvalue*: string
set_project_state쓰기

Change a project's state.

project_id*: stringstate*: registered | started | completed
delete_project파괴적

Permanently delete a project (goal) along with its goal fields, journal, and milestones. This cannot be undone.

project_id*: string
add_project_journal쓰기

Add a journal entry to a project — an in-progress checkpoint note on how the goal is going.

project_id*: stringcontent*: string
list_project_journal읽기

List a project's journal entries (newest first).

project_id*: stringlimit: integerskip: integer
add_project_milestone쓰기

Add a milestone (intermediate goal checkpoint) to a project. Milestones deliberately do not link to tasks.

project_id*: stringtarget_date: string
set_milestone_state쓰기

Mark a project milestone as achieved (or back to pending). Get milestone_key from get_project's milestones array.

project_id*: stringmilestone_key*: stringstate*: pending | achieved
get_project_activity읽기

Get a project's activity feed — who did what (task completions, journal entries, member joins, state changes, milestone achievements). Useful for shared projects.

project_id*: stringlimit: integercursor: string

Memos

search_memos읽기

Search the user's memo records by keyword and/or project.

keyword: stringproject_id: stringlimit: integerskip: integer
get_memo읽기

Get a memo record in full, including its content.

memo_id*: string
create_memo쓰기

Create a memo record. Plain text content with newlines is accepted.

content: stringproject_id: string
update_memo_content쓰기

Replace a memo's content. Plain text with newlines is accepted.

memo_id*: stringcontent*: string
delete_memo파괴적

Permanently delete a memo record. This cannot be undone.

memo_id*: string

Reviews

list_daily_reviews읽기

List the user's daily reviews in a date range (newest first).

from_date: stringto_date: string
write_daily_review쓰기

Create or update the daily review for a given date (ISO 8601, the day being reviewed). satisfaction is 1-5.

date*: stringdescription: stringsatisfaction: integer
write_weekly_review쓰기

Create or update the weekly review for the week starting at week_start (ISO 8601 datetime — local midnight of the user's week start day, as provided by the weekly-review prompt or list_weekly_reviews). satisfaction is 1-5.

week_start*: stringdescription: stringsatisfaction: integer

Labels

list_labels읽기

List the user's labels (color-coded tags for tasks/memos). Filter by keyword or state.

keyword: stringstate: active | archivedlimit: integerskip: integer
create_label쓰기

Create a label (color-coded tag). point_color is one of the 20 Fecit colors.

name*: stringpoint_color: peach | salmon | scarlet | maple | apricot | lemon | lime | avocado | mint | seafoam | water | sky | peacock | indigo | violet | lavender | arctic | steel | charcoal | midnightdescription: string
set_label_state쓰기

Archive a label (hide it) or reactivate it.

label_id*: stringstate*: active | archived
delete_label파괴적

Permanently delete a label and its links to tasks/memos.

label_id*: string
link_label쓰기

Attach a label to a task record OR a memo record. Provide exactly one of task_id / memo_id.

label_id*: stringtask_id: stringmemo_id: string
unlink_label파괴적

Detach a label from a task/memo by its label-link id (get the id from list_label_links).

label_link_id*: string
list_label_links읽기

List the label links on a task record OR a memo record (provide exactly one). Each entry has its link id (for unlink_label) and the nested label.

task_id: stringmemo_id: string

Folders

list_folders읽기

List folders for one of the four item trees (task/memo × record/template). Folders are exclusive containers, separate from labels and projects. scope='project' needs project_id.

target_type*: task_record | memo_record | task_template | memo_templatescope: personal | projectproject_id: string
create_folder쓰기

Create a folder in one of the four item trees. Nest it under parent_folder_id if given. scope='project' needs project_id.

name*: stringtarget_type*: task_record | memo_record | task_template | memo_templatescope: personal | projectparent_folder_id: stringproject_id: string
update_folder쓰기

Rename a folder and/or move it under another parent folder. Only the fields you pass change.

folder_id*: stringname: stringparent_folder_id: string
delete_folder파괴적

Delete a folder and its subfolders (cascade). Items inside are NOT deleted — they just leave the folder.

folder_id*: string
move_item_to_folder쓰기

Move a task/memo (record or template) into a folder, or remove it from its folder (omit folder_id). item_type selects which of the four trees the folder belongs to.

item_type*: task_record | memo_record | task_template | memo_templateitem_id*: stringfolder_id: stringscope: personal | project

Routines

list_routines읽기

List the user's routines (recurring task generators). Filter by period (daily/weekly) and whether they're archived. With no period, returns both daily and weekly.

period: daily | weeklyarchived: booleanproject_id: stringlimit: integerskip: integer
get_routine읽기

Get a single routine in full detail.

routine_id*: string
create_routine쓰기

Create a routine that spawns a task on a schedule. period='daily'/'weekly'. start_date (ISO 8601) sets when it begins and the time of day; for 'weekly' give weekday. Base it on a task_template_id or give a title. end_date optionally stops it; reminder_minutes_before reminds on each spawned task.

period*: daily | weeklystart_date*: stringdescription: stringweekday: mon | tue | wed | thu | fri | sat | suntask_template_id: stringreminder_minutes_before: integerend_date: stringproject_id: string
delete_routine파괴적

Permanently delete a routine. Tasks it already spawned are not affected.

routine_id*: string

Web links

add_web_link쓰기

Attach a web link (URL) to a task or memo (record or template). item_type selects which.

item_type*: task_record | memo_record | task_template | memo_templateitem_id*: stringurl*: stringdescription: string
remove_web_link파괴적

Remove a web link from a task/memo by its order index (see the item's web_links list).

item_type*: task_record | memo_record | task_template | memo_templateitem_id*: stringorder*: integer

Insights

get_streak읽기

Get the user's completion streak: current_streak, longest_streak, completed_today, and streak start/last-completion dates. Use to recognize and celebrate their momentum.

get_achievements읽기

List the user's achievements (badges) with progress — each has title, description, threshold, progress, and achieved_at (null if not yet earned). Use to acknowledge milestones.

get_dana_balance읽기

Get the user's current Dana balance (Fecit's reward points).

Utility

current_datetime읽기

Current datetime in the user's local timezone. Call before interpreting relative dates ('today'/'tonight'/'tomorrow'). When passing a datetime to other tools, output local wall-clock time (e.g. 2026-06-13T21:00:00); the system converts it to the correct instant.

연결 방법을 찾으시나요? Claude 연결 (MCP)를 보세요.