gingr-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@gingr-mcplist all reservations for the next 7 days"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
gingr-mcp
A Model Context Protocol (MCP) server that gives Claude read-only access to your Gingr pet-care facility data — owners, animals, reservations, appointments, services, and staff. Ask Claude things like "What was our daycare occupancy last week?" or "Which customers board most often?" and it can pull the answer straight from your Gingr account.
Read-only by design. This server never creates, edits, or deletes anything in Gingr.
Tools
Tool | What it does |
| List pet owners (customers) — names, contact, signup dates |
| List animals — species, breed, age, owner |
| Boarding/daycare reservations by date range |
| All reservations for one owner (history / LTV) |
| Grooming / training / spa / bath appointments |
| Services offered, with prices |
| Staff / employees |
Related MCP server: MSSQL-MCP
Prerequisites
Node.js 18+
Your Gingr subdomain (the
mybizinhttps://mybiz.gingrapp.com)A Gingr API key — in Gingr go to Reports & More → Users → Edit User → API Keys and create one.
Install
Pick whichever is more convenient:
Option A — One-click (Claude Desktop): download the
.mcpbextension, double-click, fill in the form. No terminal, no config files. Best if you're not technical.Option B — npm (any MCP host): add a few lines to your client's config. Works with Claude Desktop, Claude Code, Cursor, and other MCP clients.
Either way you'll need your Gingr subdomain and API key (see Prerequisites).
Option A — One-click Desktop Extension (Claude Desktop)
Download
gingr-mcp.mcpbfrom the latest release.Double-click it (or in Claude Desktop: Settings → Extensions → Install Extension…).
When prompted, enter your Gingr Subdomain and API Key, then click Install.
The API key is stored securely in your OS keychain and never leaves your machine.
Option B — npm
Claude Desktop
Add this to your claude_desktop_config.json
(macOS: ~/Library/Application Support/Claude/claude_desktop_config.json,
Windows: %APPDATA%\Claude\claude_desktop_config.json), then restart Claude Desktop:
{
"mcpServers": {
"gingr": {
"command": "npx",
"args": ["-y", "gingr-mcp"],
"env": {
"GINGR_SUBDOMAIN": "yourbiz",
"GINGR_API_KEY": "your-api-key"
}
}
}
}Claude Code
claude mcp add gingr \
--env GINGR_SUBDOMAIN=yourbiz \
--env GINGR_API_KEY=your-api-key \
-- npx -y gingr-mcpnpx -y gingr-mcp downloads and runs the latest version on demand — no global install needed.
Configuration
Variable | Required | Description |
| yes |
|
| yes | A Gingr API key with read access |
Tips
Keep reservation/appointment date ranges to ≤ 30 days — very wide ranges can time out on Gingr's side.
Dates are
YYYY-MM-DD.
Local development
cd gingr-mcp
npm install
npm run build
npm test
# Inspect/run with the MCP Inspector
GINGR_SUBDOMAIN=yourbiz GINGR_API_KEY=your-api-key npm run inspectorReleasing
Maintainer? See RELEASING.md for how to publish the npm package and build the .mcpb bundle.
License
MIT © Canisys
Available Tools
7 toolsgingr_get_owner_reservationsGet an owner's reservationsARead-only
Get all reservations for a specific owner (customer). Use to analyze a customer's history, frequency, and lifetime value. Get owner_id from gingr_list_owners first.
| Name | Required | Description | Default |
|---|---|---|---|
| owner_id | Yes | Gingr owner/customer ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true; the description adds that it returns all reservations for an owner, which is sufficient behavioral context for a simple read tool. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first states purpose and use case, second provides prerequisite. No filler words, front-loaded with key info.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given simple tool with one parameter and no output schema, the description adequately explains the return value (reservations) and use case, sufficient for complex evaluation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters with description of owner_id. The description adds no further param details beyond usage hint, meeting baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get all reservations' and the resource 'for a specific owner', and it distinguishes from siblings like gingr_list_reservations by specifying owner filter.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description advises using the tool to analyze customer history and explicitly tells to get owner_id from gingr_list_owners first, providing clear prerequisite guidance. No explicit when-not-to-use, but context is adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gingr_list_animalsList animalsARead-only
List animals (pets) registered at the Gingr facility — species, breed, age, owner, and notes. Use to analyze the pet population (breed mix, size distribution, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max records to return (1–200, default 50) | |
| owner_id | No | Filter to animals belonging to a specific owner |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the read-only nature is covered. The description adds context about the data fields (species, breed, etc.) but lacks details on pagination, rate limits, or response behavior. Safe but minimal added value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose. Every word adds value with no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with no output schema, the description covers purpose, typical fields, and usage intent. Missing details on ordering or empty results, but adequate for an agent familiar with list endpoints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (both limit and owner_id documented). The description does not add new meaning to parameters; it mentions output fields instead. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the verb 'list' and resource 'animals (pets)' with specific attributes (species, breed, age, owner, notes). The usage hint differentiates from siblings like gingr_list_appointments by focusing on pet population analysis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit context for use ('analyze the pet population'), but does not mention when not to use it or alternatives among siblings. Still, the guidance is clear and relevant.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gingr_list_appointmentsList appointments (grooming/training/spa/bath)ARead-only
List grooming, spa, bathing, or training appointments. Returns dates, services, animals, and statuses. Note: Gingr has no separate appointments endpoint — these are reservations whose category (Training, Grooming, SPA, Bathing) this tool filters for.
| Name | Required | Description | Default |
|---|---|---|---|
| start_date | No | On/after this date (YYYY-MM-DD) | |
| end_date | No | On/before this date (YYYY-MM-DD) | |
| limit | No | Max records to return (1–200, default 50) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description adds value by revealing the underlying data model (no separate endpoint, filtering by category). This provides behavioral context beyond the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficient: two brief sentences and a note. It front-loads the core purpose and return values, then adds critical context without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only tool with optional parameters and no output schema, the description adequately explains return fields and the filtering logic. The note provides important context about the Gingr API structure, making it complete enough for agent usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already fully documents the three parameters. The description adds no additional semantic detail beyond what is in the schema, meeting the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List' and the resource 'appointments' with specific subtypes (grooming, training, spa, bathing). It also distinguishes from sibling tool gingr_list_reservations by noting that appointments are a filtered subset of reservations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides implicit guidance by explaining that appointments are reservations filtered by category, suggesting use when appointment-specific data is needed. However, it lacks explicit when-not-to-use instructions or direct reference to sibling tools like gingr_get_owner_reservations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gingr_list_employeesList employeesARead-only
List staff/employees at the facility. Use to analyze staffing, roles, and capacity. Read-only — no personal data is modified.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true. Description adds 'Read-only — no personal data is modified,' which is consistent but does not disclose additional behavioral traits beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences front-load the main action and include both purpose and behavior. Every sentence adds value with no redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool is simple with no parameters, but no output schema exists and description does not mention return values (e.g., what employee fields are listed). For a straightforward list tool, this is acceptable but could be more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so baseline is 4 per guidelines. Description does not need to add parameter meaning as the input schema is empty and fully covered.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the verb 'List' and resource 'staff/employees at the facility', distinguishing it from sibling tools that list other entities (animals, owners, etc.). The additional context 'analyze staffing, roles, and capacity' further clarifies purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description gives a use case ('analyze staffing, roles, and capacity') but does not explicitly state when not to use or mention alternatives. The sibling differentiation is implicit through the resource name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gingr_list_ownersList pet ownersARead-only
List pet owners (customers) from the connected Gingr facility — IDs, names, contact details, and signup dates. Use to analyze customer base size, growth, and retention.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max records to return (1–200, default 50) | |
| search | No | Optional name or email substring to filter by |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the description's addition of return fields and purpose is helpful but not extensive. It does not disclose pagination behavior (though limit implies it), sorting, or other behavioral traits beyond what the annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core action, and contains no fluff or redundant information. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (2 optional parameters, no output schema, read-only), the description covers the essential information: what is returned and why to use it. Minor gaps like ordering and timezone handling could be noted but are not critical for basic use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and each parameter (limit, search) has a description. The tool description does not add further meaning to the parameters beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists pet owners (customers) and specifies the returned fields (IDs, names, contact details, signup dates). It also explains the analytical use case. The sibling tools list different entities, so this tool is well-distinguished.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear context for when to use this tool ('analyze customer base size, growth, and retention'). However, it does not explicitly mention when not to use it or suggest alternatives, which would be helpful for an AI agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gingr_list_reservationsList reservationsARead-only
List boarding/daycare reservations — dates, services, animals, statuses, and revenue. Use to analyze occupancy, demand patterns, peak/off-peak periods, and revenue trends. Tip: keep the date range to ≤30 days; very wide ranges can time out.
| Name | Required | Description | Default |
|---|---|---|---|
| start_date | No | Reservations on/after this date (YYYY-MM-DD) | |
| end_date | No | Reservations on/before this date (YYYY-MM-DD) | |
| limit | No | Max records to return (1–200, default 50) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds value beyond readOnlyHint annotation by warning about timeouts for wide date ranges, implying performance behavior. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences plus a tip. No fluff. Front-loaded with purpose and fields. Efficient structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Even without output schema, description lists returned fields (dates, services, animals, statuses, revenue) and covers performance limitation. Adequate for a list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters with descriptions. Description reinforces date range constraint (≤30 days) but does not add new parameter details beyond schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists boarding/daycare reservations with specific fields (dates, services, animals, statuses, revenue). It distinguishes from sibling 'gingr_get_owner_reservations' which is owner-specific, and other list tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit usage: analyze occupancy, demand patterns, peak/off-peak periods, and revenue trends. Includes tip to limit date range to ≤30 days to avoid timeouts. Does not mention alternatives explicitly but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gingr_list_servicesList servicesARead-only
List the services offered at the facility (boarding tiers, grooming packages, daycare options, etc.) with IDs, names, descriptions, and prices. Use to understand the offering before recommending pricing or marketing.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so no behavioral contradiction. The description adds that it returns IDs, names, descriptions, and prices, but does not elaborate on other traits like potential rate limits or response format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first lists returned fields, second gives usage guidance. No wasted words, front-loaded information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters or output schema, the description completely specifies what the tool does and when to use it. No gaps for a simple list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so schema description coverage is 100%. Baseline for 0 params is 4, but per rubric with high coverage baseline is 3. Description adds no parameter info since none are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists services with IDs, names, descriptions, and prices, and gives examples (boarding tiers, grooming packages, daycare options). It distinguishes from sibling list tools by specifying the domain.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use to understand the offering before recommending pricing or marketing,' providing clear usage context. It does not explicitly exclude alternatives but is specific enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
7 tool updates
v0.1.0- First observed
gingr_get_owner_reservations - First observed
gingr_list_animals - First observed
gingr_list_appointments - First observed
gingr_list_employees - First observed
gingr_list_owners - First observed
gingr_list_reservations - First observed
gingr_list_services
TDQS
Scored across 7 tools
All seven tools have clearly distinct purposes: owners, animals, appointments (filtered by category), employees, owners, reservations (boarding/daycare), and services. No overlap or ambiguity.
All tools follow the consistent 'gingr_verb_noun' pattern (e.g., list_animals, get_owner_reservations). No mixing of conventions.
Seven tools is well-scoped for a pet facility management server. Each tool covers a core entity (owners, animals, employees, services, reservations in two flavors) without being excessive or minimal.
The server is read-only but covers the main entities needed for analysis. Minor gaps exist (e.g., no get_animal_by_id, no filtering by date for appointments), but overall it provides a solid analytical surface.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Read-only MCP server for ClassQuill, a tutoring-business-management platform.
Query your org's data in natural language — read-only MCP access to SQL, NoSQL, files & warehouses.
- mcpOAuthcom.gibsonai
GibsonAI MCP server: manage your databases with natural language
Read-only MCP server for Sandwich aging-parent care resources and cost data.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA read-only MCP server for PostgreSQL that enables safe database introspection and querying via natural language.607MIT
- AlicenseNot gradedqualityAmaintenanceSecurity-first, read-only MCP server for Microsoft SQL Server, enabling safe natural-language querying of databases.15MIT
- AlicenseNot gradedqualityAmaintenanceRead-only Text-to-SQL MCP server for PostgreSQL and MySQL that lets users query databases using natural language, with robust multi-layer safety guarantees against writes.6MIT
- AlicenseNot gradedqualityBmaintenanceA read-only MCP server that connects to a pet-grooming database, exposing secure analytics tools for customers, pets, appointments, services, and payments.MIT