View as .md ↗
Lawmatics

Lawmatics | List Folders

MCP server · Practice Management · lawmatics.com · 40 categories · 177 tools

Lawmatics is a legal CRM, client intake, and marketing automation platform for law firms. This integration exposes contacts, companies, matters, billing (invoices, transactions, expenses, time entries), tasks, documents, events, and marketing data as governed MCP tools, scoped per member by access level.

lawmatics_list-folders

List folders from Lawmatics with optional pagination, filtering, sorting, and matter/prospect/contact scoping. Prefer matterId/prospectId/contactId or a filter when possible — the unfiltered firm-wide list scans server-side and is slow (observed ~9s live even with a single folder in the account) and may time out. Rows carry the folder name, timestamps, and a `relationships` envelope of to-one {id,type} pointers (the owning matter/contact and the parent folder); use get-folder for the full envelope including child folders and files. To list the folders belonging to one record, either filter on documentable_id with that record's id, or pass matterId/prospectId/contactId — Folders' own direct scope params (at most one per call), which combine with filter as a second condition EXCEPT when filter.field is documentable_id (the same association — rejected as a conflict, since a conflicting pair can silently return zero rows with no error; a matching pair is merely redundant). Also filter by name (string) or the parent folder's folder_id (numeric id; vacuous in the live sandbox), or on created_at / updated_at by date.

Tool Input

pageinteger— Page number (1-based)(> 0)
matterIdstring— Scope the list to one matter's (prospect's) folders — sent as the direct matter_id query param (Folders-only shortcut, not routed through filter). At most one of matterId/prospectId/contactId per call. Combines with filter as a second, independent condition EXCEPT when filter.field is documentable_id — the same association — which is rejected as a conflict. LIVE-CONFIRMED on nonprod (2026-10-15, #1309): matter_id=11584565 -> 1, matter_id=999999999 -> 0(pattern: ^\d+$)
prospectIdstring— Scope the list to one prospect's folders — sent as the direct prospect_id query param. A prospect IS the underlying matter record, so this is the same scope as matterId; use whichever label fits the caller's context. At most one of matterId/prospectId/contactId per call. Combines with filter EXCEPT when filter.field is documentable_id (rejected as a conflict). LIVE-CONFIRMED on nonprod (2026-10-15, #1309): prospect_id=11584565 -> 1, the same scope as matter_id=11584565(pattern: ^\d+$)
contactIdstring— Scope the list to one contact's folders — sent as the direct contact_id query param. At most one of matterId/prospectId/contactId per call. Combines with filter EXCEPT when filter.field is documentable_id (rejected as a conflict). LIVE-CONFIRMED on nonprod (2026-10-15, #1309): contact_id=11584565 -> 0 (that id is a prospect, not a contact, so the scope correctly excludes it)(pattern: ^\d+$)
filterobject— Optional single-field filter; one filter at a time
fieldstringrequired— Field to filter on. documentable_id (numeric id of the record — a matter/prospect or contact — the folder belongs to), created_at, updated_at — the original fields. name is a string column. folder_id (the PARENT folder's numeric id) is vacuous in this sandbox — only = (with a numeric value), null, and not_null are accepted(enum: "documentable_id", "created_at", "updated_at", "name", "folder_id")
operatorstring— Comparison operator. Omit to use the Lawmatics per-field default (= for documentable_id). Allowed per field: documentable_id/created_at/updated_at accept = != < <= > >= null not_null; name accepts = != like ilike null not_null; folder_id accepts only = null not_null (vacuous field)(enum: "=", "!=", "<", "<=", ">", ">=", "like", "ilike", "null", "not_null")
valuestring— Value to compare against. Required for the comparison operators; must be omitted for the null / not_null presence operators. folder_id requires a numeric id
sortBystring— Column to sort by(enum: "id", "created_at", "updated_at")
sortOrderstring— Sort direction; ascending or descending(enum: "asc", "desc")

Tool Output

foldersarrayrequired— Folders on this page of results
[]object
idstringrequired— Unique ID of the folder
namestringrequired— Folder name as stored (Lawmatics replaces slashes with colons)
createdAtstringnullrequired— When the folder was created, as an ISO 8601 timestamp; null if unknown
updatedAtstringnullrequired— When the folder was last updated, as an ISO 8601 timestamp; null if unknown
relationshipsobjectrequired— To-one JSON:API relationship pointers as {id,type} stubs. Not materialized — follow a pointer by calling that resource's own tool. List rows carry to-one pointers only; use get-folder for the full envelope incl. to-many (files, child folders).
2 fields
documentableobjectnullrequired— Owning record pointer — the matter/prospect or contact this folder belongs to; null when unset
2 fields
idstringrequired— ID of the referenced Lawmatics record
typestringrequired— JSON:API record class of the reference (e.g. "user", "contact", "prospect", "firm"); resolve it by calling that resource's own get/find tool — this pointer is not materialized
parentFolderobjectnullrequired— Parent folder pointer when this folder is nested; null when it is at the top level
2 fields
idstringrequired— ID of the referenced Lawmatics record
typestringrequired— JSON:API record class of the reference (e.g. "user", "contact", "prospect", "firm"); resolve it by calling that resource's own get/find tool — this pointer is not materialized
paginationobjectnullrequired— Pagination metadata from the API response; null when the endpoint returns no meta envelope
totalPagesnumbernullrequired— Total number of pages available
limitPerPagenumbernullrequired— Maximum folders returned per page; null if not reported
totalEntriesnumbernullrequired— Total number of folders across all pages

We're Adding More Lawmatics Tools Constantly!

Don't see a specific Lawmatics tool you need? Email [email protected] and we can add it.

Lawmatics Frequently Asked Questions

What does the List Folders tool do?

This page documents the List Folders tool (lawmatics_list-folders). List folders from Lawmatics with optional pagination, filtering, sorting, and matter/prospect/contact scoping. Prefer matterId/prospectId/contactId or a filter when possible, the unfiltered firm-wide list scans server-side and is slow (observed ~9s live even with a single folder in the account) and may time out. Rows carry the folder name, timestamps, and a relationships envelope of to-one {id,type} pointers (the owning matter/contact and the parent folder); use get-folder for the full envelope including child folders and files. To list the folders belonging to one record, either filter on documentable_id with that record's id, or pass matterId/prospectId/contactId, Folders' own direct scope params (at most one per call), which combine with filter as a second condition EXCEPT when filter.field is documentable_id (the same association, rejected as a conflict, since a conflicting pair can silently return zero rows with no error; a matching pair is merely redundant). Also filter by name (string) or the parent folder's folder_id (numeric id; vacuous in the live sandbox), or on created_at / updated_at by date. It is one of the Lawmatics Folders tools, invoked through your firm's Weave MCP connection and available to members whose access level permits it.

What is the Lawmatics integration?

The Lawmatics integration connects your firm's Lawmatics account to Weave. Lawmatics is a legal CRM, client intake, and marketing automation platform for law firms. This integration exposes contacts, companies, matters, billing (invoices, transactions, expenses, time entries), tasks, documents, events, and marketing data as governed MCP tools, scoped per member by access level. It groups 177 tools into 40 categories, exposed through your firm's Weave MCP connection and filtered per member by access level.

How does my firm connect Lawmatics to Weave?

An admin connects Lawmatics once for the whole firm via OAuth. Every member then works through that single connection; there is no per-user Lawmatics login.

Do I need to install or configure anything locally?

No. Weave is fully hosted, so there is nothing to install, run, or maintain on your own machines. An admin connects Lawmatics once from the Weave console through a secure OAuth handshake, and your credentials are encrypted at rest and stay inside Weave's infrastructure. After that, each member simply points their AI assistant at your firm's Weave MCP endpoint, and the tools they are allowed to use appear automatically based on their access level.

Can everyone on my team use every tool?

No. Tools are exposed per member by access level, so each person only sees the Lawmatics tools their role permits.

Are changes made through these tools reversible?

Reads are always safe. Deletes are irreversible: they remove the record from Lawmatics permanently.

How are money amounts represented?

All monetary values (expenses, transactions, invoices, time-entry rates) are integer cents; for example, 50000 means $500.00.

Related Tools