AI agents
Point your agent at the machine-readable docs: https://sms-admin.bizmakers.app/llms.txt (index) or https://sms-admin.bizmakers.app/llms-full.txt (everything in one file), and the OpenAPI spec at https://sms.bizmakers.app/v1/openapi.json.
Give it a test key (smt_…) while it builds: nothing is sent, results are simulated and OTPs return test_code.
Prompt to paste
Add SMS one-time-code login to this app using Esemes Gateway.
Docs: https://sms-admin.bizmakers.app/llms-full.txt (read it first). API base: https://sms.bizmakers.app
Rules:
- Call the API only from server-side code. The key is in the ESEMES_KEY env var; never expose it to the browser or app bundle.
- Use POST /v1/otp to send and POST /v1/otp/verify to check; keep otp_id in the server session.
- After a valid code, sign the person in with a signed/encrypted session (or the app's existing auth), never a plain cookie holding the phone number.
- Phone numbers are Mauritian mobiles (+230 5xxx xxxx); show a clear error for country_not_allowed.
- Handle 429 otp_cooldown (ask the user to wait 30 s) and reasons incorrect / expired_or_used / too_many_attempts.
- Use an idempotency_key for message sends that may be retried.
- If you add webhooks, verify X-SMS-Signature as documented.
- Use the test key while developing; tell me when to switch to a live key.
MCP server
Agents that speak MCP (Claude Code, Cursor, Claude Desktop) can use the gateway as tools: get_docs, send_sms, send_otp,
verify_otp, get_message, list_messages, get_usage.
{ "mcpServers": { "esemes": { "command": "npx", "args": ["-y", "esemes-mcp"],
"env": { "ESEMES_API_KEY": "smt_..." } } } }
Use a test key. The server refuses a live key (smk_…) unless you also set ESEMES_ALLOW_LIVE=1.
ESEMES_BASE_URL defaults to https://sms.bizmakers.app.
Agent skill
A step-by-step skill that makes an agent add one-time-code login correctly (key stays on the server, test key first, every error handled): see Agent skill.