{
  "service": "verificaremails-mcp",
  "status": "online",
  "version": "1.8.1",
  "mcp": {
    "endpoint": "https://mcp.verificaremails.com/mcp",
    "transport": "http-json-rpc",
    "protocol_versions_supported": [
      "2025-06-18",
      "2025-03-26",
      "2024-11-05"
    ]
  },
  "recommended_configuration": {
    "openai_chatgpt": {
      "server_url": "https://mcp.verificaremails.com/mcp",
      "authentication": "OAuth",
      "client_registration": "Dynamic Client Registration (DCR)",
      "token_endpoint_auth_method": "none",
      "oidc_enabled": false,
      "scopes": [
        "validate_email",
        "validate_phone",
        "validate_phone_syntactic",
        "validate_phone_mnp",
        "validate_name",
        "validate_address",
        "fuzzy_search_name",
        "name_complete",
        "get_credits",
        "get_service_credits",
        "get_all_credits",
        "validate_file",
        "get_file_validation_status",
        "download_file_validation_result"
      ]
    },
    "claude_remote_mcp": {
      "server_url": "https://mcp.verificaremails.com/mcp",
      "authentication": "OAuth",
      "client_registration": "DCR if available",
      "token_endpoint_auth_method": "none"
    },
    "local_or_developer_clients": {
      "server_url": "https://mcp.verificaremails.com/mcp",
      "headers": {
        "Authorization": "Bearer <TOKEN_DE_VERIFICAREMAILS>"
      }
    }
  },
  "oauth": {
    "authorization_server_metadata": "https://mcp.verificaremails.com/.well-known/oauth-authorization-server",
    "protected_resource_metadata": "https://mcp.verificaremails.com/.well-known/oauth-protected-resource",
    "authorization_endpoint": "https://mcp.verificaremails.com/authorize",
    "token_endpoint": "https://mcp.verificaremails.com/token",
    "registration_endpoint": "https://mcp.verificaremails.com/register",
    "userinfo_endpoint_optional": "https://mcp.verificaremails.com/userinfo"
  },
  "auth": {
    "type": "oauth2_authorization_code",
    "bearer_header": "Authorization: Bearer <access_token>",
    "access_token_is_user_verificaremails_token": true,
    "user_tokens_stored_in_worker": false
  },
  "credits_endpoints": {
    "service_credits": "https://dashboard.verificaremails.com/myapi/{apiName}/credits",
    "all_credits": "https://dashboard.verificaremails.com/myapi/all/credits",
    "supported_api_services": [
      "name",
      "phone",
      "email",
      "address",
      "phonemnp",
      "fuzzysearch",
      "namecomplete",
      "phonesyntactic"
    ]
  },
  "file_validation": {
    "async": true,
    "upload_tool": "validate_file",
    "status_tool": "get_file_validation_status",
    "download_tool": "download_file_validation_result",
    "no_polling": true,
    "supported_services": [
      "validate_email",
      "validate_phone",
      "validate_phone_syntactic",
      "validate_phone_mnp",
      "validate_name",
      "validate_address",
      "fuzzy_search_name",
      "name_complete"
    ],
    "upstream_endpoints": {
      "validate_multiple": "https://dashboard.verificaremails.com/myapi/{apiName}/validate/multiple",
      "status": "https://dashboard.verificaremails.com/myapi/{apiName}/status/{requestId}",
      "download": "https://dashboard.verificaremails.com/myapi/{apiName}/download/{requestId}"
    },
    "accepted_file_inputs": [
      "file_base64",
      "file_url"
    ],
    "download_output_formats": [
      "text",
      "base64"
    ],
    "notes": [
      "El usuario debe indicar service y column.",
      "El cliente MCP debe pasar el fichero como file_base64 o file_url.",
      "El Worker no hace polling.",
      "El usuario puede consultar el estado más tarde con request_id.",
      "La URL download del proveedor contiene auth-token y se oculta por seguridad.",
      "La descarga del resultado se hace mediante download_file_validation_result.",
      "Con output_format=text se devuelve el contenido bruto del fichero como texto.",
      "La plataforma VerificarEmails enviará email cuando termine si send_email=1."
    ]
  },
  "i18n": {
    "authorize_page_detects_accept_language": true,
    "supported_languages": [
      "es",
      "en",
      "it",
      "de"
    ],
    "force_language_with_query_param": "https://mcp.verificaremails.com/authorize?...&lang=en"
  },
  "tool_annotations": {
    "read_only": {
      "readOnlyHint": true,
      "destructiveHint": false,
      "idempotentHint": true,
      "openWorldHint": true
    },
    "async_validation": {
      "readOnlyHint": false,
      "destructiveHint": false,
      "idempotentHint": false,
      "openWorldHint": true
    }
  },
  "tools": [
    {
      "name": "validate_email",
      "description": "Verifica si un email es válido y existe. Comprueba formato, dominio y entregabilidad real.",
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "validate_phone",
      "description": "Verifica un teléfono mediante consulta HLR: comprueba si el número está activo en la red del operador.",
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "validate_phone_syntactic",
      "description": "Valida la sintaxis de un teléfono sin consulta HLR. Más rápido y económico.",
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "validate_phone_mnp",
      "description": "Consulta la portabilidad del número MNP y devuelve el operador actual.",
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "validate_name",
      "description": "Valida si un nombre o apellido es real. Útil para detectar datos ficticios.",
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "validate_address",
      "description": "Valida y normaliza una dirección postal.",
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "fuzzy_search_name",
      "description": "Busca el nombre más parecido en la base de datos. Corrige errores tipográficos.",
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "name_complete",
      "description": "Autocompleta un nombre parcial. Ideal para sugerencias en formularios.",
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "get_service_credits",
      "description": "Consulta los créditos disponibles para un servicio específico de verificaremails.com.",
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "get_all_credits",
      "description": "Consulta los créditos disponibles de todos los servicios activos de la cuenta autenticada.",
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "get_credits",
      "description": "Alias compatible: consulta los créditos disponibles de todos los servicios activos de la cuenta autenticada.",
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "validate_file",
      "description": "Sube un fichero para validación masiva asíncrona. El usuario debe indicar el servicio de validación y la columna donde están los datos. Devuelve un request_id para consultar el estado posteriormente. No hace polling.",
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": false,
        "openWorldHint": true
      }
    },
    {
      "name": "get_file_validation_status",
      "description": "Consulta el estado de una validación masiva de fichero usando el request_id devuelto por validate_file. No hace polling.",
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "download_file_validation_result",
      "description": "Descarga el resultado de una validación masiva de fichero ya completada. Usa internamente el token del usuario y no expone la URL con auth-token. Con output_format text devuelve el contenido bruto del fichero como texto.",
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    }
  ]
}