Skip to content

Connect an AI Assistant

Truetask has a built-in MCP server that lets AI assistants like Claude, ChatGPT, Gemini, and LM Studio read and manage your boards directly. Once connected, you can ask them to create tasks, update checklists, search your data, and more — without copy-pasting.

All communication goes through your own Truetask instance. Your data never leaves your server.

What You Can Do Once Connected

Once an AI is connected, it can:

  • Read your boards — lists, cards, members, tags, custom fields
  • Create and update tasks — assign members, set priorities, manage dates
  • Work with checklists — add items, check them off, reorder
  • Search — across tasks, boards, comments, tags, and checklists
  • Track time — start / stop timers, log manual entries
  • Manage automations — create, import, and export workflow automations
  • Organize — create folders and templates, clone boards

Getting Started

The fastest path is the built-in setup wizard.

From the app

  1. Click your profile avatar (top-right) and select AI Assistant
  2. The wizard asks which AI tool you're using
  3. It creates an API key and shows you the exact configuration to paste
  4. Paste the configuration into your AI tool and restart it

No manual setup required.

Supported tools

ToolWhere the config goes
Claude Code.mcp.json in your project folder
Claude Desktopclaude_desktop_config.json (edit via Settings → Developer → Edit Config)
ChatGPTSettings → Beta features → MCP Servers
GeminiSettings → Extensions → MCP Servers
LM StudioTools → MCP Servers
Other MCP clientsUse the HTTP endpoint directly (see Manual Configuration)

API Keys

API keys control what your AI assistant can do. Create and manage them from the AI Assistant dialog (profile menu) or Settings → API & Webhooks → API Tokens.

Scopes

ScopeWhat it allows
Read & WriteFull access — read, create, update, delete tasks, comments, time entries, etc. The default for most use cases.
Read OnlyList and view data, but no modifications. Good for dashboards or pure query assistants.

Key format

Every API key starts with tt_ followed by a long random string:

tt_874bb0d07566b19f1d5635bc3d32d146f7ba591755235064d83b63ad418de21b

Keys are shown only once

When you create a key, the full value is displayed once. Save it somewhere secure — you can't view it again, only revoke and create a new one.

Expiration

Keys don't expire by default. You can optionally set an expiration date when creating a key. Expired keys stop working immediately.

Revoking a key

Open the AI Assistant dialog, find the key, and click the delete icon. Revocation takes effect immediately.

Manual Configuration

If you prefer to configure manually, here are the formats for each tool.

Claude (Code and Desktop)

json
{
  "mcpServers": {
    "truetask": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://your-server/mcp",
        "--header",
        "Authorization: Bearer ${TRUETASK_KEY}"
      ],
      "env": {
        "TRUETASK_KEY": "tt_your_key_here"
      }
    }
  }
}
  • Claude Code — save as .mcp.json in your project root
  • Claude Desktop — paste into claude_desktop_config.json

ChatGPT

Same format as Claude. Paste into Settings → Beta features → MCP Servers.

Gemini

json
{
  "mcpServers": {
    "truetask": {
      "httpUrl": "https://your-server/mcp",
      "headers": {
        "Authorization": "Bearer tt_your_key_here"
      }
    }
  }
}

LM Studio

json
{
  "mcpServers": {
    "truetask": {
      "url": "https://your-server/mcp",
      "headers": {
        "Authorization": "Bearer tt_your_key_here"
      }
    }
  }
}

Generic HTTP Clients

Use the HTTP endpoint directly:

URL:    https://your-server/mcp
SSE:    https://your-server/mcp/sse
Header: Authorization: Bearer tt_your_key_here

Both Streamable HTTP (/mcp) and Server-Sent Events (/mcp/sse) are supported. Streamable HTTP is the recommended transport.

Available Tools

Connected AI assistants have access to dozens of tools organized by category.

Tool names follow <resource>_<action> so they group alphabetically by surface (cards_list, cards_create, cards_bulk_update, etc.). If you're upgrading from a pre-rename setup, see the Migration: Renamed Tools table at the bottom of this section.

Boards and Lists

ToolDescription
boards_listList all boards you're a member of
boards_getBoard details with members
boards_createCreate a board with default or custom lists
boards_updateChange name, status, or AI context
boards_cloneCopy a board's structure (without tasks)
boards_deleteDelete a board (requires confirmation)
lists_list / lists_create / lists_update / lists_deleteManage lists

Tasks

ToolDescription
cards_listList tasks with optional filters
cards_getFull task details
cards_createCreate a new task. Pass draft=true to create it as a private draft visible only to you
cards_bulk_createCreate many tasks on the same board in one call. Returns per-item success/failure
cards_updateUpdate any task field. Pass draft=false on a draft to publish it to the whole board
cards_moveMove a task between lists
cards_completeMark complete and move to done
cards_deleteMove a task to the board's trash. Pass permanent=true to skip the trash and delete immediately (board admins only).
cards_restoreRestore a trashed or archived task to its original list
cards_list_trashedList tasks currently in a board's trash, including their remaining retention window
cards_bulk_updateApply the same change to many tasks

Checklists

ToolDescription
checklists_listList checklist items on a task
checklists_createAdd an item
checklists_bulk_createAdd many items across one or more tasks in a single call
checklists_updateCheck off or edit
checklists_deleteRemove

Comments

ToolDescription
comments_list / comments_create / comments_update / comments_deleteManage comments on a task
comments_bulk_createPost many comments across one or more tasks in a single call

Tags and Custom Fields

ToolDescription
tags_list / tags_createManage tags
xattr_fields_list / xattr_fields_createManage custom field definitions
xattr_values_listList a single card's custom field values
xattr_values_list_for_boardList custom field values across every card on a board (optionally filtered to one field). Useful for cross-card analysis like "average story points this sprint"
xattr_values_createSet a custom field value on a task

Time Tracking

ToolDescription
timer_start / timer_stopControl the running timer
time_entries_createManually log a time entry
time_entries_listList time entries with optional filters: task (one card), board_id (all cards on a board), since / until (ISO date range). Useful for burndown, weekly reports, and similar-card estimates
ToolDescription
searchQuery across tasks, boards, comments, tags, and checklists

Organization

ToolDescription
folders_list / folders_createManage folders
users_list / users_meUser info (for assigning members)
groups_listUser groups

Automations

ToolDescription
automations_list / automations_createManage automations
automations_export / automations_importPortable JSON exchange
automations_get_logsView execution history

Templates

ToolDescription
templates_listList board templates
templates_create_from_boardSave a board as a template
boards_create_from_templateCreate a board from a template

Migration: Renamed Tools

If your AI assistant or scripts reference the older <verb>_<noun> tool names, the table below maps each old name to its current <resource>_<action> replacement. There are no aliases — the old names no longer resolve.

Old nameNew nameOld nameNew name
list_boardsboards_listlist_xattr_fieldsxattr_fields_list
get_boardboards_getget_xattr_fieldxattr_fields_get
create_boardboards_createcreate_xattr_fieldxattr_fields_create
update_boardboards_updateupdate_xattr_fieldxattr_fields_update
clone_boardboards_clonedelete_xattr_fieldxattr_fields_delete
delete_boardboards_deletelist_xattr_valuesxattr_values_list
create_board_from_templateboards_create_from_templatelist_xattr_values_for_boardxattr_values_list_for_board
list_listslists_listget_xattr_valuexattr_values_get
get_listlists_getcreate_xattr_valuexattr_values_create
create_listlists_createupdate_xattr_valuexattr_values_update
update_listlists_updatedelete_xattr_valuexattr_values_delete
delete_listlists_deletelist_templatestemplates_list
list_cardscards_listget_templatetemplates_get
get_cardcards_getcreate_template_from_boardtemplates_create_from_board
create_cardcards_createdelete_templatetemplates_delete
update_cardcards_updatelist_saved_filterssaved_filters_list
move_cardcards_moveget_saved_filtersaved_filters_get
complete_cardcards_completecreate_saved_filtersaved_filters_create
delete_cardcards_deleteupdate_saved_filtersaved_filters_update
restore_cardcards_restoredelete_saved_filtersaved_filters_delete
list_trashed_cardscards_list_trashedlist_automationsautomations_list
bulk_update_cardscards_bulk_updateget_automationautomations_get
bulk_manage_memberscards_bulk_manage_memberscreate_automationautomations_create
bulk_manage_tagscards_bulk_manage_tagsupdate_automationautomations_update
bulk_move_cardscards_bulk_movedelete_automationautomations_delete
bulk_complete_cardscards_bulk_completeget_automation_logsautomations_get_logs
bulk_archive_cardscards_bulk_archiveexport_automationautomations_export
bulk_set_prioritycards_bulk_set_priorityimport_automationautomations_import
bulk_create_cardscards_bulk_createtrigger_automationautomations_trigger
list_tagstags_listlist_my_board_subscriptionssubscriptions_list
get_tagtags_getget_my_board_subscriptionsubscriptions_get
create_tagtags_createsubscribe_to_boardsubscriptions_create
update_tagtags_updateunsubscribe_from_boardsubscriptions_delete
delete_tagtags_deleteexport_workspaceworkspace_export
list_prioritiespriorities_listlist_milestonesmilestones_list
get_prioritypriorities_getget_milestonemilestones_get
list_checklistschecklists_listcreate_milestonemilestones_create
get_checklist_itemchecklists_getupdate_milestonemilestones_update
create_checklist_itemchecklists_createdelete_milestonemilestones_delete
update_checklist_itemchecklists_updatelist_filesfiles_list
delete_checklist_itemchecklists_deleteget_filefiles_get
bulk_create_checklist_itemschecklists_bulk_createdelete_filefiles_delete
list_commentscomments_listlist_foldersfolders_list
get_commentcomments_getget_folderfolders_get
add_commentcomments_createcreate_folderfolders_create
update_commentcomments_updateupdate_folderfolders_update
delete_commentcomments_deletedelete_folderfolders_delete
bulk_add_commentscomments_bulk_createget_meusers_me
list_dependenciesdependencies_listlist_usersusers_list
add_dependencydependencies_createget_userusers_get
remove_dependencydependencies_deletelist_groupsgroups_list
start_timertimer_startget_groupgroups_get
stop_timertimer_stopcreate_groupgroups_create
list_time_entriestime_entries_listupdate_groupgroups_update
get_time_entrytime_entries_getdelete_groupgroups_delete
create_time_entrytime_entries_createsearchsearch (unchanged)
update_time_entrytime_entries_update
delete_time_entrytime_entries_delete

Safety Guardrails

Destructive operations include built-in safety checks:

  • Deleting boards, lists, folders, or groups requires a confirm=True parameter. Without it, the tool returns a preview of what would be affected — nothing is deleted.
  • Deleting tasks is recoverable by default — cards_delete moves the task to the board's trash, where it stays for the configured retention period (30 days by default). Use cards_restore to bring it back. To permanently delete immediately, pass permanent=True (board admins only).
  • Low-impact deletes (comments, tags, checklist items, time entries) execute directly.
  • The last done list on a board can't be deleted or changed to "open" — every board must have at least one done list.

These guardrails are baked in — the AI can't bypass them even if it tries.

Troubleshooting

The AI can't connect

  • Make sure your Truetask instance is reachable from the machine running the AI tool
  • Check that the API key starts with tt_ and hasn't expired
  • Verify the URL points to your Truetask instance (e.g. https://truetask.yourcompany.com/mcp)

The AI says "unauthorized"

  • Your API key may have been revoked — create a new one
  • If the AI needs to manage groups, it requires an admin-scope key (created from Settings → API & Webhooks)

Tools aren't showing up

  • Restart your AI tool after adding the configuration
  • For Claude Code, make sure .mcp.json is in the root of your current project
  • For Claude Desktop, make sure you edited the correct config file (not a test copy)

Performance

  • The MCP server uses the same authentication and rate limits as the REST API — see API & Webhooks for specifics
  • For very large boards, the AI may paginate through results automatically

What's Next?