| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Sorry, something went wrong.
Expose sync and async stored-server discovery and execution with public generated types, required server revisions, and MCP-specific typed errors. Use HTTPX's zero-retry transport instead of the generated urllib3 retry path. Preserve indeterminate outcomes and disable redirects; test request counts beneath the connection retry loop. Document approval boundaries, correlation-only execution IDs, cancellation, and the separate gateway endpoint-manifest follow-up. Fixes #65
There was a problem hiding this comment.
Typed errors currently rewrite the valid completed execution state to not_started, potentially misleading callers about retry safety.
Get a fresh assessment by requesting another Copilot review.
Review effort: Balanced
Findings: 1
Adds public synchronous and asynchronous caller-controlled MCP operations with single-attempt execution safeguards.
Changes:
| File | Description |
|---|---|
| src/otari/mcp.py | Implements sync and async MCP operations. |
| src/otari/client.py | Exposes the synchronous MCP resource. |
| src/otari/async_client.py | Exposes the asynchronous MCP resource. |
| src/otari/errors.py | Adds MCP-specific exceptions. |
| src/otari/types.py | Re-exports generated MCP models. |
| src/otari/__init__.py | Publishes MCP types and errors. |
| tests/unit/test_mcp.py | Tests MCP contracts and single-attempt behavior. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Sorry, something went wrong.
| Back | FazBrowse Home | New Git URL |
Why
Applications need supported SDK methods to discover MCP tools and execute the exact caller-authorized call through Otari, without losing approval boundaries or indeterminate outcomes.
The auto-generated PR updates only src/otari/_client/; this separate PR exposes those endpoints through the hand-written public SDK and adds the single-attempt execution guarantees and typed error handling that code generation does not provide.
What changed
Add sync/async mcp.list_tools(...) and mcp.execute(...) on /api/v1, public generated types, required server_revision, and MCP errors preserving code, execution_state, and request_id. Execution bypasses urllib3 retries, never follows redirects, and treats untyped transport failures as outcome-unknown. Tests count attempts beneath HTTPX's connection retry loop, including environment proxies. No generated code, Files changes, or Octonous integration is included.
Notes
Fixes #65