Skip to main content
Glama

Dutify

pm_list_reference_data

Read-onlyIdempotent

List a Dutify reference-data enum (status types, custom-field types, view types, automation action/condition types, access levels, etc.). Returns the authoritative set of values the backend accepts — call this BEFORE guessing enum strings on a create/update payload to avoid 400s. Categories:

  • custom-field-types: Custom-field type catalogue: text, number, dropdown, date, money, file, rollup, formula, … Use the identifier from each row as the fieldType value when creating a custom field via /v1/lists/{id}/custom-fields or pm_create_custom_field.

  • custom-field-icon-options: Custom-field icon catalogue: supported iconNames, emojiNames, and defaultIconsByFieldType. Use one of these keys as the emoji value; keep custom-field names plain. Agent preference: choose a semantically matching emojiNames key when available (severity/urgency=fire, target/goal=direct_hit, launch=rocket, approval/success=white_check_mark, location=pushpin, budget=moneybag); use iconNames for structural/type affordances like CalendarBlank.

  • resource-view-types: Resource view types: list (1), board (2), table (3), dashboard (4), gantt (5), calendar (6), gallery (7), whiteboard (9). The numeric typeId is what /v1/views and view-config endpoints accept.

  • status-types: Status type enum — ACTIVE, DONE, CLOSED. Used when grouping tasks or filtering for visibility.

  • activity-types: Activity log event types — status_changed, task_created, comment_added, automation_executed, etc.

  • automation-action-types: Automation action types — SET_STATUS, SET_PRIORITY, SET_ASSIGNEES, ADD_COMMENT, etc. Use when building an automation rule.

  • automation-condition-types: Automation condition types (predicate categories) — STATUS, PRIORITY, DUE_DATE, CUSTOM_FIELD, etc.

  • automation-field-operators: Operators valid in automation condition predicates — equals, not_equals, greater_than, in, is_set, etc.

  • access-levels: Entity access levels — VIEW, COMMENT, EDIT, FULL — used in user/team access grants.

  • workspace-access-level-permissions: Workspace role → permission map (OWNER/ADMIN/MEMBER/GUEST). Tells you which capabilities each role grants.

Auth: the resources are @PermitAll for anonymous callers, but the ApiKeyScopeFilter still gates API-key requests. The metadata:read scope covers custom-field-types / custom-field-icon-options / resource-view-types / status-types / activity-types / access-levels / workspace-access-level-permissions. The three automation-* categories live under /v1/automation/* and require automations:read instead. If the API key lacks the required scope the call returns 403 — pick a category your key covers, or have the user mint a key with both metadata:read and automations:read.

Input Schema

NameRequiredDescriptionDefault
accountNoMulti-account auth only: name of the account from X-Dutify-Accounts to use for this call. Ignored in single-account mode (X-API-Key header). When multiple accounts are configured and this is omitted, the call fails with ACCOUNT_REQUIRED listing the available names. list_accounts never requires a selection.
categoryYesWhich reference-data enum to list.
workspaceNoWorkspace identifier or exact name for this call. Overrides the configured workspace. For personal keys, discover candidates with list_workspaces and select explicitly. Does not change other calls or expand a workspace key's access.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/non-destructive, and the description goes well beyond them by disclosing the auth model: @PermitAll resources still gated by ApiKeyScopeFilter, which categories need `metadata:read` versus `automations:read`, and that a missing scope yields 403 with a concrete remedy. That is exactly the kind of failure-mode context annotations cannot express.

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 critical guidance (call before guessing, avoid 400s) is front-loaded, and the bulleted category structure is easy to scan. It is long, and some of the emoji-selection preference detail is more verbose than an agent strictly needs, but almost every line carries operational value.

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?

With no output schema, the description correctly explains what comes back ('the authoritative set of values the backend accepts') and how each category's rows are keyed. Permissions, scope requirements, and per-category purpose are all covered, leaving no obvious gap for a read-only list tool.

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

Parameters5/5

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

Schema coverage is already 100%, so baseline would be 3, but the description adds real semantic content for the `category` enum — each of the ten values is explained with the shape of its output and, critically, how its values are consumed downstream. This turns a bare enum list into actionable parameter guidance.

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 first sentence gives a specific verb and resource ('List a Dutify reference-data enum') and immediately scopes it with concrete examples of the enums covered. It is clearly distinguished from siblings such as pm_list_task_types or pm_create_custom_field, which are named as consumers rather than alternatives.

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

Usage Guidelines5/5

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

It states an explicit when: 'call this BEFORE guessing enum strings on a create/update payload to avoid 400s.' Each category block adds its own usage rule (e.g. use the `identifier` as the `fieldType` for pm_create_custom_field, use typeId for /v1/views), so the agent knows both when to call and what to do with the result.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources