gingr-mcp
Registry code: 6ae112d61ae2947b
Tools for Gingr, hosted by usefulapi.io. Read-only tools never change data; ask the user before a tool that creates, changes or deletes Gingr data. Free plan: 100 tool calls per month. Run gingr_usage_status to see the calls used this month. Pro (unlimited calls, $9/month or $90/year): when the user wants more calls or reaches the limit, run gingr_upgrade; it returns a Stripe Checkout link for the user to open. gingr_cancel_subscription cancels Pro at the end of the paid period.
- endpoint
- https://gingr.usefulapi.io/mcp
- protocol
- streamable-http ·2025-06-18
- authentication
- none observed
- public key
- none — nobody has proven they own this listing · is it yours? claim it
- karma
- 0 · newcomer
- Is gingr-mcp live?
- Yes — it answered the hub's last check (checked 2h ago). It answered 100% of checks over the last 30 days.
- Is gingr-mcp free to use?
- No — it asks for a key or a login before it will serve.
- What tools does gingr-mcp have?
- 25 tools: gingr_list_checked_in, gingr_list_locations, gingr_list_reservation_types, gingr_list_animal_reservations, gingr_list_cancelled_reservations, gingr_get_animal_immunizations, gingr_get_animal_feeding, gingr_get_subscription, ….
- Is gingr-mcp safe to connect?
- The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
90 days 100%· all time 100%
last good check
of 25 tools
- unknown → live
Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.
through this hub
successful
what callers paid
Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.
gingr_list_locations auth-required never probed
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.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": {} }arguments 5 linesgingr_list_reservation_types auth-required never probed
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.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "id": { "type": "integer", "maximum": 9007199254740991, "description": "Only this reservation type id.", "exclusiveMinimum": 0 }, "active_only": { "type": "boolean", "description": "true = only active reservation types." } } }arguments 16 linesgingr_list_animal_reservations auth-required never probed
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.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "animal_id" ], "properties": { "limit": { "type": "integer", "maximum": 200, "minimum": 1, "description": "Return at most this many reservations (1-200, default 50)." }, "to_date": { "type": "string", "description": "Only reservations up to this date (YYYY-MM-DD)." }, "animal_id": { "type": "integer", "maximum": 9007199254740991, "description": "Animal (pet) id (from gingr_list_animals).", "exclusiveMinimum": 0 }, "from_date": { "type": "string", "description": "Only reservations from this date (YYYY-MM-DD)." }, "animal_ids": { "type": "array", "items": { "type": "integer", "maximum": 9007199254740991, "exclusiveMinimum": 0 }, "maxItems": 50, "description": "Only these animal (pet) ids." }, "restrict_to": { "enum": [ "pending_requests", "currently_checked_in", "future", "past", "wait_listed" ], "type": "string", "description": "Only reservations in this state." }, "cancelled_only": { "type": "boolean", "description": "true = only cancelled reservations." }, "completed_only": { "type": "boolean", "description": "true = only completed reservations." }, "confirmed_only": { "type": "boolean", "description": "true = only confirmed reservations." }, "reservation_type_ids": { "type": "array", "items": { "type": "integer", "maximum": 9007199254740991, "exclusiveMinimum": 0 }, "maxItems": 50, "description": "Only these reservation type ids (from gingr_list_reservation_types)." } } }arguments 72 linesgingr_list_cancelled_reservations auth-required never probed
List the reservations that were cancelled between two dates (at most 31 days apart). Paged. Gingr: POST /api/v1/recently_cancelled_reservations.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "start_date", "end_date" ], "properties": { "limit": { "type": "integer", "maximum": 200, "minimum": 1, "description": "Records per page (1-200, default 50)." }, "offset": { "type": "integer", "maximum": 1000000, "minimum": 0, "description": "Skip this many records (paging; default 0). Use next_offset from the previous page." }, "end_date": { "type": "string", "description": "Last day of cancellation (YYYY-MM-DD)." }, "start_date": { "type": "string", "description": "First day of cancellation (YYYY-MM-DD)." }, "location_id": { "type": "integer", "maximum": 9007199254740991, "description": "Location id (from gingr_list_locations).", "exclusiveMinimum": 0 } } }arguments 36 linesgingr_get_animal_immunizations auth-required never probed
Get the immunization (vaccination) records of one animal, with expiration dates. Gingr: GET /api/v1/get_animal_immunizations.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "animal_id" ], "properties": { "animal_id": { "type": "integer", "maximum": 9007199254740991, "description": "Animal (pet) id.", "exclusiveMinimum": 0 } } }arguments 15 linesgingr_get_animal_feeding auth-required never probed
Get the feeding information of one animal (food, amounts, schedule). Gingr: GET /api/v1/get_feeding_info.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "animal_id" ], "properties": { "animal_id": { "type": "integer", "maximum": 9007199254740991, "description": "Animal (pet) id.", "exclusiveMinimum": 0 } } }arguments 15 linesgingr_get_subscription auth-required never probed
Get one subscription (membership package) by id. Gingr: GET /api/v1/get_subscription.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "subscription_id" ], "properties": { "subscription_id": { "type": "integer", "maximum": 9007199254740991, "description": "Subscription id.", "exclusiveMinimum": 0 } } }arguments 15 linesgingr_get_timeclock_report auth-required never probed
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.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "start_date", "end_date", "location_id" ], "properties": { "end_date": { "type": "string", "description": "Last day (YYYY-MM-DD)." }, "user_ids": { "type": "array", "items": { "type": "integer", "maximum": 9007199254740991, "exclusiveMinimum": 0 }, "maxItems": 100, "description": "Only these Gingr user (staff) ids." }, "start_date": { "type": "string", "description": "First day (YYYY-MM-DD)." }, "location_id": { "type": "integer", "maximum": 9007199254740991, "description": "Location id (from gingr_list_locations).", "exclusiveMinimum": 0 }, "include_deleted": { "type": "boolean", "description": "true = include deleted records." }, "include_clocked_in": { "type": "boolean", "description": "true = include staff still clocked in." } } }arguments 43 linesgingr_get_whiteboard auth-required never probed
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.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "location_id", "type_ids" ], "properties": { "full_day": { "type": "boolean", "description": "true (default) = every reservation checking in/out today; false = use mins_future." }, "type_ids": { "type": "array", "items": { "type": "integer", "maximum": 9007199254740991, "exclusiveMinimum": 0 }, "maxItems": 50, "minItems": 1, "description": "Reservation type ids to include (from gingr_list_reservation_types)." }, "location_id": { "type": "integer", "maximum": 9007199254740991, "description": "Location id (from gingr_list_locations).", "exclusiveMinimum": 0 }, "mins_future": { "type": "integer", "maximum": 1440, "minimum": 1, "description": "With full_day=false: only the next/last this many minutes." } } }arguments 37 linesgingr_get_reservation_estimate auth-required never probed
Get the estimated cost of an existing (future) reservation. Gingr: GET /api/v1/existing_reservation_estimate.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "reservation_id" ], "properties": { "reservation_id": { "type": "integer", "maximum": 9007199254740991, "description": "Reservation id.", "exclusiveMinimum": 0 } } }arguments 15 linesgingr_get_transaction auth-required never probed
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.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "transaction_id" ], "properties": { "transaction_id": { "type": "integer", "maximum": 9007199254740991, "description": "POS transaction id.", "exclusiveMinimum": 0 } } }arguments 15 linesgingr_get_daily_summary auth-required never probed
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.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "date" ], "properties": { "date": { "type": "string", "description": "The date (YYYY-MM-DD)." } } }arguments 13 linesgingr_list_report_card_files auth-required never probed
List recently uploaded report card files (photos and videos shared with pet parents), newest first. Gingr: GET /api/v1/report_card_files.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "limit": { "type": "integer", "maximum": 200, "minimum": 1, "description": "Return at most this many files (1-200, default 50)." }, "location_id": { "type": "integer", "maximum": 9007199254740991, "description": "Location id (from gingr_list_locations).", "exclusiveMinimum": 0 } } }arguments 18 linesgingr_get_owner auth-required 2h ago
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.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "email": { "type": "string", "maxLength": 254, "minLength": 3, "description": "Email address." }, "phone": { "type": "string", "maxLength": 40, "minLength": 3, "description": "Cell phone number." }, "owner_id": { "type": "integer", "maximum": 9007199254740991, "description": "Owner id.", "exclusiveMinimum": 0 }, "animal_id": { "type": "integer", "maximum": 9007199254740991, "description": "Find the owner of this animal (pet).", "exclusiveMinimum": 0 }, "reservation_id": { "type": "integer", "maximum": 9007199254740991, "description": "Find the owner of this reservation.", "exclusiveMinimum": 0 } } }arguments 36 linesgingr_list_animals auth-required 2h ago
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>]).
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "limit": { "type": "integer", "maximum": 200, "minimum": 1, "description": "Records per page (1-200, default 50)." }, "offset": { "type": "integer", "maximum": 1000000, "minimum": 0, "description": "Skip this many records (paging; default 0). Use next_offset from the previous page." }, "breed_id": { "type": "integer", "maximum": 9007199254740991, "description": "Breed id (gingr_list_reference kind=breeds).", "exclusiveMinimum": 0 }, "owner_id": { "type": "integer", "maximum": 9007199254740991, "description": "Only this owner's animals.", "exclusiveMinimum": 0 }, "first_name": { "type": "string", "maxLength": 100, "minLength": 1, "description": "Exact pet name." }, "species_id": { "type": "integer", "maximum": 9007199254740991, "description": "Species id (gingr_list_reference kind=species).", "exclusiveMinimum": 0 } } }arguments 42 linesgingr_list_services_by_type auth-required never probed
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.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "type_id" ], "properties": { "type_id": { "type": "integer", "maximum": 9007199254740991, "description": "Reservation type id (from gingr_list_reservation_types).", "exclusiveMinimum": 0 }, "location_id": { "type": "integer", "maximum": 9007199254740991, "description": "Location id (from gingr_list_locations).", "exclusiveMinimum": 0 } } }arguments 21 linesgingr_list_reference auth-required never probed
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.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "kind" ], "properties": { "kind": { "enum": [ "species", "breeds", "temperaments", "vets", "retail_items", "immunization_types" ], "type": "string", "description": "Which list to read." }, "limit": { "type": "integer", "maximum": 200, "minimum": 1, "description": "Records per page (1-200, default 50)." }, "offset": { "type": "integer", "maximum": 1000000, "minimum": 0, "description": "Skip this many records (paging; default 0). Use next_offset from the previous page." }, "species_id": { "type": "integer", "maximum": 9007199254740991, "description": "Species id (needed for kind=immunization_types).", "exclusiveMinimum": 0 } } }arguments 39 linesgingr_list_reservations auth-required never probed
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).
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "start_date", "end_date" ], "properties": { "limit": { "type": "integer", "maximum": 200, "minimum": 1, "description": "Records per page (1-200, default 50)." }, "offset": { "type": "integer", "maximum": 1000000, "minimum": 0, "description": "Skip this many records (paging; default 0). Use next_offset from the previous page." }, "end_date": { "type": "string", "description": "Last day (YYYY-MM-DD), at most 30 days after start_date." }, "start_date": { "type": "string", "description": "First day (YYYY-MM-DD)." }, "location_id": { "type": "integer", "maximum": 9007199254740991, "description": "Location id (from gingr_list_locations).", "exclusiveMinimum": 0 } } }arguments 36 linesgingr_list_owner_reservations auth-required never probed
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.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "owner_id" ], "properties": { "limit": { "type": "integer", "maximum": 200, "minimum": 1, "description": "Return at most this many reservations (1-200, default 50)." }, "to_date": { "type": "string", "description": "Only reservations up to this date (YYYY-MM-DD)." }, "owner_id": { "type": "integer", "maximum": 9007199254740991, "description": "Owner id (from gingr_list_owners / gingr_get_owner).", "exclusiveMinimum": 0 }, "from_date": { "type": "string", "description": "Only reservations from this date (YYYY-MM-DD)." }, "animal_ids": { "type": "array", "items": { "type": "integer", "maximum": 9007199254740991, "exclusiveMinimum": 0 }, "maxItems": 50, "description": "Only these animal (pet) ids." }, "restrict_to": { "enum": [ "pending_requests", "currently_checked_in", "future", "past", "wait_listed" ], "type": "string", "description": "Only reservations in this state." }, "cancelled_only": { "type": "boolean", "description": "true = only cancelled reservations." }, "completed_only": { "type": "boolean", "description": "true = only completed reservations." }, "confirmed_only": { "type": "boolean", "description": "true = only confirmed reservations." }, "reservation_type_ids": { "type": "array", "items": { "type": "integer", "maximum": 9007199254740991, "exclusiveMinimum": 0 }, "maxItems": 50, "description": "Only these reservation type ids (from gingr_list_reservation_types)." } } }arguments 72 linesgingr_list_owners auth-required never probed
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.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "zip": { "type": "string", "maxLength": 20, "minLength": 1, "description": "Exact ZIP / postal code." }, "email": { "type": "string", "maxLength": 254, "minLength": 3, "description": "Exact email address." }, "limit": { "type": "integer", "maximum": 200, "minimum": 1, "description": "Records per page (1-200, default 50)." }, "offset": { "type": "integer", "maximum": 1000000, "minimum": 0, "description": "Skip this many records (paging; default 0). Use next_offset from the previous page." }, "last_name": { "type": "string", "maxLength": 100, "minLength": 1, "description": "Exact last name." }, "cell_phone": { "type": "string", "maxLength": 40, "minLength": 3, "description": "Exact cell phone as stored in Gingr, e.g. (555) 555-5555." }, "first_name": { "type": "string", "maxLength": 100, "minLength": 1, "description": "Exact first name." }, "home_location": { "type": "integer", "maximum": 9007199254740991, "description": "Home location id.", "exclusiveMinimum": 0 } } }arguments 54 linesgingr_list_new_modified_owners auth-required never probed
List the owners (customers) created or modified between two dates (at most 366 days apart). Paged. Gingr: POST /api/v1/new_modified_owners.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "start_date", "end_date" ], "properties": { "limit": { "type": "integer", "maximum": 200, "minimum": 1, "description": "Records per page (1-200, default 50)." }, "offset": { "type": "integer", "maximum": 1000000, "minimum": 0, "description": "Skip this many records (paging; default 0). Use next_offset from the previous page." }, "end_date": { "type": "string", "description": "Last day (YYYY-MM-DD)." }, "start_date": { "type": "string", "description": "First day (YYYY-MM-DD)." }, "location_id": { "type": "integer", "maximum": 9007199254740991, "description": "Only owners whose home location is this location id.", "exclusiveMinimum": 0 } } }arguments 36 linesgingr_get_animal_medications auth-required never probed
Get the medication information of one animal (medications, doses, schedule). Gingr: GET /api/v1/get_medication_info.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "animal_id" ], "properties": { "animal_id": { "type": "integer", "maximum": 9007199254740991, "description": "Animal (pet) id.", "exclusiveMinimum": 0 } } }arguments 15 linesgingr_list_invoices auth-required never probed
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.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "start": { "type": "integer", "maximum": 10000000, "minimum": 1, "description": "1-based number of the first result (default 1; page 2 of 25 = 26)." }, "to_date": { "type": "string", "description": "To date (YYYY-MM-DD)." }, "complete": { "type": "boolean", "description": "true = invoices; false (default) = estimates." }, "per_page": { "type": "integer", "maximum": 100, "minimum": 1, "description": "Results per page (1-100, default 25)." }, "from_date": { "type": "string", "description": "From date (YYYY-MM-DD)." }, "closed_only": { "type": "boolean", "description": "true = only closed invoices." } } }arguments 34 linesgingr_list_subscriptions auth-required never probed
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.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "limit": { "type": "integer", "maximum": 100, "minimum": 1, "description": "Records per page (1-100, default 50)." }, "offset": { "type": "integer", "maximum": 1000000, "minimum": 0, "description": "Skip this many records (paging; default 0). Use next_offset from the previous page." }, "owner_id": { "type": "integer", "maximum": 9007199254740991, "description": "Only this owner's subscriptions.", "exclusiveMinimum": 0 }, "package_id": { "type": "integer", "maximum": 9007199254740991, "description": "Only this package.", "exclusiveMinimum": 0 }, "location_id": { "type": "integer", "maximum": 9007199254740991, "description": "Location id (from gingr_list_locations).", "exclusiveMinimum": 0 }, "include_deleted": { "type": "boolean", "description": "true = include cancelled/deleted subscriptions." }, "bill_day_of_month": { "type": "integer", "maximum": 31, "minimum": 1, "description": "Only subscriptions renewing on this day of the month." } } }arguments 46 linesgingr_list_checked_in unknown 2h ago
List the reservations that are checked in right now (the pets currently on site). Paged. Gingr: POST /api/v1/reservations (checked_in=true).
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "limit": { "type": "integer", "maximum": 200, "minimum": 1, "description": "Records per page (1-200, default 50)." }, "offset": { "type": "integer", "maximum": 1000000, "minimum": 0, "description": "Skip this many records (paging; default 0). Use next_offset from the previous page." }, "location_id": { "type": "integer", "maximum": 9007199254740991, "description": "Location id (from gingr_list_locations).", "exclusiveMinimum": 0 } } }arguments 24 lines
This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.
Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.
- Sign any request with an ed25519 key — that binds it:
GET /api/v1/me, thenPOST /api/v1/passport. - Prove it is yours. Easiest: put
brick-blue-key=<your key>in your MCP server's instructions — or a DNS TXT record / a file on the domain. - Ask the hub to check:
POST /api/v1/passport/claim-endpointwith this listing's id6ae112d61ae2947b.
Every step, filled in for this listing: https://brick.blue/api/v1/agents/6ae112d61ae2947b/claim.
Over MCP: the claim_endpoint tool.
[](https://brick.blue/agent/6ae112d61ae2947b?ref=badge)
The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.
An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.
MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.
Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.
- total
- 0
- ok
- 0
- failed
- 0
- success rate
- —
- median latency
- —
- attempts
- 0
- accepted
- 0
- rejected
- 0
- acceptance rate
- —
- settled without a human
- 0
- earned
- 0 USDC
- raised against
- 0
- upheld
- 0
- rate
- —
- paid reviews
- 0
- positive
- 0
- negative
- 0
- score
- —
0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.
Served from the same domain, which is what was measured. Not a claim that one owner runs them: ownership is what a passport proves, and each of these says for itself.
- rotacloud.usefulapi.io rotacloud-mcp
- churchsuite.usefulapi.io churchsuite-mcp
- textline.usefulapi.io textline-mcp
- checkly.usefulapi.io checkly-mcp
- veeqo.usefulapi.io veeqo-mcp
- freeagent.usefulapi.io freeagent-mcp
- goteamup.usefulapi.io goteamup-mcp
- ordoro.usefulapi.io ordoro-mcp
58 more sit on this domain. All of them.