Skip to content
LFG ListLFG List Help

MCP tools reference

Requires Pro. Configure the connection with the setup guide first.

The MCP server exposes tools that operate through normal LFG List permissions. A tool can only see and change data available to the user behind the Personal Access Token.

Tool What it does
get_config_status Shows non-secret MCP configuration status.
list_projects Lists projects visible to the token owner.
get_project Gets one project by id, name, or configured default project.
update_project Updates basic project details such as name, icon, color, and whether new items open immediately.
set_project_features Replaces the enabled item fields/features for a project. Newly enabled fields appear as grid columns; disabled fields are removed from the grid.
set_project_labels Replaces all project labels. Existing item references to removed labels are cleaned up by the backend.
set_project_statuses Replaces all project statuses, including status kinds and check/completion actions.
configure_project_custom_fields Replaces the ordered custom-field schema and visible-column layout. Existing fields must be archived rather than omitted. Requires LFG Pro for custom-field changes.
configure_project_custom_field_option Creates or updates one select-field option independently, including its name, color, order, and archive state.
Tool What it does
list_items Lists items in a project, optionally filtered by search, active/complete status kind, trash state, and limit.
get_item Gets full item details, including description, resolved status/labels/assignees, comments, and activity.
create_item Creates a new item in a project, with optional priority.
update_item Updates an item’s title, short note, description, or priority.
move_item_to_trash Moves an item to trash without permanent deletion or a recurring successor; returns item details including trash metadata.
restore_item Restores an item from trash, preserving its identity, content, and workflow status. Already unarchived items are returned unchanged.
check_item Performs the configured checkmark action using the expected starting status; returns the item and any recurring successor.
update_item_status Moves an item to another status by status id.
set_item_custom_field_value Sets or clears one typed custom-field value without replacing the item’s other custom-field values.
set_item_assignees Replaces assignees using project member IDs and/or email addresses; an empty ID array clears them.
reorder_item Moves an item between optional previous and next neighbors in manual order.
set_checklist_item_checked Checks or unchecks a checklist branch using its stable node ID and updates ancestor completion.
add_item_comment Adds a comment to an item.
Tool What it does
create_project_label Creates a project label.
update_project_label Updates a project label name or color.
delete_project_label Deletes a project label and lets the backend remove item references.
set_item_labels Replaces an item’s labels with the supplied label ids.
add_item_label Adds one project label to an item.
remove_item_label Removes one project label from an item.

set_project_labels and set_project_statuses are full replacement tools. Include existing ids for labels and statuses that should be kept.

Currently, the MCP server does not expose tools to:

  • Create projects or manage invitations and project membership.
  • Set item due dates or recurrence through dedicated tools.
  • Permanently delete projects or items.
  • Empty trash.
  • Manage users, billing, or system administration.

If an agent needs one of those actions, it should tell you the action is not available through MCP yet instead of guessing.

The MCP server authenticates each request with your Personal Access Token and then calls the LFG List API as you.

That means:

  • Project membership controls what the agent can see.
  • Normal backend validation still applies.
  • Revoking the token immediately removes the agent’s access.

Use check_item with an item/project selector and the expectedStatusId from the item you reviewed. This follows the same checkmark rules as the app, including recurring-item behavior. If the starting status has changed, the operation safely does nothing. You can supply a stable operationId (24 hexadecimal characters) and reuse it when retrying the same action. The result contains the authoritative item and any new recurring item.

Use move_item_to_trash with projectId or projectName (or your configured default project), and itemId or itemKey. IDs take precedence. The tool uses normal item-write permissions and returns the updated item, including its archive metadata. Explicitly moving a recurring item to trash does not create its next occurrence. Use restore_item to bring it back.

For retries, supply the same operationId of 24 lowercase hexadecimal characters for the same action. Without it, each call creates a new operation; separate operations on an already trashed item can add duplicate activity. Use list_items with archived: true to find items in trash.

Use restore_item with projectId or projectName (or your configured default project) and itemId or itemKey. IDs take precedence. Both ID and key lookups work for items in trash, including get_item.

For example, call restore_item with:

{ "projectName": "Example Project", "itemKey": "EX-29" }

Restoration preserves the item’s identity, content, labels, priority, and workflow status. It does not duplicate the item or create a recurring successor. An already unarchived item is returned unchanged, with no extra restoration activity.

For retries, reuse an optional operationId of 24 lowercase hexadecimal characters. A retry with that ID returns the current item without restoring it again. Use a new ID for a later intentional restoration if the item has since been moved back to trash.

Editing an item in trash returns an error telling you to call restore_item first. Restoration requires normal item-write permission; an edit never restores implicitly.

create_item and update_item accept priority with one of these exact values: Low, Medium, High, or Urgent.

Create an item with a priority:

{ "projectName": "Example Project", "title": "Review parity gap", "priority": "High" }

Change only an existing item’s priority using update_item:

{ "projectName": "Example Project", "itemKey": "EX-86", "priority": "High" }

Omitting priority creates an item at Medium or leaves an existing item’s priority unchanged. Invalid values are rejected without changing the item. Use get_item with the same project and item selector to confirm the saved result.

Use projectId or projectName, and itemId or itemKey where supported. IDs win when both forms are supplied. Read returned IDs rather than inventing them. Hosted connections should provide explicit project selectors instead of assuming a local default project.

list_items accepts search, statusKind (active or complete), archived, and limit (up to 100). Use archived: true to list Trash. Unlike the app’s project-wide search UI, MCP list filters can be combined; do not assume a search implicitly includes Trash or that a limited result is a complete project export.

set_item_assignees replaces the full assignee set. Pass the IDs or emails of project members to keep; assigneeIds: [] clears all assignees. If both IDs and emails are supplied, they are combined.

reorder_item accepts previous and next item selectors. Supply only the next neighbor to move to the top, only the previous neighbor to move to the bottom, or both to place the item between them.

For set_checklist_item_checked, read the item’s description first and pass the actual task-item nodeId with checked: true or false. This updates that node and all its descendants, then recalculates ancestor completion, without replacing the whole description. A parent is checked only when all its descendant leaves are checked; the app shows a mixed checkbox when some leaves are checked. Full description saves also derive parent completion from the supplied children. Expanding or collapsing branches is local app presentation and is not changed by this tool.

Read the project before using configure_project_custom_fields: it replaces the ordered field schema and visible-column layout. Keep existing fields and archive unwanted ones instead of omitting them. Manage select options independently with configure_project_custom_field_option. Use set_item_custom_field_value for a single item’s value, without overwriting its other fields.