Subtraq
Create short links, track clicks and attribute sales — 8 tools backed by the Subtraq API.
¿Debería usar esto?
Calidad y seguridad
Hallazgos (4)
- LOWen create_space
- LOWen create_link
- LOWen get_link
- LOWen track_sale
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"subtraq": {
"url": "https://subtraq.co/api/mcp"
}
}
}Puntos de conexión remotos
https://subtraq.co/api/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (8)
🟢list_spaces(limit, cursor)
Liste les espaces du compte. Un espace = un client, une marque ou un projet ; tout le reste (liens, clics, ventes) vit dedans.
Esquema de entrada
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"description": "1 à 100, 50 par défaut."
},
"cursor": {
"type": "string",
"description": "Curseur renvoyé par l'appel précédent (`nextCursor`)."
}
}
}🟡create_space(name, slug)
Crée un espace client. Refusé avec le code `space_limit_reached` si la formule est pleine.
Esquema de entrada
{
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Nom affiché, par exemple « Maison Lartigue »."
},
"slug": {
"type": "string",
"description": "Raccourci dans les URL. Déduit du nom s'il est omis."
}
},
"required": [
"name"
]
}🟢list_links(space, status, limit, cursor)
Liste les liens. Un lien PARENT porte la destination ; un PLACEMENT (sublink) porte les UTM d'une publication précise et hérite du reste.
Esquema de entrada
{
"type": "object",
"properties": {
"space": {
"type": "string",
"description": "Raccourci de l'espace. Omis = tous les espaces du compte."
},
"status": {
"type": "string",
"description": "active (défaut), archived, ou all."
},
"limit": {
"type": "integer",
"description": "1 à 100."
},
"cursor": {
"type": "string",
"description": "Curseur de la page suivante."
}
}
}🟡create_link(space, destination, parentId, slug, label, ...)
Crée un lien court. Sans `parentId`, c'est un lien parent et `destination` est obligatoire. Avec `parentId`, c'est un placement : il hérite de la destination du parent et porte ses propres UTM. Renvoie `shortUrl`, prêt à publier.
Esquema de entrada
{
"type": "object",
"properties": {
"space": {
"type": "string",
"description": "Raccourci de l'espace client."
},
"destination": {
"type": "string",
"description": "URL d'arrivée. Obligatoire pour un parent, interdite pour un placement."
},
"parentId": {
"type": "string",
"description": "Identifiant du lien parent, pour créer un placement."
},
"slug": {
"type": "string",
"description": "Raccourci souhaité. Tiré au sort s'il est omis."
},
"label": {
"type": "string",
"description": "Nom du placement, par exemple « Pub Meta — mars »."
},
"utmSource": {
"type": "string",
"description": "utm_source du placement."
},
"utmMedium": {
"type": "string",
"description": "utm_medium du placement."
},
"utmCampaign": {
"type": "string",
"description": "utm_campaign du placement."
},
"utmTerm": {
"type": "string",
"description": "utm_term du placement."
},
"utmContent": {
"type": "string",
"description": "utm_content du placement."
},
"domain": {
"type": "string",
"description": "Adresse qui porte le lien (« liens.votresite.fr »). Omise = le même choix que l'écran de création : le domaine de marque réservé à l'espace, sinon l'unique domaine de marque du compte, sinon l'adresse offerte de l'espace (« client.sbtq.link ») ; pour un placement, le domaine de son parent. Pour le domaine partagé, le nommer : « sbtq.link » (la valeur `domain` d'un lien partagé). Un domaine de marque doit être vérifié dans le compte, et libre pour cet espace."
}
},
"required": [
"space"
]
}🟢get_link(id)
Détaille un lien : sa destination FINALE (UTM comprises, telle que la reçoit le site d'arrivée) et ses clics sur 30 jours.
Esquema de entrada
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Identifiant du lien."
}
},
"required": [
"id"
]
}🟡update_link(id, destination, label, archived, domain, ...)
Modifie la destination, le libellé ou l'ADRESSE d'un lien (`domain` et/ou `slug`), ou l'archive. Changer d'adresse ne casse rien : l'ancienne adresse continue de rediriger vers le même endroit et ses clics comptent sur ce lien (`previousShortUrls`) ; les placements qui partageaient son domaine le suivent. Un lien n'est JAMAIS supprimé : archivé, il cesse de rediriger (anciennes adresses comprises) mais son historique reste.
Esquema de entrada
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Identifiant du lien."
},
"destination": {
"type": "string",
"description": "Nouvelle URL d'arrivée (liens parents seulement)."
},
"label": {
"type": "string",
"description": "Nouveau libellé."
},
"archived": {
"type": "boolean",
"description": "true pour archiver, false pour réactiver."
},
"domain": {
"type": "string",
"description": "Nouveau domaine de l'adresse (« liens.votresite.fr »), vérifié dans le compte et libre pour l'espace du lien ; « sbtq.link » pour revenir au domaine partagé. L'ancienne adresse continue de marcher."
},
"slug": {
"type": "string",
"description": "Nouveau raccourci. Pris sur le domaine visé : erreur `slug_taken`, avec un raccourci libre proposé dans `details.suggestion`."
}
},
"required": [
"id"
]
}🟢get_analytics(space, period, model)
Les chiffres d'un espace : clics, prospects, ventes, revenu ATTRIBUÉ et revenu NON attribué, plus le détail placement par placement. Montants en CENTIMES. Subtraq ne convertit pas les devises : si `mixedCurrencies` est vrai, les totaux ne concernent que `currency`. `model` choisit la lecture de l'attribution ; la réponse rappelle toujours lequel a servi.
Esquema de entrada
{
"type": "object",
"properties": {
"space": {
"type": "string",
"description": "Raccourci de l'espace client."
},
"period": {
"type": "string",
"description": "7d, 30d (défaut), 90d ou all."
},
"model": {
"type": "string",
"description": "Modèle d'attribution : `first` (premier clic, défaut et référence du produit), `last` (dernier clic avant la conversion) ou `linear` (partage entre tous les placements cliqués, revenu réparti au centime près). Dans les trois cas, attribué + non attribué = revenu total."
}
},
"required": [
"space"
]
}⚪track_sale(space, email, externalId, clickId, amount, ...)
Enregistre une VENTE et la rattache au placement d'origine de la personne. Montant en CENTIMES. `invoiceId` rend l'appel idempotent : le rejouer ne facture jamais deux fois. Une vente ne peut PAS être envoyée depuis un navigateur.
Esquema de entrada
{
"type": "object",
"properties": {
"space": {
"type": "string",
"description": "Raccourci de l'espace client."
},
"email": {
"type": "string",
"description": "Email de la personne — le plus simple pour la retrouver."
},
"externalId": {
"type": "string",
"description": "Son identifiant dans votre système, si vous en avez un."
},
"clickId": {
"type": "string",
"description": "Identifiant de clic, si vous l'avez conservé."
},
"amount": {
"type": "integer",
"description": "Montant en CENTIMES. 43 € s'écrit 4300."
},
"currency": {
"type": "string",
"description": "Code à trois lettres. USD par défaut."
},
"invoiceId": {
"type": "string",
"description": "Votre numéro de facture — c'est lui qui garantit l'idempotence."
}
},
"required": [
"space",
"amount",
"invoiceId"
]
}Comunidad
Evidencia