Focuh

ADHD system of record for agents: tasks, goals, loops, calendar, focus stats.

Sollte ich dies verwenden

Qualität und Sicherheit

A
Qualität der Beschreibung
98%
Vollständigkeit des Schemas
73%
Qualität der Benennung
98%
Risiko der Vergiftung
100%
Übereinstimmung der Berechtigungen
100%
Einhaltung des Protokolls
100%

Befunde (1)

  • LOWTool 'reorder_subtasks' description lacks action verbin reorder_subtasks

Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.

Kontextkosten

~1,965Tokens (Tool-Definitionen)
~804 BTypische Antwortgröße
Mittlere Auswirkung auf die Aufmerksamkeit (1.54% von 128k Kontext)

Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.

Installieren

Installation mit einem Klick

Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:

{
  "mcpServers": {
    "focuh": {
      "url": "https://www.focuh.com/api/mcp"
    }
  }
}

Remote-Endpunkte

https://www.focuh.com/api/mcpstreamable-http

Was es kann

Tool-Inventar

Tools (16)

🟢 Nur lesen🟡 Schreiben🔴 Löschen⚪ Unbekannt
🟢get_tasks

Today/tomorrow tasks with id, date and priority. Call first to get refs.

Eingabe-Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
🟡create_tasks(tasks)

Create tasks, each with optional nested subtasks. Defaults: today, 30 min.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "tasks": {
      "type": "array",
      "maxItems": 100,
      "description": "Tasks to create",
      "items": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "maxLength": 500,
            "description": "Title"
          },
          "date": {
            "type": "string",
            "maxLength": 10,
            "description": "Date"
          },
          "estimatedMinutes": {
            "type": "number",
            "minimum": 0,
            "maximum": 1440,
            "description": "Minutes"
          },
          "priority": {
            "type": "string",
            "enum": [
              "critical",
              "important",
              "nice-to-have"
            ],
            "description": "Priority"
          },
          "parent": {
            "type": "string",
            "maxLength": 500,
            "description": "Parent"
          },
          "goalId": {
            "type": "string",
            "maxLength": 64,
            "description": "Goal"
          },
          "loopBucket": {
            "type": "string",
            "enum": [
              "pressing",
              "important",
              "backlog",
              "waiting"
            ],
            "description": "Undated loop; excludes date/priority; waiting=parked"
          },
          "subtasks": {
            "type": "array",
            "maxItems": 100,
            "items": {
              "type": "object",
              "properties": {
                "title": {
                  "type": "string",
                  "maxLength": 500
                },
                "estimatedMinutes": {
                  "type": "number",
                  "minimum": 0,
                  "maximum": 1440
                }
              },
              "required": [
                "title"
              ]
            }
          }
        },
        "required": [
          "title"
        ]
      }
    }
  },
  "required": [
    "tasks"
  ]
}
🟡update_tasks(tasks)

Change tasks: date (moves the day), priority, title, estimate, done, time slot.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "tasks": {
      "type": "array",
      "maxItems": 100,
      "description": "Changes to apply, one entry per task",
      "items": {
        "type": "object",
        "properties": {
          "ref": {
            "type": "string",
            "maxLength": 500,
            "description": "Task id, #N, or title"
          },
          "title": {
            "type": "string",
            "maxLength": 500,
            "description": "Title"
          },
          "estimatedMinutes": {
            "type": "number",
            "minimum": 0,
            "maximum": 1440,
            "description": "Minutes"
          },
          "completed": {
            "type": "boolean",
            "description": "Done"
          },
          "date": {
            "type": "string",
            "maxLength": 10,
            "description": "Date"
          },
          "priority": {
            "type": "string",
            "enum": [
              "critical",
              "important",
              "nice-to-have"
            ],
            "description": "Priority"
          },
          "startTime": {
            "type": "string",
            "maxLength": 5,
            "description": "Start"
          },
          "endTime": {
            "type": "string",
            "maxLength": 5,
            "description": "End"
          },
          "goalId": {
            "type": "string",
            "maxLength": 64
          },
          "loopBucket": {
            "type": "string",
            "enum": [
              "pressing",
              "important",
              "backlog",
              "waiting"
            ],
            "description": "Into Loops or re-bucket; excl. date; waiting=parked"
          }
        },
        "required": [
          "ref"
        ]
      }
    }
  },
  "required": [
    "tasks"
  ]
}
🔴delete_tasks(tasks, date, filter)

Delete tasks by ref, every task on a date, or all completed. Subtasks go too.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "tasks": {
      "type": "array",
      "maxItems": 100,
      "items": {
        "type": "string",
        "maxLength": 500
      }
    },
    "date": {
      "type": "string",
      "maxLength": 10
    },
    "filter": {
      "type": "string",
      "enum": [
        "completed"
      ]
    }
  }
}
🟢get_subtasks(ref)

List subtasks of a parent. Returns ids usable as refs.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "ref": {
      "type": "string",
      "maxLength": 500,
      "description": "Task id, #N, or title"
    }
  },
  "required": [
    "ref"
  ],
  "additionalProperties": false
}
⚪reorder_subtasks(ref, order)

Reorder a parent's subtasks. Pass the complete new order, every one once.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "ref": {
      "type": "string",
      "maxLength": 500,
      "description": "Task id, #N, or title"
    },
    "order": {
      "type": "array",
      "maxItems": 100,
      "items": {
        "type": [
          "number",
          "string"
        ],
        "maxLength": 64
      }
    }
  },
  "required": [
    "ref",
    "order"
  ]
}
🟢get_loops

Loops — undated intentions in 4 buckets (pressing/important/backlog/waiting=parked). Call before pull_loops.

Eingabe-Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
⚪pull_loops(loops, date)

Copy loops onto a date as linked tasks — each loop stays in Loops. Idempotent per loop+date.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "loops": {
      "type": "array",
      "maxItems": 100,
      "items": {
        "type": "string",
        "maxLength": 500
      }
    },
    "date": {
      "type": "string",
      "maxLength": 10
    }
  },
  "required": [
    "loops"
  ]
}
🟢get_calendar(date)

Events + scheduled/unscheduled tasks for a date. Check before scheduling.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "date": {
      "type": "string",
      "maxLength": 10
    }
  },
  "additionalProperties": false
}
🟢get_goals(horizon, status)

Goals by horizon (week/month/year/decade) — exactly what the app's Goals view shows.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "horizon": {
      "type": "string",
      "enum": [
        "week",
        "month",
        "year",
        "decade"
      ]
    },
    "status": {
      "type": "string",
      "enum": [
        "active",
        "completed",
        "all"
      ]
    }
  },
  "additionalProperties": false
}
🟡create_goal(title, horizon, bottleneckNote, lever)

Create a goal in a horizon, with optional bottleneck note and lever.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "maxLength": 500
    },
    "horizon": {
      "type": "string",
      "enum": [
        "week",
        "month",
        "year",
        "decade"
      ]
    },
    "bottleneckNote": {
      "type": "string",
      "maxLength": 5000
    },
    "lever": {
      "type": "string",
      "maxLength": 5000
    }
  },
  "required": [
    "title",
    "horizon"
  ]
}
🟡update_goal(id, title, horizon, status, bottleneckNote, ...)

Update goal fields: title, horizon (moves section), status, bottleneckNote, lever.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "maxLength": 64
    },
    "title": {
      "type": "string",
      "maxLength": 500
    },
    "horizon": {
      "type": "string",
      "enum": [
        "week",
        "month",
        "year",
        "decade"
      ]
    },
    "status": {
      "type": "string",
      "enum": [
        "active",
        "completed",
        "paused",
        "dropped"
      ]
    },
    "bottleneckNote": {
      "type": "string",
      "maxLength": 5000
    },
    "lever": {
      "type": "string",
      "maxLength": 5000
    }
  },
  "required": [
    "id"
  ]
}
🔴delete_goal(id)

Delete a goal by id. Linked tasks are kept and unlinked, never deleted.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "maxLength": 64
    }
  },
  "required": [
    "id"
  ],
  "additionalProperties": false
}
🟢get_focus_stats

Today/week focus minutes, streak, task completion rates.

Eingabe-Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
🟢get_journal(date)

Read a daily journal and recent dates. Preserve ^task markers when writing back.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "date": {
      "type": "string",
      "maxLength": 10
    }
  },
  "additionalProperties": false
}
🟡write_journal(content, date, mode)

Append or replace a journal. Read before replacing and preserve ^task markers.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "content": {
      "type": "string",
      "maxLength": 100000
    },
    "date": {
      "type": "string",
      "maxLength": 10
    },
    "mode": {
      "type": "string",
      "enum": [
        "append",
        "replace"
      ]
    }
  },
  "required": [
    "content"
  ],
  "additionalProperties": false
}

Community

Diesen Server bewerten

Nachweis

Aktuelle Beobachtungen

verifiziertVersion nicht aufgezeichnet16 Tools
verifiziertVersion nicht aufgezeichnet16 Tools