SwiftProbate

Probate help for US executors: county courts, court forms, bank guides, and your estate checklist.

사용해야 할까요

품질 및 안전성

A
설명 품질
98%
스키마 완전성
98%
이름 품질
96%
오염 위험
80%
권한 일치
90%
프로토콜 준수
100%

발견 사항 (5)

  • HIGHTool poisoning patterns detected
  • MEDIUMTool 'complete_onboarding' description contains placeholder textcomplete_onboarding에서
  • LOWTool 'edit_task' description lacks action verbedit_task에서
  • LOWTool 'fetch' suggests web access but openWorldHint=falsefetch에서
  • INFOTool description contains placeholder or incomplete textcomplete_onboarding에서

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~9,953토큰 (도구 정의)
~2.5 KB일반적인 응답 크기
상당한 주의 영향 (128k 컨텍스트의 7.78%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

{
  "mcpServers": {
    "probate": {
      "url": "https://www.swiftprobate.com/api/mcp/estate"
    }
  }
}

원격 엔드포인트

https://www.swiftprobate.com/api/mcp/estatestreamable-http

할 수 있는 일

도구 목록

도구 (32)

🟢 읽기 전용🟡 쓰기🔴 삭제⚪ 알 수 없음
🟢list_my_estates

List the estates the signed-in user can work with (owned or shared with them), each with its id, a label (the deceased's name), the user's role, and whether they can edit. Call this FIRST — every other estate tool needs an estate_id from here.

입력 스키마

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴complete_onboarding(deceased_name, deceased_date_of_death, deceased_state, deceased_county, will_status, ...)

Set up a new estate for the signed-in user and generate their personalized probate checklist. Use this when list_my_estates returns no estates (or one with no deceased details yet), or the user is just getting started. Saves estate details and placeholder assets, then starts checklist generation that may research public sources and send a completion email. Refuses an already-onboarded estate. Collect the fields conversationally first, then call once; partial failures are not guaranteed safe to retry.

입력 스키마

{
  "type": "object",
  "properties": {
    "deceased_name": {
      "type": "string",
      "description": "Full name of the person who died."
    },
    "deceased_date_of_death": {
      "type": "string",
      "description": "Date of death, ISO format YYYY-MM-DD."
    },
    "deceased_state": {
      "type": "string",
      "description": "US state where the deceased lived (full name or code)."
    },
    "deceased_county": {
      "type": "string",
      "description": "County where the deceased lived."
    },
    "will_status": {
      "type": "string",
      "enum": [
        "present",
        "none",
        "unsure"
      ],
      "description": "Whether there is a will: present, none, or unsure."
    },
    "executor_name": {
      "type": "string",
      "description": "The user's full name (the person settling the estate)."
    },
    "executor_relationship": {
      "type": "string",
      "description": "The user's relationship to the deceased, e.g. 'child', 'spouse'."
    }
  },
  "required": [
    "deceased_name",
    "deceased_date_of_death",
    "deceased_state",
    "deceased_county",
    "will_status",
    "executor_name",
    "executor_relationship"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢lookup_county_guide(county, state)

Look up SwiftProbate's published probate guide for a specific US county: verified courthouse address/phone/website, filing fee, approved newspapers for publication, e-filing system, and county-specific probate forms. Use this before answering any question about a county court's contact info, filing fees, or publication requirements — county-level details are unreliable from model knowledge alone.

입력 스키마

{
  "type": "object",
  "properties": {
    "county": {
      "type": "string",
      "description": "County name, e.g. 'Alameda' or 'Alameda County' (either works)."
    },
    "state": {
      "type": "string",
      "description": "Two-letter code ('CA'), full name ('California'), or slug ('california')."
    }
  },
  "required": [
    "county",
    "state"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢lookup_institution_guide(institution, category)

Look up SwiftProbate's estate-notification guide for a financial institution (banks, brokerages, life insurers, credit unions, and more): estate department phone/hours/fax, mailing and overnight addresses, online notification URL, required-document checklist, and which account types require probate.

입력 스키마

{
  "type": "object",
  "properties": {
    "institution": {
      "type": "string",
      "description": "Institution name, e.g. 'Chase', 'Fidelity', 'Navy Federal Credit Union'."
    },
    "category": {
      "description": "Optional type hint, e.g. 'bank_accounts', 'brokerage', 'life_insurance'.",
      "type": "string"
    }
  },
  "required": [
    "institution"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢find_probate_forms(state, county, query)

Find the probate forms for a jurisdiction: each form's name, code, description, official court source link (when known), and SwiftProbate page, plus whether it is a county-specific or statewide form. Some states (e.g. Florida) publish no statewide fill-in forms — pass the county to get the usable county-level forms.

입력 스키마

{
  "type": "object",
  "properties": {
    "state": {
      "type": "string",
      "description": "Two-letter code, full name, or slug of the US state."
    },
    "county": {
      "description": "County name to surface that county's own forms first. Omit for statewide.",
      "type": "string"
    },
    "query": {
      "description": "Optional keywords to narrow results, e.g. 'small estate affidavit', 'letters testamentary'.",
      "type": "string"
    }
  },
  "required": [
    "state"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢get_state_overview(state)

Get high-level probate facts for a US state: small-estate threshold, filing deadline, creditor-claim period, estimated timeline, court filing fee, average attorney fee, whether it is a UPC / community-property / independent-administration state, plus a prose overview and the SwiftProbate guide URL.

입력 스키마

{
  "type": "object",
  "properties": {
    "state": {
      "type": "string",
      "description": "Two-letter code ('CA'), full name ('California'), or slug ('california')."
    }
  },
  "required": [
    "state"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢search(query)

Search SwiftProbate's probate reference data (US states, counties, financial institutions, and court forms). Returns a list of results, each with an id you can pass to `fetch` for the full record. Use it for open-ended probate reference questions before answering from model knowledge.

입력 스키마

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "A probate reference query, e.g. 'Alameda County California probate court' or 'Chase estate department'."
    }
  },
  "required": [
    "query"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fetch(id)

Fetch the full SwiftProbate reference record for an id returned by `search` (a state overview, county court guide, institution notification guide, or a jurisdiction's forms).

입력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "An id from a `search` result, e.g. 'county:california:alameda'."
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢get_estate_summary(estate_id)

Get a summary of the estate including details, assets, heirs, and task statistics. Use this when the user asks about the estate overview or general status.

입력 스키마

{
  "type": "object",
  "properties": {
    "estate_id": {
      "type": "string",
      "description": "The estate to act on. Call list_my_estates first to get this id."
    }
  },
  "required": [
    "estate_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢get_tasks(estate_id, status, task_category, asset_id, search, ...)

List tasks with optional filters. Use this to find tasks by status, category, asset, or search term. By default returns titles only; pass include_description: true to also get each task's full description (use this when reviewing tasks for jurisdiction or other content-level changes).

입력 스키마

{
  "type": "object",
  "properties": {
    "estate_id": {
      "type": "string",
      "description": "The estate to act on. Call list_my_estates first to get this id."
    },
    "status": {
      "type": "string",
      "enum": [
        "not_started",
        "in_progress",
        "completed",
        "not_applicable"
      ],
      "description": "Filter by task status"
    },
    "task_category": {
      "type": "string",
      "enum": [
        "estate_admin",
        "asset_specific"
      ],
      "description": "Filter by task category"
    },
    "asset_id": {
      "type": "string",
      "description": "Filter by asset ID"
    },
    "search": {
      "type": "string",
      "description": "Search term to match against task title or description"
    },
    "include_description": {
      "type": "boolean",
      "description": "When true, include each task's full description in the response. Use when reviewing tasks for content changes (e.g., jurisdiction review). Default false."
    },
    "limit": {
      "type": "number",
      "description": "Max number of tasks to return (default 20)"
    }
  },
  "required": [
    "estate_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢get_task_detail(estate_id, task_id)

Get full details of a specific task by ID, including its description, status, priority, deadline, notes, and linked documents.

입력 스키마

{
  "type": "object",
  "properties": {
    "estate_id": {
      "type": "string",
      "description": "The estate to act on. Call list_my_estates first to get this id."
    },
    "task_id": {
      "type": "string",
      "description": "The task ID"
    }
  },
  "required": [
    "estate_id",
    "task_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢get_assets(estate_id)

List every asset in the estate with its type and value. Your Estate Context already lists the assets, so call this only when you need the full set fresh (e.g. right after creating or updating one) or the context block was truncated. For one asset's linked tasks, use get_asset_detail instead.

입력 스키마

{
  "type": "object",
  "properties": {
    "estate_id": {
      "type": "string",
      "description": "The estate to act on. Call list_my_estates first to get this id."
    }
  },
  "required": [
    "estate_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢get_asset_detail(estate_id, asset_id)

Get one asset's full details plus the tasks linked to it, by asset ID. Call this when the user asks about a specific asset's tasks or you need details beyond what the Assets context block shows. Get the asset_id from that context block.

입력 스키마

{
  "type": "object",
  "properties": {
    "estate_id": {
      "type": "string",
      "description": "The estate to act on. Call list_my_estates first to get this id."
    },
    "asset_id": {
      "type": "string",
      "description": "The asset ID"
    }
  },
  "required": [
    "estate_id",
    "asset_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢get_heirs(estate_id)

List every recorded heir with relationship and details. The Heirs context block already lists them, so call this only to refresh after adding or updating an heir, or when that block was truncated.

입력 스키마

{
  "type": "object",
  "properties": {
    "estate_id": {
      "type": "string",
      "description": "The estate to act on. Call list_my_estates first to get this id."
    }
  },
  "required": [
    "estate_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢get_transactions(estate_id, direction, limit)

Read the estate's financial ledger — money in (receipts), money out (disbursements), and distributions to heirs. Returns: `transactions` (each with `paid_by` already resolved to the actual payer's NAME — use it as-is, never assume the executor paid), `starting_balances` (bank accounts' date-of-death balances that already show in the ledger as starting-balance lines — these are NOT missing transactions; do not suggest re-adding them), and `totals` (starting_balance, money_in, money_out, pending_reimbursements). Use this before answering any spending, reimbursement, or accounting question, and treat both `transactions` and `starting_balances` as already in the ledger.

입력 스키마

{
  "type": "object",
  "properties": {
    "estate_id": {
      "type": "string",
      "description": "The estate to act on. Call list_my_estates first to get this id."
    },
    "direction": {
      "type": "string",
      "enum": [
        "receipt",
        "disbursement",
        "distribution"
      ],
      "description": "Optional filter: 'receipt' (money in), 'disbursement' (money out / expenses), or 'distribution' (paid to heirs)."
    },
    "limit": {
      "type": "number",
      "description": "Max rows to return (default 100, max 200)."
    }
  },
  "required": [
    "estate_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢get_documents(estate_id, asset_id, task_id)

List the estate's uploaded documents, optionally filtered by asset or task. Your Documents context block already lists them, so call this only to refresh after an upload or to filter to a specific asset's or task's documents. To read a document's contents, use read_document instead.

입력 스키마

{
  "type": "object",
  "properties": {
    "estate_id": {
      "type": "string",
      "description": "The estate to act on. Call list_my_estates first to get this id."
    },
    "asset_id": {
      "type": "string",
      "description": "Filter by asset ID"
    },
    "task_id": {
      "type": "string",
      "description": "Filter by task ID"
    }
  },
  "required": [
    "estate_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢get_activity_log(estate_id, limit)

Get the estate's recent activity-log entries (who changed what, and when). Call this when the user asks what has changed recently or who did something — not for task or asset contents, which have their own tools.

입력 스키마

{
  "type": "object",
  "properties": {
    "estate_id": {
      "type": "string",
      "description": "The estate to act on. Call list_my_estates first to get this id."
    },
    "limit": {
      "type": "number",
      "description": "Max entries to return (default 20)"
    }
  },
  "required": [
    "estate_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡create_task(estate_id, title, description, priority, deadline, ...)

Create a new task in the estate. Use this when the user identifies a new requirement or action item that should be tracked.

입력 스키마

{
  "type": "object",
  "properties": {
    "estate_id": {
      "type": "string",
      "description": "The estate to act on. Call list_my_estates first to get this id."
    },
    "title": {
      "type": "string",
      "description": "Short, actionable task title"
    },
    "description": {
      "type": "string",
      "description": "Detailed description of what needs to be done"
    },
    "priority": {
      "type": "number",
      "description": "Priority level: 0=none, 1=urgent, 2=high, 3=medium, 4=low (default 3)"
    },
    "deadline": {
      "type": "string",
      "description": "Optional ISO date string for the deadline (e.g. 2026-03-15)"
    },
    "asset_id": {
      "type": "string",
      "description": "Optional asset ID to link the task to"
    },
    "task_category": {
      "type": "string",
      "enum": [
        "estate_admin",
        "asset_specific"
      ],
      "description": "Category of task (default estate_admin, use asset_specific when linked to an asset)"
    }
  },
  "required": [
    "estate_id",
    "title",
    "description"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴edit_task(estate_id, task_id, title, description, priority, ...)

Edit an existing task's title, description, priority, deadline, category, or helpful links. Use when the user wants to modify task details.

입력 스키마

{
  "type": "object",
  "properties": {
    "estate_id": {
      "type": "string",
      "description": "The estate to act on. Call list_my_estates first to get this id."
    },
    "task_id": {
      "type": "string",
      "description": "The task ID to edit"
    },
    "title": {
      "type": "string",
      "description": "New title (omit to keep current)"
    },
    "description": {
      "type": "string",
      "description": "New description (omit to keep current)"
    },
    "priority": {
      "type": "number",
      "description": "New priority: 0=none, 1=urgent, 2=high, 3=medium, 4=low (omit to keep current)"
    },
    "deadline": {
      "type": "string",
      "description": "New deadline as ISO date string (e.g. 2026-03-15), or null to clear (omit to keep current)"
    },
    "task_category": {
      "type": "string",
      "enum": [
        "estate_admin",
        "asset_specific"
      ],
      "description": "New category (omit to keep current)"
    },
    "helpful_links": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Replace the task's full set of helpful links with this array. Each entry MUST use markdown link format \"[Page or resource title](url)\" so the UI can render a readable label (e.g. \"[California Courts — Probate Self-Help](https://www.courts.ca.gov/selfhelp-probate.htm)\"). Pass [] to clear all links. Omit to keep current. Only include URLs you've verified (e.g. via web_search) or that were already in context — do not invent URLs."
    }
  },
  "required": [
    "estate_id",
    "task_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴update_task_status(estate_id, task_id, status)

Update a task's status. Use this when the user asks to mark a task as completed, in progress, etc.

입력 스키마

{
  "type": "object",
  "properties": {
    "estate_id": {
      "type": "string",
      "description": "The estate to act on. Call list_my_estates first to get this id."
    },
    "task_id": {
      "type": "string",
      "description": "The task ID to update"
    },
    "status": {
      "type": "string",
      "enum": [
        "not_started",
        "in_progress",
        "completed",
        "not_applicable"
      ],
      "description": "The new status"
    }
  },
  "required": [
    "estate_id",
    "task_id",
    "status"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴update_task_notes(estate_id, task_id, notes)

Set or update the user notes on a task. Use this when the user wants to add notes to a task.

입력 스키마

{
  "type": "object",
  "properties": {
    "estate_id": {
      "type": "string",
      "description": "The estate to act on. Call list_my_estates first to get this id."
    },
    "task_id": {
      "type": "string",
      "description": "The task ID"
    },
    "notes": {
      "type": "string",
      "description": "The notes content (empty string to clear)"
    }
  },
  "required": [
    "estate_id",
    "task_id",
    "notes"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴update_task_deadline(estate_id, task_id, deadline)

Set or clear a task's deadline. Use this when the user wants to set a due date.

입력 스키마

{
  "type": "object",
  "properties": {
    "estate_id": {
      "type": "string",
      "description": "The estate to act on. Call list_my_estates first to get this id."
    },
    "task_id": {
      "type": "string",
      "description": "The task ID"
    },
    "deadline": {
      "type": "string",
      "description": "ISO date string for the deadline (e.g. 2026-03-15), or null to clear"
    }
  },
  "required": [
    "estate_id",
    "task_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴assign_task(estate_id, task_id, assignee_user_id)

Assign a task to a specific estate member or the owner. Use get_estate_summary first to see available members and their user IDs.

입력 스키마

{
  "type": "object",
  "properties": {
    "estate_id": {
      "type": "string",
      "description": "The estate to act on. Call list_my_estates first to get this id."
    },
    "task_id": {
      "type": "string",
      "description": "The task ID to assign"
    },
    "assignee_user_id": {
      "type": "string",
      "description": "The user ID to assign to, or null to unassign"
    }
  },
  "required": [
    "estate_id",
    "task_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡create_asset(estate_id, asset_name, asset_type, estimated_value, date_of_death_value, ...)

Create a new asset in the estate. Use this when the user wants to add a bank account, property, vehicle, insurance policy, other asset, or a debt the estate owes. A same-named asset does NOT block creation (two accounts at the same institution are legitimate) — but if you created this exact asset moments ago, the tool returns the existing one instead of a duplicate. Use update_asset to change details of an existing asset. For eligible paid estates, adding an asset may start public-source research and add asset-specific tasks. Recent same-name assets may have empty fields filled instead of a duplicate being added. Repeating after the deduplication window may create another asset.

입력 스키마

{
  "type": "object",
  "properties": {
    "estate_id": {
      "type": "string",
      "description": "The estate to act on. Call list_my_estates first to get this id."
    },
    "asset_name": {
      "type": "string",
      "description": "Name or description of the asset (e.g. 'Chase Checking Account', '123 Main St')"
    },
    "asset_type": {
      "type": "string",
      "enum": [
        "bank_accounts",
        "investment_accounts",
        "retirement_accounts",
        "real_estate",
        "vehicles",
        "life_insurance",
        "business_interests",
        "personal_property",
        "digital_assets",
        "debts_liabilities",
        "other"
      ],
      "description": "Type of asset (use plural form to match database schema). 'debts_liabilities' = money the estate OWES (mortgage, credit card, medical bill, unsecured claim on a court schedule) — record the outstanding balance as a positive estimated_value. It is tracked in the Assets & Debts tab as a liability and is never counted as estate inventory."
    },
    "estimated_value": {
      "type": "number",
      "description": "Estimated value in dollars (optional)"
    },
    "date_of_death_value": {
      "type": "number",
      "description": "The asset's value at the date of death (the inventory value used for estate accounting and to compute gain/loss on sale). Set this at creation whenever you know it — for the decedent's own bank/investment accounts it is the balance at death, and it is what makes that balance flow into the Ledger's starting cash. If the user gives one figure for such an account and it is the date-of-death balance, set both this and estimated_value."
    },
    "jurisdiction": {
      "type": "string",
      "description": "State where the asset is located (optional, for real estate or vehicles)"
    },
    "account_number": {
      "type": "string",
      "description": "Account or policy number (optional)"
    },
    "notes": {
      "type": "string",
      "description": "Additional notes about the asset (optional)"
    },
    "has_beneficiary": {
      "type": "boolean",
      "description": "Whether the asset has a named beneficiary (optional)"
    },
    "beneficiary_name": {
      "type": "string",
      "description": "Name of the beneficiary if known (optional)"
    },
    "bypasses_probate": {
      "type": "boolean",
      "description": "Whether this asset bypasses probate (e.g. POD/TOD accounts, joint tenancy) (optional)"
    }
  },
  "required": [
    "estate_id",
    "asset_name",
    "asset_type"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴update_asset(estate_id, asset_id, asset_name, estimated_value, jurisdiction, ...)

Update an existing asset's details (name, value, jurisdiction, notes, etc.). Use this instead of creating a duplicate when the user wants to modify an asset.

입력 스키마

{
  "type": "object",
  "properties": {
    "estate_id": {
      "type": "string",
      "description": "The estate to act on. Call list_my_estates first to get this id."
    },
    "asset_id": {
      "type": "string",
      "description": "ID of the asset to update"
    },
    "asset_name": {
      "type": "string",
      "description": "Updated name for the asset. Use this to correct a typo or add detail the user gave later (e.g. \"Jeep Cherokee\" → \"2018 Jeep Cherokee Latitude Plus\"). Renaming edits the existing row — do NOT create a second asset for the same item."
    },
    "estimated_value": {
      "type": "number",
      "description": "Updated estimated value in dollars"
    },
    "jurisdiction": {
      "type": "string",
      "description": "Updated state/jurisdiction"
    },
    "account_number": {
      "type": "string",
      "description": "Updated account/policy/VIN number"
    },
    "notes": {
      "type": "string",
      "description": "Updated notes"
    },
    "has_beneficiary": {
      "type": "boolean",
      "description": "Whether the asset has a named beneficiary"
    },
    "beneficiary_name": {
      "type": "string",
      "description": "Name of the beneficiary"
    },
    "bypasses_probate": {
      "type": "boolean",
      "description": "Whether this asset bypasses probate"
    },
    "date_of_death_value": {
      "type": "number",
      "description": "The asset's value at the date of death (the inventory value used for estate accounting and to compute gain/loss on sale)."
    },
    "disposition": {
      "type": "string",
      "enum": [
        "on_hand",
        "sold",
        "transferred",
        "distributed"
      ],
      "description": "What has happened to the asset: 'on_hand' (still in the estate), 'sold', 'transferred', or 'distributed' (given to an heir in kind). Record the sale proceeds as a money-in transaction in the Ledger linked to this asset."
    }
  },
  "required": [
    "estate_id",
    "asset_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴mark_assets_complete(estate_id)

Record that the user has finished telling you about the estate's assets. Call this the moment they say there is nothing else — "that's everything", "that's the only asset", "nothing else to add". This is what turns "Has real property" and the estate size in your Estate Context from "Not yet provided" into a definite answer; until you call it those facts stay unknown and you will keep having to ask about them. BEFORE calling: make sure every asset they have named is already saved with create_asset — this tool records that the LIST is finished, it does not save assets. Call it on the SAME turn the user tells you the list is complete; do NOT ask them to confirm a second time first. For a paid estate this also starts building their asset-by-asset plan, so only call it once the list really is final. Changes the asset-collection flag and derived estate facts. For eligible paid estates, this may start public-source research, add checklist tasks, and send a completion email.

입력 스키마

{
  "type": "object",
  "properties": {
    "estate_id": {
      "type": "string",
      "description": "The estate to act on. Call list_my_estates first to get this id."
    }
  },
  "required": [
    "estate_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡log_transaction(estate_id, direction, category, amount, transaction_date, ...)

Record a financial transaction in the estate ledger when the user mentions money moving — an expense they paid, income the estate received, a debt payment, or a distribution to an heir. Examples: "I paid $4,200 for the funeral", "the estate got a $1,300 tax refund", "my brother covered the $800 headstone". ALWAYS confirm the amount, what it was for, and (for expenses) who paid before calling. Administration expenses are direction='disbursement'. If someone paid out of pocket, set paid_by='individual' so it's tracked as reimbursable: leave payer_name empty if the user themselves paid, or set payer_name to the person's name if someone else (e.g. a family member who isn't the estate) paid. Records a bookkeeping entry only; does not move money. Duplicate detection is time-limited, so repeating later may add another entry.

입력 스키마

{
  "type": "object",
  "properties": {
    "estate_id": {
      "type": "string",
      "description": "The estate to act on. Call list_my_estates first to get this id."
    },
    "direction": {
      "type": "string",
      "enum": [
        "receipt",
        "disbursement",
        "distribution"
      ],
      "description": "'receipt' = money into the estate; 'disbursement' = money out, including expenses and debt payments; 'distribution' = money/assets paid to an heir."
    },
    "category": {
      "type": "string",
      "description": "For disbursement: funeral, court_fees, attorney_fees, executor_fee, property_maintenance, appraisal, insurance, taxes, debt_payment, other_expense. For receipt: opening_balance (physical cash or funds NOT held in a bank account that's been added as an asset — for a bank account's date-of-death balance, set that asset's date_of_death_value instead (on create_asset when recording the account, or update_asset if it already exists); it flows into the ledger's starting balance automatically), asset_collected (funds brought into the estate from the decedent's holdings, e.g. closing an account or life insurance payable to the estate — but NOT internal transfers between the estate's own accounts), income_dividend, income_interest, income_rent, refund, asset_sale (record the full gross sale price; log payoffs/closing costs as separate disbursements), other_receipt. For distribution: cash_distribution, asset_distribution."
    },
    "amount": {
      "type": "number",
      "description": "Positive dollar amount (the direction conveys whether it's in or out)."
    },
    "transaction_date": {
      "type": "string",
      "description": "Date the money moved, as YYYY-MM-DD."
    },
    "payee_or_source": {
      "type": "string",
      "description": "Who was paid (for money out) or the source (for money in), e.g. 'Travis County Clerk' or 'Fidelity dividend'. Optional."
    },
    "paid_by": {
      "type": "string",
      "enum": [
        "estate",
        "individual"
      ],
      "description": "Only for disbursements. 'individual' means a person paid out of pocket and is owed reimbursement (the user, unless payer_name is given). Defaults to 'estate'."
    },
    "payer_name": {
      "type": "string",
      "description": "Only when paid_by='individual' AND someone other than the user paid (e.g. a family member). The person's name. Omit if the user themselves paid."
    },
    "asset_id": {
      "type": "string",
      "description": "Optional ID of a related asset (e.g. sale proceeds from a specific account or property)."
    },
    "heir_id": {
      "type": "string",
      "description": "Optional ID of the heir who received a distribution."
    },
    "document_id": {
      "type": "string",
      "description": "Optional ID of a document (e.g. a receipt or invoice the user uploaded) to attach to this transaction as its receipt. The document is treated as a ledger receipt and kept out of the Documents library."
    },
    "notes": {
      "type": "string",
      "description": "Optional free-text note."
    }
  },
  "required": [
    "estate_id",
    "direction",
    "category",
    "amount",
    "transaction_date"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴update_transaction(estate_id, transaction_id, direction, category, amount, ...)

Correct an existing ledger transaction when the user wants to fix a mistake — a wrong amount, date, category, payee, who paid, or which heir/asset it relates to. Find the transaction's ID with get_transactions first. This is a PARTIAL update: pass transaction_id plus ONLY the fields that change; everything you omit is left as-is. Use this (not a new correcting entry) whenever the user says an amount or detail was wrong. Confirm the correction with the user before calling.

입력 스키마

{
  "type": "object",
  "properties": {
    "estate_id": {
      "type": "string",
      "description": "The estate to act on. Call list_my_estates first to get this id."
    },
    "transaction_id": {
      "type": "string",
      "description": "ID of the transaction to update (from get_transactions)."
    },
    "direction": {
      "type": "string",
      "enum": [
        "receipt",
        "disbursement",
        "distribution"
      ],
      "description": "Change the direction. If you change this, also pass a matching category."
    },
    "category": {
      "type": "string",
      "description": "Change the category. Must belong to the transaction's direction (same taxonomy as log_transaction)."
    },
    "amount": {
      "type": "number",
      "description": "Change the positive dollar amount."
    },
    "transaction_date": {
      "type": "string",
      "description": "Change the date, as YYYY-MM-DD."
    },
    "payee_or_source": {
      "type": "string",
      "description": "Change who was paid (money out) or the source (money in)."
    },
    "paid_by": {
      "type": "string",
      "enum": [
        "estate",
        "individual"
      ],
      "description": "Change who paid (disbursements). 'individual' means a person paid out of pocket and is owed reimbursement."
    },
    "payer_name": {
      "type": "string",
      "description": "When paid_by='individual' AND someone other than the user paid, the person's name. Omit if the user themselves paid."
    },
    "asset_id": {
      "type": "string",
      "description": "Change the related asset ID."
    },
    "heir_id": {
      "type": "string",
      "description": "Change the related heir ID (for distributions)."
    },
    "notes": {
      "type": "string",
      "description": "Change the free-text note."
    }
  },
  "required": [
    "estate_id",
    "transaction_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡create_heir(estate_id, name, relationship, relationship_detail, is_minor, ...)

Add a new heir to the estate. Use when the user wants to record a person who may inherit (spouse, child, stepchild, grandchild, parent, sibling, or other relative). Call as soon as you have a name and the user's description of the relationship — any wording is accepted.

입력 스키마

{
  "type": "object",
  "properties": {
    "estate_id": {
      "type": "string",
      "description": "The estate to act on. Call list_my_estates first to get this id."
    },
    "name": {
      "type": "string",
      "description": "Full legal name of the heir"
    },
    "relationship": {
      "type": "string",
      "description": "Relationship to the deceased. Canonical values: spouse, child, stepchild, grandchild, parent, sibling, other. If the user's wording doesn't match one (e.g. 'half-brother', 'daughter-in-law', 'adult stepchild'), pass their wording as-is — it is normalized automatically. Never re-ask the user for a 'valid' relationship."
    },
    "relationship_detail": {
      "type": "string",
      "description": "The relationship exactly as the user described it, when it carries more than the canonical value (e.g. 'stepson', 'half-sister', 'goddaughter'). Shown on probate forms, so preserve the user's words."
    },
    "is_minor": {
      "type": "boolean",
      "description": "Whether the heir is under 18 (default false)"
    },
    "is_deceased": {
      "type": "boolean",
      "description": "Whether the heir is deceased (default false). Used for per stirpes inheritance."
    },
    "is_divorced": {
      "type": "boolean",
      "description": "For a spouse only: whether they are a divorced/former spouse (default false). A divorced spouse is recorded for a complete family picture but is not a surviving spouse and does not inherit under intestacy."
    },
    "parent_heir_id": {
      "type": "string",
      "description": "ID of the parent heir if this person inherits through a deceased parent (e.g. grandchild whose parent predeceased the decedent). Omit otherwise."
    },
    "address": {
      "type": "string",
      "description": "Mailing address (free text, multi-line OK). Used for formal probate notice."
    },
    "phone": {
      "type": "string",
      "description": "Phone number (any format)"
    },
    "email": {
      "type": "string",
      "description": "Email address"
    },
    "notes": {
      "type": "string",
      "description": "Free-text notes about this heir — context like whereabouts unknown, predeceased details, per-stirpes notes, disputes, or anything the user wants remembered. Multi-line OK."
    }
  },
  "required": [
    "estate_id",
    "name",
    "relationship"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴update_heir(estate_id, heir_id, name, relationship, relationship_detail, ...)

Update an existing heir's details. Use when the user wants to correct or add information to a recorded heir. Get the heir_id from the pre-loaded Heirs context block.

입력 스키마

{
  "type": "object",
  "properties": {
    "estate_id": {
      "type": "string",
      "description": "The estate to act on. Call list_my_estates first to get this id."
    },
    "heir_id": {
      "type": "string",
      "description": "ID of the heir to update"
    },
    "name": {
      "type": "string",
      "description": "Updated full legal name"
    },
    "relationship": {
      "type": "string",
      "description": "Updated relationship to the deceased. Canonical values: spouse, child, stepchild, grandchild, parent, sibling, other. Free-text wording (e.g. 'half-brother') is accepted and normalized automatically."
    },
    "relationship_detail": {
      "type": "string",
      "description": "The relationship exactly as the user described it, when it carries more than the canonical value (empty string clears it). Shown on probate forms."
    },
    "is_minor": {
      "type": "boolean",
      "description": "Whether the heir is under 18"
    },
    "is_deceased": {
      "type": "boolean",
      "description": "Whether the heir is deceased"
    },
    "is_divorced": {
      "type": "boolean",
      "description": "For a spouse only: whether they are a divorced/former spouse (not a surviving spouse)."
    },
    "address": {
      "type": "string",
      "description": "Updated mailing address (empty string clears it)"
    },
    "phone": {
      "type": "string",
      "description": "Updated phone number (empty string clears it)"
    },
    "email": {
      "type": "string",
      "description": "Updated email address (empty string clears it)"
    },
    "notes": {
      "type": "string",
      "description": "Updated free-text notes about this heir (empty string clears). Use for context like whereabouts unknown, predeceased details, per-stirpes notes, disputes, or anything the user wants remembered."
    }
  },
  "required": [
    "estate_id",
    "heir_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴mark_heirs_complete(estate_id)

Record that the user has finished telling you about the estate's heirs and family. Call this the moment they say that's everyone — "no other children", "there's no spouse", "that's all the heirs". This is what turns "Surviving spouse" and "Minor children" in your Estate Context from "Not yet provided" into a definite answer; until you call it those facts stay unknown and you will keep having to ask about them. BEFORE calling: make sure every person they have named is already saved with create_heir, including a surviving spouse. Call it on the SAME turn the user says the list is complete; do NOT ask them to confirm a second time first. Changes the heir-collection flag and derived estate facts; does not start paid checklist generation.

입력 스키마

{
  "type": "object",
  "properties": {
    "estate_id": {
      "type": "string",
      "description": "The estate to act on. Call list_my_estates first to get this id."
    }
  },
  "required": [
    "estate_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴update_estate(estate_id, will_status, will_location, deceased_marital_status, surviving_spouse_name, ...)

Update high-level estate details that the user can correct after onboarding. Use this when the user mentions a fact that should be persisted (e.g. "actually there is a will", "the will is in the safe deposit box", "the case number is 2026-001234"). NOT for who the heirs are or what the estate owns — record a person with create_heir, an asset with create_asset, and when the user says the list is finished call mark_heirs_complete / mark_assets_complete. This is ALSO where you record the estate's OPERATING/checking account (the account the executor opens after death with the estate's EIN) — use estate_account_institution / estate_account_number, NOT create_asset. The operating account is not an estate asset. It is ALSO where you save the estate's IRS EIN (tax ID) — use the `ein` field, which is distinct from the court's case number (`estate_number`). Always confirm changes before calling. When changing deceased_state or deceased_county, follow the special jurisdiction-change flow described in the system prompt: explain that tasks are based on county of residence at time of death, confirm via suggest_actions, then after the update review and revise jurisdiction-affected tasks. Replaces supplied estate details. Resolving will status may remove the will-determination task and add succession tasks from local reference data.

입력 스키마

{
  "type": "object",
  "properties": {
    "estate_id": {
      "type": "string",
      "description": "The estate to act on. Call list_my_estates first to get this id."
    },
    "will_status": {
      "type": "string",
      "enum": [
        "present",
        "none",
        "unsure"
      ],
      "description": "Whether the deceased left a will. Use 'present' if there IS a will (testate), 'none' if there is NO will (intestate), or 'unsure' if it hasn't been determined yet (e.g. the user is still looking for one). This is the ONLY field for the will answer. When it changes away from 'unsure', the task list reconciles automatically (the 'find the will' task is removed; if 'none', succession tasks are added)."
    },
    "will_location": {
      "type": "string",
      "description": "Where the will is stored (e.g. 'safe deposit box at Wells Fargo', 'with attorney Smith'). Empty string clears it."
    },
    "deceased_marital_status": {
      "type": "string",
      "enum": [
        "single",
        "married",
        "divorced",
        "widowed"
      ],
      "description": "Marital status of the deceased at time of death"
    },
    "surviving_spouse_name": {
      "type": "string",
      "description": "Name of the surviving spouse. Empty string clears it. To record THAT there is a surviving spouse, add them with create_heir (relationship 'spouse') — that is what makes the fact definite in your Estate Context."
    },
    "executor_name": {
      "type": "string",
      "description": "Name of the user managing the estate (the executor / personal representative). Empty string clears it."
    },
    "executor_relationship": {
      "type": "string",
      "enum": [
        "executor",
        "spouse",
        "child",
        "sibling",
        "other"
      ],
      "description": "Relationship of the user managing the estate to the deceased"
    },
    "deceased_date_of_birth": {
      "type": "string",
      "description": "Date of birth as ISO date (e.g. 1945-03-12). Empty string clears it."
    },
    "deceased_date_of_death": {
      "type": "string",
      "description": "Date of death as ISO date (e.g. 2026-01-15). Empty string clears it."
    },
    "deceased_state": {
      "type": "string",
      "description": "Two-letter US state code where the deceased lived at time of death (e.g. 'CA', 'NY'). Must be a valid US state. Changing state invalidates county — you must also provide deceased_county in the same call."
    },
    "deceased_county": {
      "type": "string",
      "description": "County where the deceased lived at time of death (e.g. 'Los Angeles', 'Cook'). Must be non-empty. Use the bare county name without the word 'County'."
    },
    "estate_account_institution": {
      "type": "string",
      "description": "Where the estate's OPERATING/checking account is held (the account opened after death with the estate's EIN) — e.g. 'Quorum FCU', 'PNC Bank'. This is reference info, NOT an asset; never use create_asset for it. Empty string clears it."
    },
    "estate_account_number": {
      "type": "string",
      "description": "The estate operating account's number, if the user provides it. Stored on the estate and masked in the UI. Empty string clears it."
    },
    "estate_number": {
      "type": "string",
      "description": "The probate case / estate number the county court (register of wills / clerk) assigns once the estate is opened (e.g. '2026-001234', 'PR-2026-5678'). Save this whenever the user says the court issued their estate, case, or file number — county offices require it on filed documents and it's used to fill court forms. NEVER store the estate's IRS EIN / tax ID here (EINs look like '12-3456789') — it is a different number with its own field; use `ein` for that. Empty string clears it."
    },
    "ein": {
      "type": "string",
      "description": "The estate's IRS Employer Identification Number (tax ID), formatted like '12-3456789'. The executor gets it from the IRS after death to open the estate bank account and file the estate's tax return (Form 1041). Save it here whenever the user shares their estate's EIN. This is NOT the court's case / estate number (that's `estate_number`) — do not confuse the two. Empty string clears it."
    },
    "situation_notes": {
      "type": "string",
      "description": "Durable, estate-level narrative context that has no structured field of its own — the will situation (e.g. 'has a handwritten will from 2017, executed in CA, validity unconfirmed'), a pending claim (e.g. a partner's CIR claim), family dynamics, or other facts you'll need to remember later in this or a future conversation. This field is shown back to you in your Estate Context every turn. IMPORTANT: it is a single curated summary, NOT an append log — read the current Estate Notes in your context, fold the new detail in, and pass the FULL revised text (you are replacing the whole field, so don't drop anything still relevant). Keep it concise (a few sentences). Do NOT use it for facts that belong on a specific heir, asset, task, or ledger entry — use those records. Empty string clears it."
    }
  },
  "required": [
    "estate_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 32개