Gingr MCP by usefulapi
Read Gingr reservations, owners, pets, check-ins, invoices and timeclock for your pet-care business.
¿Debería usar esto?
Calidad y seguridad
Hallazgos (1)
- LOWen gingr_list_cancelled_reservations
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"gingr": {
"url": "https://gingr.usefulapi.io/mcp"
}
}
}Puntos de conexión remotos
https://gingr.usefulapi.io/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (25)
🟢gingr_list_locations
List the locations (facilities) of this Gingr app, as id (value) + name (label). Good first call: most other tools take a location_id. Gingr: GET /api/v1/get_locations.
Esquema de entrada
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢gingr_list_reservation_types(id, active_only)
List the reservation types (services such as boarding, daycare, grooming, training) with their ids. Use the ids to filter reservations or to read a type's add-on services. Gingr: GET /api/v1/reservation_types.
Esquema de entrada
{
"type": "object",
"properties": {
"id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Only this reservation type id."
},
"active_only": {
"description": "true = only active reservation types.",
"type": "boolean"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢gingr_list_services_by_type(type_id, location_id)
List the additional services (add-ons) allowed for a reservation type, e.g. baths or nail trims on a boarding stay. Gingr: GET /api/v1/get_services_by_type.
Esquema de entrada
{
"type": "object",
"properties": {
"type_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Reservation type id (from gingr_list_reservation_types)."
},
"location_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Location id (from gingr_list_locations)."
}
},
"required": [
"type_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢gingr_list_reference(kind, species_id, offset, limit)
List one kind of reference data of this Gingr app: species, breeds, temperaments, vets (veterinarians with details), retail_items (retail items for sale) or immunization_types (of one species; needs species_id). Paged. Gingr: GET /api/v1/get_species | get_breeds | get_temperaments | get_vets | get_all_retail_items | get_immunization_types.
Esquema de entrada
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"species",
"breeds",
"temperaments",
"vets",
"retail_items",
"immunization_types"
],
"description": "Which list to read."
},
"species_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Species id (needed for kind=immunization_types)."
},
"offset": {
"description": "Skip this many records (paging; default 0). Use next_offset from the previous page.",
"type": "integer",
"minimum": 0,
"maximum": 1000000
},
"limit": {
"description": "Records per page (1-200, default 50).",
"type": "integer",
"minimum": 1,
"maximum": 200
}
},
"required": [
"kind"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢gingr_list_reservations(start_date, end_date, location_id, offset, limit)
List all reservations (boarding, daycare, grooming, training…) between two dates, at most 30 days apart (Gingr's limit). Paged: total, next_offset, items. Gingr: POST /api/v1/reservations (checked_in=false).
Esquema de entrada
{
"type": "object",
"properties": {
"start_date": {
"type": "string",
"description": "First day (YYYY-MM-DD)."
},
"end_date": {
"type": "string",
"description": "Last day (YYYY-MM-DD), at most 30 days after start_date."
},
"location_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Location id (from gingr_list_locations)."
},
"offset": {
"description": "Skip this many records (paging; default 0). Use next_offset from the previous page.",
"type": "integer",
"minimum": 0,
"maximum": 1000000
},
"limit": {
"description": "Records per page (1-200, default 50).",
"type": "integer",
"minimum": 1,
"maximum": 200
}
},
"required": [
"start_date",
"end_date"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢gingr_list_checked_in(location_id, offset, limit)
List the reservations that are checked in right now (the pets currently on site). Paged. Gingr: POST /api/v1/reservations (checked_in=true).
Esquema de entrada
{
"type": "object",
"properties": {
"location_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Location id (from gingr_list_locations)."
},
"offset": {
"description": "Skip this many records (paging; default 0). Use next_offset from the previous page.",
"type": "integer",
"minimum": 0,
"maximum": 1000000
},
"limit": {
"description": "Records per page (1-200, default 50).",
"type": "integer",
"minimum": 1,
"maximum": 200
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢gingr_get_daily_summary(date)
Get the summary of reservations for one date: number of check-ins, check-outs and overnights (the widget at the top of the Gingr dashboard). Gingr: GET /api/v1/reservation_widget_data.
Esquema de entrada
{
"type": "object",
"properties": {
"date": {
"type": "string",
"description": "The date (YYYY-MM-DD)."
}
},
"required": [
"date"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢gingr_get_whiteboard(location_id, type_ids, full_day, mins_future)
Get the pets checking in and checking out today at a location, by reservation type, with owner/pet names, times, run and status (Gingr's Digital Whiteboard). Gingr: GET /api/v1/back_of_house.
Esquema de entrada
{
"type": "object",
"properties": {
"location_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Location id (from gingr_list_locations)."
},
"type_ids": {
"minItems": 1,
"maxItems": 50,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"description": "Reservation type ids to include (from gingr_list_reservation_types)."
},
"full_day": {
"description": "true (default) = every reservation checking in/out today; false = use mins_future.",
"type": "boolean"
},
"mins_future": {
"description": "With full_day=false: only the next/last this many minutes.",
"type": "integer",
"minimum": 1,
"maximum": 1440
}
},
"required": [
"location_id",
"type_ids"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢gingr_list_owner_reservations(owner_id, restrict_to, from_date, to_date, reservation_type_ids, ...)
List the reservations of one owner (customer), optionally only pending requests, current, future, past or wait-listed ones, by dates, types or pets. Only the location the API user is logged into is included (Gingr). Gingr: POST /api/v1/reservations_by_owner.
Esquema de entrada
{
"type": "object",
"properties": {
"owner_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Owner id (from gingr_list_owners / gingr_get_owner)."
},
"restrict_to": {
"description": "Only reservations in this state.",
"type": "string",
"enum": [
"pending_requests",
"currently_checked_in",
"future",
"past",
"wait_listed"
]
},
"from_date": {
"description": "Only reservations from this date (YYYY-MM-DD).",
"type": "string"
},
"to_date": {
"description": "Only reservations up to this date (YYYY-MM-DD).",
"type": "string"
},
"reservation_type_ids": {
"description": "Only these reservation type ids (from gingr_list_reservation_types).",
"maxItems": 50,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"animal_ids": {
"description": "Only these animal (pet) ids.",
"maxItems": 50,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"cancelled_only": {
"description": "true = only cancelled reservations.",
"type": "boolean"
},
"confirmed_only": {
"description": "true = only confirmed reservations.",
"type": "boolean"
},
"completed_only": {
"description": "true = only completed reservations.",
"type": "boolean"
},
"limit": {
"description": "Return at most this many reservations (1-200, default 50).",
"type": "integer",
"minimum": 1,
"maximum": 200
}
},
"required": [
"owner_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢gingr_list_animal_reservations(animal_id, restrict_to, from_date, to_date, reservation_type_ids, ...)
List the reservations of one animal (pet), optionally only pending requests, current, future, past or wait-listed ones, by dates or types. Only the location the API user is logged into is included (Gingr). Gingr: POST /api/v1/reservations_by_animal.
Esquema de entrada
{
"type": "object",
"properties": {
"animal_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Animal (pet) id (from gingr_list_animals)."
},
"restrict_to": {
"description": "Only reservations in this state.",
"type": "string",
"enum": [
"pending_requests",
"currently_checked_in",
"future",
"past",
"wait_listed"
]
},
"from_date": {
"description": "Only reservations from this date (YYYY-MM-DD).",
"type": "string"
},
"to_date": {
"description": "Only reservations up to this date (YYYY-MM-DD).",
"type": "string"
},
"reservation_type_ids": {
"description": "Only these reservation type ids (from gingr_list_reservation_types).",
"maxItems": 50,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"animal_ids": {
"description": "Only these animal (pet) ids.",
"maxItems": 50,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"cancelled_only": {
"description": "true = only cancelled reservations.",
"type": "boolean"
},
"confirmed_only": {
"description": "true = only confirmed reservations.",
"type": "boolean"
},
"completed_only": {
"description": "true = only completed reservations.",
"type": "boolean"
},
"limit": {
"description": "Return at most this many reservations (1-200, default 50).",
"type": "integer",
"minimum": 1,
"maximum": 200
}
},
"required": [
"animal_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢gingr_list_cancelled_reservations(start_date, end_date, location_id, offset, limit)
List the reservations that were cancelled between two dates (at most 31 days apart). Paged. Gingr: POST /api/v1/recently_cancelled_reservations.
Esquema de entrada
{
"type": "object",
"properties": {
"start_date": {
"type": "string",
"description": "First day of cancellation (YYYY-MM-DD)."
},
"end_date": {
"type": "string",
"description": "Last day of cancellation (YYYY-MM-DD)."
},
"location_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Location id (from gingr_list_locations)."
},
"offset": {
"description": "Skip this many records (paging; default 0). Use next_offset from the previous page.",
"type": "integer",
"minimum": 0,
"maximum": 1000000
},
"limit": {
"description": "Records per page (1-200, default 50).",
"type": "integer",
"minimum": 1,
"maximum": 200
}
},
"required": [
"start_date",
"end_date"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢gingr_get_reservation_estimate(reservation_id)
Get the estimated cost of an existing (future) reservation. Gingr: GET /api/v1/existing_reservation_estimate.
Esquema de entrada
{
"type": "object",
"properties": {
"reservation_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Reservation id."
}
},
"required": [
"reservation_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢gingr_list_owners(first_name, last_name, email, cell_phone, zip, ...)
List owners (pet parents / customers) with contact details, balance and reservation counts, optionally filtered by exact first/last name, email, cell phone, ZIP or home location. Paged. Gingr: GET /api/v1/owners (filters as params[<field>]). Passwords and payment-card references are removed.
Esquema de entrada
{
"type": "object",
"properties": {
"first_name": {
"description": "Exact first name.",
"type": "string",
"minLength": 1,
"maxLength": 100
},
"last_name": {
"description": "Exact last name.",
"type": "string",
"minLength": 1,
"maxLength": 100
},
"email": {
"description": "Exact email address.",
"type": "string",
"minLength": 3,
"maxLength": 254
},
"cell_phone": {
"description": "Exact cell phone as stored in Gingr, e.g. (555) 555-5555.",
"type": "string",
"minLength": 3,
"maxLength": 40
},
"zip": {
"description": "Exact ZIP / postal code.",
"type": "string",
"minLength": 1,
"maxLength": 20
},
"home_location": {
"description": "Home location id.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"offset": {
"description": "Skip this many records (paging; default 0). Use next_offset from the previous page.",
"type": "integer",
"minimum": 0,
"maximum": 1000000
},
"limit": {
"description": "Records per page (1-200, default 50).",
"type": "integer",
"minimum": 1,
"maximum": 200
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢gingr_get_owner(owner_id, animal_id, reservation_id, phone, email)
Get one owner (customer) record by exactly one of: owner id, one of their pets' id, one of their reservations' id, cell phone or email. Gingr: GET /api/v1/owner. Passwords and payment-card references are removed.
Esquema de entrada
{
"type": "object",
"properties": {
"owner_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Owner id."
},
"animal_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Find the owner of this animal (pet)."
},
"reservation_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Find the owner of this reservation."
},
"phone": {
"description": "Cell phone number.",
"type": "string",
"minLength": 3,
"maxLength": 40
},
"email": {
"description": "Email address.",
"type": "string",
"minLength": 3,
"maxLength": 254
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢gingr_list_new_modified_owners(start_date, end_date, location_id, offset, limit)
List the owners (customers) created or modified between two dates (at most 366 days apart). Paged. Gingr: POST /api/v1/new_modified_owners.
Esquema de entrada
{
"type": "object",
"properties": {
"start_date": {
"type": "string",
"description": "First day (YYYY-MM-DD)."
},
"end_date": {
"type": "string",
"description": "Last day (YYYY-MM-DD)."
},
"location_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Only owners whose home location is this location id."
},
"offset": {
"description": "Skip this many records (paging; default 0). Use next_offset from the previous page.",
"type": "integer",
"minimum": 0,
"maximum": 1000000
},
"limit": {
"description": "Records per page (1-200, default 50).",
"type": "integer",
"minimum": 1,
"maximum": 200
}
},
"required": [
"start_date",
"end_date"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢gingr_list_animals(owner_id, first_name, species_id, breed_id, offset, ...)
List animals (pets) with species, breed, birthday, weight, owner and notes, optionally filtered by owner, exact name, species or breed. Paged. Gingr: GET /api/v1/animals (filters as params[<field>]).
Esquema de entrada
{
"type": "object",
"properties": {
"owner_id": {
"description": "Only this owner's animals.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"first_name": {
"description": "Exact pet name.",
"type": "string",
"minLength": 1,
"maxLength": 100
},
"species_id": {
"description": "Species id (gingr_list_reference kind=species).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"breed_id": {
"description": "Breed id (gingr_list_reference kind=breeds).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"offset": {
"description": "Skip this many records (paging; default 0). Use next_offset from the previous page.",
"type": "integer",
"minimum": 0,
"maximum": 1000000
},
"limit": {
"description": "Records per page (1-200, default 50).",
"type": "integer",
"minimum": 1,
"maximum": 200
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢gingr_get_animal_immunizations(animal_id)
Get the immunization (vaccination) records of one animal, with expiration dates. Gingr: GET /api/v1/get_animal_immunizations.
Esquema de entrada
{
"type": "object",
"properties": {
"animal_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Animal (pet) id."
}
},
"required": [
"animal_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢gingr_get_animal_feeding(animal_id)
Get the feeding information of one animal (food, amounts, schedule). Gingr: GET /api/v1/get_feeding_info.
Esquema de entrada
{
"type": "object",
"properties": {
"animal_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Animal (pet) id."
}
},
"required": [
"animal_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢gingr_get_animal_medications(animal_id)
Get the medication information of one animal (medications, doses, schedule). Gingr: GET /api/v1/get_medication_info.
Esquema de entrada
{
"type": "object",
"properties": {
"animal_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Animal (pet) id."
}
},
"required": [
"animal_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢gingr_list_invoices(complete, closed_only, from_date, to_date, per_page, ...)
List invoices (complete=true) or estimates (complete=false, Gingr's default) created on or after 2019-08-01, optionally closed only and by date range. Paged by Gingr: per_page + start (the 1-based number of the first result; the next page starts at start + per_page). Gingr: GET /api/v1/list_invoices.
Esquema de entrada
{
"type": "object",
"properties": {
"complete": {
"description": "true = invoices; false (default) = estimates.",
"type": "boolean"
},
"closed_only": {
"description": "true = only closed invoices.",
"type": "boolean"
},
"from_date": {
"description": "From date (YYYY-MM-DD).",
"type": "string"
},
"to_date": {
"description": "To date (YYYY-MM-DD).",
"type": "string"
},
"per_page": {
"description": "Results per page (1-100, default 25).",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"start": {
"description": "1-based number of the first result (default 1; page 2 of 25 = 26).",
"type": "integer",
"minimum": 1,
"maximum": 10000000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢gingr_get_transaction(transaction_id)
Get one point-of-sale transaction with its items and payment details (card numbers, processor references and auth codes are removed). Gingr: POST /api/v1/transaction.
Esquema de entrada
{
"type": "object",
"properties": {
"transaction_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "POS transaction id."
}
},
"required": [
"transaction_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢gingr_list_subscriptions(owner_id, location_id, package_id, bill_day_of_month, include_deleted, ...)
List recurring subscriptions (membership packages), optionally of one owner, location or package, by billing day, including cancelled ones if asked. Paged by Gingr (limit + offset). Gingr: GET /api/v1/get_subscriptions.
Esquema de entrada
{
"type": "object",
"properties": {
"owner_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Only this owner's subscriptions."
},
"location_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Location id (from gingr_list_locations)."
},
"package_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Only this package."
},
"bill_day_of_month": {
"description": "Only subscriptions renewing on this day of the month.",
"type": "integer",
"minimum": 1,
"maximum": 31
},
"include_deleted": {
"description": "true = include cancelled/deleted subscriptions.",
"type": "boolean"
},
"offset": {
"description": "Skip this many records (paging; default 0). Use next_offset from the previous page.",
"type": "integer",
"minimum": 0,
"maximum": 1000000
},
"limit": {
"description": "Records per page (1-100, default 50).",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢gingr_get_subscription(subscription_id)
Get one subscription (membership package) by id. Gingr: GET /api/v1/get_subscription.
Esquema de entrada
{
"type": "object",
"properties": {
"subscription_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Subscription id."
}
},
"required": [
"subscription_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢gingr_get_timeclock_report(start_date, end_date, location_id, user_ids, include_clocked_in, ...)
Get staff timeclock records (clock-ins/outs, hours) at a location between two dates (at most 31 days apart). Gingr: GET /api/v1/timeclock_report.
Esquema de entrada
{
"type": "object",
"properties": {
"start_date": {
"type": "string",
"description": "First day (YYYY-MM-DD)."
},
"end_date": {
"type": "string",
"description": "Last day (YYYY-MM-DD)."
},
"location_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Location id (from gingr_list_locations)."
},
"user_ids": {
"description": "Only these Gingr user (staff) ids.",
"maxItems": 100,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"include_clocked_in": {
"description": "true = include staff still clocked in.",
"type": "boolean"
},
"include_deleted": {
"description": "true = include deleted records.",
"type": "boolean"
}
},
"required": [
"start_date",
"end_date",
"location_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢gingr_list_report_card_files(location_id, limit)
List recently uploaded report card files (photos and videos shared with pet parents), newest first. Gingr: GET /api/v1/report_card_files.
Esquema de entrada
{
"type": "object",
"properties": {
"location_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Location id (from gingr_list_locations)."
},
"limit": {
"description": "Return at most this many files (1-200, default 50).",
"type": "integer",
"minimum": 1,
"maximum": 200
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Comunidad
Evidencia