Skip to main content
Glama

Upsert one Pool Founder customer contact

upsert_customer_contact

Create or update one private Pool Pro Florida CardDAV contact from Pool Founder. Owner-only and non-destructive: this tool never removes any other contacts.

Input Schema

NameRequiredDescriptionDefault
customerYes
generatedAtYesISO 8601 generation time.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

B3.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false and destructiveHint=false; the description goes further by stating the owner-only authorization requirement and guaranteeing that no other contacts are removed. What it omits is merge semantics on update (partial vs full replacement, and the matching key), which matters for an upsert.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single tight sentence that front-loads the operation and resource before the safety qualifier. No padding, though it is arguably too terse for a nested-payload tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Safety, authorization, and scope are covered, but for a tool with no output schema and a complex nested input the description never explains what an upsert does on conflict or what is returned. Adequate but with a real gap for the calling agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 50% and the payload is deeply nested (customer, phones, emails, locations). The description adds nothing about the customer object or which field drives the upsert match, so it fails to compensate for the undocumented half of the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb pair (create or update, i.e. upsert) against a concrete resource (private Pool Pro Florida CardDAV contact) and scopes it to one record. That singles it out from the bulk sibling sync_customer_contacts without naming it explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'one ... contact' phrasing implies single-record use versus the bulk sync_customer_contacts, and 'Owner-only' establishes a prerequisite. But there is no explicit when-to-use/when-not statement or named alternative, so routing is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources