AgentSIM Python SDK — autonomous OTP relay for AI agents
This is NOT an MCP server, it is a Python SDK for calling AgentSIM's OTP relay service. The 6 'tools' are actually SDK methods exposed as if they were MCP tools, but there is no MCP server implementation visible in the source. Tool definitions lack proper MCP registration, transport mechanism, or protocol compliance. Descriptions are present but generic (e.g., 'Open an SMS challenge session. Alias of provision. Same objects.'). Schemas are partially documented but lack depth. Two tools (provision, open_challenge) are exact duplicates with identical descriptions and parameters, violating the single-responsibility principle. Parameters like 'on_reregistration_needed' are typed as 'object' with no schema detail. No error handling guidance, no output schemas documented, no pagination support despite async operations.
Get SMS messages for a session
Open an SMS challenge session. Alias of ``provision``. Same objects.
Open an SMS challenge session. Alias of ``provision``. Same objects.
Release an SMS challenge session
Wait for the SMS challenge verdict. Raises ``OtpTimeoutError`` if no OTP is received within *timeout* seconds. Sessions that raise ``OtpTimeoutError`` are NOT billed.
Wait for the SMS challenge verdict. Alias of ``wait_for_otp``. Timeout is seconds.
Not an MCP server, this is a Python SDK, not an MCP tool server. No MCP protocol implementation, transport, or server registration visible. Cannot be deployed as an MCP server.
Duplicate tools: 'provision' and 'open_challenge' have identical descriptions, parameters, and behavior. Violates single-responsibility principle and wastes LLM reasoning cycles.
Generic, uninformative descriptions. 'Open an SMS challenge session. Alias of provision. Same objects.' does not explain WHEN to use this tool, what it returns, or what happens next. Descriptions under 50 chars lack context for LLM selection.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 44 | 2026-07-28+ | v2 |
Parameter 'on_reregistration_needed' typed as 'object' with no schema detail. LLMs cannot infer what fields this object should contain or how to construct it.
No output schemas documented. LLMs cannot plan downstream calls or extract required fields (e.g., session_id, otp_value, message_list). Responses are opaque.