Skip to content

Evictions API

by evictionsapi · remote · no sign-in to list tools · v1.1.0 · published by GitHub user evictionsapi

Start and track a US eviction case in any state or DC; a licensed attorney reviews each real case.

Deletes · 3Final · 2Changes · 3

21 tools: 3 can delete or cancel things, 2 do something that can't be undone, 3 change things and 13 only read.

Scanned Oct 21, 2026

1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http evictions-api https://evictionsapi.com/mcp

Findings

Matches of fixed checks, with the text they matched.

1 warn
  • The server marks "evictions_get_payment_link" as not read-only (readOnlyHint: false), and its words say it reads.

    Matched text

    annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "evictions_get_payment_link" says "get": a word for reading.

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

21 tools

Deletes or cancels 3Claude Code: deny
  • evictions_submit_caseUse this when the person has said yes to submitting a draft that passes every check.No findings

    Why it is in this group

    • The name "evictions_submit_case" says "submit": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Use this when the person has said yes to submitting a draft that passes every check. Input: the case `id` and `confirmedByPerson`. A live case moves to `submitted`, its platform fee becomes a due charge, and a licensed attorney in the property’s state is engaged for it; nothing is served or filed until that attorney has reviewed it. With a test key the case is fictional and goes through a simulated review instead. With a live key this acts on a real case. Confirm with the person first, then pass `confirmedByPerson: true`. The case’s attestations must be the person’s own statements; never fill them in yourself. Do not use this to check a draft (use evictions_validate_case). Returns the case and its check results. Next: evictions_list_case_charges for the fee. Needs the person’s account: sign-in or an API key.

    Annotations the server declares

    • title: Submit a case
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • evictions_update_caseUse this when a draft’s facts need correcting or completing, for example after evictions_validate_case says what is missing.No findings

    Why it is in this group

    • The name "evictions_update_case" says "update": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Use this when a draft’s facts need correcting or completing, for example after evictions_validate_case says what is missing. Input: the case `id` and only the fields to change; each one replaces the stored value, and an object such as `property` is replaced whole. Works only on a draft, and `ground` and `entryPoint` cannot change (create a new case instead). Do not use this on a submitted case (use evictions_send_case_message to tell the team what changed). The result is the case, with `state` and `nextAction` (who it is waiting on and for what). Next: evictions_validate_case. Needs the person’s account: sign-in or an API key.

    Annotations the server declares

    • title: Change a draft case
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: false
  • evictions_withdraw_caseUse this when the person has decided to withdraw a case and stop it.No findings

    Why it is in this group

    • The name "evictions_withdraw_case" says "withdraw": a word that usually means money moves, which cannot be taken back.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Use this when the person has decided to withdraw a case and stop it. Input: the case `id` and `confirmedByPerson`. A live case with an attorney already engaged goes on hold instead and is withdrawn once the attorney has confirmed that all work has stopped. With a live key this acts on a real case. Confirm with the person first, then pass `confirmedByPerson: true`. Do not use this to report that the tenant has paid or to ask a question (use evictions_send_case_message). The result is the case, with `state` and `nextAction` (who it is waiting on and for what). Needs the person’s account: sign-in or an API key.

    Annotations the server declares

    • title: Withdraw a case
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
Can't be undone 2Claude Code: ask
  • evictions_send_case_messageUse this when the person asks you to write to the Evictions API team about one of their live cases.No findings

    Why it is in this group

    • The name "evictions_send_case_message" says "send": a word for sending, and what is sent cannot be taken back.
    Description, as the server wrote it
    Use this when the person asks you to write to the Evictions API team about one of their live cases. Input: the case `id` and `body`. Sends the team a message about a live case, in the person’s name, and the team is told by email. Send only what the person asked to say. Each call sends one more message; a test case is refused, and an organization can send at most 20 every 10 minutes. Returns the message as stored. Do not use this to change a draft (use evictions_update_case). Needs the person’s account: sign-in or an API key.

    Annotations the server declares

    • title: Send a case message
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • evictions_send_intake_fileUse this when the person asks you to send a file (their lease, the tenant ledger, emails or messages with the tenant) to Evictions API before a case exists.No findings

    Why it is in this group

    • The name "evictions_send_intake_file" says "send": a word for sending, and what is sent cannot be taken back.
    Description, as the server wrote it
    Use this when the person asks you to send a file (their lease, the tenant ledger, emails or messages with the tenant) to Evictions API before a case exists. Input: `filename`, `contentBase64` (a PDF, JPEG or PNG of about 700 KB at most through this server; a file up to 4 MB goes through `POST /v1/intake/files` with the person’s key) and optionally `purpose` and a short `note`. The file waits in the person’s inbox, where they start a case from it. Needs a live key: with a test key, create a test case and use evictions_add_case_document. Returns the file’s id, its type, the purpose guessed for it and when it leaves the inbox if no case is started from it. Each call sends one more file, but a repeat with the same `idempotencyKey` is safe (it returns the first answer). Do not use this when the case already exists (use evictions_add_case_document), and do not create the case yourself: the person starts it from the inbox. Needs the person’s account: sign-in or an API key.

    Annotations the server declares

    • title: Send a file to the inbox
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
Changes things 3Claude Code: ask
  • evictions_add_case_documentUse this when the person asks you to add a document to a draft case: the lease, the tenant ledger, emails or messages with the tenant, proof that they own or manage the property, o…No findings

    Why it is in this group

    • The name "evictions_add_case_document" says "add": a word for a change.
    Description, as the server wrote it
    Use this when the person asks you to add a document to a draft case: the lease, the tenant ledger, emails or messages with the tenant, proof that they own or manage the property, or a notice already served and its proof of service. Input: the case `id`, `filename`, `purpose` and `contentBase64` (a PDF, JPEG or PNG of about 700 KB at most through this server; a file up to 4 MB goes through `POST /v1/cases/{id}/documents` with the person’s key). Adds the document to the case; each call adds one more, but a repeat with the same `idempotencyKey` is safe (it returns the first answer). Works on a draft; after a live case is submitted, only a document with the purpose `other` can be added. Returns the document as stored. Do not use this when no case exists yet (use evictions_send_intake_file) or to change the case’s facts (use evictions_update_case). Next: evictions_validate_case. Needs the person’s account: sign-in or an API key.

    Annotations the server declares

    • title: Add a document to a case
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • evictions_create_caseUse this when the person wants to start an eviction case and has given you its facts: the ground, where the case starts, the property, the parties and their own attestations.No findings

    Why it is in this group

    • The name "evictions_create_case" says "create": a word for a change.
    Description, as the server wrote it
    Use this when the person wants to start an eviction case and has given you its facts: the ground, where the case starts, the property, the parties and their own attestations. Creates a draft case in the person’s account. Nothing is submitted. Add its documents with evictions_add_case_document. Pass an `idempotencyKey` and reuse it if you repeat the call, so a retry never makes a second case. For a property manager, `landlordId` (from evictions_list_landlords) names the owner the case is for and adds its saved management agreement to the case. Do not use this to change a case that already exists (use evictions_update_case). The result is the case, with `state` and `nextAction` (who it is waiting on and for what). Next: evictions_validate_case. Needs the person’s account: sign-in or an API key.

    Annotations the server declares

    • title: Create a draft case
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
Only reads 13Claude Code: allow
  • evictions_get_caseUse this when you need one case in full: where it stands and what it is waiting on.No findings

    Why it is in this group

    • The name "evictions_get_case" says "get": a word for reading.
    Description, as the server wrote it
    Use this when you need one case in full: where it stands and what it is waiting on. Input: the case `id`. Returns its facts, deadlines, documents and, for a live case, the attorney once recorded. Do not use this to find a case whose id you do not have (use evictions_list_cases) or for its history (use evictions_get_case_events). The result is the case, with `state` and `nextAction` (who it is waiting on and for what). Needs the person’s account: sign-in or an API key.

    Annotations the server declares

    • title: Get a case
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • evictions_get_case_eventsUse this when the person asks what has happened on a case so far.No findings

    Why it is in this group

    • The name "evictions_get_case_events" says "get": a word for reading.
    Description, as the server wrote it
    Use this when the person asks what has happened on a case so far. Input: the case `id`. Returns the events the person may see, oldest first, each with what happened, the state before and after, and when. Do not use this for where the case stands now (use evictions_get_case) or for messages (use evictions_list_case_messages). Needs the person’s account: sign-in or an API key.

    Annotations the server declares

    • title: Case events
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • evictions_get_pricingUse this when the person asks what a case costs or about refunds.No findings

    Why it is in this group

    • The name "evictions_get_pricing" says "get": a word for reading.
    Description, as the server wrote it
    Use this when the person asks what a case costs or about refunds. Takes no input. Returns the platform fee, the costs that are separate from it and the refund rule, word for word as the pricing page says them, with its link. Do not use this for the charges already on a case (use evictions_list_case_charges). No key needed.

    Annotations the server declares

    • title: Pricing
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • evictions_get_service_overviewUse this when the person asks what Evictions API is, what is available today, how a real case is handled or who operates it.No findings

    Why it is in this group

    • The name "evictions_get_service_overview" says "get": a word for reading.
    Description, as the server wrote it
    Use this when the person asks what Evictions API is, what is available today, how a real case is handled or who operates it. Takes no input. Returns the service’s description, its current status and who operates it, in the site’s own words, with links to the home and how-it-works pages. Do not use this for fees (use evictions_get_pricing) or for one state’s rules (use evictions_get_state_eviction_facts). No key needed.

    Annotations the server declares

    • title: Service overview
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • evictions_get_startedUse this when the person has no account or key yet, or asks how to connect an agent.No findings

    Why it is in this group

    • The name "evictions_get_started" says "get": a word for reading.
    Description, as the server wrote it
    Use this when the person has no account or key yet, or asks how to connect an agent. Takes no input. Returns the sign-up link, what test and live keys are, how this MCP server is reached and signed in to, and the links to the docs and the OpenAPI document. Do not use this to check a key the person already has: any tool that works with cases says so when its key is missing or refused. No key needed.

    Annotations the server declares

    • title: Get started
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • evictions_get_state_eviction_factsUse this when the person asks how eviction works in one state, such as the notice for nonpayment of rent or the court.No findings

    Why it is in this group

    • The name "evictions_get_state_eviction_facts" says "get": a word for reading.
    Description, as the server wrote it
    Use this when the person asks how eviction works in one state, such as the notice for nonpayment of rent or the court. Input: `state`, as a two-letter code, a name or a slug. Returns the page’s opening answer and only the facts published as verified and sourced for that state, each with its citation, source link, the date it was checked and a short quote of the cited text where there is one (a fact checked more than 90 days ago is left out), plus the state’s page and a notice that this is general information, not legal advice; a state with none says so. Do not use this for whether a case can be opened at an address (use evictions_resolve_jurisdiction) or for advice on a particular case. No key needed.

    Annotations the server declares

    • title: State eviction facts
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • evictions_list_case_chargesUse this when the person asks what they owe on a case or whether a charge is paid.No findings

    Why it is in this group

    • The name "evictions_list_case_charges" says "list": a word for reading.
    Description, as the server wrote it
    Use this when the person asks what they owe on a case or whether a charge is paid. Input: the case `id`. Returns the charges on a case, oldest first, each with its id, kind, amount in cents and status (due, paid, void or refunded), and whether online payment is available. Do not use this for the published prices (use evictions_get_pricing). Next: evictions_get_payment_link for a due charge. Needs the person’s account: sign-in or an API key.

    Annotations the server declares

    • title: Case charges
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • evictions_list_case_messagesUse this when the person asks whether the Evictions API team has written about a case, or before writing to it.No findings

    Why it is in this group

    • The name "evictions_list_case_messages" says "list": a word for reading.
    Description, as the server wrote it
    Use this when the person asks whether the Evictions API team has written about a case, or before writing to it. Input: the case `id`. Returns the messages on a case, the person’s own and the team’s, oldest first, each with its author, text and time. Do not use this for the case’s events (use evictions_get_case_events). Next: evictions_send_case_message to reply. Needs the person’s account: sign-in or an API key.

    Annotations the server declares

    • title: Case messages
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • evictions_list_casesUse this when you need the person’s cases, or the id of a case you do not have.No findings

    Why it is in this group

    • The name "evictions_list_cases" says "list": a word for reading.
    Description, as the server wrote it
    Use this when you need the person’s cases, or the id of a case you do not have. Input: optional `limit` and `cursor`, and `landlordId` for only one landlord’s cases (`none` for the cases with no landlord). Returns the cases of the key’s organization and mode (test or live), newest first, a page at a time, each with its `state` and `nextAction`, and `nextCursor` for the next page (null on the last). Do not use this when you already have the case id (use evictions_get_case). Needs the person’s account: sign-in or an API key.

    Annotations the server declares

    • title: List cases
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • evictions_list_landlordsUse this when the person is a property manager and you need the owner a case is for, or to list one owner’s cases.No findings

    Why it is in this group

    • The name "evictions_list_landlords" says "list": a word for reading.
    Description, as the server wrote it
    Use this when the person is a property manager and you need the owner a case is for, or to list one owner’s cases. Input: optional `includeArchived`. Returns the organization’s landlords (the owners it acts for, saved in the app), by name, each with its `id`, `name`, whether it is `archived` and how many cases in this mode name it; their contact details stay in the app. Live keys only: with a test key the list is always empty, since landlords are real owners, and a test case cannot take one. Do not use this to add or change a landlord (the person does that on the Landlords page of the app). Next: evictions_create_case with `landlordId`, or evictions_list_cases with `landlordId`. Needs the person’s account: sign-in or an API key.

    Annotations the server declares

    • title: List landlords
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • evictions_list_statesUse this when you need every place the service covers, or the exact code or slug of a state.No findings

    Why it is in this group

    • The name "evictions_list_states" says "list": a word for reading.
    Description, as the server wrote it
    Use this when you need every place the service covers, or the exact code or slug of a state. Takes no input. Returns the 50 states and DC, each with its two-letter code, name, slug and page on the site. Do not use this for one state’s eviction rules (use evictions_get_state_eviction_facts). No key needed.

    Annotations the server declares

    • title: List states
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • evictions_resolve_jurisdictionUse this when you need to know, before creating a case, whether a case can be opened for a property’s location and which facts each ground of eviction needs there.No findings

    Why it is in this group

    • The name "evictions_resolve_jurisdiction" says "resolve": a word for reading.
    Description, as the server wrote it
    Use this when you need to know, before creating a case, whether a case can be opened for a property’s location and which facts each ground of eviction needs there. Input: `state`, and `county` and `city` when known. Returns whether the jurisdiction is served and, for each ground, the facts a case needs, and with a test key also the notice rules of the fictional state ZZ. Do not use this for a state’s published facts with their sources (use evictions_get_state_eviction_facts, which needs no key). Next: evictions_create_case. Needs the person’s account: sign-in or an API key.

    Annotations the server declares

    • title: Resolve a jurisdiction
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • evictions_validate_caseUse this when a draft looks complete, before asking the person to confirm its submission.No findings

    Why it is in this group

    • The name "evictions_validate_case" says "validate": a word for reading.
    Description, as the server wrote it
    Use this when a draft looks complete, before asking the person to confirm its submission. Input: the case `id`. Runs the submission checks on a draft and returns each check’s result, with the reason when it does not pass, and whether all passed. Changes nothing. Do not use this to submit (use evictions_submit_case). Next: evictions_update_case to fill a gap, or the person’s yes and then evictions_submit_case. Needs the person’s account: sign-in or an API key.

    Annotations the server declares

    • title: Check a draft case
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false

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.

Install

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

claude mcp add --transport http evictions-api https://evictionsapi.com/mcp

Run in a terminal.

Claude Code permissions

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

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__evictions-api__evictions_get_service_overview",
      "mcp__evictions-api__evictions_get_pricing",
      "mcp__evictions-api__evictions_list_states",
      "mcp__evictions-api__evictions_get_state_eviction_facts",
      "mcp__evictions-api__evictions_get_started",
      "mcp__evictions-api__evictions_resolve_jurisdiction",
      "mcp__evictions-api__evictions_get_case",
      "mcp__evictions-api__evictions_list_cases",
      "mcp__evictions-api__evictions_list_landlords",
      "mcp__evictions-api__evictions_validate_case",
      "mcp__evictions-api__evictions_get_case_events",
      "mcp__evictions-api__evictions_list_case_charges",
      "mcp__evictions-api__evictions_list_case_messages"
    ],
    "ask": [
      "mcp__evictions-api__evictions_create_case",
      "mcp__evictions-api__evictions_get_payment_link",
      "mcp__evictions-api__evictions_send_case_message",
      "mcp__evictions-api__evictions_add_case_document",
      "mcp__evictions-api__evictions_send_intake_file"
    ],
    "deny": [
      "mcp__evictions-api__evictions_update_case",
      "mcp__evictions-api__evictions_submit_case",
      "mcp__evictions-api__evictions_withdraw_case"
    ]
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as evictions-api. Review it before you use it.