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. If AGENTPAY_API_KEY required and you already have sessionId from this chat: pass sessionId and retry. Never begin_agent_link again. Never ask the owner to edit connector settings or reconnect. Never web-search.

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
sessionIdNoOptional. 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).
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. Added

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already mark the tool readOnly and non-destructive, and the description adds substantial behavioral context: it enumerates return fields, prohibits substituting nearby pharmacies for exactPharmacy queries, requires explicit stock-risk warnings, explains two-stage deliveryPreview reporting, and specifies that all listed brands are valid partner pickup points. It also discloses the NEED_PICKUP_LANDMARK behavior and the canPromiseFinalDelivery guardrail, going far beyond what 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.

Conciseness4/5

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

The description is front-loaded with purpose and trigger conditions, and nearly every sentence carries a useful rule. However, it is a dense wall of Always/Never directives without sectioning or formatting, so it is less crisp than ideal. The length is largely justified by the tool's complexity, but the structure could be improved.

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 carry return-value and conditional-behavior information; it does, listing fields like distanceBasis, nearbyIncompleteOptions, missingItems, inStock, lowStockItems, distanceAssessment, and deliveryPreview. It also covers failure cases (matched=false, NEED_PICKUP_LANDMARK), authentication fallback via sessionId, stock warning thresholds, and the required handoff step, making the tool callable without major gaps.

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?

With schema description coverage at 63%, the description carries meaningful parameter burden. It explains why items should include product names ('so missingItems are human-readable'), what near must contain ('at least city + metro/street/district' with an example), when exactPharmacy should be true, and how lat/lon or sessionId can be used. This adds real semantic value beyond the raw schema fields.

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 opens with a specific role: 'Ozerki pickup-point resolver for multi-brand Ozerki-network pharmacies.' It immediately states the exact trigger ('MUST be called before handoff when the owner asks for pickup near a place or has no exact delivery address') and distinguishes the tool from the handoff step by saying the chosen storeId is passed to prepare_ozerki_handoff. An agent can tell exactly what this tool is for.

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 very explicit when-to-use conditions and important exclusions: a city name alone selects only a region and must not be treated as a location; if neither landmark nor coordinates are known, ask one short question; exact-pharmacy questions require exactPharmacy=true and must not substitute another branch. It does not, however, explicitly name sibling tools as alternatives (e.g., search_products) when deciding between catalog search and pickup resolution, so it falls just short of perfect routing guidance.

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.