Integration

airfocus integration

airfocus is a product management and roadmapping platform. An agent can search, create, update, move, copy and delete items (features, tasks, ideas) in workspaces, set their status, assignees and custom field values, comment and react, link items to each other and nest them, manage workspaces, workspace groups, custom fields, status presets, item-link types and attachments, install workspace templates, and manage team users and invitations. Personal API-key management, password change, client UI settings, terms acceptance, team flags, the maintenance window, inbox view counters, the workspace count (a bare number) and the deprecated milestone and older template routes are not exposed. Authentication is a personal access token (API key, created in Account settings) sent as a Bearer token; each route needs a token scope and a workspace permission, named in its description. Default rate limit: 600 requests per minute.

Ask it in chat

Say what should happen.
The workflow builds itself.

When this happens, do that in airfocus.Built from the 129 airfocus tools below, on the connection you add once.

What you can do with airfocus

Each of these is one operation on one endpoint, available both as a workflow step and as a tool an AI agent can call on its own. Nothing bundles several operations into one action, so what a run did stays readable afterwards.

Most endpoints run on the free plan. A few, mainly the ones that publish on your behalf, need a paid plan.

Bulk, 10 operations

  • bulk_commentsBulk commentsPOSTCreates, updates, patches or deletes several comments in one call. Needs the workspace:comment scope and comment permission.
  • bulk_item_attachmentsBulk item attachmentsPOSTCreates, updates, patches or deletes several item attachments in one call. Needs the workspace scope and write permission.
  • bulk_item_linksBulk item linksPOSTCreates, updates, patches or deletes several item-links in one call. Needs the workspace scope and write permission.
  • bulk_item_link_typesBulk item link typesPOSTCreates, updates, patches or deletes several item-link types in one call. Needs the team scope and write permission; admin only.
  • bulk_item_relationsBulk item relationsPOSTCreates, updates, patches or deletes several item relations in one call. Needs the workspace scope and write permission.
  • bulk_itemsBulk itemsPOSTCreates, updates, patches or deletes several items of a workspace in one call. Needs the workspace scope and write permission.
  • bulk_status_presetsBulk status presetsPOSTCreates, updates, patches or deletes several status presets in one call. Needs the team scope.
  • bulk_workspace_groupsBulk workspace groupsPOSTCreates, updates, patches or deletes several workspace groups in one call. Needs the workspace scope and write permission.
  • bulk_workspacesBulk workspacesPOSTCreates, updates, patches or deletes several workspaces in one call. Needs the workspace scope and write permission.
  • invite_usersInvite usersPOSTInvites several people to the team in one call; each entry of users takes email, fullName and role. Needs the team scope; admin only.

List, 10 operations

  • get_commentsGet commentsPOSTReturns the comments for a list of ids (items), in the same order. Needs the workspace:read scope and read permission.
  • get_item_attachmentsGet item attachmentsPOSTReturns the item attachments for a list of ids (items), in the same order. Needs the workspace:read scope and read permission.
  • get_item_linksGet item linksPOSTReturns the item-links for a list of ids (items), in the same order. Needs the workspace:read scope and read permission.
  • get_item_link_typesGet item link typesPOSTReturns the item-link types for a list of ids (items), in the same order. Needs the team:read scope and read permission.
  • get_item_relationsGet item relationsPOSTReturns the item relations for a list of ids (items), in the same order. Needs the workspace:read scope and read permission.
  • get_itemsGet itemsPOSTReturns the items of a workspace for a list of ids (items), in the same order. Needs the workspace:read scope and read permission.
  • get_items_globalGet items globalPOSTReturns items from any workspace for a list of ids (items), in order; null where no item has that id. Needs the workspace:read scope and read permission.
  • get_status_presetsGet status presetsPOSTReturns the status presets for a list of ids (items), in the same order. Needs the team:read scope.
  • get_workspace_groupsGet workspace groupsPOSTReturns the workspace groups for a list of ids (items), in the same order. Needs the workspace:read scope and read permission.
  • get_workspacesGet workspacesPOSTReturns the workspaces for a list of ids (items), in the same order. Needs the workspace:read scope and read permission.

Search, 10 operations

  • search_commentsSearch commentsPOSTLists the comments of a workspace, or of one item (itemId). offset and limit paginate. Needs the workspace:read scope and read permission.
  • search_fieldsSearch fieldsPOSTSearches custom fields, filtered by workspace, team-field or required flag. Needs the workspace:read scope and read permission.
  • search_item_attachmentsSearch item attachmentsPOSTLists the attachments of a workspace, or of one item (itemId). offset and limit paginate. Needs the workspace:read scope and read permission.
  • search_item_linksSearch item linksPOSTLists the item-links between items, filtered by items or workspaces. offset and limit paginate. Needs the workspace:read scope and read permission.
  • search_item_link_typesSearch item link typesPOSTLists or searches item-link types by name (nameFilter). offset and limit paginate. Needs the team:read scope and read permission.
  • search_item_relationsSearch item relationsPOSTLists or searches parent-child item relations. offset and limit paginate. Needs the workspace:read scope and read permission.
  • search_itemsSearch itemsPOSTLists or searches the items of a workspace with a filter and a sort. offset and limit paginate (limit defaults to 1000). Needs the workspace:read scope and read permission.
  • search_status_presetsSearch status presetsPOSTLists the status presets the user can access. offset and limit paginate. Needs the team:read scope.
  • search_workspace_groupsSearch workspace groupsPOSTLists the workspace groups the user can access. offset and limit paginate. Needs the workspace:read scope and read permission.
  • search_workspacesSearch workspacesPOSTLists or searches the workspaces the user can access (filter by name, item type, members...). offset and limit paginate. Needs the workspace:read scope and read permission.

Attachment, 7 operations

  • create_item_attachmentCreate item attachmentPOSTAttaches a file to an item: uri is "attachment:<id>" of an upload_attachment result, or any URL. Needs the workspace scope and write permission.
  • delete_attachmentDelete attachmentDELETEPermanently deletes a team attachment.
  • delete_item_attachmentDelete item attachmentDELETERemoves an attachment from an item. Needs the workspace scope and write permission.
  • download_attachmentDownload attachmentGETDownloads a team attachment as a file, optionally resized when it is an image (width, height).
  • get_item_attachmentGet item attachmentGETReturns an item attachment by id (name, uri, content type). Needs the workspace:read scope and read permission.
  • patch_item_attachmentPatch item attachmentPATCHChanges some properties of an item attachment and returns it. Send a JSON Patch list in items (op replace with path /name and value...). Needs the workspace scope and write permission.
  • update_item_attachmentUpdate item attachmentPUTReplaces the name, uri and content type of an item attachment (all three required). Needs the workspace scope and write permission.

Workspace, 7 operations

  • create_status_preset_from_workspaceCreate status preset from workspacePOSTCreates a status preset by copying the statuses of an existing workspace. Needs the team scope.
  • create_workspaceCreate workspacePOSTCreates a workspace (a board of items) and returns it. Needs the workspace scope and write permission.
  • delete_workspaceDelete workspaceDELETEDeletes a workspace. Needs the workspace scope and write permission.
  • get_workspaceGet workspaceGETReturns a workspace by id with its embedded data: statuses, fields (_embedded.fields), apps and permissions. Needs the workspace:read scope and read permission.
  • link_team_fieldsLink team fieldsPOSTLinks team-fields to workspaces; items lists {fieldId, workspaceId} pairs. Needs the workspace scope and full permission; team-fields need the admin role.
  • patch_workspacePatch workspacePATCHChanges some properties of a workspace and returns it; description may be patched as a Markdown string. Send a JSON Patch list in items (op replace with path /name and value...). Needs the workspace scope and write permission.
  • set_workspace_status_presetSet workspace status presetPUTAssigns a status preset to a workspace (or unassigns it with statusPresetId null), mapping old status ids to new ones in replacements. Needs the team scope.

Comment, 5 operations

  • create_commentCreate commentPOSTAdds a comment to an item; content is a rich-text blocks object. Needs the workspace:comment scope and comment permission.
  • delete_commentDelete commentDELETEDeletes a comment. Needs the workspace:comment scope and comment permission.
  • get_commentGet commentGETReturns a comment by id with its reactions. Needs the workspace:read scope and read permission.
  • patch_commentPatch commentPATCHChanges the content of a comment and returns it. Send a JSON Patch list in items (op replace with path /content and a rich-text value). Needs the workspace:comment scope and comment permission.
  • update_commentUpdate commentPUTReplaces the content of a comment. Needs the workspace:comment scope and comment permission.

Item, 5 operations

  • create_itemCreate itemPOSTCreates an item in a workspace (name required; status, assignees, custom field values, description optional) and returns it. Needs the workspace scope and write permission.
  • delete_itemDelete itemDELETEDeletes an item. Needs the workspace scope and write permission.
  • get_itemGet itemGETReturns an item by id: name, status, assignees, custom field values, description. Needs the workspace:read scope and read permission.
  • patch_itemPatch itemPATCHChanges some properties of an item and returns it; description may be patched as a Markdown string. Send a JSON Patch list in items (op replace with path /name and value...). Needs the workspace scope and write permission.
  • update_itemUpdate itemPUTUpdates an item with a full item body (name, status, assignees, color, order, field values, description); patch_item changes single properties. Read get_item first and send every value back. Needs the workspace scope and write permission.

Item relation, 5 operations

  • create_item_relationCreate item relationPOSTMakes one item the parent of another (parentId, childId), across workspaces if needed. Needs the workspace scope and write permission.
  • delete_item_relationDelete item relationDELETEDeletes a parent-child item relation. Needs the workspace scope and write permission.
  • get_item_relationGet item relationGETReturns a parent-child item relation by id. Needs the workspace:read scope and read permission.
  • patch_item_relationPatch item relationPATCHChanges the order of a parent-child item relation and returns it. Send a JSON Patch list in items (op replace with path /childOrder or /parentOrder). Needs the workspace scope and write permission.
  • update_item_relationUpdate item relationPUTSets the parentOrder and childOrder of an item relation. Needs the workspace scope and write permission.

Link, 5 operations

  • create_item_linkCreate item linkPOSTLinks two items with an item-link type (typeId from search_item_link_types), e.g. A blocks B. Needs the workspace scope and write permission.
  • delete_item_linkDelete item linkDELETEDeletes an item-link. Needs the workspace scope and write permission.
  • get_item_linkGet item linkGETReturns an item-link by id. Needs the workspace:read scope and read permission.
  • patch_item_linkPatch item linkPATCHChanges some properties of an item-link and returns it. Send a JSON Patch list in items (op replace with path /typeId, /fromOrder or /toOrder). Needs the workspace scope and write permission.
  • update_item_linkUpdate item linkPUTReplaces an item-link (fromItemId, toItemId, typeId and both orders, all required). Needs the workspace scope and write permission.

Link type, 5 operations

  • create_item_link_typeCreate item link typePOSTCreates an item-link type, named both ways (name "blocks", backwardsName "is blocked by"). Needs the team scope and write permission; admin only.
  • delete_item_link_typeDelete item link typeDELETEDeletes an item-link type and every item-link of that type. Needs the team scope and write permission; admin only.
  • get_item_link_typeGet item link typeGETReturns an item-link type by id. Needs the team:read scope and read permission.
  • patch_item_link_typePatch item link typePATCHChanges some properties of an item-link type and returns it. Send a JSON Patch list in items (op replace with path /name and value...). Needs the team scope and write permission; admin only.
  • update_item_link_typeUpdate item link typePUTReplaces the name and backwardsName of an item-link type. Needs the team scope and write permission; admin only.

Field, 4 operations

  • create_fieldCreate fieldPOSTCreates a custom field (typeId from list_field_types) in one workspace, or as a team-field linked to several workspaces. Needs the workspace scope and full permission; team-fields need the admin role.
  • delete_fieldDelete fieldDELETEDeletes a custom field. Needs the workspace scope and full permission; team-fields need the admin role.
  • get_fieldGet fieldGETReturns a custom field with its type and settings. Needs the workspace:read scope and read permission.
  • update_fieldUpdate fieldPUTReconfigures a custom field: name, description, required, settings. name, description and isTeamField are required: read get_field first and send them back. Needs the workspace scope and full permission; team-fields need the admin role.

Group, 4 operations

  • create_workspace_groupCreate workspace groupPOSTCreates a workspace group (a folder of workspaces), optionally inside a parent group. Needs the workspace scope and write permission.
  • delete_workspace_groupDelete workspace groupDELETEDeletes a workspace group. Needs the workspace scope and write permission.
  • get_workspace_groupGet workspace groupGETReturns a workspace group by id. Needs the workspace:read scope and read permission.
  • patch_workspace_groupPatch workspace groupPATCHChanges some properties of a workspace group and returns it. Send a JSON Patch list in items (op replace with path /name and value...). Needs the workspace scope and write permission.

Status preset, 4 operations

  • create_status_presetCreate status presetPOSTCreates a status preset: a named list of statuses that workspaces can share. Needs the team scope.
  • delete_status_presetDelete status presetDELETEDeletes a status preset. Needs the team scope.
  • get_status_presetGet status presetGETReturns a status preset with its statuses. Needs the team:read scope.
  • patch_status_presetPatch status presetPATCHChanges some properties of a status preset and returns it. Send a JSON Patch list in items (op replace with path /name and value...). Needs the team scope.

Partial, 3 operations

  • get_workspaces_partialGet workspaces partialPOSTReturns the workspaces for a list of ids with only the requested properties. Needs the workspace:read scope and read permission.
  • search_items_global_partialSearch items global partialPOSTSearches items across all workspaces and returns only the requested properties (lighter than search_items_global). Needs the workspace:read scope.
  • search_items_partialSearch items partialPOSTSearches the items of a workspace and returns only the requested properties. Needs the workspace:read scope and read permission.

Alia, 2 operations

  • get_item_by_aliasGet item by aliasGETReturns an item by its alias (workspace code and number, e.g. DEV-123). Needs the workspace:read scope and read permission.
  • get_workspace_by_aliasGet workspace by aliasGETReturns a workspace by its alias (its custom code, e.g. DEV). Needs the workspace:read scope and read permission.

Permission, 2 operations

  • set_workspace_group_permissionsSet workspace group permissionsPOSTSets the permissions of users and user groups on a workspace group (maps keyed by user id and user-group id). Needs the workspace scope and write permission.
  • set_workspace_permissionsSet workspace permissionsPOSTSets a workspace's default permission and the permissions of users and user groups (maps keyed by id); returns the caller's effective permission. Needs the workspace scope and write permission.

Reaction, 2 operations

  • add_comment_reactionAdd comment reactionPOSTAdds an emoji reaction from the user to a comment. Needs the workspace:comment scope and comment permission.
  • remove_comment_reactionRemove comment reactionDELETERemoves the user's emoji reaction from a comment. Needs the workspace:comment scope and comment permission.

Ai actor, 1 operation

  • list_ai_actorsList ai actorsGETLists the AI actors of the team (id, name, actor type). Needs the team:read scope.

Analytics, 1 operation

  • get_items_analyticsGet items analyticsPOSTReturns item counts and breakdowns of a workspace (the data behind dashboards), one result per request, in order; a failed request answers {type: error, reason}. Needs the workspace:read scope and read permission.

Apply, 1 operation

  • apply_templateApply templatePOSTInstalls a template and returns the new workspace it creates. Needs the workspace scope.

Assign, 1 operation

  • assign_workspace_to_groupAssign workspace to groupPOSTMoves a workspace into a workspace group, or to the root when workspaceGroupId is left out. Needs the workspace scope and write permission.

Copy, 1 operation

  • copy_itemsCopy itemsPOSTCopies items (ids in items) from one workspace to another and returns the new item ids, in order. Needs the workspace scope and write permission.

Create, 1 operation

  • create_user_invitationCreate user invitationPOSTCreates a team invitation for the user with this userId (the docs give no more detail). Needs the team scope; admin only.

Delete, 1 operation

  • delete_fieldsDelete fieldsPOSTDeletes several custom fields at once; items is the list of field ids. Needs the workspace scope and full permission; team-fields need the admin role.

Disabled, 1 operation

  • set_user_disabledSet user disabledPOSTDisables or re-enables a team user (disabled true or false). Needs the team scope; admin only.

Duplicate, 1 operation

  • duplicate_workspaceDuplicate workspacePOSTDuplicates a workspace with all its items and apps, optionally with its user permissions, and returns the copy. Needs the workspace scope and write permission.

Export, 1 operation

  • export_templateExport templatePOSTExports workspaces as template instructions (workspaces, fields, statuses, views, items, links) that apply_template can install. Needs the workspace:read scope and read permission.

Global search, 1 operation

  • search_items_globalSearch items globalPOSTSearches items across all workspaces by text (searchQuery), assignees, status categories, workspaces or archived state. Needs the workspace:read scope.

Invite, 1 operation

  • invite_userInvite userPOSTInvites a person to the team by email address, with a role and a full name. Needs the team scope; admin only.

Kick, 1 operation

  • remove_team_userRemove team userPOSTRemoves a user from the team. Needs the team scope; admin only.

Metadata, 1 operation

  • get_attachment_metadataGet attachment metadataGETReturns the file name, content type and creation time of a team attachment, without downloading it.

Move, 1 operation

  • move_itemsMove itemsPOSTMoves items (ids in items) from one workspace to another and returns their new ids in the target workspace, in order. Needs the workspace scope and write permission.

Profile, 1 operation

  • get_profileGet profileGETReturns the profile of the user who owns the API key: name, email, role, team id. Needs the profile:read scope.

Public, 1 operation

  • download_public_attachmentDownload public attachmentGETDownloads a public attachment as a file, optionally resized when it is an image (width, height). Needs no authentication.

Reorder, 1 operation

  • reorder_fieldsReorder fieldsPOSTSets the order of the custom fields of a workspace (fieldIds in the new order). Needs the workspace scope and full permission; team-fields need the admin role.

Resend, 1 operation

  • resend_user_invitationResend user invitationPOSTResends the team invitation to the email address of an invited person. Needs the team scope; admin only.

Reset color, 1 operation

  • reset_item_colorsReset item colorsPOSTSets every item of a workspace to the workspace's configured item color, when one is configured. Needs the workspace scope and write permission.

Role, 1 operation

  • set_user_roleSet user rolePOSTChanges the role of a team user. Needs the team scope; admin only.

Settings, 1 operation

  • get_notification_settingsGet notification settingsGETReturns the notification settings of the API key's user. Needs the profile:read scope.

Status, 1 operation

  • set_workspace_statusesSet workspace statusesPOSTReplaces all statuses of a workspace at once; replacements maps removed status ids to new ones for the items using them. Needs the workspace scope and write permission.

Team, 1 operation

  • get_teamGet teamGETReturns the team (company account): name, slug, state, company info and flags. Needs the team:read scope.

Template, 1 operation

  • list_templatesList templatesGETLists the workspace templates available to the team. offset and limit paginate. Needs the workspace:read scope.

Type, 1 operation

  • list_field_typesList field typesGETLists the available custom field types (typeId values for create_field). Needs the workspace:read scope and read permission.

Unlink, 1 operation

  • unlink_team_fieldsUnlink team fieldsPOSTUnlinks team-fields from workspaces; items lists {fieldId, workspaceId} pairs. Needs the workspace scope and full permission; team-fields need the admin role.

Unwatch, 1 operation

  • unwatch_itemsUnwatch itemsPOSTStops the user from watching the given items (ids in items). Needs the workspace scope and write permission.

User, 1 operation

  • list_team_usersList team usersGETLists the users of the team, optionally filtered by a text query. Needs the team:read scope.

Workspace count, 1 operation

  • count_item_link_type_workspacesCount item link type workspacesGETReturns how many workspaces use an item-link type. Needs the team:read scope and read permission; admin only.

Showing the first 120 of 129 endpoints. The rest are in the product, searchable from the workflow builder and from chat.

Use airfocus from Claude Code, Cursor or Codex

Connect airfocus in LiveContext, create an API key in Settings, then add the LiveContext MCP server to your client. Its airfocus operations become tools the client can call, next to every other integration you connected.

Claude Code
claude mcp add --transport http livecontext https://livecontext.ai/mcp --header "X-API-Key: YOUR_API_KEY"
Codex (~/.codex/config.toml)
[mcp_servers.livecontext]
url = "https://livecontext.ai/mcp"

[mcp_servers.livecontext.http_headers]
"X-API-Key" = "YOUR_API_KEY"
Cursor, Claude Desktop and other JSON configs
{
  "mcpServers": {
    "livecontext": {
      "type": "http",
      "url": "https://livecontext.ai/mcp",
      "headers": {
        "X-API-Key": "YOUR_API_KEY"
      }
    }
  }
}

Set up the MCP server step by step

How to connect airfocus

  1. Create your workspace

    Sign up free. Nothing to install.

  2. Connect airfocus once

    Add your airfocus connection in Settings. Every tool from this integration reuses it, and secrets are encrypted at rest and visible only to you.

  3. Describe the job in chat

    The workflow builds itself in front of you and picks the endpoints it needs. Drag the steps yourself on the canvas whenever you would rather be explicit.

airfocus integration FAQ

What can you do with the airfocus integration?

LiveContext exposes 129 operations on airfocus, covering bulk, list, search and attachment.

Popular integrations

Browse the whole catalog