AMI.
v1.0 · referencia · contratación & aprovisionamiento v1.0 · reference · contracting & provisioning

Identidad móvil
para agentes AI.
Mobile identity
for AI agents.

AMI es la capa de protocolo para que un agente solicite, contrate y active su propia identidad móvil — SIM, eSIM, número de teléfono — sin pasar por procesos pensados para humanos. Programable, auditable, gobernada. AMI is the protocol layer for AI agents to request, contract and activate their own mobile identity — SIM, eSIM, phone numbers — without going through human-designed processes. Programmable, auditable, governed.

Quick Start Quick Start

macOS · Linux · Python 3.10+ macOS · Linux · Python 3.10+
β BETA
# Recomendado para agentes: cero instalación, cero API key local.Recommended for agents: zero install, zero local API key. # Apunta tu cliente MCP (transporte streamable-http) a:Point your MCP client (streamable-http transport) to: https://ami-mcp-http.onrender.com/mcp/
# Instala el MCP en ~/.ami (stdio local). Necesita AMI_API_KEY propia.Installs the MCP into ~/.ami (local stdio). Requires your own AMI_API_KEY. $ curl -fsSL https://ami-mock-api.onrender.com/install.sh | sh
# Setup manual con uv (recomendado).Manual setup with uv (recommended). $ git clone https://github.com/Gamino17/AMI $ cd AMI $ uv venv --python 3.13 .venv $ uv pip install --python .venv/bin/python -r requirements.txt
# Pega esto en claude_desktop_config.json y reinicia el cliente.Paste into claude_desktop_config.json and restart the client. { "mcpServers": { "ami": { "command": "/Users/you/.ami/.venv/bin/python", "args": ["/Users/you/.ami/ami_mcp.py"], "env": { "AMI_API_URL": "https://ami-mock-api.onrender.com", "AMI_API_KEY": "<your-api-key>" } } } }

Las cuatro vías llegan al mismo MCP server con las 11 tools ami.*. HTTP remoto es la opción recomendada para agentes: cero instalación y sin gestionar API key local. Las otras vías son útiles cuando necesitas el MCP corriendo en local (clientes que solo soportan stdio, entornos sin red saliente, etc.). All four paths reach the same MCP server with the 11 ami.* tools. Remote HTTP is the recommended option for agents: zero install, no local API key to manage. The other paths are useful when you need the MCP running locally (stdio-only clients, no-egress environments, etc.).

¿Sin tiempo para instalar? Pruébalo en el navegador.
No time to install? Try it in your browser.
Ejecuta el flujo completo —solicitud, oferta, contrato, firma, activación— sin escribir una línea.
Run the full flow —request, offer, contract, signature, activation— without writing a line.
El protocolo
The protocol

Cuatro principios. Una capa estándar. Four principles. One standard layer.

AMI separa el "cómo se contrata identidad móvil" del "qué operador la sirve". El agente habla un solo protocolo; el operador se enchufa por debajo. AMI separates "how mobile identity is contracted" from "which operator serves it". The agent speaks one protocol; the carrier plugs in underneath.

01 Contratación programable Programmable contracting

Solicitud, oferta, datos del cliente, contrato y firma como llamadas de tool. Sin formularios. Sin humanos atascando el flujo.

Request, offer, customer data, contract and signature as tool calls. No forms. No humans bottlenecking the flow.

02 Identidad gobernada Governed identity

Cada número tiene propietario, contrato firmado, política y trazabilidad. Sin shadow IT. Sin números fantasma operando en nombre de empresas.

Every number has an owner, signed contract, policy and audit trail. No shadow IT. No phantom numbers operating on behalf of companies.

03 Multi-operador por diseño Multi-carrier by design

El agente consume AMI; debajo se elige operador, BSP o gateway. Cambias de proveedor sin tocar la integración del agente.

The agent consumes AMI; underneath you pick carrier, BSP or gateway. Swap providers without touching the agent integration.

04 Auditoría por defecto Audit-first

Cada transición de estado emite un AuditEvent. Quién, qué, cuándo, con qué payload. Compliance no es una capa extra — es el modelo.

Every state transition emits an AuditEvent. Who, what, when, with what payload. Compliance isn't an extra layer — it's the model.

El flujo
The flow

De solicitud a línea activa, sin humano en medio. From request to active line, no human in the loop.

El agente recorre la máquina de estados completa por MCP. La firma sucede en el navegador del firmante (o vía webhook de proveedor de firma); el resto es máquina. The agent walks the full state machine via MCP. The signature happens in the signer's browser (or via signature provider webhook); everything else is machine-to-machine.

Agent  ─┐  MCP tools (ami.*)
        ▼
ami_mcp.py      stdio  +  streamable-http
        │  HTTPS + Bearer
        ▼
ami_api.py      REST v1  ·  state machine  ·  audit log
        │
        ├──▶ SIMRequest         requested
        ├──▶ Offer              offer_created → offer_accepted
        ├──▶ Customer           customer_data_submitted
        ├──▶ Contract           signature_pending
        │           ↑  signed via /v1/sign/{id} (browser)
        ├──▶ Signed             signed
        ├──▶ Provisioning       carrier adapter
        └──▶ MobileIdentity     active  ·  number  ·  QR
Empezar
Get started

Tres formas de conectar tu agente. Three ways to connect your agent.

El backend está en producción. Lo único simulado es la SIM física: el resto —oferta, contrato, firma y activación— es real y end-to-end. The backend is in production. Only the physical SIM is simulated: the rest —offer, contract, signature, activation— is real and end-to-end.

stdio · local

Claude Desktop / Code

Clona el repo, instala el venv y añade el bloque a tu claude_desktop_config.json. Las 11 tools ami.* aparecen al reiniciar.

Clone the repo, install the venv and add the block to your claude_desktop_config.json. The 11 ami.* tools appear after restart.

{
  "mcpServers": {
    "ami": {
      "command": "python3",
      "args": [
        "/path/to/AMI/ami_mcp.py"
      ],
      "env": {
        "AMI_API_URL": "https://ami-mock-api.onrender.com",
        "AMI_API_KEY": "<your-api-key>"
      }
    }
  }
}
streamable-http · remote

HTTP remoto Remote HTTP

Cualquier cliente MCP que soporte el transporte streamable-http conecta directo. Cero instalación, cero deps locales.

Any MCP client that supports streamable-http connects directly. Zero install, zero local deps.

https://ami-mcp-http.onrender.com/mcp/
REST · custom

Cliente propio Build your own

¿No usas MCP? Habla directo a la REST API. Esquema OpenAPI 3.1 publicado en /openapi.json. Auth con Bearer.

Not using MCP? Talk directly to the REST API. OpenAPI 3.1 schema at /openapi.json. Bearer auth.

curl -H "Authorization: Bearer $AMI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"country":"ES"}' \
  https://<host>/v1/sim-requests
MCP

11 tools. Un namespace. 11 tools. One namespace.

Todas en ami.*. Cada una mapea a un endpoint REST equivalente; el agente puede usar la que prefiera sin perder semántica. All under ami.*. Each maps to an equivalent REST endpoint; the agent can use whichever it prefers without losing semantics.

ami.search_sim_options
Lista países, tipos de SIM/eSIM y capacidades disponibles.
ami.request_sim_offer
Crea una SIMRequest y devuelve la oferta inmediata del partner telco.
ami.accept_offer
Acepta una oferta antes de generar contrato.
ami.submit_customer_data
Envía los datos legales/fiscales del cliente y los vincula a la solicitud.
ami.create_contract
Genera el contrato y devuelve la URL de firma.
ami.get_contract_status
Consulta el estado actual de un contrato.
ami.confirm_signature_status
Comprueba si el contrato ya está firmado.
ami.activate_sim_identity
Inicia el provisioning con el partner telco tras la firma.
ami.get_identity_status
Consulta el estado de una MobileIdentity activa.
ami.cancel_request
Cancela una SIMRequest antes de la activación.
ami.list_events
Devuelve los últimos AuditEvents (debug e inspección).
REST

API estable, JSON, OpenAPI 3.1. Stable JSON API, OpenAPI 3.1.

Auth con Authorization: Bearer $AMI_API_KEY excepto en healthcheck y la página pública de firma. Auth with Authorization: Bearer $AMI_API_KEY except for healthcheck and the public signature page.

Identidad móvil es la primitiva
que faltaba para los agentes.
Mobile identity is the missing
primitive for agents.