Skip to main content
Glama
andreasd083

amazing-marvin-complete-mcp

create_category_or_project

Creates a category or project with color, icon, labels, note, and parent, plus projects-only due dates, priorities, and scheduling.

Instructions

Create a category or project with color, icon, labels and note. Create a category (via /doc/create, Full Access Token) or a project (via /addProject). Categories can contain categories; projects cannot. day/due_date/priority/frog are rejected for kind='category' for a structural reason, not a technical one: a category can never be completed or checked off, and deadline, scheduling, priority and frog belong to things that can be finished — projects and tasks. The API accepts the fields on categories (live-tested 2026-09-11) but they are not meaningful there (rule 2026-09-11). label_ids applies to both categories and projects. startDate/endDate cannot be set at creation (/addProject ignores them, verified live 2026-08-29) — use update_category_or_project afterwards.

Note: project titles must not contain '#word' — /addProject has the same corruption bug as /addTask (the string is stored unresolved as parentId and the project becomes invisible) but ignores the X-Auto-Complete header (verified against the live API 2026-08-20), so the client blocks it locally before any API call. Category titles are unaffected (/doc/create parses nothing).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dayNoProjects ONLY: schedule on YYYY-MM-DD or 'today' (blocked for categories — a category is never completed)
frogNoProjects ONLY: frog marker 1=normal, 2=baby, 3=monster
iconNoIcon name with a library prefix, e.g. 'lucide-Rocket' (Lucide, PascalCase) or 'huge-happy' (verified in the app 2026-08-29); the app's picker also allows emoji. Rendered directly on categories; on projects only when Master List → Configure View → 'Show Custom Icon On' includes projects ('Categories & Projects' verified in the app 2026-08-31, 'Just Projects' 2026-09-18; the earlier wording 'projects never render their own icon' was wrong)
kindYesKind
noteNoNote
colorNoColor '#rrggbb'. Categories ONLY at creation — /addProject ignores the field (verified live 2026-08-29); set project color with update_category_or_project afterwards
titleYesName
due_dateNoProjects ONLY: deadline YYYY-MM-DD (blocked for categories — a category is never completed)
priorityNoProjects ONLY: priority as a string — high=Most important (red), mid=Very important (orange), low=Important (yellow, the one-star level — NOT the app's 'Low priority', which projects do not have). Projects do not use isStarred (verified live 2026-08-29; mapping verified against the app's code 2026-08-30)
label_idsNoLabel IDs (from get_labels) — categories AND projects: categories have labels, stored in the same field as projects' and rendered in the app (live-tested + verified in the app 2026-09-11)
parent_idNoID of the parent category, or 'root' for the top levelroot
review_dateNoReview date YYYY-MM-DD (Review Date strategy)
planned_weekNoPlan into a week: the week's Monday YYYY-MM-DD (Planning Ahead strategy; mainly projects)
planned_monthNoPlan into a month: YYYY-MM (Planning Ahead strategy; mainly projects)
time_estimate_minutesNoTime estimate in minutes. NOTE: rendered as the project's OWN estimate — the UI does not aggregate it with the children's, despite the wiki's claim (verified in the app 2026-08-29)

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv1.7.2
    • changedInput schema / properties / icon / description
      Previous value: -"Icon name with a library prefix, e.g. 'lucide-Rocket' (Lucide, PascalCase) or 'huge-happy' (verified in the app 2026-08-29); the app's picker also allows emoji. Rendered directly on categories; on projects only with Master List → Configure View → 'Show Custom Icon On' = 'Categories & Projects' (verified in the app 2026-08-31 — the earlier wording 'projects never render their own icon' was wrong)"New value: +"Icon name with a library prefix, e.g. 'lucide-Rocket' (Lucide, PascalCase) or 'huge-happy' (verified in the app 2026-08-29); the app's picker also allows emoji. Rendered directly on categories; on projects only when Master List → Configure View → 'Show Custom Icon On' includes projects ('Categories & Projects' verified in the app 2026-08-31, 'Just Projects' 2026-09-18; the earlier wording 'projects never render their own icon' was wrong)"
  2. Changed1 schema field changedv1.7.1
    • changedInput schema / properties / icon / description
      Previous value: -"Icon name with a library prefix, e.g. 'lucide-Rocket' (Lucide, PascalCase) or 'huge-happy' (verified in the app 2026-08-29); the app's picker also allows emoji. Categories ONLY — projects NEVER render their own icon (the flag stays; only the color is used)"New value: +"Icon name with a library prefix, e.g. 'lucide-Rocket' (Lucide, PascalCase) or 'huge-happy' (verified in the app 2026-08-29); the app's picker also allows emoji. Rendered directly on categories; on projects only with Master List → Configure View → 'Show Custom Icon On' = 'Categories & Projects' (verified in the app 2026-08-31 — the earlier wording 'projects never render their own icon' was wrong)"
  3. Changed3 schema fields changedv1.6.0
    • changedInput schema / properties / day / description
      Previous value: -"Projects ONLY: schedule on YYYY-MM-DD or 'today' (categories cannot be scheduled)"New value: +"Projects ONLY: schedule on YYYY-MM-DD or 'today' (blocked for categories — a category is never completed)"
    • changedInput schema / properties / due_date / description
      Previous value: -"Projects ONLY: deadline YYYY-MM-DD (categories have no dueDate)"New value: +"Projects ONLY: deadline YYYY-MM-DD (blocked for categories — a category is never completed)"
    • changedInput schema / properties / label_ids / description
      Previous value: -"Projects ONLY: label IDs (from get_labels)"New value: +"Label IDs (from get_labels) — categories AND projects: categories have labels, stored in the same field as projects' and rendered in the app (live-tested + verified in the app 2026-09-11)"
  4. Changed1 schema field changedv1.4.0
    • changedInput schema / properties / priority / description
      Previous value: -"Projects ONLY: priority as a string — projects do not use isStarred (verified live 2026-08-29)"New value: +"Projects ONLY: priority as a string — high=Most important (red), mid=Very important (orange), low=Important (yellow, the one-star level — NOT the app's 'Low priority', which projects do not have). Projects do not use isStarred (verified live 2026-08-29; mapping verified against the app's code 2026-08-30)"
  5. First observedv1.3.0

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes far beyond the sparse annotations by disclosing real behavioral traits: endpoint routing, Full Access Token requirement, the fact that /addProject ignores certain fields, and a critical corruption bug when project titles contain '#word'. It also notes that the client blocks the bug locally before any API call, which materially changes how an agent should behave. This is exceptional transparency for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long and detailed, but nearly every sentence carries operational necessity for a high-risk create operation. It front-loads the core purpose and then organizes caveats by topic, ending with a clearly separated corruption-bug note. It is dense rather than bloated, and the detail is justified by the number of supported fields and edge cases.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 15 parameters, only 2 required, a complex category-vs-project split, and minimal annotations, this description is remarkably complete. It covers auth requirements, field applicability, sibling-tool routing, unsupported fields, and a serious title-validation bug. With an output schema present, there is no need for the description to explain return values.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds real cross-parameter meaning: label_ids applies to both categories and projects, day/due_date/priority/frog are accepted by the API but meaningless for categories, and startDate/endDate are not settable at creation. These insights strengthen the interpretation of the schema without repeating it verbatim.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Create a category or project with color, icon, labels and note.' It also names the underlying endpoints (/doc/create and /addProject) and clarifies the nesting rule that distinguishes categories from projects. This is immediately distinguishable from sibling tools like update_category_or_project and create_task.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit guidance about when not to use this tool: startDate/endDate cannot be set at creation and should be handled with update_category_or_project afterwards, and project color must be set via update_category_or_project. It also explains why fields like day/due_date/priority/frog are not meaningful for categories. It does not explicitly contrast with create_task, but the dual resource name makes that boundary reasonably clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.