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.
Connection and project tools
Section titled “Connection and project tools”| 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. |
Item tools
Section titled “Item tools”| 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. |
Label tools
Section titled “Label tools”| 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.
Current limitations
Section titled “Current limitations”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.
Permission model
Section titled “Permission model”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.
Check an item
Section titled “Check an item”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.
Move an item to trash
Section titled “Move an item to trash”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.
Restore an item
Section titled “Restore an item”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.
Set priority
Section titled “Set priority”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.
Selectors and list scope
Section titled “Selectors and list scope”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.
Assignees, ordering, and checklists
Section titled “Assignees, ordering, and checklists”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.
Custom-field changes
Section titled “Custom-field changes”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.