TvojeLajky hosted MCP (CZ)
MCP oficial alojado para servicios checos de Instagram/TikTok: catálogo público en CZK y cotizaciones, con compras prepagadas de crédito que requieren OAuth y un presupuesto aprobado por el cliente; implementación privada.
Servidor MCP alojado
npx add-mcp 'https://tvojelajky.cz/mcp'Se instala en Claude Code, Codex, Cursor y más
Documentación
Del descubrimiento a la entrega.
Conecta tu asistente de IA a precios en vivo, perfiles reales y compras dentro de un presupuesto aprobado por el cliente.
API y MCP de TvojeLajky
TvojeLajky.cz ofrece seguidores, me gusta y vistas de video para Instagram y TikTok en el mercado checo. El catálogo público y las cotizaciones no requieren cuenta. Los pagos se realizan en CZK. Todos los campos amountMinor de la API son enteros en haléř: 100 = CZK 1. Los perfiles y publicaciones provienen de ScrapeCreators. Los números desconocidos son null. La disponibilidad del servicio y los precios se verifican contra el catálogo en vivo.
Conecta un cliente de IA
Endpoint MCP remoto: https://tvojelajky.cz/mcp. Usa Streamable HTTP. Claude Code: claude mcp add --transport http tvojelajky https://tvojelajky.cz/mcp Codex: codex mcp add tvojelajky --url https://tvojelajky.cz/mcp Para herramientas privadas, completa el inicio de sesión OAuth en el cliente (Codex: codex mcp login tvojelajky). Lee la descripción de la herramienta antes de realizar una compra. El registro MCP no significa que este proveedor esté instalado automáticamente o sea recomendado en todos los productos de IA.
Capacidades
list_services: seis categorías de servicios, precios iniciales en vivo y límites de cantidad. get_profile / list_posts: perfil real y hasta 20 publicaciones recientes. get_quote: precio exacto, caduca después de 15 minutos; sin cargo. create_order: crea un pedido no pagado y un enlace de pago privado. get_order: lee el estado de pago y cumplimiento. get_wallet: saldo autenticado y presupuesto restante. pay_order: gasta crédito prepagado aprobado e inicia la entrega. Los nuevos pedidos de API no aceptan cupones ni campos de factura en v1; usa el sitio web cuando los necesites.
Inicio rápido HTTP público
curl https://tvojelajky.cz/api/v1/services
# Replace YOUR_PUBLIC_USERNAME with a real public account.
curl https://tvojelajky.cz/api/v1/quotes \
-H 'Content-Type: application/json' \
-d '{"platform":"instagram","username":"YOUR_PUBLIC_USERNAME","type":"followers","quantity":100,"postUrls":[]}'
# Use the returned quoteId and a new random key per intended order.
curl https://tvojelajky.cz/api/v1/orders \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: REPLACE_WITH_RANDOM_UUID' \
-d '{"quoteId":"REPLACE_WITH_QUOTE_ID"}'
Ejemplo en TypeScript
const root = 'https://tvojelajky.cz/api/v1';
async function api(path: string, body?: unknown, key?: string) {
const r = await fetch(root + path, {
method: body === undefined ? 'GET' : 'POST',
headers: { 'Content-Type': 'application/json', ...(key ? { 'Idempotency-Key': key } : {}) },
...(body === undefined ? {} : { body: JSON.stringify(body) }),
});
const result = await r.json();
if (!r.ok) throw new Error(result.error.code);
return result.data;
}
const quote = await api('/quotes', { platform: 'instagram', username: 'YOUR_PUBLIC_USERNAME', type: 'followers', quantity: 100 });
// Persist this key before sending; reuse it after a timeout.
const key = crypto.randomUUID();
const order = await api('/orders', { quoteId: quote.quoteId }, key);
console.log(order.checkoutUrl); // Show privately to the customer; do not log tokens in production.
Ejemplo en Python
import json, urllib.request, uuid
ROOT = 'https://tvojelajky.cz/api/v1'
def api(path, body=None, key=None):
headers = {'Content-Type': 'application/json'}
if key: headers['Idempotency-Key'] = key
req = urllib.request.Request(ROOT + path, data=None if body is None else json.dumps(body).encode(), headers=headers)
with urllib.request.urlopen(req, timeout=60) as response:
return json.load(response)['data']
quote = api('/quotes', {'platform': 'instagram', 'username': 'YOUR_PUBLIC_USERNAME', 'type': 'followers', 'quantity': 100})
key = str(uuid.uuid4()) # Persist and reuse on retries.
order = api('/orders', {'quoteId': quote['quoteId']}, key)
# Show order['checkoutUrl'] privately to the customer.
Objetivos, precios y reintentos
Los seguidores apuntan a un perfil público. Los me gusta/vistas apuntan a 1–20 publicaciones devueltas por list_posts para ese perfil; las cantidades se dividen en unidades enteras de manera uniforme; las primeras publicaciones seleccionadas reciben el resto (500 / 3 = 167 + 167 + 166). Las vistas requieren publicaciones con isVideo:true; los tipos de medios desconocidos no se pueden comprar como vistas de video. Una cotización caduca en 15 minutos y se vuelve a verificar antes de realizar el pedido. PRICE_CHANGED devuelve una cotización de reemplazo para aceptación. No se devuelven precios ni perfiles sustitutos. Un pedido mantiene su precio aceptado. Idempotency-Key es obligatoria para la creación y el pago con crédito (16–128 letras, números, guiones bajos, puntos o guiones). Reutiliza tanto el cuerpo como la clave después de fallos de red. Un cuerpo diferente con una clave existente produce IDEMPOTENCY_CONFLICT. Nunca crees otro pedido para resolver una entrega incierta.
Autoriza el gasto
Abre /wallet y verifica tu correo electrónico mediante un enlace de un solo uso. No hay contraseña. Recarga a través de Finby (CZK 100–10,000 por recarga). Otorga un presupuesto total, un máximo por pedido y una caducidad (hasta 90 días) a tu agente. Las concesiones cubren cualquier perfil compatible. Las recargas no aumentan las concesiones. Revoca en /wallet. No se admiten cargos automáticos a tarjeta ni recargas automáticas. Si no hay crédito suficiente, el cliente debe completar una nueva recarga por sí mismo. Las credenciales de API/MCP nunca contienen datos de tarjeta.
Autenticación OAuth y HTTP
Metadatos OAuth: /.well-known/oauth-authorization-server. Metadatos de recursos protegidos: /.well-known/oauth-protected-resource/mcp y /.well-known/oauth-protected-resource/api/v1. Registro de cliente público: POST /oauth/register con client_name, redirect_uris y token_endpoint_auth_method:none. Se requiere código de autorización con S256 PKCE y state. Recursos compatibles: https://tvojelajky.cz/mcp y https://tvojelajky.cz/api/v1. Los tokens están vinculados a la audiencia; obtén una autorización separada para el otro recurso. Ámbitos: orders:read, orders:write, wallet:read, wallet:spend. Los tokens de acceso duran como máximo 1 hora; los tokens de actualización rotados como máximo 30 días, ambos limitados por la caducidad de la concesión. Las llamadas HTTP privadas usan Authorization: Bearer TOKEN. Mantén los tokens en almacenamiento secreto, nunca en URLs ni archivos de repositorio.
Errores y estado de entrega
HTTP devuelve {data:...} o {error:{code,details?}}. Fallos de validación: 400; autorización requerida: 401; ámbito prohibido: 403; pedido no disponible: 404; conflictos de precio/idempotencia/presupuesto/pago: 409; cotización/enlace caducado: 410; límites: 429 con Retry-After; servicio/proveedor no disponible: 503. Consulta el estado del pedido no más rápido que cada 30 segundos. pending significa no pagado; paid significa pago aceptado; processing_started/processing significa que la entrega está en curso; completed significa entrega completa; partial y failed requieren inspección. needsReview indica un fallo o un pedido pagado sin campañas. Un retorno del navegador o un tiempo de espera del proveedor nunca prueba el pago ni autoriza otro pedido.
Enlaces y soporte
Catálogo: https://tvojelajky.cz/sluzby OpenAPI: https://tvojelajky.cz/openapi.json Billetera: https://tvojelajky.cz/wallet Términos: https://tvojelajky.cz/terms Privacidad: https://tvojelajky.cz/privacy Soporte: https://tvojelajky.cz/contact Informa un problema de pedido de forma privada con su ID de pedido. No incluyas tokens ni credenciales de pago.