View as .md ↗
Lawmatics

Lawmatics

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.

List Expenses (lawmatics_list-expenses)

List expenses from Lawmatics with optional pagination, filtering, and sorting. Filter by the attached matter/contact id, the associated user id, or expense fields like billable and created_at. Each row carries a `relationships` envelope of to-one {id,type} pointers (the attached matter or contact, staff and creating users, billing expense type, invoice).

Tool Input

pageinteger— Page number (1-based)(> 0)
filterobject— Optional single-field filter; one filter at a time
fieldstringrequired— Field to filter on: contactable_id (numeric id of the matter/contact the expense is attached to), contactable_type (STORED record type — use Prospect for matter-attached and Contact for contact-attached expenses; case-sensitive, and the write-side 'Matter' literal does NOT match), user_id (numeric id of the associated firm user), billable (true/false), description (text), created_at, or updated_at (dates)(enum: "contactable_id", "contactable_type", "user_id", "billable", "description", "created_at", "updated_at")
operatorstring— Comparison operator. Omit to use the Lawmatics per-field default (= for ids/booleans/dates, ilike for strings). Use = for id fields and a range operator (e.g. >) for created_at(enum: "=", "!=", "<", "<=", ">", ">=", "like", "ilike", "null", "not_null")
valuestringrequired— Value to compare against (ignored for null / not_null operators)
sortBystring— Column to sort by(enum: "id", "created_at", "updated_at")
sortOrderstring— Sort direction; ascending or descending(enum: "asc", "desc")

Tool Output

expensesarrayrequired— Expenses on this page of results
[]object
idstringrequired— Unique ID of the expense
descriptionstringnullrequired— Description of the expense; null if unset
costCentsnumbernullrequired— Expense cost in integer cents (e.g. 50000 = $500.00); null if not reported
billablebooleannullrequired— Whether the expense is billable; null if not reported
rateFlatFeebooleannullrequired— Whether the expense is billed as a flat fee; null if not reported
rateCentsnumbernullrequired— Billing rate in integer cents; null if not reported
rateCurrencystringnullrequired— ISO currency code of the billing rate (e.g. USD); null if not reported
durationnumbernullrequired— Duration value as returned by the API (expenses share Lawmatics' time-entry storage model); null if not reported
durationRoundednumbernullrequired— Duration rounded to the firm's billing increment; null if not reported
startedAtstringnullrequired— ISO 8601 timestamp the expense timer started; null if unset or omitted
completedAtstringnullrequired— ISO 8601 timestamp the expense timer completed; null if unset or omitted
createdAtstringnullrequired— When the expense was created, as an ISO 8601 timestamp; null if unknown
updatedAtstringnullrequired— When the expense 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 (e.g. type 'user' -> get-user, type 'prospect' -> get-matter, type 'contact' -> get-contact, type 'invoice' -> get-invoice).
5 fields
staffobjectnullrequired— Pointer to the firm user the expense is attributed to; null when unattributed
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
createdByobjectnullrequired— Pointer to the firm user who created the record; null when unattributed
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
expenseTypeobjectnullrequired— Pointer to the billing expense type categorizing this expense; null when uncategorized
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
contactableobjectnullrequired— Pointer to the record the expense is attached to; type is "prospect" for a matter or "contact" for a contact; null when unattached
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
invoiceobjectnullrequired— Pointer to the invoice this expense is billed on; null when uninvoiced
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
paginationobjectrequired— Pagination metadata derived from the API `meta` envelope
totalPagesnumbernullrequired— Total number of pages available; null if not reported
limitPerPagenumbernullrequired— Maximum expenses returned per page; null if not reported
totalEntriesnumbernullrequired— Total number of expenses across all pages; null if not reported

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 Expenses tool do?

This page documents the List Expenses tool (lawmatics_list-expenses). List expenses from Lawmatics with optional pagination, filtering, and sorting. Filter by the attached matter/contact id, the associated user id, or expense fields like billable and created_at. Each row carries a relationships envelope of to-one {id,type} pointers (the attached matter or contact, staff and creating users, billing expense type, invoice). It is one of the Lawmatics Expenses 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