breeze-chms

Manage Breeze ChMS people, tags, events, check-ins, volunteers and contributions.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
89%
Naming quality
80%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~5,376Tokens (tool definitions)
~1.7 KBTypical response size
Significant attention impact (4.20% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "breeze-chms": {
      "url": "https://breeze-chms.usefulapi.io/mcp"
    }
  }
}

Remote endpoints

https://breeze-chms.usefulapi.io/mcpstreamable-http

What it can do

Tool inventory

Tools (24)

🟒 Read-only🟑 WriteπŸ”΄ Deleteβšͺ Unknown
🟒breeze_get_account_summary

The church account this key belongs to: name, subdomain, status, timezone and country/currency. A cheap way to confirm BREEZE_SUBDOMAIN and BREEZE_API_KEY are right. Breeze: GET /api/account/summary.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟒breeze_list_people(details, filter, limit, offset)

List people in the church database, optionally filtered (by tag, status, gender, etc.) and paginated with limit/offset. Without details you get id, first_name, last_name and photo path; with details=true every profile field is returned keyed by field_id (slower). Filter keys are profile field_ids (see breeze_list_profile_fields) or special keys, e.g. {"tag_contains":"y_16681"} for people in a tag, or {"2000138015":"226-227"} for a Status field matching options 226 or 227. Breeze: GET /api/people.

Input Schema

{
  "type": "object",
  "properties": {
    "details": {
      "description": "true = every profile field (slower); false/omitted = id and name only.",
      "type": "boolean"
    },
    "filter": {
      "description": "Filter object, sent as Breeze's filter_json, e.g. {\"tag_contains\":\"y_16681\"}.",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "type": "string"
      }
    },
    "limit": {
      "description": "Number of people to return. Omit to return everyone (can be large).",
      "type": "integer",
      "minimum": 1,
      "maximum": 5000
    },
    "offset": {
      "description": "People to skip, for pagination with limit.",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟒breeze_get_person(person_id, details)

Fetch one person's profile by id, including address and β€” by default β€” every profile field keyed by field_id, plus family members. Pair with breeze_list_profile_fields to label the field ids. Breeze: GET /api/people/{person_id}.

Input Schema

{
  "type": "object",
  "properties": {
    "person_id": {
      "type": "string",
      "pattern": "^\\d+$",
      "description": "Numeric Breeze id of the person."
    },
    "details": {
      "description": "Defaults to true (all information). false = only id and name.",
      "type": "boolean"
    }
  },
  "required": [
    "person_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟒breeze_list_profile_fields

The church's profile layout: sections, each with its fields (field_id, field_type, name) and, for multiple-choice fields, their options (option_id, name). Needed to read person details, to build list_people filters, and to write fields with breeze_add_person / breeze_update_person. Breeze: GET /api/profile.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟒breeze_list_tags(folder_id)

List tags (Breeze's groups/lists) with id, name, created_on and folder_id, optionally only those in one folder. To list the people in a tag, call breeze_list_people with filter {"tag_contains":"y_<tag_id>"}. Breeze: GET /api/tags/list_tags.

Input Schema

{
  "type": "object",
  "properties": {
    "folder_id": {
      "type": "string",
      "pattern": "^\\d+$",
      "description": "Numeric Breeze id of the tag folder."
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟒breeze_list_events(start, end, category_id, eligible, details, ...)

List event instances in a date range (default: the current month), optionally on one calendar. Each row's `id` is the INSTANCE id used by attendance, volunteer and get_event tools; `event_id` is the series. Responses are cached by Breeze and may lag up to 15 minutes. Breeze: GET /api/events.

Input Schema

{
  "type": "object",
  "properties": {
    "start": {
      "description": "Events on or after (YYYY-MM-DD).",
      "type": "string",
      "pattern": "^\\d{4}-\\d{1,2}-\\d{1,2}$"
    },
    "end": {
      "description": "Events on or before (YYYY-MM-DD).",
      "type": "string",
      "pattern": "^\\d{4}-\\d{1,2}-\\d{1,2}$"
    },
    "category_id": {
      "type": "string",
      "pattern": "^\\d+$",
      "description": "Numeric Breeze id of the calendar (from breeze_list_calendars)."
    },
    "eligible": {
      "description": "Include who is eligible to check in (everyone / tags / forms / none).",
      "type": "boolean"
    },
    "details": {
      "description": "Include description, check-in settings, etc.",
      "type": "boolean"
    },
    "limit": {
      "description": "Max events, 1-1000 (Breeze default 500).",
      "type": "integer",
      "minimum": 1,
      "maximum": 1000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟒breeze_get_event(instance_id, schedule, schedule_direction, schedule_limit, eligible, ...)

Fetch one event instance, optionally with the other instances in its series (then the response is an array of {id, start} only). Cached by Breeze, may lag up to 15 minutes. Breeze: GET /api/events/list_event.

Input Schema

{
  "type": "object",
  "properties": {
    "instance_id": {
      "type": "string",
      "pattern": "^\\d+$",
      "description": "Numeric Breeze id of the event instance."
    },
    "schedule": {
      "description": "Also return other instances in the same series.",
      "type": "boolean"
    },
    "schedule_direction": {
      "description": "With schedule: instances before (default) or after this one.",
      "type": "string",
      "enum": [
        "before",
        "after"
      ]
    },
    "schedule_limit": {
      "description": "With schedule: how many series instances, 1-100 (default 10).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "eligible": {
      "description": "Include check-in eligibility details.",
      "type": "boolean"
    },
    "details": {
      "description": "Include description, check-in settings, etc.",
      "type": "boolean"
    }
  },
  "required": [
    "instance_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟒breeze_list_calendars

List the church's event calendars (id, name, color and iCal feed address). The id is the category_id for breeze_list_events and breeze_add_event. Breeze: GET /api/events/calendars/list.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟒breeze_list_attendance(instance_id, details, type)

Who checked in to one event instance (person_id, check-in time created_on, check_out), optionally with each person's details, or the anonymous head count instead. Breeze: GET /api/events/attendance/list.

Input Schema

{
  "type": "object",
  "properties": {
    "instance_id": {
      "type": "string",
      "pattern": "^\\d+$",
      "description": "Numeric Breeze id of the event instance."
    },
    "details": {
      "description": "Include each attendee's profile details.",
      "type": "boolean"
    },
    "type": {
      "description": "person (default) = named check-ins; anonymous = head count.",
      "type": "string",
      "enum": [
        "person",
        "anonymous"
      ]
    }
  },
  "required": [
    "instance_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟒breeze_list_forms(archived)

List the church's online forms (id, name, url_slug, is_archived) β€” active ones by default, or archived ones. Breeze: GET /api/forms/list_forms.

Input Schema

{
  "type": "object",
  "properties": {
    "archived": {
      "description": "true = list archived forms instead of active ones.",
      "type": "boolean"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟒breeze_list_form_fields(form_id)

The fields of one form (field_id, field_type, name, options). Form entry responses are keyed by these field_ids. Breeze: GET /api/forms/list_form_fields.

Input Schema

{
  "type": "object",
  "properties": {
    "form_id": {
      "type": "string",
      "pattern": "^\\d+$",
      "description": "Numeric Breeze id of the form."
    }
  },
  "required": [
    "form_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟒breeze_list_form_entries(form_id, details)

Submissions to one form (id, created_on, person_id), and with details=true each entry's responses keyed by form field_id (see breeze_list_form_fields). Breeze: GET /api/forms/list_form_entries.

Input Schema

{
  "type": "object",
  "properties": {
    "form_id": {
      "type": "string",
      "pattern": "^\\d+$",
      "description": "Numeric Breeze id of the form."
    },
    "details": {
      "description": "Include each entry's field responses.",
      "type": "boolean"
    }
  },
  "required": [
    "form_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟒breeze_list_volunteers(instance_id)

Volunteers scheduled for one event instance: person_id, response, comment, rsvped_on and role_ids. Breeze: GET /api/volunteers/list.

Input Schema

{
  "type": "object",
  "properties": {
    "instance_id": {
      "type": "string",
      "pattern": "^\\d+$",
      "description": "Numeric Breeze id of the event instance."
    }
  },
  "required": [
    "instance_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟒breeze_list_account_log(action, start, end, user_id, details, ...)

The account's audit log for one action type (e.g. person_updated, tag_assign, contribution_added), optionally within a date range or by one user. Good for 'what changed since…' and incremental sync. Breeze: GET /api/account/list_log.

Input Schema

{
  "type": "object",
  "properties": {
    "action": {
      "type": "string",
      "enum": [
        "text_sent",
        "contribution_added",
        "contribution_updated",
        "contribution_deleted",
        "bulk_contributions_deleted",
        "envelope_created",
        "envelope_updated",
        "envelope_deleted",
        "payment_method_updated",
        "payment_method_deleted",
        "payment_method_created",
        "bank_account_added",
        "bank_account_updated",
        "transfer_day_changed",
        "bank_account_deleted",
        "payment_association_deleted",
        "payment_association_created",
        "bulk_import_contributions",
        "bulk_import_pledges",
        "bulk_pledges_deleted",
        "batch_updated",
        "batch_deleted",
        "bulk_envelopes_deleted",
        "event_created",
        "event_updated",
        "event_deleted",
        "event_instance_deleted",
        "event_future_deleted",
        "events_calendar_created",
        "events_calendar_updated",
        "events_calendar_deleted",
        "bulk_import_attendance",
        "attendance_deleted",
        "bulk_attendance_deleted",
        "volunteer_role_created",
        "volunteer_role_deleted",
        "person_created",
        "person_updated",
        "person_deleted",
        "person_archived",
        "person_merged",
        "people_updated",
        "bulk_update_people",
        "bulk_people_deleted",
        "bulk_people_archived",
        "bulk_import_people",
        "bulk_notes_deleted",
        "tag_created",
        "tag_updated",
        "tag_deleted",
        "bulk_tags_deleted",
        "tag_folder_created",
        "tag_folder_updated",
        "tag_folder_deleted",
        "tag_assign",
        "tag_unassign",
        "form_created",
        "form_updated",
        "form_deleted",
        "form_entry_updated",
        "form_entry_deleted",
        "followup_option_created",
        "followup_option_updated",
        "followup_option_deleted",
        "user_created",
        "user_updated",
        "user_deleted",
        "role_created",
        "role_updated",
        "role_deleted",
        "extension_installed",
        "extension_uninstalled",
        "extension_upgraded",
        "extension_downgraded",
        "sub_payment_method_updated"
      ],
      "description": "Which logged action to return (required by Breeze)."
    },
    "start": {
      "description": "Actions on or after (YYYY-MM-DD).",
      "type": "string",
      "pattern": "^\\d{4}-\\d{1,2}-\\d{1,2}$"
    },
    "end": {
      "description": "Actions on or before (YYYY-MM-DD).",
      "type": "string",
      "pattern": "^\\d{4}-\\d{1,2}-\\d{1,2}$"
    },
    "user_id": {
      "type": "string",
      "pattern": "^\\d+$",
      "description": "Numeric Breeze id of the Breeze user who made the change."
    },
    "details": {
      "description": "Include a free-form description of each action (not standardized).",
      "type": "boolean"
    },
    "limit": {
      "description": "Max rows, 1-3000 (Breeze default 500).",
      "type": "integer",
      "minimum": 1,
      "maximum": 3000
    }
  },
  "required": [
    "action"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟒breeze_list_funds(include_totals)

List giving funds (id, name, tax_deductible, is_default), optionally with the total given to each. Legacy endpoint: no longer shown on Breeze's current API reference; churches whose giving runs through Tithely may get an error. Breeze: GET /api/funds/list.

Input Schema

{
  "type": "object",
  "properties": {
    "include_totals": {
      "description": "Include the amount given to each fund.",
      "type": "boolean"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟒breeze_list_contributions(start, end, person_id, include_family, amount_min, ...)

List recorded contributions (gifts) given within a date range, optionally narrowed by giver (with their family), amount, payment method, fund, envelope, batch or form. Read-only: this server never adds, edits or deletes gifts. Legacy endpoint: no longer shown on Breeze's current API reference; churches whose giving runs through Tithely may get an error. Breeze: GET /api/giving/list.

Input Schema

{
  "type": "object",
  "properties": {
    "start": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{1,2}-\\d{1,2}$",
      "description": "Contributions given on or after (YYYY-MM-DD)."
    },
    "end": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{1,2}-\\d{1,2}$",
      "description": "Contributions given on or before (YYYY-MM-DD)."
    },
    "person_id": {
      "type": "string",
      "pattern": "^\\d+$",
      "description": "Numeric Breeze id of the giver."
    },
    "include_family": {
      "description": "With person_id: include gifts from the giver's family members.",
      "type": "boolean"
    },
    "amount_min": {
      "description": "Only gifts of at least this amount.",
      "type": "number",
      "minimum": 0
    },
    "amount_max": {
      "description": "Only gifts of at most this amount.",
      "type": "number",
      "minimum": 0
    },
    "method_ids": {
      "description": "Only these payment method ids.",
      "minItems": 1,
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^\\d+$"
      }
    },
    "fund_ids": {
      "description": "Only these fund (from breeze_list_funds) ids.",
      "minItems": 1,
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^\\d+$"
      }
    },
    "envelope_number": {
      "description": "Only gifts with this envelope number.",
      "type": "string"
    },
    "batches": {
      "description": "Only these batch number ids.",
      "minItems": 1,
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^\\d+$"
      }
    },
    "forms": {
      "description": "Only these form ids.",
      "minItems": 1,
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^\\d+$"
      }
    }
  },
  "required": [
    "start",
    "end"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
πŸ”΄breeze_add_person(first, last, fields)

WRITE: create a new person profile with a first and last name, and optionally set profile fields in the same call (same field shape as breeze_update_person). Check breeze_list_people first to avoid duplicates. Returns the new profile including its id. Breeze: GET /api/people/add.

Input Schema

{
  "type": "object",
  "properties": {
    "first": {
      "type": "string",
      "minLength": 1,
      "description": "First name."
    },
    "last": {
      "type": "string",
      "minLength": 1,
      "description": "Last name."
    },
    "fields": {
      "description": "Profile fields to set (sent as fields_json).",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "field_id": {
            "type": "string",
            "pattern": "^\\d+$",
            "description": "The profile field_id, from breeze_list_profile_fields."
          },
          "field_type": {
            "type": "string",
            "minLength": 1,
            "description": "Breeze field type: text, textarea, radio (multiple choice AND dropdown), checkbox, date, birthdate, email, phone, address or family_role."
          },
          "response": {
            "description": "The value. Text/date: the string (dates as M/D/YYYY). radio/checkbox: the option_id. email/phone/address: true, with the value in details.",
            "type": [
              "string",
              "boolean"
            ]
          },
          "details": {
            "description": "Extra data for compound fields, e.g. email {\"address\":\"[email protected]\"}; phone {\"phone_mobile\":\"111-111-1111\"} (or phone_home / phone_work); address {\"street_address\",\"city\",\"state\",\"zip\"}; family_role {\"person_id\":123,\"role_id\":3} (1 Unassigned, 2 Child, 3 Adult, 4 Head of Household, 5 Spouse).",
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {}
          }
        },
        "required": [
          "field_id",
          "field_type",
          "response"
        ]
      }
    }
  },
  "required": [
    "first",
    "last"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
πŸ”΄breeze_update_person(person_id, fields)

WRITE: set profile fields on an existing person β€” email, phone, address, dates, multiple-choice options, family role, and custom fields. Only the fields you pass change; the previous values are overwritten (read them first with breeze_get_person if you may need to restore them). field_id and option ids come from breeze_list_profile_fields. Breeze: GET /api/people/update.

Input Schema

{
  "type": "object",
  "properties": {
    "person_id": {
      "type": "string",
      "pattern": "^\\d+$",
      "description": "Numeric Breeze id of the person."
    },
    "fields": {
      "minItems": 1,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "field_id": {
            "type": "string",
            "pattern": "^\\d+$",
            "description": "The profile field_id, from breeze_list_profile_fields."
          },
          "field_type": {
            "type": "string",
            "minLength": 1,
            "description": "Breeze field type: text, textarea, radio (multiple choice AND dropdown), checkbox, date, birthdate, email, phone, address or family_role."
          },
          "response": {
            "description": "The value. Text/date: the string (dates as M/D/YYYY). radio/checkbox: the option_id. email/phone/address: true, with the value in details.",
            "type": [
              "string",
              "boolean"
            ]
          },
          "details": {
            "description": "Extra data for compound fields, e.g. email {\"address\":\"[email protected]\"}; phone {\"phone_mobile\":\"111-111-1111\"} (or phone_home / phone_work); address {\"street_address\",\"city\",\"state\",\"zip\"}; family_role {\"person_id\":123,\"role_id\":3} (1 Unassigned, 2 Child, 3 Adult, 4 Head of Household, 5 Spouse).",
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {}
          }
        },
        "required": [
          "field_id",
          "field_type",
          "response"
        ]
      },
      "description": "Profile fields to set (sent as fields_json)."
    }
  },
  "required": [
    "person_id",
    "fields"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
πŸ”΄breeze_add_tag(name, folder_id)

WRITE: create a new tag, at the top level or inside a folder. Returns the new tag with its id. Breeze: GET /api/tags/add_tag.

Input Schema

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "description": "Tag name, e.g. \"Small Groups\"."
    },
    "folder_id": {
      "type": "string",
      "pattern": "^\\d+$",
      "description": "Numeric Breeze id of the folder to place the tag in (default: top level)."
    }
  },
  "required": [
    "name"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
πŸ”΄breeze_assign_tag(person_id, tag_id)

WRITE: add a tag to one person (e.g. put them in a small group or list). Undo with breeze_unassign_tag. Breeze: GET /api/tags/assign.

Input Schema

{
  "type": "object",
  "properties": {
    "person_id": {
      "type": "string",
      "pattern": "^\\d+$",
      "description": "Numeric Breeze id of the person."
    },
    "tag_id": {
      "type": "string",
      "pattern": "^\\d+$",
      "description": "Numeric Breeze id of the tag."
    }
  },
  "required": [
    "person_id",
    "tag_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
πŸ”΄breeze_unassign_tag(person_id, tag_id)

WRITE: remove a tag from one person. The person and the tag both remain; re-assign with breeze_assign_tag. Breeze: GET /api/tags/unassign.

Input Schema

{
  "type": "object",
  "properties": {
    "person_id": {
      "type": "string",
      "pattern": "^\\d+$",
      "description": "Numeric Breeze id of the person."
    },
    "tag_id": {
      "type": "string",
      "pattern": "^\\d+$",
      "description": "Numeric Breeze id of the tag."
    }
  },
  "required": [
    "person_id",
    "tag_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
πŸ”΄breeze_add_event(name, starts_on, ends_on, all_day, description, ...)

WRITE: create an event on the church calendar, optionally as another instance of an existing series. Times are Unix timestamps in seconds. This server cannot delete events, so a mistaken event must be removed in the Breeze app. Breeze: GET /api/events/add.

Input Schema

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "description": "Event name."
    },
    "starts_on": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Start time, Unix timestamp in seconds."
    },
    "ends_on": {
      "description": "End time, Unix timestamp in seconds (default: one hour after start).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "all_day": {
      "description": "All-day event; only the date of starts_on is used.",
      "type": "boolean"
    },
    "description": {
      "description": "Event description (HTML allowed).",
      "type": "string"
    },
    "category_id": {
      "type": "string",
      "pattern": "^\\d+$",
      "description": "Numeric Breeze id of the calendar to place the event on (default: main)."
    },
    "event_id": {
      "type": "string",
      "pattern": "^\\d+$",
      "description": "Numeric Breeze id of the existing event series to add this instance to."
    }
  },
  "required": [
    "name",
    "starts_on"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
πŸ”΄breeze_record_attendance(person_id, instance_id, direction)

WRITE: record attendance for one person at one event instance β€” check them in (default) or check them out (records when they left; checking out someone not checked in creates a record with matching in/out times). Breeze: GET /api/events/attendance/add.

Input Schema

{
  "type": "object",
  "properties": {
    "person_id": {
      "type": "string",
      "pattern": "^\\d+$",
      "description": "Numeric Breeze id of the person."
    },
    "instance_id": {
      "type": "string",
      "pattern": "^\\d+$",
      "description": "Numeric Breeze id of the event instance."
    },
    "direction": {
      "description": "in (default) or out.",
      "type": "string",
      "enum": [
        "in",
        "out"
      ]
    }
  },
  "required": [
    "person_id",
    "instance_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
πŸ”΄breeze_schedule_volunteer(instance_id, person_id)

WRITE: schedule one person as a volunteer for one event instance. Breeze: GET /api/volunteers/add.

Input Schema

{
  "type": "object",
  "properties": {
    "instance_id": {
      "type": "string",
      "pattern": "^\\d+$",
      "description": "Numeric Breeze id of the event instance."
    },
    "person_id": {
      "type": "string",
      "pattern": "^\\d+$",
      "description": "Numeric Breeze id of the person."
    }
  },
  "required": [
    "instance_id",
    "person_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded24 tools