Skip to content

Lawcus MCP by usefulapi

io.usefulapi/lawcususefulapi.iostreamable-httpv1.0.0Scanned

Read Lawcus contacts, matters, leads, time and billing reports; create contacts and tasks.

27 tools: 1 do something that can't be undone, 8 change things and 18 only read.

Tools: 0 delete, 1 irreversible, 8 write, 18 read.
  • Reads private data · 5
  • Reads text others write · 27
  • Can send data out · 1
  • 1 finding

Anlyon alternative

9 of these tools change something. Run those as governed actions.

Declare what an action changes, and Anlyon puts it under a shared limit, binds every approval to the exact request, and grades the outcome. It works on any HTTPS API you can describe as an action.

Anlyon does not run, proxy or govern this MCP server. A tool your own code calls directly is not routed through Anlyon and is not governed by it.

Import an OpenAPI spec →

Tools

Grouped by what each tool does, most consequential first. Open one for its reasons and full description; descriptions are the publisher's own words.

27 tools

Can't be undone 1Claude Code: ask
  • lawcus_report_payments_collectedLawcus report (needs the Admin role): payments the firm collected in a period.Reads text others write1 finding

    Why it is in this group

    • The name "lawcus_report_payments_collected" says "payment": a word that usually means money moves, which cannot be taken back.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.

    Findings

    • Warn

      The server marks "lawcus_report_payments_collected" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

      Matched text

      annotations: {"readOnlyHint":true,"openWorldHint":true}; The name "lawcus_report_payments_collected" says "payment": a word that usually means money moves, which cannot be taken back.

      What this check looks for
    Description, as the server wrote it
    Lawcus report (needs the Admin role): payments the firm collected in a period.

    Annotations the server declares

    • title: Payments collected report
    • readOnlyHint: true
    • openWorldHint: true
Changes things 8Claude Code: ask
  • lawcus_create_contactWRITE: create a new contact in Lawcus (a person or a company).Reads text others writeCan send data outNo findings

    Why it is in this group

    • The name "lawcus_create_contact" says "create": a word for a change.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    • outboundThe input takes a destination (input.phone): what the tool writes goes there.
    Description, as the server wrote it
    WRITE: create a new contact in Lawcus (a person or a company). It does not send anything to the contact. Person needs first_name and last_name; Company needs name. Check lawcus_list_contacts first to avoid duplicates.

    Annotations the server declares

    • title: Create a contact
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • lawcus_create_taskWRITE: create a task in Lawcus, optionally on a matter and assigned to team members.Reads text others writeNo findings

    Why it is in this group

    • The name "lawcus_create_task" says "create": a word for a change.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    WRITE: create a task in Lawcus, optionally on a matter and assigned to team members. Lawcus may email or SMS the assignees if reminders are set; no reminders are set by this tool.

    Annotations the server declares

    • title: Create a task
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • lawcus_report_accounts_receivableLawcus report (needs the Admin role): unpaid invoices by age (who owes the firm what).Reads text others writeNo findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Lawcus report (needs the Admin role): unpaid invoices by age (who owes the firm what).

    Annotations the server declares

    • title: Accounts receivable report
    • readOnlyHint: true
    • openWorldHint: true
  • lawcus_report_client_trustLawcus report (needs the Admin role): client trust (IOLTA) balances; zero balances hidden unless display_zero is true.Reads text others writeNo findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Lawcus report (needs the Admin role): client trust (IOLTA) balances; zero balances hidden unless display_zero is true.

    Annotations the server declares

    • title: Client trust balance report
    • readOnlyHint: true
    • openWorldHint: true
  • lawcus_report_invoice_historyLawcus report (needs the Admin role): summary of issued invoices for a period.Reads text others writeNo findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Lawcus report (needs the Admin role): summary of issued invoices for a period.

    Annotations the server declares

    • title: Invoice history report
    • readOnlyHint: true
    • openWorldHint: true
  • lawcus_report_matter_balanceLawcus report (needs the Admin role): balance summary of all matters, optionally trust balances only.Reads text others writeNo findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Lawcus report (needs the Admin role): balance summary of all matters, optionally trust balances only.

    Annotations the server declares

    • title: Matter balance report
    • readOnlyHint: true
    • openWorldHint: true
  • lawcus_report_revenueLawcus report (needs the Admin role): revenue by attorney for a period.Reads text others writeNo findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Lawcus report (needs the Admin role): revenue by attorney for a period.

    Annotations the server declares

    • title: Attorney revenue report
    • readOnlyHint: true
    • openWorldHint: true
  • lawcus_report_time_entriesLawcus report (needs the Admin role): time entries summarized per user for a period.Reads text others writeNo findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Lawcus report (needs the Admin role): time entries summarized per user for a period.

    Annotations the server declares

    • title: Time entries summary report
    • readOnlyHint: true
    • openWorldHint: true
Only reads 18Show 18 read-only tools
  • lawcus_get_contactLawcus: one contact by UUID, with addresses, phones, emails and custom fields.Reads private dataReads text others writeNo findings

    Why it is in this group

    • The name "lawcus_get_contact" says "get": a word for reading.

    What it can reach

    • private-dataThe name "lawcus_get_contact" says "get" and "contact": it reads contacts.
    • private-dataThe description's first sentence says "contact": it reads contacts.
    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    • untrusted-inputThe description's first sentence says "email": it reads inbound email, which other people can write.
    Description, as the server wrote it
    Lawcus: one contact by UUID, with addresses, phones, emails and custom fields.

    Annotations the server declares

    • title: Get a contact
    • readOnlyHint: true
    • openWorldHint: true
  • lawcus_get_firmLawcus: the firm (team) details: name, address, currency, locale and phone numbers.Reads text others writeNo findings

    Why it is in this group

    • The name "lawcus_get_firm" says "get": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Lawcus: the firm (team) details: name, address, currency, locale and phone numbers.

    Annotations the server declares

    • title: Get firm details
    • readOnlyHint: true
    • openWorldHint: true
  • lawcus_get_leadLawcus: one lead by UUID.Reads text others writeNo findings

    Why it is in this group

    • The name "lawcus_get_lead" says "get": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Lawcus: one lead by UUID.

    Annotations the server declares

    • title: Get a lead
    • readOnlyHint: true
    • openWorldHint: true
  • lawcus_get_matterLawcus: one matter by UUID with its client, workflow stage, billing settings, balances and custom fields.Reads text others writeNo findings

    Why it is in this group

    • The name "lawcus_get_matter" says "get": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Lawcus: one matter by UUID with its client, workflow stage, billing settings, balances and custom fields.

    Annotations the server declares

    • title: Get a matter
    • readOnlyHint: true
    • openWorldHint: true
  • lawcus_get_meLawcus: the user the API token belongs to (id, uuid, name, timezone, role such as OWNER/ADMIN/MEMBER).Reads text others writeNo findings

    Why it is in this group

    • The name "lawcus_get_me" says "get": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Lawcus: the user the API token belongs to (id, uuid, name, timezone, role such as OWNER/ADMIN/MEMBER).

    Annotations the server declares

    • title: Get my Lawcus user
    • readOnlyHint: true
    • openWorldHint: true
  • lawcus_list_billing_itemsLawcus: billable activity (time entries, expenses and flat fees) with payment details, filterable by date range, user, practice area, matter, client and invoiced state.Reads text others writeNo findings

    Why it is in this group

    • The name "lawcus_list_billing_items" says "list": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Lawcus: billable activity (time entries, expenses and flat fees) with payment details, filterable by date range, user, practice area, matter, client and invoiced state. Also returns time totals for today/week/month/year.

    Annotations the server declares

    • title: List billing items
    • readOnlyHint: true
    • openWorldHint: true
  • lawcus_list_contactsLawcus: list contacts (people and companies; clients are contacts), filterable by name, email, type or update date.Reads private dataReads text others writeNo findings

    Why it is in this group

    • The name "lawcus_list_contacts" says "list": a word for reading.

    What it can reach

    • private-dataThe name "lawcus_list_contacts" says "list" and "contact": it reads contacts.
    • private-dataThe description's first sentence says "contact": it reads contacts.
    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    • untrusted-inputThe description's first sentence says "email": it reads inbound email, which other people can write.
    Description, as the server wrote it
    Lawcus: list contacts (people and companies; clients are contacts), filterable by name, email, type or update date. Paged with skip/take.

    Annotations the server declares

    • title: List contacts
    • readOnlyHint: true
    • openWorldHint: true
  • lawcus_list_expensesLawcus: expenses logged against matters.Reads text others writeNo findings

    Why it is in this group

    • The name "lawcus_list_expenses" says "list": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Lawcus: expenses logged against matters. The API returns all expenses; filter here by matter and date range, reply cut to `limit`.

    Annotations the server declares

    • title: List expenses
    • readOnlyHint: true
    • openWorldHint: true
  • lawcus_list_interactionsLawcus: logged client interactions (emails, calls, secure messages) with subject, matter and contact.Reads private dataReads text others writeNo findings

    Why it is in this group

    • The name "lawcus_list_interactions" says "list": a word for reading.

    What it can reach

    • private-dataThe description's first sentence says "email": it reads mail.
    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    • untrusted-inputThe description's first sentence says "email": it reads inbound email, which other people can write.
    Description, as the server wrote it
    Lawcus: logged client interactions (emails, calls, secure messages) with subject, matter and contact. Paged with skip/paginate.

    Annotations the server declares

    • title: List interactions
    • readOnlyHint: true
    • openWorldHint: true
  • lawcus_list_lead_sourcesLawcus: the firm's lead sources (Website, Referral, Google, ...).Reads text others writeNo findings

    Why it is in this group

    • The name "lawcus_list_lead_sources" says "list": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    • untrusted-inputThe description's first sentence says "website": it reads web pages, which anyone can write.
    Description, as the server wrote it
    Lawcus: the firm's lead sources (Website, Referral, Google, ...). Ids go into lead and contact filters.

    Annotations the server declares

    • title: List lead sources
    • readOnlyHint: true
    • openWorldHint: true
  • lawcus_list_leadsLawcus: list leads (prospective matters) with client contact details and pipeline stage.Reads private dataReads text others writeNo findings

    Why it is in this group

    • The name "lawcus_list_leads" says "list": a word for reading.

    What it can reach

    • private-dataThe description's first sentence says "contact": it reads contacts.
    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Lawcus: list leads (prospective matters) with client contact details and pipeline stage. Paged with skip/take.

    Annotations the server declares

    • title: List leads
    • readOnlyHint: true
    • openWorldHint: true
  • lawcus_list_mattersLawcus: list matters (cases) with status, client, billing type, trust and retainer balances.Reads text others writeNo findings

    Why it is in this group

    • The name "lawcus_list_matters" says "list": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Lawcus: list matters (cases) with status, client, billing type, trust and retainer balances. Filter by status, name, number, client or dates. Paged with skip/take; the reply also carries opened/closed counts.

    Annotations the server declares

    • title: List matters
    • readOnlyHint: true
    • openWorldHint: true
  • lawcus_list_tasksLawcus: list tasks, optionally by completion, assignee, matter or tag.Reads text others writeNo findings

    Why it is in this group

    • The name "lawcus_list_tasks" says "list": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Lawcus: list tasks, optionally by completion, assignee, matter or tag. The API returns the whole list; the reply is cut to `limit`.

    Annotations the server declares

    • title: List tasks
    • readOnlyHint: true
    • openWorldHint: true
  • lawcus_list_team_membersLawcus: the people on the firm's team with id, uuid, name, role and hourly rate.Reads text others writeNo findings

    Why it is in this group

    • The name "lawcus_list_team_members" says "list": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Lawcus: the people on the firm's team with id, uuid, name, role and hourly rate. Ids are used in matter, task and report filters.

    Annotations the server declares

    • title: List team members
    • readOnlyHint: true
    • openWorldHint: true
  • lawcus_list_time_entriesLawcus: time entries (hours worked, rate, total, matter, invoiced or not).Reads text others writeNo findings

    Why it is in this group

    • The name "lawcus_list_time_entries" says "list": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Lawcus: time entries (hours worked, rate, total, matter, invoiced or not). The API returns all entries; filter here by matter and date range, reply cut to `limit`.

    Annotations the server declares

    • title: List time entries
    • readOnlyHint: true
    • openWorldHint: true
  • lawcus_list_workflow_stagesLawcus: the stages of one workflow (pipeline).Reads text others writeNo findings

    Why it is in this group

    • The name "lawcus_list_workflow_stages" says "list": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Lawcus: the stages of one workflow (pipeline).

    Annotations the server declares

    • title: List workflow stages
    • readOnlyHint: true
    • openWorldHint: true
  • lawcus_list_workflowsLawcus: the workflows (matter and lead pipelines) with their ids.Reads text others writeNo findings

    Why it is in this group

    • The name "lawcus_list_workflows" says "list": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Lawcus: the workflows (matter and lead pipelines) with their ids.

    Annotations the server declares

    • title: List workflows
    • readOnlyHint: true
    • openWorldHint: true

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Exfil surface

Which tools read private data, which read text someone else can write, and which can send data out. One of each is a path a prompt injection can use.

135 paths in this server alone from private data, through text someone else wrote, to a way out. Denying 1 outbound tool breaks every one.

Reads private data5
Reads files, mail, messages, databases, secrets, calendars or repositories.
Can send data out1
Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.
deny to break every path
{
  "permissions": {
    "deny": [
      "mcp__lawcus__lawcus_create_contact"
    ]
  }
}

Other servers in the same agent add their own tools to these paths. Audit your whole setup to see them together.

Findings

Matches of fixed checks, with the text they matched.

1 warn
  • The server marks "lawcus_report_payments_collected" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

    Matched text

    annotations: {"readOnlyHint":true,"openWorldHint":true}; The name "lawcus_report_payments_collected" says "payment": a word that usually means money moves, which cannot be taken back.

    What this check looks for

History

Changes to its tool definitions and to its remote endpoint, newest first.

No change seen yet. Its tools are rescanned every day, and a remote endpoint is looked at once a week.

Install

Pinned to version 1.0.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http lawcus https://lawcus.usefulapi.io/mcp
claude mcp add --transport http lawcus https://lawcus.usefulapi.io/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change or a way out, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__lawcus__lawcus_get_me",
      "mcp__lawcus__lawcus_get_firm",
      "mcp__lawcus__lawcus_list_team_members",
      "mcp__lawcus__lawcus_search",
      "mcp__lawcus__lawcus_list_contacts",
      "mcp__lawcus__lawcus_get_contact",
      "mcp__lawcus__lawcus_list_matters",
      "mcp__lawcus__lawcus_get_matter",
      "mcp__lawcus__lawcus_list_leads",
      "mcp__lawcus__lawcus_get_lead",
      "mcp__lawcus__lawcus_list_lead_sources",
      "mcp__lawcus__lawcus_list_workflows",
      "mcp__lawcus__lawcus_list_workflow_stages",
      "mcp__lawcus__lawcus_list_tasks",
      "mcp__lawcus__lawcus_list_time_entries",
      "mcp__lawcus__lawcus_list_expenses",
      "mcp__lawcus__lawcus_list_billing_items",
      "mcp__lawcus__lawcus_list_interactions"
    ],
    "ask": [
      "mcp__lawcus__lawcus_create_contact",
      "mcp__lawcus__lawcus_create_task",
      "mcp__lawcus__lawcus_report_accounts_receivable",
      "mcp__lawcus__lawcus_report_matter_balance",
      "mcp__lawcus__lawcus_report_revenue",
      "mcp__lawcus__lawcus_report_time_entries",
      "mcp__lawcus__lawcus_report_payments_collected",
      "mcp__lawcus__lawcus_report_invoice_history",
      "mcp__lawcus__lawcus_report_client_trust"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. A read that can send data out (it takes a URL, say) asks first too. It assumes the server is installed as lawcus. Review it before you use it.

Capability tags behind 27 rules
  • mcp__lawcus__lawcus_get_me untrusted-input
  • mcp__lawcus__lawcus_get_firm untrusted-input
  • mcp__lawcus__lawcus_list_team_members untrusted-input
  • mcp__lawcus__lawcus_search private-data, untrusted-input
  • mcp__lawcus__lawcus_list_contacts private-data, untrusted-input
  • mcp__lawcus__lawcus_get_contact private-data, untrusted-input
  • mcp__lawcus__lawcus_create_contact untrusted-input, outbound
  • mcp__lawcus__lawcus_list_matters untrusted-input
  • mcp__lawcus__lawcus_get_matter untrusted-input
  • mcp__lawcus__lawcus_list_leads private-data, untrusted-input
  • mcp__lawcus__lawcus_get_lead untrusted-input
  • mcp__lawcus__lawcus_list_lead_sources untrusted-input
  • mcp__lawcus__lawcus_list_workflows untrusted-input
  • mcp__lawcus__lawcus_list_workflow_stages untrusted-input
  • mcp__lawcus__lawcus_list_tasks untrusted-input
  • mcp__lawcus__lawcus_create_task untrusted-input
  • mcp__lawcus__lawcus_list_time_entries untrusted-input
  • mcp__lawcus__lawcus_list_expenses untrusted-input
  • mcp__lawcus__lawcus_list_billing_items untrusted-input
  • mcp__lawcus__lawcus_list_interactions private-data, untrusted-input
  • mcp__lawcus__lawcus_report_accounts_receivable untrusted-input
  • mcp__lawcus__lawcus_report_matter_balance untrusted-input
  • mcp__lawcus__lawcus_report_revenue untrusted-input
  • mcp__lawcus__lawcus_report_time_entries untrusted-input
  • mcp__lawcus__lawcus_report_payments_collected untrusted-input
  • mcp__lawcus__lawcus_report_invoice_history untrusted-input
  • mcp__lawcus__lawcus_report_client_trust untrusted-input

Pin

Keep the decision: fail CI when the tools change, follow every change, or show a badge.

Pin in CI

Fail a build when the tools you reviewed are not the tools the server serves today.

curl -s "https://anlyon.dev/api/v1/servers/io.usefulapi/lawcus/verify?hash=d69668ae3f7caff2c3f226f8b690d2430cbafa2a1219ae7f9cca313c11ed2299" | jq -e '.changed == false'

Pinned hash d69668ae3f7c, from Oct 24, 2026, 13:20 UTC.

Watch

Get told when its tools change: a new tool, a new description, a new class.

https://anlyon.dev/servers/io.usefulapi/lawcus/changes.xml

An Atom feed. Works in any feed reader or Slack's RSS app.

Badge

anlyon.dev badge for io.usefulapi/lawcus
[![anlyon.dev](https://anlyon.dev/badge/io.usefulapi/lawcus.svg)](https://anlyon.dev/servers/io.usefulapi/lawcus)

Source: MCP Registry · repository. Synced Oct 24, 2026, 13:18 UTC.