_ registry / mcp streamable-http · checked 32m ago

evictions-api

https://evictionsapi.com

Registry code: fa9d196482c02482

api record

Evictions API lets a property manager or owner start and track an eviction case for a rental property in any US state or DC; a licensed attorney in the property’s state reviews each real case before anything is served or filed. Evictions API is not a law firm and does not give legal advice. The tools that describe the service, its pricing and each state need no key. The tools that work with cases need the person’s account: the MCP client asks the person to sign in when one of them is first used, or sends the person’s API key as `Authorization: Bearer eak_...`; evictions_get_started says how…

endpoint
https://evictionsapi.com/mcp
protocol
streamable-http ·2025-06-18
authentication
none observed
public key
none — nobody has proven they own this listing · is it yours? claim it
karma
0 · newcomer
_ is it live, free and safe measured by this hub
Is evictions-api live?
Yes — it answered the hub's last check (checked 32m ago). It answered 100% of checks over the last 30 days.
Is evictions-api free to use?
Yes — the hub reached it with no key and no payment.
What tools does evictions-api have?
18 tools: evictions_list_states, evictions_get_state_eviction_facts, evictions_create_case, evictions_resolve_jurisdiction, evictions_update_case, evictions_get_case, evictions_list_cases, evictions_validate_case, ….
Is evictions-api safe to connect?
The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
reachable
live
uptime, 30 days
100%

90 days 100%· all time 100%

latency
1,458ms

last good check

priced tools
0

of 18 tools

_ answered our checks, 90 days 1 checks · signed record
  • unknown → live
_ used through this hub 30 days

The one measurement on this page that an operator cannot produce by editing a file on its own server: somebody else chose it, and paid to. Read the accounts before the calls — volume from one account is one relationship, and calling yourself is the cheap half. Both are what the ranking is built from, printed so the order can be checked rather than taken on trust.

accounts
0

distinct, expensive to fake

calls served
0

successful, last 30 days

_ what it can do 18 tools
3 open 15 never probed 3 of 18 classified

Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.

  • evictions_get_pricing open 32m ago

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {}
    }
    arguments 5 lines
  • evictions_get_service_overview open 32m ago

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {}
    }
    arguments 5 lines
  • evictions_get_started open 32m ago

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {}
    }
    arguments 5 lines
  • evictions_list_states unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {}
    }
    arguments 5 lines
  • evictions_get_state_eviction_facts unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "state"
      ],
      "properties": {
        "state": {
          "type": "string",
          "maxLength": 60,
          "minLength": 1,
          "description": "A two-letter code (TX), a state name (Texas) or its slug (texas). DC is the District of Columbia."
        }
      }
    }
    arguments 15 lines
  • evictions_create_case unknown never probed

    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. Documents are uploaded through the REST API or the site, not this server. Pass an `idempotencyKey` and reuse it if you repeat the call, so a retry never makes a second 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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "ground",
        "entryPoint",
        "property",
        "parties",
        "attestations"
      ],
      "properties": {
        "lease": {
          "type": "object",
          "properties": {
            "endDate": {
              "type": "string",
              "description": "The day the lease ends or ended, as YYYY-MM-DD."
            },
            "startDate": {
              "type": "string",
              "description": "The day the lease began, as YYYY-MM-DD."
            },
            "monthlyRentCents": {
              "type": "integer",
              "maximum": 9007199254740991,
              "minimum": 0,
              "description": "The monthly rent, in US cents (150000 is $1,500.00)."
            }
          },
          "description": "The lease, when there is one."
        },
        "ground": {
          "enum": [
            "nonpayment",
            "lease_violation",
            "holdover"
          ],
          "type": "string",
          "description": "Why the case is brought: nonpayment of rent, a lease violation, or holdover (the tenant stayed after the lease ended). Cannot be changed later."
        },
        "ledger": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "date",
              "type",
              "amountCents"
            ],
            "properties": {
              "date": {
                "type": "string",
                "description": "The day of the charge or payment, as YYYY-MM-DD."
              },
              "memo": {
                "type": "string",
                "maxLength": 500,
                "minLength": 1,
                "description": "What it was for, such as \"October rent\"."
              },
              "type": {
                "enum": [
                  "charge",
                  "payment"
                ],
                "type": "string",
                "description": "`charge` for rent or a fee owed, `payment` for money received."
              },
              "amountCents": {
                "type": "integer",
                "maximum": 9007199254740991,
                "minimum": 0,
                "description": "The amount, in US cents (150000 is $1,500.00)."
              }
            }
          },
          "maxItems": 1000,
          "description": "Rent charges and payments, for a nonpayment case."
        },
        "parties": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "role",
              "name"
            ],
            "properties": {
              "name": {
                "type": "string",
                "maxLength": 200,
                "minLength": 1,
                "description": "Full legal name of the person or company."
              },
              "role": {
                "enum": [
                  "plaintiff",
                  "defendant"
                ],
                "type": "string",
                "description": "`plaintiff` for the owner or manager bringing the case, `defendant` for each tenant."
              },
              "isEntity": {
                "type": "boolean",
                "description": "True when the party is a company rather than a person."
              }
            }
          },
          "maxItems": 20,
          "description": "The plaintiff (the owner or manager) and each defendant (tenant)."
        },
        "freeText": {
          "type": "string",
          "maxLength": 5000,
          "description": "Anything else the attorney should know."
        },
        "property": {
          "type": "object",
          "required": [
            "line1",
            "city",
            "state",
            "zip",
            "ownerOfRecord"
          ],
          "properties": {
            "zip": {
              "type": "string",
              "pattern": "^\\d{5}(-\\d{4})?$",
              "description": "ZIP code: 5 digits, or ZIP+4 (12345-6789)."
            },
            "city": {
              "type": "string",
              "maxLength": 100,
              "minLength": 1,
              "description": "City."
            },
            "unit": {
              "type": "string",
              "maxLength": 50,
              "minLength": 1,
              "description": "Unit or apartment number, if any."
            },
            "line1": {
              "type": "string",
              "maxLength": 200,
              "minLength": 1,
              "description": "Street address of the rental property."
            },
            "state": {
              "type": "string",
              "pattern": "^[A-Za-z]{2}$",
              "description": "Two-letter state code, for example TX; DC for the District of Columbia. Test keys use the fictional state ZZ."
            },
            "county": {
              "type": "string",
              "maxLength": 100,
              "minLength": 1,
              "description": "County, when known."
            },
            "ownerOfRecord": {
              "type": "string",
              "maxLength": 200,
              "minLength": 1,
              "description": "The owner of the property as on the deed: a person or a company."
            }
          },
          "description": "The rental property and its owner of record."
        },
        "violation": {
          "type": "object",
          "required": [
            "description",
            "date"
          ],
          "properties": {
            "date": {
              "type": "string",
              "description": "The day it happened, as YYYY-MM-DD."
            },
            "description": {
              "type": "string",
              "maxLength": 5000,
              "minLength": 1,
              "description": "What the tenant did that breaks the lease, in the person’s words."
            }
          },
          "description": "For a lease violation case."
        },
        "entryPoint": {
          "enum": [
            "notice",
            "filing"
          ],
          "type": "string",
          "description": "Where the case starts: `notice` (a notice to the tenant comes first), or `filing` when a notice was already served (then give `priorNotice`). Cannot be changed later."
        },
        "priorNotice": {
          "type": "object",
          "required": [
            "servedDate",
            "method",
            "periodDays"
          ],
          "properties": {
            "method": {
              "enum": [
                "personal",
                "substitute",
                "posting",
                "certified_mail",
                "first_class_mail"
              ],
              "type": "string",
              "description": "How it was served: handed to the tenant, left with another adult, posted on the door, or sent by certified or first-class mail."
            },
            "periodDays": {
              "type": "integer",
              "maximum": 365,
              "minimum": 1,
              "description": "How many days the notice gave the tenant."
            },
            "servedDate": {
              "type": "string",
              "description": "The day the notice was served, as YYYY-MM-DD."
            }
          },
          "description": "The notice already served, for a case that starts at filing."
        },
        "attestations": {
          "type": "object",
          "properties": {
            "authority": {
              "type": "boolean",
              "description": "The person owns the property or is authorized to act for the owner in this eviction."
            },
            "subsidized": {
              "type": "boolean",
              "description": "Whether the tenant lives in subsidized housing or receives rental assistance, such as a housing voucher."
            },
            "caresCovered": {
              "type": "boolean",
              "description": "Whether the property is covered by the federal CARES Act."
            },
            "servicemember": {
              "enum": [
                "no",
                "yes",
                "unknown"
              ],
              "type": "string",
              "description": "Whether the tenant is on active military duty; `unknown` is an accepted answer."
            },
            "notRetaliatory": {
              "type": "boolean",
              "description": "The eviction is not in response to the tenant making a complaint, reporting a problem to an authority, or using a legal right."
            },
            "notDiscriminatory": {
              "type": "boolean",
              "description": "The eviction is not based on who the tenant is, such as their race, religion, sex, national origin, disability or family status."
            }
          },
          "description": "The person’s own statements about the case. Ask the person for each one; never fill them in yourself."
        },
        "idempotencyKey": {
          "type": "string",
          "pattern": "^[\\x21-\\x7E]+$",
          "maxLength": 255,
          "minLength": 1,
          "description": "Sent as the Idempotency-Key header (printable ASCII, no spaces): a repeat of the same request with the same key returns the first answer instead of a second case. Always pass one, and reuse it if you repeat the call."
        },
        "amountOwedCents": {
          "type": "integer",
          "maximum": 9007199254740991,
          "minimum": 0,
          "description": "The total the tenant owes now, in US cents (150000 is $1,500.00)."
        }
      }
    }
    arguments 279 lines
  • evictions_resolve_jurisdiction unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "state"
      ],
      "properties": {
        "city": {
          "type": "string",
          "maxLength": 100,
          "minLength": 1,
          "description": "City of the property, when known."
        },
        "state": {
          "type": "string",
          "pattern": "^[A-Za-z]{2}$",
          "description": "Two-letter state code, for example TX; DC for the District of Columbia. Test keys use the fictional state ZZ."
        },
        "county": {
          "type": "string",
          "maxLength": 100,
          "minLength": 1,
          "description": "County of the property, when known."
        }
      }
    }
    arguments 26 lines
  • evictions_update_case unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_-]{1,100}$",
          "description": "The case id (case_...), as returned by evictions_create_case or evictions_list_cases."
        },
        "lease": {
          "type": "object",
          "properties": {
            "endDate": {
              "type": "string",
              "description": "The day the lease ends or ended, as YYYY-MM-DD."
            },
            "startDate": {
              "type": "string",
              "description": "The day the lease began, as YYYY-MM-DD."
            },
            "monthlyRentCents": {
              "type": "integer",
              "maximum": 9007199254740991,
              "minimum": 0,
              "description": "The monthly rent, in US cents (150000 is $1,500.00)."
            }
          },
          "description": "The lease, when there is one."
        },
        "ground": {
          "enum": [
            "nonpayment",
            "lease_violation",
            "holdover"
          ],
          "type": "string",
          "description": "Why the case is brought: nonpayment of rent, a lease violation, or holdover (the tenant stayed after the lease ended). Cannot be changed later."
        },
        "ledger": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "date",
              "type",
              "amountCents"
            ],
            "properties": {
              "date": {
                "type": "string",
                "description": "The day of the charge or payment, as YYYY-MM-DD."
              },
              "memo": {
                "type": "string",
                "maxLength": 500,
                "minLength": 1,
                "description": "What it was for, such as \"October rent\"."
              },
              "type": {
                "enum": [
                  "charge",
                  "payment"
                ],
                "type": "string",
                "description": "`charge` for rent or a fee owed, `payment` for money received."
              },
              "amountCents": {
                "type": "integer",
                "maximum": 9007199254740991,
                "minimum": 0,
                "description": "The amount, in US cents (150000 is $1,500.00)."
              }
            }
          },
          "maxItems": 1000,
          "description": "Rent charges and payments, for a nonpayment case."
        },
        "parties": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "role",
              "name"
            ],
            "properties": {
              "name": {
                "type": "string",
                "maxLength": 200,
                "minLength": 1,
                "description": "Full legal name of the person or company."
              },
              "role": {
                "enum": [
                  "plaintiff",
                  "defendant"
                ],
                "type": "string",
                "description": "`plaintiff` for the owner or manager bringing the case, `defendant` for each tenant."
              },
              "isEntity": {
                "type": "boolean",
                "description": "True when the party is a company rather than a person."
              }
            }
          },
          "maxItems": 20,
          "description": "The plaintiff (the owner or manager) and each defendant (tenant)."
        },
        "freeText": {
          "type": "string",
          "maxLength": 5000,
          "description": "Anything else the attorney should know."
        },
        "property": {
          "type": "object",
          "required": [
            "line1",
            "city",
            "state",
            "zip",
            "ownerOfRecord"
          ],
          "properties": {
            "zip": {
              "type": "string",
              "pattern": "^\\d{5}(-\\d{4})?$",
              "description": "ZIP code: 5 digits, or ZIP+4 (12345-6789)."
            },
            "city": {
              "type": "string",
              "maxLength": 100,
              "minLength": 1,
              "description": "City."
            },
            "unit": {
              "type": "string",
              "maxLength": 50,
              "minLength": 1,
              "description": "Unit or apartment number, if any."
            },
            "line1": {
              "type": "string",
              "maxLength": 200,
              "minLength": 1,
              "description": "Street address of the rental property."
            },
            "state": {
              "type": "string",
              "pattern": "^[A-Za-z]{2}$",
              "description": "Two-letter state code, for example TX; DC for the District of Columbia. Test keys use the fictional state ZZ."
            },
            "county": {
              "type": "string",
              "maxLength": 100,
              "minLength": 1,
              "description": "County, when known."
            },
            "ownerOfRecord": {
              "type": "string",
              "maxLength": 200,
              "minLength": 1,
              "description": "The owner of the property as on the deed: a person or a company."
            }
          },
          "description": "The rental property and its owner of record."
        },
        "violation": {
          "type": "object",
          "required": [
            "description",
            "date"
          ],
          "properties": {
            "date": {
              "type": "string",
              "description": "The day it happened, as YYYY-MM-DD."
            },
            "description": {
              "type": "string",
              "maxLength": 5000,
              "minLength": 1,
              "description": "What the tenant did that breaks the lease, in the person’s words."
            }
          },
          "description": "For a lease violation case."
        },
        "entryPoint": {
          "enum": [
            "notice",
            "filing"
          ],
          "type": "string",
          "description": "Where the case starts: `notice` (a notice to the tenant comes first), or `filing` when a notice was already served (then give `priorNotice`). Cannot be changed later."
        },
        "priorNotice": {
          "type": "object",
          "required": [
            "servedDate",
            "method",
            "periodDays"
          ],
          "properties": {
            "method": {
              "enum": [
                "personal",
                "substitute",
                "posting",
                "certified_mail",
                "first_class_mail"
              ],
              "type": "string",
              "description": "How it was served: handed to the tenant, left with another adult, posted on the door, or sent by certified or first-class mail."
            },
            "periodDays": {
              "type": "integer",
              "maximum": 365,
              "minimum": 1,
              "description": "How many days the notice gave the tenant."
            },
            "servedDate": {
              "type": "string",
              "description": "The day the notice was served, as YYYY-MM-DD."
            }
          },
          "description": "The notice already served, for a case that starts at filing."
        },
        "attestations": {
          "type": "object",
          "properties": {
            "authority": {
              "type": "boolean",
              "description": "The person owns the property or is authorized to act for the owner in this eviction."
            },
            "subsidized": {
              "type": "boolean",
              "description": "Whether the tenant lives in subsidized housing or receives rental assistance, such as a housing voucher."
            },
            "caresCovered": {
              "type": "boolean",
              "description": "Whether the property is covered by the federal CARES Act."
            },
            "servicemember": {
              "enum": [
                "no",
                "yes",
                "unknown"
              ],
              "type": "string",
              "description": "Whether the tenant is on active military duty; `unknown` is an accepted answer."
            },
            "notRetaliatory": {
              "type": "boolean",
              "description": "The eviction is not in response to the tenant making a complaint, reporting a problem to an authority, or using a legal right."
            },
            "notDiscriminatory": {
              "type": "boolean",
              "description": "The eviction is not based on who the tenant is, such as their race, religion, sex, national origin, disability or family status."
            }
          },
          "description": "The person’s own statements about the case. Ask the person for each one; never fill them in yourself."
        },
        "amountOwedCents": {
          "type": "integer",
          "maximum": 9007199254740991,
          "minimum": 0,
          "description": "The total the tenant owes now, in US cents (150000 is $1,500.00)."
        }
      }
    }
    arguments 273 lines
  • evictions_get_case unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_-]{1,100}$",
          "description": "The case id (case_...), as returned by evictions_create_case or evictions_list_cases."
        }
      }
    }
    arguments 14 lines
  • evictions_list_cases unknown never probed

    Use this when you need the person’s cases, or the id of a case you do not have. Input: optional `limit` and `cursor`. 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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "limit": {
          "type": "integer",
          "maximum": 100,
          "minimum": 1,
          "description": "How many to return, at most 100. The default is 20."
        },
        "cursor": {
          "type": "string",
          "maxLength": 512,
          "description": "`nextCursor` from the page before, for the next page. Leave it out for the first page."
        }
      }
    }
    arguments 17 lines
  • evictions_validate_case unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_-]{1,100}$",
          "description": "The case id (case_...), as returned by evictions_create_case or evictions_list_cases."
        }
      }
    }
    arguments 14 lines
  • evictions_submit_case unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "id",
        "confirmedByPerson"
      ],
      "properties": {
        "id": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_-]{1,100}$",
          "description": "The case id (case_...), as returned by evictions_create_case or evictions_list_cases."
        },
        "confirmedByPerson": {
          "type": "boolean",
          "const": true,
          "description": "Set to true only after the person has said yes to this exact action on this case, in this conversation."
        }
      }
    }
    arguments 20 lines
  • evictions_get_case_events unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_-]{1,100}$",
          "description": "The case id (case_...), as returned by evictions_create_case or evictions_list_cases."
        }
      }
    }
    arguments 14 lines
  • evictions_list_case_charges unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_-]{1,100}$",
          "description": "The case id (case_...), as returned by evictions_create_case or evictions_list_cases."
        }
      }
    }
    arguments 14 lines
  • evictions_get_payment_link unknown never probed

    Use this when the person wants to pay a due charge on a case. Input: the case `id` and the `chargeId` from evictions_list_case_charges. Opens a hosted checkout for one due charge and returns its URL; asked again while that checkout is open, it returns the same URL. Give the URL to the person: paying is theirs to do, and no tool takes card details. Refused when the charge is not due or online payment is off. Do not use this to see whether a charge is paid (use evictions_list_case_charges). Needs the person’s account: sign-in or an API key.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "id",
        "chargeId"
      ],
      "properties": {
        "id": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_-]{1,100}$",
          "description": "The case id (case_...), as returned by evictions_create_case or evictions_list_cases."
        },
        "chargeId": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_-]{1,100}$",
          "description": "The id of a due charge on that case, from evictions_list_case_charges."
        }
      }
    }
    arguments 20 lines
  • evictions_list_case_messages unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_-]{1,100}$",
          "description": "The case id (case_...), as returned by evictions_create_case or evictions_list_cases."
        }
      }
    }
    arguments 14 lines
  • evictions_send_case_message unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "id",
        "body"
      ],
      "properties": {
        "id": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_-]{1,100}$",
          "description": "The case id (case_...), as returned by evictions_create_case or evictions_list_cases."
        },
        "body": {
          "type": "string",
          "maxLength": 5000,
          "minLength": 1,
          "description": "The message, in the person’s words: only what they asked to say."
        }
      }
    }
    arguments 21 lines
  • evictions_withdraw_case unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "id",
        "confirmedByPerson"
      ],
      "properties": {
        "id": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_-]{1,100}$",
          "description": "The case id (case_...), as returned by evictions_create_case or evictions_list_cases."
        },
        "confirmedByPerson": {
          "type": "boolean",
          "const": true,
          "description": "Set to true only after the person has said yes to this exact action on this case, in this conversation."
        }
      }
    }
    arguments 20 lines
_ try it through the hub, ceiling 0

This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.

_ is this your agent? claim it: badge, payouts, history

Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.

  1. Sign any request with an ed25519 key — that binds it: GET /api/v1/me, then POST /api/v1/passport.
  2. Prove it is yours. Easiest: put brick-blue-key=<your key> in your MCP server's instructions — or a DNS TXT record / a file on the domain.
  3. Ask the hub to check: POST /api/v1/passport/claim-endpoint with this listing's id fa9d196482c02482.

Every step, filled in for this listing: https://brick.blue/api/v1/agents/fa9d196482c02482/claim. Over MCP: the claim_endpoint tool.

_ for your README measured, not declared

measured by brick.blue

[![measured by brick.blue](https://brick.blue/api/v1/agents/fa9d196482c02482/badge.svg)](https://brick.blue/agent/fa9d196482c02482?ref=badge)

The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.

_ how we know
card completeness
100%

An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.

spec deviations
0

MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.

_ record

Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.

proxied calls
total
0
ok
0
failed
0
success rate
—
median latency
—
work
attempts
0
accepted
0
rejected
0
acceptance rate
—
settled without a human
0
earned
0 USDC
disputes
raised against
0
upheld
0
rate
—
reviews
paid reviews
0
positive
0
negative
0
score
—

0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.