Skip to main content
Glama

get_ozerki_pickup_options

Read-only

Ozerki pickup-point resolver for multi-brand Ozerki-network pharmacies. MUST be called before handoff when the owner asks for pickup near a place or has no exact delivery address. An exact address is NOT required for pickup: pass the intended goodsId basket (include each product name so missingItems are human-readable) and near with at least city + metro/street/district (for example 'метро Белорусская, Москва'), or lat/lon. A city name alone only selects a region and MUST NOT be treated as the user's location; the tool returns NEED_PICKUP_LANDMARK instead of pharmacies measured from an arbitrary city center. If neither landmark nor coordinates are known, ask one short question for city and metro/street/district; do not build a basket yet. Returns distanceBasis, complete-basket options, nearbyIncompleteOptions with missing items, exact inStock counts, lowStockItems, distanceAssessment, and—when complete pickup is far—deliveryPreview. Always quote inStock for the relevant items. If stockRisk=last_units or inStock<=3, explicitly say how many units remain and warn they may sell before the visit or checkout. For an exact-pharmacy question such as «есть ли препарат X в аптеке Y», set exactPharmacy=true and pass the exact branch address in near. Answer only from exactPharmacyResult with available and inStock; NEVER substitute another nearby pharmacy. If matched=false, ask one short clarification for the network and full address. Always tell the owner which distanceBasis label was used and also offer delivery as an alternative. If distanceAssessment.requiresFulfillmentChoice is true, NEVER silently choose the distant complete pharmacy: show nearer incomplete points and missing products, then report deliveryPreview in two stages—preliminary area/item availability near the landmark, and the need for an exact house to confirm the final zone, price, and timeslots. Never promise final delivery when canPromiseFinalDelivery=false. Then offer delivery, replacements, or explicit consent to distant pickup. Treat all returned brands (Озерки, Доктор Столетов, Самсон-Фарма, МосАптека, Аптека.ру, etc.) as valid Ozerki partner pickup points. Get the owner's explicit fulfillment/store choice BEFORE building the basket. Never make the owner search for a pharmacy on Ozerki. Then pass the chosen storeId to prepare_ozerki_handoff.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
latNo
lonNo
nearNoUser's metro station, district, street, or exact pharmacy address, including city. A city name alone is insufficient.
itemsYes
limitNoNearest complete-basket options to return, default 3, max 10
regionIdNoOzerki region id, default 14 for Moscow and region
exactPharmacyNoSet true only when the owner asks about one specific pharmacy; read exactPharmacyResult and never substitute a different nearby branch.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • removedInput schema / properties / sessionId
      Removed value: -{
      -  "description": "Optional. Agent-link sessionId from begin_agent_link / poll_agent_link. Pass on every tool when connector has no Authorization Bearer (Grok/ChatGPT/Claude). After status=approved this authenticates as als_<sessionId>. Never invent a sessionId. Never ask the owner to open Authorization settings (Grok has none).",
      -  "type": "string"
      -}
  2. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false; the description adds substantial behavior beyond that: the full return contract (distanceBasis, complete-basket options, nearbyIncompleteOptions, inStock, lowStockItems, distanceAssessment, deliveryPreview), the NEED_PICKUP_LANDMARK edge case for city-only input, the 'never substitute another nearby pharmacy' constraint in exact mode, and concrete stock-risk thresholds (stockRisk=last_units or inStock<=3). 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?

Purpose and the MUST-call rule are front-loaded, and the density is proportionate to a genuinely complex tool (7 params, no output schema, multiple operational modes). Some redundancy exists — offering delivery appears twice ('offer delivery as an alternative' and 'offer delivery, replacements, or explicit consent to distant pickup') — and a few sentences are agent-policy rather than tool behavior, but nothing is wasted.

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 carries the full burden of explaining return values, and it lists them explicitly. It covers input requirements, edge cases (matched=false, requiresFulfillmentChoice, canPromiseFinalDelivery=false), the two-stage deliveryPreview protocol, brand handling, and handoff routing. Nothing an agent needs to invoke this tool correctly 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?

Schema coverage is 57%, with lat/lon undocumented; the description compensates by clarifying that lat/lon serve as a coordinate alternative to near, and gives a concrete format example for near ('метро Белорусская, Москва') plus the city-only insufficiency rule. However, much of the description's parameter guidance (items naming, exactPharmacy trigger) largely restates what the schema already says, so the incremental value beyond structured data is moderate.

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?

Opens with a specific verb+resource: 'Ozerki pickup-point resolver for multi-brand Ozerki-network pharmacies,' then sharpens scope with 'MUST be called before handoff when the owner asks for pickup near a place or has no exact delivery address.' This distinguishes it from siblings like prepare_ozerki_handoff (the follow-up) and search_products without needing to open their schemas.

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 states when to call (pickup near a place or no delivery address), when NOT to call ('If neither landmark nor coordinates are known, ask one short question... do not build a basket yet'), and routes to the sibling follow-up ('Then pass the chosen storeId to prepare_ozerki_handoff'). It also carves out the exactPharmacy=true mode as a distinct invocation path with its own rules.

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.