Integration

Truss integration

Truss is a client portal for accounting and tax firms that collects client documents per project. Through this API an agent can create and search projects, contacts and entities (households and businesses), add clients to a project, create and update the document-request tasks inside a project (plain, invoice, contact-verification or engagement-letter tasks), comment on tasks, keep internal project notes, read the OCR text of uploaded files, attach files by public URL, and organise the firm's Drive folders. Not exposed: the two-step direct-to-cloud upload routes (they need a raw upload to a storage URL), the firm-user routes (their responses are undocumented), the partner OAuth API, and three client identifiers removed from every documented response: each client's private magic upload link, the entity EIN (a client's federal tax id, which for a sole proprietor, trust or estate points at a person, and is not needed to collect documents; it can still be set when creating an entity), and the entity other_ids block (it can carry an IRS IP PIN). Authentication is a firm API key (Truss top-right menu, Integrations, API Key) sent as a Bearer token.

Ask it in chat

Say what should happen.
The workflow builds itself.

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

What you can do with Truss

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.

Drive folder, 7 operations

  • create_drive_folderCreate drive folderPOSTCreates a Drive folder under a parent folder. A client-visible folder cannot be created directly under the root folder. Drive must be activated for the firm.
  • delete_drive_folderDelete drive folderDELETESoft-deletes a Drive folder. The root folder and entity folders cannot be deleted. Returns the deleted folder.
  • get_drive_folderGet drive folderGETReturns one Drive folder with its parent, linked entity, sub-folders and files. Each file carries an attachment_id and a download URL valid for 1 hour.
  • get_drive_folder_deleted_filesGet drive folder deleted filesGETReturns one Drive folder with its sub-folders and the files deleted from it, for use with restore_drive_folder_file.
  • list_drive_foldersList drive foldersGETLists the top-level sub-folders of the firm's Drive root folder, one page at a time (pagy.next is the next page, null on the last). Answers 400 when Drive is not activated for the firm.
  • move_drive_folderMove drive folderPOSTMoves a Drive folder, with all its sub-folders, under another parent folder. Returns the updated destination parent folder.
  • update_drive_folderUpdate drive folderPUTRenames a Drive folder or changes whether clients see it. The root folder and entity folders cannot be changed (rename the entity instead).

Project, 7 operations

  • create_projectCreate projectPOSTCreates a project (one client engagement, such as a 2025 tax return). Pass an idempotency_key to make retries safe; get_project_by_idempotency_key reads it back.
  • get_projectGet projectGETReturns one project in full: assignees (clients) with their contact and effective email, tasks, owner, tags, linked entity, status, due date and reminder schedule.
  • get_project_by_idempotency_keyGet project by idempotency keyGETReturns the full project that was created or updated with this idempotency key, or 404.
  • list_projectsList projectsGETLists the firm's projects in summary form: id, name, tax_year, metadata, owner, status, last upload and archive dates. Use get_project for assignees, tasks, tags and entity.
  • list_projects_by_metadataList projects by metadataGETReturns the projects whose metadata holds exactly this key and value, in full form. Answers 404 when no project matches.
  • search_projectsSearch projectsGETSearches projects by text, tag, status, owner, watch state, archive state and complexity, sorted by a chosen column. Archived projects are left out unless archived=true.
  • update_projectUpdate projectPUTChanges a project's name, metadata, idempotency key or reminder schedule, or links it to a Karbon work item. Only the fields sent change. Returns the project in summary form.

Entity, 6 operations

  • create_entityCreate entityPOSTCreates an entity (a household, business, trust or other client unit) for the firm. Returns the new entity.
  • get_entityGet entityGETReturns one entity with its tags, primary contact, contacts (with the email to use for this entity) and projects.
  • link_entity_contactLink entity contactPOSTLinks a contact to an entity as its primary contact. Returns the entity with its contacts.
  • link_entity_projectLink entity projectPOSTLinks a project to an entity. Returns the entity with its projects.
  • list_entitiesList entitiesGETLists the firm's entities (households, businesses, trusts...) one page at a time (pagy.next is the next page, null on the last). extended_view=true adds contacts, projects and tags.
  • search_entitiesSearch entitiesGETSearches the firm's entities by name or client_id_number, tag and entity type, sorted by a chosen column. Returns each match's id, name, type, client number and tags; read get_entity for the full record.

Task, 6 operations

  • bulk_create_tasksBulk create tasksPOSTCreates up to 100 tasks in a project in one all-or-nothing call: pass exactly one of bulk_tasks or checklist_template_id. On a validation error nothing is created and errors name each failing index.
  • create_taskCreate taskPOSTCreates a task in a project. Leave task_type out for a plain task (name required). invoice needs amount_due and a connected Stripe account; contact_info_verification needs verification_types; ez_sign needs ez_sign_template_id.
  • delete_taskDelete taskDELETEDeletes a task from a project (id from list_tasks). Answers 404 when the task does not exist in that project.
  • get_taskGet taskGETReturns one task in full: type, status, invoice amount and payment status, notes, and attached_files with each file's attachment_id and a download URL valid for 1 hour.
  • list_tasksList tasksGETLists the tasks (document requests and other client to-dos) of a project: id, name, description, status (to_do, pending_review, approved) and due date.
  • update_taskUpdate taskPUTChanges a task's name, description, status, due date or document category; only the fields sent change. An invoice task's status and any task's type and amount cannot be changed.

Contact, 5 operations

  • create_contactCreate contactPOSTCreates a contact (a client person) from a contact object. Answers 403 when the contact already exists. Returns the full contact with its emails, phones and tags.
  • get_contactGet contactGETReturns one contact with its tags, emails, phones, postal addresses and the entities it was created from.
  • list_contact_namesList contact namesGETLists every contact as just an id and display_name: the cheapest way to find a contact id by name.
  • list_contactsList contactsGETLists every contact (client person) of the firm with scalar fields only: id, names, company, job title, client_id_number, timestamps. Use get_contact for emails, phones, addresses and tags.
  • search_contactsSearch contactsGETSearches the firm's contacts by name or email prefix and by tag, sorted by a chosen column. Returns each match's id, names, company and client number; read get_contact for the full record.

Drive file, 5 operations

  • add_drive_folder_filesAdd drive folder filesPOSTAdds files to a Drive folder from public URLs: Truss downloads each file and stores it. The root folder cannot hold files. Returns the folder with its files.
  • delete_drive_folder_fileDelete drive folder fileDELETESoft-deletes one file from a Drive folder by moving it to the folder's deleted files; restore_drive_folder_file brings it back.
  • move_drive_fileMove drive filePOSTMoves a file from one Drive folder to another (not into the root folder). Returns the updated source folder.
  • restore_drive_folder_fileRestore drive folder filePOSTRestores a soft-deleted file into its Drive folder. Find its attachment_id with get_drive_folder_deleted_files.
  • update_drive_folder_fileUpdate drive folder filePATCHRenames a file in a Drive folder or changes whether clients see it; a visibility change can move it between the internal and client-visible collections.

Project note, 5 operations

  • add_project_noteAdd project notePOSTAdds an internal note to the project, optionally linked to one of its tasks. A project or task can have any number of notes.
  • delete_project_noteDelete project noteDELETEDeletes an internal project note. Its history stays readable with get_project_note_history.
  • get_project_noteGet project noteGETReturns one internal project note: body as HTML and plain text, linked task, author, last editor and timestamps.
  • list_project_notesList project notesGETLists all of the project's internal notes, newest first, optionally only those linked to one task.
  • update_project_noteUpdate project notePUTChanges a note's body, its task link, or both, and records the API user as last editor. Every change is kept in the note's history.

Project assignee, 2 operations

  • add_project_assignee_by_contactAdd project assignee by contactPOSTAdds an existing contact to a project as a client (assignee), by contact id. Returns the project id and name. Use add_project_assignee_by_email for a person who is not a contact yet.
  • add_project_assignee_by_emailAdd project assignee by emailPOSTAdds a client to a project by email address, giving that person access to the project in the Truss client portal. Returns the project id and name.

Project status, 2 operations

  • list_project_statusesList project statusesGETLists the firm's project statuses (id, name, position). Pass an id to update_project_status or to search_projects as project_status_id.
  • update_project_statusUpdate project statusPOSTSets a project's status. Returns the project id, name, tax_year and new status (null when cleared).

Task comment, 2 operations

  • create_task_commentCreate task commentPOSTPosts a comment on a task as the API user. Project watchers are emailed; the task's clients are emailed only when send_notification_to_assignees is true. Newlines become line breaks.
  • list_task_commentsList task commentsGETLists every comment on a task, oldest first, from firm users and from clients; commenter_type (User or Assignee) tells them apart.

Document category, 1 operation

  • list_document_categoriesList document categoriesGETLists the document types a task can be filed under (W-2, 1099-INT, Schedule C and so on). The list is global reference data: pass an id as document_category_id to create_task or update_task.

File text, 1 operation

  • get_file_text_extractionGet file text extractionGETReturns the OCR status and plain text of an uploaded file (task, client or Drive file). text is null while status is in_progress or when OCR failed (ocr_failed).

Project note history, 1 operation

  • get_project_note_historyGet project note historyGETReturns every change to a note, oldest first: event (created, edited, deleted), who, when, through which channel, and the content before and after. Works after the note is deleted.

Task file, 1 operation

  • add_task_filesAdd task filesPOSTAttaches files to a task as firm-uploaded files, from public URLs Truss downloads. Returns the task with its attached_files.

Template, 1 operation

  • list_templatesList templatesGETLists the firm's templates of one type, by name. Checklist templates give their task names (use with bulk_create_tasks); engagement letter templates give all_must_sign (use with create_task ez_sign).

Use Truss from Claude Code, Cursor or Codex

Connect Truss in LiveContext, create an API key in Settings, then add the LiveContext MCP server to your client. Its Truss 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 Truss

  1. Create your workspace

    Sign up free. Nothing to install.

  2. Connect Truss once

    Add your Truss 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.

Truss integration FAQ

What can you do with the Truss integration?

LiveContext exposes 52 operations on Truss, covering drive folder, project, entity and task.

Popular integrations

Browse the whole catalog