Shared auth (OAuth PKCE + loopback login), HTTP client and MCP helpers for Yandex MCP servers.
Two authentication tools with clear, detailed descriptions (194 - 250 chars each) and proper Zod schemas. Both tools have input parameters with type definitions and descriptions. Tool annotations present (readOnlyHint, openWorldHint). However, output schemas are not formally documented in the code, responses are constructed ad-hoc via toToolResult() helper without a declared return type schema. Error handling is present but generic (errorResult wrapper). No pagination, no batch operations, and no guidance on error recovery paths. The login tool's 120-second timeout is hardcoded without user visibility. Overall solid for a narrow auth domain but lacks production-grade schema documentation and error recovery patterns.
Sign in to Yandex from here. Opens your browser to approve access; the code returns automatically over a local redirect, so this usually finishes in one call. If the local port is unavailable it returns a URL to approve and you then call submit_code with the code Yandex shows. Run this once (the token lasts ~1 year); needed before the data tools if you are not signed in yet.
Complete a copy-paste sign-in started by login: pass the code Yandex showed you after you approved access.
Output schemas not formally documented. Responses constructed via toToolResult() helper without declared return type schema. LLMs cannot plan downstream operations or validate response structure.
Error handling lacks recovery guidance. errorResult() wrapper provides no actionable next steps. E.g., 'N' (truncated error message in submit_code) gives LLM no context on retry strategy or alternative paths.
LOOPBACK_WAIT_MS (120 seconds) hardcoded without user visibility or configurability. Timeout behavior not documented in tool description, risking silent failures or unexpected hangs.
No idempotency guarantees documented. If login or submit_code is retried after partial success, unclear whether duplicate token adoption or state corruption could occur.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 64 | 2025-06-18+ | v2 |
Pending login state stored in module-level variable (let pending). Single-user, in-process design; not thread-safe or suitable for concurrent agent invocations.