One web page where several independent care organisations answer a person's agent at the same time and compose one plan between them, over WebMCP.
Threshold defines 8 tools with explicit schemas and descriptions. Naming follows verb_noun patterns (query_availability, place_hold, release_hold). Descriptions are substantive (50-150 chars) and explain state changes clearly. However, input schemas are documented only by reference ('from V.providerQuery', 'from needProfileSchema'), the actual JSON Schema definitions are not visible in the provided source, making validation impossible. Parameter descriptions within schemas cannot be verified. Output schemas are entirely undocumented. Error handling and recovery guidance are absent. Tool composition is sound (idempotent holds, reversible releases), but the lack of visible schema details and output documentation prevents higher scoring.
Receive identifying referral details against a live lease. The lease is re-checked server side: a lapsed, released or already-converted lease is refused and nothing is recorded.
Explain why an offer does not meet requirements or why a plan composition fails. Accepts either a single offer against requirements or a whole plan.
Search for support offers matching a person's needs profile. Returns exact matches with identities and timing, near misses with failure counts, and provider status.
Place a short lease on one resource. The organisation is the authority on whether it holds: expiry is returned as an absolute time from the provider clock. Idempotent by client_request_id.
Place a hold on a resource from an exact match. Returns a hold_id and expiry time relative to the provider's clock.
Return structured availability matching typed requirements. Answers with capability fields and timing only: no descriptions, no notes, no contact details, no URLs.
Input schemas documented only by reference (e.g., 'from V.providerQuery'), actual JSON Schema definitions not visible in source. Cannot verify parameter types, descriptions, constraints, or enums.
Output schemas completely undocumented. LLMs cannot infer what fields to expect from tool responses, forcing them to guess at downstream field names and types.
No error handling or recovery guidance. Tools do not document what errors are possible, whether they are retryable, or what the LLM should do next.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 58 | 2025-06-18+ | v2 |
Release a lease. Idempotent: releasing an already-released or lapsed lease is a normal outcome with its own status, not an error. Reports expired separately from released.
Release a hold placed by place_hold. Returns the hold status: released, already_released, expired, or converted.
Duplicate tool name 'release_hold' appears in both provider-kit (tools 3, 8) and hub (tool 8). LLMs will conflate them or fail to disambiguate. Rename one variant (e.g., 'release_provider_hold' vs 'release_hub_hold').
Tool descriptions lack dependency hints. E.g., 'place_hold' requires a search_id from 'find_support', but this prerequisite is not stated in the description.