{
  "name": "LupaPlaza MCP",
  "description": "Herramientas MCP en español. En el host estático los agentes descubren mainnet vía /discovery/resources. Testnet es para humanos y Express local; no se anuncia como inventario settleable.",
  "version": "2.0.0",
  "language": "es",
  "tools": [
    {
      "name": "buscar_servicios",
      "description": "Busca APIs x402 por categoría, país, taxonomía o texto libre. Gratis.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Texto de búsqueda (nombre o descripción)"
          },
          "categoria": {
            "type": "string",
            "description": "Categoría (ej: 'Finanzas', 'Legal')"
          },
          "pais": {
            "type": "string",
            "description": "Código ISO de país (AR, MX, CO, BR, CL, PE)"
          },
          "taxonomia": {
            "type": "string",
            "description": "Tag de taxonomía LatAm (ej: 'fx.ar.casa', 'bcra.deudores')"
          },
          "callable": {
            "type": "string",
            "enum": [
              "mainnet",
              "testnet",
              "dead",
              "incomplete"
            ],
            "description": "mainnet = 402 live en red mainnet (lo que publica /discovery/resources). testnet/dead/incomplete son para humanos y Express local."
          }
        }
      },
      "how_to_call": "Agentes: https://lupaplaza.com/discovery/resources es mainnet-only. El dump completo (testnet/dead/incomplete) está en https://lupaplaza.com/api/apis.json. En local: POST http://localhost:3402/mcp/buscar_servicios."
    },
    {
      "name": "obtener_servicio",
      "description": "Obtiene detalles completos de una API por su ID. Gratis.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "ID del servicio"
          }
        },
        "required": [
          "id"
        ]
      },
      "how_to_call": "En el host estático: filtrá https://lupaplaza.com/discovery/resources (mainnet) o https://lupaplaza.com/api/apis.json (todas las filas, con callable honesto). En local: POST http://localhost:3402/mcp/obtener_servicio."
    },
    {
      "name": "llamar_servicio",
      "description": "En Express local, devuelve instrucciones de pass-through x402. En el host estático no hay proxy: el agente paga el endpoint del seller.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "ID del servicio"
          },
          "endpoint": {
            "type": "string",
            "description": "Path del endpoint (ej: '/v1/fx/usd')"
          },
          "method": {
            "type": "string",
            "enum": [
              "GET",
              "POST"
            ],
            "default": "GET"
          },
          "body": {
            "type": "object",
            "description": "Cuerpo de la request (solo POST)"
          }
        },
        "required": [
          "id",
          "endpoint"
        ]
      },
      "how_to_call": "No hay MCP pay-through público. Tomá `url`/`payTo`/`endpoints` de /discovery/resources (solo mainnet) y pagá el seller directo (p. ej. x402-buyer). Testnet no es inventario de producción. En local, POST /mcp/llamar_servicio solo devuelve instrucciones."
    }
  ],
  "live_proxy": "local-only",
  "local": "http://localhost:3402/mcp",
  "catalog": {
    "resources": "https://lupaplaza.com/discovery/resources",
    "resources_json": "https://lupaplaza.com/discovery/resources.json",
    "apis": "https://lupaplaza.com/api/apis.json"
  },
  "note": "El proxy MCP en vivo (POST /mcp/buscar_servicios, /mcp/obtener_servicio, /mcp/llamar_servicio) corre solo en Express local (`npm run dev` :3402). En el host estático no hay pay-through público: el agente paga el endpoint del seller listado en el catálogo."
}
