Skip to main content
Glama

Server Details

Shared baby tracker: log feeds, sleep, nappies and solids; check nap windows and nudges.

Ownership verified

The last two health checks of this connector failed. If this server requires authentication, missing or expired test credentials may be the cause. A test profile lets Glama authenticate for health checks and discover tools; it is separate from your personal connections.

If you are the author, claim ownership, then add or update a test profile under Admin → Test Profile.

Status
Unhealthy
Uptime
24.0% over 22 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A3.7/5.0

Scored across 23 tools

Disambiguation4/5

Most tools target a distinct resource+action (log_*, edit_event, delete_event, undo_last, get_week_review). The main overlap is the read surface: get_events (defaults to today), get_today, get_status and get_week_review all return logged data at different granularities, which could cause occasional misselection. Overall boundaries are workable because descriptions clarify scope.

Naming Consistency4/5

Nearly everything follows a clean verb_noun snake_case pattern (log_feed, edit_event, get_status, subscribe_nudges, unsubscribe_nudges). The lone outlier is 'remember', a bare verb that breaks the pattern, but it is a minor single deviation.

Tool Count3/5

23 tools sits in the heavy range for a single-domain server. The breadth (multiple log_* event types, several read/aggregation tools, nudges, inventory, AI, meal planning, caregiver invites) partly justifies it, but the read/aggregation cluster feels like it could be consolidated.

Completeness4/5

Coverage is strong: full logging across event types, editing/deletion, undo, read/aggregation views, inventory, forecasts, nudges with webhook lifecycle, AI Q&A and meal suggestions. The main gap is caregiver management—create_caregiver_invite exists but there is no revoke/remove for invites or family members.

Available Tools

23 tools
ask_lunaAsk LunaA
Read-only
Inspect

Answer a free-text question about the child's sleep, feeding or routines from this family's logged data, in Luna's non-clinical lane (it organises and summarises the log; it does not diagnose, assess symptoms or advise on medication). The question text is sent to Luna's AI provider and counts against the family's AI allowance; it does not change the log. Returns answer, plus guardrail when a safety or product-help response was used. Returns error with one of payment_required (the family's free answers are used up), usage_limit_reached, ai_consent_required, rate_limited or advisor_unavailable when no answer can be given.

NameRequiredDescriptionDefault
questionYes

TDQS

A4.6/5.0
Behavior5/5

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

Annotations cover the safety profile (readOnlyHint=true, destructiveHint=false, idempotentHint=false), and the description adds substantial context beyond them: the question is sent to an external AI provider, consumes the family's AI allowance, and does not mutate the log. It also enumerates the error outcomes, consistent with the non-idempotent hint.

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?

Front-loaded with the core action and lane, followed by side effects, return values and error codes. Dense but every sentence carries information; the error-code enumeration is long but useful for a tool with no output schema.

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

Completeness5/5

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

With no output schema, the description takes on the full burden of describing returns ('answer' plus 'guardrail') and failure modes (payment_required, usage_limit_reached, ai_consent_required, rate_limited, advisor_unavailable). An agent has everything needed to call and interpret this tool.

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

Parameters4/5

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

The single 'question' parameter has 0% schema description coverage, so the schema alone tells the agent nothing about expected content. The description compensates by defining the topic scope (sleep, feeding, routines, drawn from the family's logged data), which is enough to fill the gap.

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

Purpose5/5

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

States a specific verb (answer) and resource (free-text question about the child's sleep, feeding or routines from the family's logged data), and explicitly scopes the non-clinical lane. This clearly separates it from the log_* write tools and the read tools in the sibling list.

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

Usage Guidelines4/5

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

Gives a clear when-to-use (free-text questions answerable from logged data) and an explicit when-not ('it does not diagnose, assess symptoms or advise on medication'). It does not name a sibling alternative for clinical questions, but no sibling covers that case, so the guidance is strong though not fully routing.

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

create_caregiver_inviteCreate caregiver invite linkAInspect

Create a single-use invite link, valid for 48 hours, that lets a partner, grandparent or nanny join this family and log events with their own account. Whoever opens the link gains access to this family's log. Returns join_url.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior5/5

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

Goes well beyond the annotations by disclosing the link's single-use nature, its 48-hour expiry, and the security consequence that whoever opens it gains access to the family log. The annotations only say it is a non-read-only, non-idempotent write, so this added access-granting context is genuinely valuable.

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

Conciseness5/5

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

Two sentences, front-loaded with the action and lifetime, followed by the access consequence and the return value. Every clause earns its place; nothing is padded.

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

Completeness5/5

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

With no input parameters and no output schema, the description supplies everything needed: what is produced, how long it lasts, that it is single-use, what access it confers, and the name of the returned field (join_url). No gaps remain for an agent to fill.

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

Parameters4/5

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

The tool takes zero parameters, so there is nothing for the description to disambiguate; baseline for a no-parameter tool is 4. It sensibly uses the space for scope and behavior instead of inventing parameter detail.

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

Purpose5/5

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

States a specific verb (create) and resource (single-use caregiver invite link) plus the exact outcome (someone joins the family and logs events with their own account). No sibling tool does anything similar, so it is trivially distinguishable from the log_*/get_* siblings.

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

Usage Guidelines4/5

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

It clearly frames the scenario that calls for it (adding a partner, grandparent or nanny to the family log) and the mechanism (a link the other person opens). It does not name a when-not condition or an alternative invite/role-management tool, but none exists among the siblings, so the context is effectively complete.

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

delete_eventDelete a logged eventB
DestructiveIdempotent
Inspect

Remove a previously logged app-sourced event, by id, from the family's log.

NameRequiredDescriptionDefault
idYes

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, idempotentHint=true and readOnlyHint=false, so the safety profile is covered. The description adds useful narrowing context (app-sourced only, family-scoped log), but says nothing about reversibility, permissions, or what happens if the id is unknown. 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.

Conciseness4/5

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

A single compact sentence with the scope qualifier front-loaded and no filler. Appropriately sized for a one-parameter delete 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?

For a simple destructive delete with annotations covering the safety profile and no output schema, the description is adequate but thin: it omits the id's provenance and any note on failure behavior when the event does not exist.

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?

The single 'id' parameter has 0% schema description coverage, so the description carries the burden and only says 'by id'. It does not state what kind of id this is or where to obtain it (e.g., from get_events), leaving the one required input under-specified.

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?

States a specific verb (Remove) plus a tightly scoped resource: a previously logged app-sourced event, identified by id, in the family's log. An agent can distinguish it from edit_event (modify vs. remove) and from the log_* writers. It stops short of naming a sibling alternative explicitly, so it lands at 4 rather than 5.

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?

Usage is implied rather than stated: the qualifier 'previously logged app-sourced event' acts as a precondition, implying this is for removing existing app-created events. There is no explicit when-to-use/when-not-to-use and no mention of undo_last or edit_event as alternatives for reversing or amending an entry.

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

edit_eventEdit a logged eventA
DestructiveIdempotent
Inspect

Edit a previously logged event by its id (from get_events/get_today). changes may include ts, ml, foods, note, meal_type, kind, author, only these fields are editable. Overwrites the event's existing values for those fields.

NameRequiredDescriptionDefault
idYes
changesYes

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare non-readOnly, destructive and idempotent behavior, so the bar is lower; the description still adds the key trait that the call overwrites existing values for the supplied fields, and constrains the edit surface to a fixed field list. It does not cover permissions, error behavior on invalid ids, or whether omitted fields are preserved outside the 'only these fields' clause.

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?

Front-loaded with the action and lookup key in the first clause, then the field list. Two sentences, no filler; the backtick field enumeration is dense but each token earns its place by preventing invalid keys.

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

Completeness4/5

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

For a mutation tool with no output schema, the description covers what is mutated, which fields are legal, and that values are overwritten. Missing only edge details such as invalid-id handling and `changes` value formats, which are minor against annotations that already declare the destructive/idempotent profile.

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

Parameters4/5

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

Schema coverage is 0% and `changes` is a free-form object with additionalProperties=true, so the description carries the burden; it enumerates the seven whitelisted keys (ts, ml, foods, note, meal_type, kind, author) and states they are the only editable ones. It stops short of explaining value formats (timestamp encoding, ml units, foods structure), but the field whitelist is the critical semantic the schema lacks.

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

Purpose5/5

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

States a specific verb ('Edit') and resource ('a previously logged event'), pins the lookup key ('by its id'), and even names where to obtain that id (get_events/get_today). This distinguishes it cleanly from the log_* creation siblings and from delete_event.

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 description usefully routes the agent to get_events/get_today to obtain the id, which is real usage context. However, it offers no explicit when-to-use versus delete_event or undo_last, and no exclusion/precondition guidance, so usage remains implied rather than stated.

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

get_child_profileGet child profileA
Read-onlyIdempotent
Inspect

Get the child's name, date of birth, age, the family's region (uk/us) and units (metric/imperial), current milk type, and the first names of everyone who can log for this family.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=false, covering the safety profile. The description adds valuable context by listing the exact data returned (name, DOB, age, region, units, milk type, caregiver names), which is especially useful since there is no output schema. No auth or rate-limit details, but not critical for this read operation.

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

Conciseness5/5

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

A single, front-loaded sentence that uses its length to enumerate returned fields rather than meander. Every clause earns its place by telling the agent what data to expect.

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

Completeness5/5

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

For a simple read-only getter with rich annotations and no output schema, the description provides all the information an agent needs to know what it will receive. No essential details are missing; error cases or permission notes are unnecessary for a zero-parameter profile fetch.

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

Parameters4/5

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

The tool takes zero parameters, so parameter semantics are not applicable. The description correctly avoids discussing parameters. Baseline 4 for 0 params.

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

Purpose5/5

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

States a specific verb ('Get') and resource ('child profile'), then enumerates the exact fields returned, making it clearly distinguishable from other read tools like get_status or get_today. An agent can immediately tell what this tool does.

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?

Offers no explicit guidance on when to use this versus alternatives, nor any exclusions. However, the purpose is self-evident and the tool is the sole child-profile getter among siblings, so usage is implied rather than stated.

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

get_eventsGet events for a dayA
Read-onlyIdempotent
Inspect

Get the raw event log for one day (default: today), optionally filtered to a single event type (milk, sleep, wake, poop, nappy, solid, note, supplement, weight, length). date is YYYY-MM-DD. Returns the exact list of what was logged and when, not a summary.

NameRequiredDescriptionDefault
dateNo
typeNo

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, non-destructive, and closed-world behavior. The description adds useful context beyond that: default date is today, date format is YYYY-MM-DD, type filters to one of ten named event types, and the return is the exact log rather than a summary. It omits ordering, pagination, and timezone details, but adds meaningful behavioral value over annotations.

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

Conciseness5/5

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

Three compact sentences, front-loaded with the core action and default, followed by filter details and return semantics. Every clause adds needed information with no filler.

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

Completeness5/5

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

For a 2-parameter read-only tool with no output schema, the description covers the default date, date format, filter options, and return nature (raw list, not summary). An agent has enough to invoke correctly; missing ordering and pagination are minor for this simple read.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must fully compensate. It does: `date` is YYYY-MM-DD with default today; `type` is an optional single-event filter with an explicit list of valid values (milk, sleep, wake, poop, nappy, solid, note, supplement, weight, length). Both parameters are fully documented.

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

Purpose5/5

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

States a specific verb (Get) and resource (raw event log for one day), explicitly distinguishes from summary tools ('not a summary'), and enumerates the filterable event types. An agent can identify this as the raw daily log tool without checking siblings.

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

Usage Guidelines4/5

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

Clear context: use for raw event log by day, default today, optionally filtered to one type. The 'not a summary' clause implicitly routes against summary-oriented siblings like get_today or get_week_review, but no alternative is named explicitly, so no explicit when-not guidance.

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

get_nudgesGet pending nudgesA
Read-onlyIdempotent
Inspect

Get the family's currently pending proactive nudges: a nap window opening, a feed coming due, an allergen about to lapse, a restock running low, and similar. Each nudge includes a suggested action and, where relevant, the tool and arguments that would carry it out.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds real value beyond them by disclosing the shape of the payload — each nudge carries a suggested action and, where relevant, the tool and arguments to execute it — which is meaningful since no output schema exists.

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?

Two sentences, front-loaded with the core purpose and followed by concrete examples. The example list runs slightly long but each item clarifies the nudge domain rather than padding.

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

Completeness4/5

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

With no output schema, the description sensibly spends its budget describing what a returned nudge contains, including the embedded tool/arguments hint. It stops short of describing ordering, counts, or emptiness behavior, but is adequate for a zero-arg read tool.

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

Parameters4/5

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

Zero parameters, so there is nothing for the description to disambiguate; baseline for a no-param tool is 4. No misleading or missing parameter guidance.

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

Purpose5/5

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

States a specific verb and resource ('Get the family's currently pending proactive nudges') and scopes it to pending items. The examples (nap window, feed due, allergen lapse, restock low) make it immediately distinguishable from siblings like get_status or get_restock_forecast.

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?

Usage is implied rather than stated: an agent can infer this is the tool to check what proactive items need attention. However, it never positions itself against subscribe_nudges/unsubscribe_nudges or get_status, and gives no when-not-use guidance.

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

get_restock_forecastGet restock forecastA
Read-onlyIdempotent
Inspect

Get a days-remaining forecast for nappies, wipes, formula, vitamin D drops and milk, based on logged usage (or age-typical fallbacks) and whatever's currently recorded as on-hand via set_inventory.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, closed-world, so safety is covered. The description adds real behavioral value beyond that: the forecast derives from logged usage with age-typical fallbacks and reads on-hand state recorded via set_inventory, which tells the agent what data drives the result.

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?

One compact sentence with the forecast type front-loaded and the determinative inputs following. The item list is a touch long but each element is informative, and there is no filler.

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

Completeness4/5

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

No output schema exists, and the description does disclose the shape of the result (days-remaining per item) plus the fallback behavior when usage data is missing. For a zero-parameter read tool with full annotation coverage this is close to complete, though it could note what happens if nothing is logged at all.

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

Parameters4/5

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

The tool takes zero parameters, so the schema baseline is 4. The description correctly does not invent parameter semantics, and it clarifies the implicit data sources instead.

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

Purpose5/5

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

States a specific verb and resource ('days-remaining forecast') and enumerates exactly which categories it covers (nappies, wipes, formula, vitamin D drops, milk). This is clearly distinguishable from sibling tools like set_inventory (which records on-hand) and get_status.

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?

Usage is implied rather than stated: it conveys that this is a forecast request whose inputs come from logged usage and set_inventory, hinting at a prerequisite. But it never explicitly says when to call this vs alternatives like get_status or get_today, and gives no exclusions.

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

get_statusGet live statusA
Read-onlyIdempotent
Inspect

Get the child's live status right now: asleep or awake (and for how long), whether they're awake past their typical window, the next nap window, predicted bedtime and bath time, hunger state and next feed, last nappy, and today's milk/meal/nap totals with any active alerts. Returns a dict with live (the current-state block), plus child and as_of.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so safety is covered structurally. The description adds real beyond-schema context: it spells out the live state block contents and the top-level return keys ('live', plus 'child' and 'as_of') in the absence of an output schema.

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?

Front-loaded with the verb and scope, then a dense but purposeful field enumeration. The long inventory is justified because there is no output schema, though it reads as a single sprawling sentence rather than a structured list.

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

Completeness4/5

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

With no output schema and no parameters, the description carries the return-shape burden and does so by naming both the field set and the dict keys. It could briefly clarify what 'as_of' means (snapshot timestamp), but nothing essential is missing for correct invocation.

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

Parameters4/5

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

The tool takes zero parameters, so there is nothing for the description to disambiguate; baseline is 4. Not referencing parameters is correct here.

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 names a specific verb and resource ('Get the child's live status right now') and enumerates the exact data returned, so the agent knows precisely what this tool surfaces. It stops short of distinguishing itself from the closest sibling, get_today, leaving the agent to infer 'live/right now' versus a daily digest.

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 phrase 'right now' implies this is the current-state tool versus a historical/summary sibling like get_today or get_events, but no alternative is named and no when-not condition is given. Usage is inferable but not stated.

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

get_todayGet today's logA
Read-onlyIdempotent
Inspect

Get every event logged today (feeds, sleep, nappies, notes, measurements, supplements), enriched with nutrient tags on solid foods, today's total milk in ml, which allergens were given today, and today's supplement doses.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is covered. The description adds genuine behavioral value about the payload — nutrient enrichment on solid foods, aggregate milk total in ml, allergen list, and supplement doses — which goes beyond what the annotations state.

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 front-loaded sentence that leads with the core action and then enumerates contents. The parenthetical list is mildly dense but every item earns its place by telling the agent what data comes back.

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

Completeness4/5

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

With no output schema present, the description must carry the return-value burden, and it does so competently by enumerating event types, enrichments, and aggregates. It is a fully parameterless read tool, so little else is required for correct invocation.

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

Parameters4/5

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

The tool takes zero parameters, so there is nothing to disambiguate and the baseline of 4 applies. Schema description coverage is 100% and no parameter semantics are needed.

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 gives a specific verb ('Get') and resource ('every event logged today') and enumerates the event types covered (feeds, sleep, nappies, notes, measurements, supplements). The 'today' scoping naturally distinguishes it from the broader get_events sibling, though no sibling is named 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?

Usage is implied: an agent wanting a consolidated view of the current day's logging would pick this tool. There is no explicit when-to-use statement, no exclusion of when to prefer get_events or get_child_profile instead, and no prerequisites mentioned.

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

get_week_reviewGet weekly reviewA
Read-onlyIdempotent
Inspect

Get the weekly picture: 7-day nutrient totals against targets, the allergen exposure grid, sleep totals per day (days still in progress are marked partial), longitudinal alert flags (e.g. iron running low, an allergen lapsed, sleep debt), and the top 3 meal recommendations that close the current gaps.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds real behavioral context beyond that: days still in progress are marked partial, alert flags are longitudinal (e.g. iron running low, allergen lapsed, sleep debt), and recommendations are capped at the top 3. It does not mention caching or how 'the week' is bounded (calendar vs rolling), which is a minor gap.

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 dense sentence that front-loads the core purpose ('the weekly picture') and then enumerates return contents. Every clause carries information, though the parenthetical examples make it longer than strictly necessary.

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

Completeness4/5

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

With no output schema, the description carries the burden of describing the return value, and it does so thoroughly — coverage of all five output categories. It stops short of specifics an agent might want (period boundaries, units, or how alerts are ranked), so not quite a 5.

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

Parameters4/5

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

Zero parameters, so there is no parameter semantics to explain; baseline 4 applies. The description correctly describes a no-argument call.

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?

States a specific verb+resource ('get the weekly picture') and enumerates the concrete contents: 7-day nutrient totals vs targets, allergen exposure grid, per-day sleep totals, longitudinal alert flags, and top-3 meal recommendations. This clearly separates it from the single-day siblings (get_today, get_status), though it never names an alternative 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?

Usage is implied by the 7-day scope — an agent can infer 'use this for a weekly rollup, use get_today for a single day' — but the description never states when to choose this over get_today, get_status, or suggest_meal, and gives no prerequisites or exclusions.

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

log_feedLog a feedAInspect

Log a feed. kind is milk (bottle: give ml or oz), breast (a breastfeed; amount is not tracked), or solid (give foods, a list of what was eaten, and meal_type of meal or snack). at is an ISO timestamp, omitted for now. Flags in the response if this was logged during a time the child was recorded as asleep. The result includes a confirmation_summary sentence describing what was logged. Pass idempotency_key to make a retried call a no-op.

NameRequiredDescriptionDefault
atNo
mlNo
ozNo
kindYes
noteNo
foodsNo
meal_typeNomeal
idempotency_keyNo

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare this as a non-read-only, non-destructive, non-idempotent, closed-world write, so the safety baseline is covered. The description adds real behavioral value beyond that: it flags when a feed overlaps recorded sleep, states that the response carries a `confirmation_summary` sentence, and explains that passing `idempotency_key` turns a retry into a no-op — a useful nuance relative to idempotentHint=false.

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

Conciseness5/5

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

The mode breakdown is front-loaded in the first sentence, with response and idempotency behavior trailing in short clauses. Every sentence carries information an agent needs; there is no filler.

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

Completeness5/5

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

With no output schema, the description still tells the agent what comes back (a sleep-conflict flag and a `confirmation_summary`), and annotations cover the mutation/safety profile. Nothing material for correct invocation is missing, aside from the minor omission of `note`.

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

Parameters5/5

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

Schema description coverage is 0% and there are 8 parameters, so the description carries the full burden — and it does. It supplies the value set for `kind`, the mutually alternative `ml`/`oz` for milk, `foods` plus the `meal`/`snack` choice for `meal_type`, the ISO format for `at`, and the retry semantics of `idempotency_key`. Only `note` is left undocumented.

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

Purpose5/5

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

The description names a specific verb+resource ('Log a feed') and then decomposes it into its three distinct modes (milk, breast, solid) with the data each mode requires. This is enough for an agent to distinguish it from siblings like log_sleep, log_nappy, or log_measurement without opening any schema.

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 description gives clear conditional guidance for choosing the right `kind` and the fields that go with it (ml/oz for milk, foods + meal_type for solid), which is genuinely useful. However, it never states when to prefer this tool over a sibling or when not to call it, so usage is implied rather than explicit.

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

log_measurementLog a growth measurementCInspect

Log a growth measurement. kind is weight (unit kg or lb) or length (unit cm or in).

NameRequiredDescriptionDefault
atNo
kindYes
unitYes
valueYes
idempotency_keyNo

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare this is a non-destructive, non-idempotent write, so the safety profile is covered structurally. The description adds nothing behavioral - no note on what happens on duplicate submissions, a missing permission, or how the `idempotency_key` affects retry behavior, which is notable given idempotentHint=false.

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?

Two tight sentences with the primary action front-loaded and no filler. Efficient for the amount of information conveyed, though it could carry a bit more without becoming bloated.

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

Completeness2/5

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

For a 5-parameter mutation tool with no output schema and 0% schema coverage, the description leaves significant gaps: the semantics of `at` (timestamp?) and `idempotency_key` are never addressed, and no behavioral context accompanies the write.

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

Parameters3/5

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

Schema coverage is 0%, so the description must compensate, and it does explain the kind→unit constraint pairs (weight→kg/lb, length→cm/in), which is genuinely useful information absent from the schema. However `at` and `idempotency_key` are completely undocumented in both schema and description, leaving two parameters unexplained.

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?

Specific verb+resource ("Log a growth measurement") that clearly separates it from log_feed, log_nappy, log_sleep, and log_supplement. The clarification that `kind` is weight or length sharpens the scope, though it doesn't explicitly name a competing sibling.

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

Usage Guidelines2/5

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

No when-to-use or when-not-to-use guidance and no mention of alternatives such as undo_last for correcting an entry. The description only restates the operation, leaving context entirely to inference.

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

log_nappyLog a nappy changeAInspect

Log a nappy change. kind is wet, dirty or mixed. consistency (normal/loose/hard/blood/mucus) is optional and only meaningful for dirty/mixed; it is recorded in the event note. When consistency is blood or mucus the result includes a safety_note.

NameRequiredDescriptionDefault
atNo
kindYes
noteNo
consistencyNo
idempotency_keyNo

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already establish the safety profile (not read-only, not destructive, not idempotent), so the bar is lower. The description adds real behavior beyond that: the consistency value is silently recorded in the event note, and when it is `blood` or `mucus` the response includes a `safety_note` — genuinely useful non-obvious context.

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?

Three sentences, front-loaded with purpose then parameter semantics then a behavioral caveat. No filler; the enum listings are necessary because the schema omits them, though they make the description slightly dense.

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?

No output schema, so return values need not be explained, and the description helpfully flags the `safety_note` behavior. But for a 5-parameter mutation tool with 0% schema coverage, three parameters remain wholly unexplained, leaving the definition incomplete.

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

Parameters3/5

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

Schema coverage is 0% and the schema lacks even enum constraints, so the description carries the full burden. It supplies the valid values for `kind` and `consistency` plus a conditionality rule — real added meaning — but leaves `at`, `note`, and `idempotency_key` entirely undocumented anywhere.

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

Purpose5/5

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

States a specific verb (log) and resource (nappy change), cleanly distinguishing it from the sibling logging tools log_feed, log_sleep, log_measurement, log_supplement, and log_note. An agent can route to it without opening any schema.

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 description implies usage by stating that `consistency` is only meaningful for `dirty`/`mixed`, which is a genuine conditional. However, it gives no explicit when-to-use guidance, no prerequisites, and no comparison to alternatives such as log_note for recording observations.

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

log_noteLog a noteBInspect

Log a free-text note against the timeline (an observation, a behaviour, a symptom) at a given time (ISO, omitted for now).

NameRequiredDescriptionDefault
atNo
textYes
idempotency_keyNo

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare that this is a non-read-only, non-destructive, non-idempotent write with no open-world access, so the safety profile is covered. The description adds the free-text nature and the timestamp fallback ('omitted for now'), but says nothing about the third parameter, storage side effects, or how to avoid duplicates.

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 compact sentence with the content-type qualifiers and the timestamp rule tucked into one parenthetical. The phrase 'omitted for now' is terse to the point of ambiguity, but nothing is wasted.

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?

For a write tool with no output schema, the description conveys the core contract and the annotations cover mutation safety. It omits any explanation of idempotency_key, return shape, or what the note attaches to beyond the vague 'timeline'.

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

Parameters3/5

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

Schema coverage is 0%, so the description carries the full burden. It gives meaning to 'text' (free-text note) and 'at' (ISO timestamp, with omission apparently meaning 'now'), but leaves 'idempotency_key' entirely undocumented in both schema and description. Partial compensation for a genuine coverage gap.

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?

States a specific verb+resource ('Log a free-text note') and scopes the content with concrete examples (observation, behaviour, symptom), which separates it from the structured siblings log_feed, log_sleep, log_nappy and log_measurement. It stops short of naming any sibling explicitly, so an agent must infer the boundary itself.

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 parenthetical content examples ('an observation, a behaviour, a symptom') imply when this tool applies, but there is no explicit when/when-not and no mention of alternatives such as 'remember' or 'log_measurement' for numeric data. Usage 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.

log_sleepLog sleep or wakingBInspect

Log the child falling asleep (state="asleep") or waking up (state="awake") at a given time (ISO, omitted for now).

NameRequiredDescriptionDefault
atNo
stateYes
idempotency_keyNo

TDQS

B3.3/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false and idempotentHint=false, so the safety profile is partly covered. However, the description says nothing about what record is created or modified, and it is silent on the idempotency_key parameter despite a non-idempotent hint — a notable behavioral gap for a write tool.

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

Conciseness5/5

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

A single front-loaded sentence with the action first and the state values inline; no filler or repetition of the title.

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?

For a small 3-parameter mutation tool with no output schema, the description covers the core action and two of three parameters, but the unexplained idempotency_key leaves a real gap an agent would have to guess about.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must carry the load. It usefully defines state="asleep"/"awake" (absent from the schema) and clarifies that "at" is ISO and can be omitted for 'now', but idempotency_key is left entirely unexplained.

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

Purpose5/5

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

States a specific verb (Log) plus the resource (child sleep/waking) and enumerates the two state values, which the schema itself does not. It is clearly distinguishable from siblings like log_feed and log_nappy without inspecting any schema.

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

Usage Guidelines2/5

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

There is no when-to-use / when-not-to-use guidance and no mention of alternatives or prerequisites (e.g. needing an existing child profile). The only implicit guidance comes from the state values themselves, which is not the same as routing advice.

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

log_supplementLog a supplement doseBInspect

Log a supplement dose. kind is vitd, iron or multivitamin. Give the amount as ug (micrograms) or iu (international units, vit D only, converted to µg, 40 IU = 1 µg).

NameRequiredDescriptionDefault
atNo
iuNo
ugNo
kindNovitd
idempotency_keyNo

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=false, so the write/safety profile is covered. The description usefully adds a behavioral rule beyond the annotations: IU is vit-D-only and is converted to µg at 40 IU = 1 µg. It says nothing about idempotency_key or how 'at' defaults, so it stops short of rich disclosure.

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

Conciseness5/5

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

Three short sentences, front-loaded with the action and then the two things an agent cannot guess (kind values, unit handling). Every clause earns its place and nothing is padded.

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?

For a write tool with zero required parameters and no output schema, the description covers the dose-entry essentials but omits the timestamp parameter's format/default and the deduplication role of idempotency_key. An agent could call it correctly for the common case but would be guessing on retry-safety and timing.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must carry the burden, and it does explain two of five parameters well: kind's allowed values and the ug/iu units with conversion. However, 'at' and 'idempotency_key' receive no explanation anywhere, leaving the two most non-obvious parameters undocumented.

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?

States a specific verb and resource ('Log a supplement dose') that clearly separates it from the sibling log_feed, log_sleep, log_nappy and log_note tools. It does not explicitly name an alternative, but the resource noun alone makes the scope unambiguous.

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

Usage Guidelines2/5

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

The description never says when to reach for this tool versus the other log_* siblings, nor does it state prerequisites such as needing an existing child profile. The kind enumeration is parameter detail, not usage guidance, so the agent is left to infer context.

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

rememberSave a standing noteAInspect

Save a durable note for Luna to recall in every future conversation with this family: a standing preference, an ongoing illness, upcoming travel, a milestone. Different from log_note: this isn't a timeline event, it's context injected into future answers.

NameRequiredDescriptionDefault
tagsNo
textYes

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare this is a non-destructive write (readOnlyHint=false, destructiveHint=false, idempotentHint=false). The description adds genuine behavioral context beyond that: the note is durable and injected into every future conversation, which tells the agent the effect persists globally rather than being scoped to a timeline. It does not mention permissions, rate limits, or how to remove a standing note, so not a 5.

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

Conciseness5/5

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

Two tight sentences with zero filler. The core purpose and the sibling distinction are both front-loaded, and every clause carries information the agent needs.

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

Completeness4/5

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

For a simple two-parameter write tool with no output schema and annotations covering the safety profile, the description is nearly sufficient: purpose, persistence behavior, and sibling distinction are all clear. The only gap is the unexplained 'tags' parameter, which leaves an agent guessing about categorization.

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

Parameters3/5

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

Schema coverage is 0% for both parameters. The description conveys what 'text' should contain through examples (a standing preference, ongoing illness, travel, milestone), partially compensating. However, the optional 'tags' parameter is never mentioned in the description, so half the schema remains undocumented.

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

Purpose5/5

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

States a specific verb (Save) and resource (durable note) with an explicit scope: 'for Luna to recall in every future conversation with this family.' It also names the sibling log_note and states what this tool is not, so an agent can distinguish it without opening either schema.

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

Usage Guidelines5/5

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

Explicitly contrasts with log_note: 'this isn't a timeline event, it's context injected into future answers.' It also enumerates the kinds of content that belong here (standing preference, ongoing illness, upcoming travel, milestone), giving the agent a clear condition for selecting this tool over its closest alternative.

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

set_inventorySet stock on handA
DestructiveIdempotent
Inspect

Record how much of a consumable is currently on hand, to drive get_restock_forecast. item is one of nappies, wipes, formula, vitamin_d, milk. Units: nappies/wipes are counts, formula is g or kg, vitamin_d is doses, milk is litres/ml/gallons/fl_oz. Replaces any quantity previously recorded for that item.

NameRequiredDescriptionDefault
itemYes
unitYes
quantityYes

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already flag destructiveHint=true and idempotentHint=true, but the description adds the concrete consequences: it 'Replaces any quantity previously recorded for that item', i.e. what gets overwritten and for which scope. It does not state permission/auth requirements or failure behavior, so it extends rather than fully carries the burden.

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

Conciseness5/5

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

Three sentences, front-loaded with the purpose and the driving sibling, then the item domain, then units and overwrite semantics. No filler; every clause carries information an agent needs.

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

Completeness4/5

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

For a 3-required-param mutation with no output schema, the definition covers domain values, units, and replace semantics, and annotations cover safety. Only minor gaps remain (accepted unit string formats, whether an item can be cleared, auth expectations).

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate, and it does: it enumerates legal `item` values (nappies, wipes, formula, vitamin_d, milk) and per-item unit conventions (counts, g/kg, doses, litres/ml/gallons/fl_oz). It is not exhaustive on accepted unit spellings or whether quantity must be non-negative, leaving some ambiguity.

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

Purpose5/5

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

States a specific verb and resource ('Record how much of a consumable is currently on hand') plus the downstream consumer (get_restock_forecast), which distinguishes it from the log_* event siblings and get_restock_forecast itself. An agent can pick it without opening the schema.

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

Usage Guidelines4/5

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

It frames the purpose in terms of the sibling it feeds (get_restock_forecast), giving clear usage context for a stock-level snapshot vs. logging individual events. It stops short of an explicit when-not or a named alternative (e.g. 'do not use this to log a single nappy change; use log_nappy').

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

subscribe_nudgesSubscribe a nudge webhookA
Idempotent
Inspect

Register a webhook URL (and optional shared secret for HMAC signature verification) to receive this family's proactive nudges as they become due: nap windows, feeds due, allergen lapses, low stock, and similar. The nudge content, which includes details about the child's routine, is sent to that external URL. The URL must be a public http(s) endpoint (not localhost/private-network). Registering the same URL again refreshes the existing webhook.

NameRequiredDescriptionDefault
urlYes
secretNo

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already establish openWorldHint, idempotentHint, and non-destructive. The description adds real behavioral context the annotations don't: nudge content (including child routine details) is transmitted to an external endpoint, and the URL must be a public http(s) endpoint rather than localhost/private network. It could go further on auth/permission requirements.

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?

Front-loads the core action and keeps the mechanism, constraints, and idempotency note compact across four sentences. Slightly dense but every clause adds information an agent needs.

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

Completeness4/5

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

For a two-parameter, no-output-schema registration tool, the description covers purpose, payload exposure, URL constraints, and idempotent re-registration. Only permission/prerequisite information is absent.

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

Parameters4/5

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

Schema description coverage is 0%, so the description carries the burden and largely meets it: it explains that url must be a public http(s) endpoint and that secret is an optional shared secret for HMAC signature verification. Both parameters gain meaning beyond their bare names, though formats (e.g. minimum secret length) are unstated.

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

Purpose5/5

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

States a specific verb (Register) and resource (webhook URL to receive nudges) with the exact event set it delivers (nap windows, feeds due, allergen lapses, low stock). It is clearly distinguishable from siblings like get_nudges (pull) and unsubscribe_nudges (teardown).

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 description explains what registering accomplishes and that re-registering the same URL refreshes rather than duplicates, which implies the use case. However, it never states when to prefer this over get_nudges polling or how it relates to unsubscribe_nudges, leaving the routing to inference.

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

suggest_mealSuggest mealsA
Read-onlyIdempotent
Inspect

Get up to 3 meal suggestions that close the family's current nutrient or allergen gaps (e.g. an iron-rich meal when iron has been low, or a meal reintroducing a lapsed allergen), each with which gap it addresses. Empty list means nothing is currently flagged. meal_type is currently informational only (not yet filtered).

NameRequiredDescriptionDefault
meal_typeNo

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive/non-open-world, so the safety profile is covered. The description adds real behavioral context beyond that: a hard cap of 3 results, per-item gap annotation, empty-list semantics, and the fact that meal_type is currently a no-op. Auth, rate limits, and ordering are not addressed.

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

Conciseness5/5

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

Front-loads the core capability, then adds the result cap, the empty-state meaning, and the parameter caveat in compact clauses. No filler, no restatement of the tool name.

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

Completeness5/5

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

There is no output schema, so the description must describe returns, and it does: up to 3 items, each labeled with the gap it addresses, plus empty-list meaning. Combined with the note that meal_type currently filters nothing, an agent has everything needed to call and interpret this read-only tool.

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

Parameters3/5

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

Schema description coverage is 0% and there is no enum, so the description must carry the parameter burden. It does the most important thing by declaring `meal_type` informational only and not yet filtered, but it never enumerates acceptable values (e.g. breakfast/lunch/dinner), leaving the agent guessing what string to pass.

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

Purpose5/5

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

States a specific verb and resource ('Get up to 3 meal suggestions') with an explicit scope: closing the family's nutrient or allergen gaps. The domain-specific framing (iron-rich meal, reintroducing a lapsed allergen) clearly distinguishes it from siblings like log_feed, get_restock_forecast, or get_nudges without needing the schema.

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

Usage Guidelines4/5

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

Explains the triggering condition ('when iron has been low', 'a lapsed allergen') and the empty-result case ('Empty list means nothing is currently flagged'), which tells the agent when the tool is meaningful. It does not name alternative tools or state when not to call it, so it stops short of explicit routing.

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

undo_lastUndo the last logged eventA
Destructive
Inspect

Remove the most recently logged app-sourced event from the family's log. Each call removes one more event.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and idempotentHint=false, so the safety profile is known. The description adds real value beyond that by explaining the cumulative behavior ('Each call removes one more event'), which tells the agent repeated invocations walk backward through the log rather than being a no-op.

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

Conciseness5/5

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

Two short sentences, zero filler. The scope of removal is front-loaded and the cumulative-call behavior is stated immediately after.

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

Completeness4/5

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

For a parameterless destructive tool with no output schema, the description covers what is removed and how repeated calls behave. It omits edge-case behavior such as what happens when the log is empty or whether the removal can itself be undone, but nothing critical to invoking it is missing.

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

Parameters4/5

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

Zero parameters, so there is nothing for the schema to describe and the baseline is 4. The description correctly stays silent on inputs rather than inventing any.

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?

States a specific verb ('Remove') and a precisely scoped resource ('the most recently logged app-sourced event from the family's log'). The 'app-sourced' and 'most recent' qualifiers implicitly distinguish it from delete_event, which would target a specific event, though no sibling is named 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?

Usage is only implied: the tool is clearly for undoing the latest action, and the 'app-sourced' restriction hints that manually-entered or externally-synced entries are out of scope. It never states when to prefer this over delete_event or what prerequisites apply.

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

unsubscribe_nudgesRemove nudge webhook(s)A
DestructiveIdempotent
Inspect

Remove a previously registered nudge webhook by its id, or every webhook for this family if hook_id is omitted. Nudges stop being sent to the removed URL(s).

NameRequiredDescriptionDefault
hook_idNo

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and idempotentHint=true, but the description adds the critical operational fact that omitting hook_id triggers a bulk removal of every webhook for the family, plus the downstream effect that nudges stop being delivered. This scope-of-destruction detail is genuinely beyond what the annotations convey.

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

Conciseness5/5

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

Two sentences with zero padding. The core action is front-loaded, and the second sentence adds only the consequence of removal.

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

Completeness4/5

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

For a destructive mutation with no output schema, the description covers what is removed and the blast radius of the omitted-parameter case. It omits permission/auth requirements and whether the removal is reversible or returns a confirmation, which would round it out further.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must carry the meaning of hook_id, and it does: it explains that the parameter is an id and that its omission (default null) means remove-all. The dual-mode semantics are clear, though no format or example of a valid id is given.

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

Purpose5/5

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

States a specific verb ('Remove') and resource ('nudge webhook'), and goes further by spelling out the two operating modes: by id, or every webhook for the family if hook_id is omitted. An agent can distinguish this from subscribe_nudges and get_nudges without opening any schema.

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

Usage Guidelines4/5

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

The description gives clear context for use (removing a previously registered webhook) and the condition that selects each behavior (omit hook_id to remove all). It does not, however, explicitly name an alternative tool or state when-not-to-use, so it stops short of full routing guidance.

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.

  1. 23 tool updates
    • First observedask_luna
    • First observedcreate_caregiver_invite
    • First observeddelete_event
    • First observededit_event
    • First observedget_child_profile
    • First observedget_events
    • First observedget_nudges
    • First observedget_restock_forecast
    • First observedget_status
    • First observedget_today
    • First observedget_week_review
    • First observedlog_feed
    • First observedlog_measurement
    • First observedlog_nappy
    • First observedlog_note
    • First observedlog_sleep
    • First observedlog_supplement
    • First observedremember
    • First observedset_inventory
    • First observedsubscribe_nudges
    • First observedsuggest_meal
    • First observedundo_last
    • First observedunsubscribe_nudges

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Integrates with self-hosted BabyBuddy to log and retrieve baby care data such as feedings, sleep, diaper changes, and measurements via natural language.
    4
    Apache 2.0
  • A
    license
    C
    quality
    A
    maintenance
    Huckleberry MCP server for Claude, Cursor, and other AI assistants. Query and log baby sleep, feeds, diapers, growth, pumping, and solids.
    29
    7 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables read-only analysis of piyolog (baby care) data feed records, including feeding, sleep, and diaper logs. Allows integration with Claude Desktop and ChatGPT for querying and analyzing baby care data.
    MIT
  • A
    license
    B
    quality
    A
    maintenance
    Connect AI assistants to your Baby Buddy instance to log and query feedings, sleep, diaper changes, and more.
    63
    4
    BSD 2-Clause "Simplified"
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources