Skip to content

Tools

The server exposes the tools below. Tools that declare required access only appear in tools/list when your account holds every listed permission, so the assistant sees exactly the set you are allowed to use.

Available tools

ToolAccess requiredDescription
ping(none)Health-check tool that returns pong (and echoes any provided message).
suralink_health(none)Calls the Suralink API's /health endpoint and returns its status. Requires an authenticated session.
get_engagementsengagement:readLists Suralink engagements (a.k.a. request lists) for the authenticated user's currently-active client. Takes no arguments — the active client is selected server-side by the session. Returns { active, inactive, archived } where each bucket is an array of { id, customId, name }.
get_request_items_for_engagementengagement:readLists request items on a specific engagement. Required arguments: engagementId (integer) and organizationId (UUID, owning organization). Optional: limit (defaults to 25) and offset for paging.
get_user_metadata(none)Returns the authenticated user's role and userType. No inputs.
list_firmsfirm:readLists the firms the authenticated user can access. No inputs.
get_firmfirm:readReturns licenses and features for a single firm. firmId is the firm's numeric id (from list_firms) — not the organizationId UUID.
list_departmentsfirm:readLists departments for a firm. Required: organizationId.
get_departmentfirm:readReturns info for a single department. Required: organizationId, departmentId.
get_organization_userfirmusers:readReturns a user's role and departmentId. userId is the user's UUID (uuid field from list_organization_users) — not the numeric userId/id.
list_organization_usersfirmusers:readPaged, sortable, filterable, searchable list of an organization's users. Required: organizationId. Optional: limit (default 25), offset, search, sort, filter.
export_organization_usersfirmusers:readBulk tabular export of an organization's firm users. Body returned as raw text. Required: organizationId.
list_client_org_usersfirmusers:readLists firm users assigned to a client. Required: organizationId, clientId.
list_assignable_users_for_request_itemfirmusers:readLists firm and client users assignable to a request item. Required: requestItemId.
list_clientsclients:readLists clients for an organization. Required: organizationId.
list_my_clients(none)Lists every Suralink client the authenticated user belongs to as a client user. No inputs. Distinct from list_clients (firm-user view).
list_request_lists_for_clientengagement:readLists request lists for a client filtered by state. Required: organizationId, clientId, state.
get_request_list_summaryengagement:readReturns a summary of a request list. Required: organizationId, requestListId.
get_request_list_stateengagement:readReturns the state of a request list. Required: organizationId, requestListId.
get_request_itemengagement:readReturns info (including state) for a request item. Required: organizationId, requestListId, requestItemId.
get_request_item_annotations_bulkengagement:readFetches annotations by IDs for a request item. Each annotationIds entry must be a 26-character ULID (Crockford base32). Required: organizationId, requestListId, requestItemId, annotationIds.
get_request_item_files_summaryengagement:readLists files attached to a request item. Required: organizationId, requestListId, requestItemId.
list_my_engagementsengagement:readLists every engagement and report the authenticated user can access as a client user. No inputs. Collapses the list_my_clients to per-client list_request_lists_for_client fanout into one call. Firm users will see [].
list_request_item_commentsengagement:readLists comment history (annotations with their comment threads) for a request item, with pagination. Required: organizationId, requestListId, requestItemId. Optional: limit, offset, commentId.
list_request_item_comments_bulkengagement:readFetches comments for an array of annotation/document item IDs in one call. Required: organizationId, requestListId, requestItemId, itemIds[] (min 1). Optional: annotationType (1 = requestItem, 2 = document), system.
get_request_item_detailengagement:readReturns drill-down detail (state, dueDate, priority, category/subcategory names, engagement name) for a single request item. Required: engagementId, requestId. Distinct from get_request_item, which addresses the same item by org / request-list path.
get_request_item_historyengagement:readReturns paginated event history (uploads, state changes, comments) for a request item. Required: requestItemId, organizationId (UUID), requestListId. Optional: limit, offset.
list_my_recent_clientsclients:readReturns the authenticated user's most recently viewed clients within an organization. Required: organizationId.
list_engagement_firm_usersfirmusers:readReturns firm users with access to an engagement. Required: engagementId. Distinct from list_client_org_users (firm users on a client, not an engagement).

Access model

Each tool may declare required access. The server hides a tool from tools/list unless every requirement is present for your account. The access names group broadly as:

AccessCovers
firm:readFirm and department lookups.
firmusers:readFirm-user and assignable-user lookups.
clients:readClient lists and recent-client lookups.
engagement:readEngagements, request lists, request items, files, comments, and history.

Beyond per-tool access, your selected organization must have Suralink MCP access enabled. See Getting Started for details.