Subtraq

Create short links, track clicks and attribute sales — 8 tools backed by the Subtraq API.

Sollte ich dies verwenden

Qualität und Sicherheit

A
Qualität der Beschreibung
78%
Vollständigkeit des Schemas
98%
Qualität der Benennung
100%
Risiko der Vergiftung
100%
Übereinstimmung der Berechtigungen
100%
Einhaltung des Protokolls
100%

Befunde (4)

  • LOWTool 'create_space' description lacks action verbin create_space
  • LOWTool 'create_link' description lacks action verbin create_link
  • LOWTool 'get_link' description lacks action verbin get_link
  • LOWTool 'track_sale' description lacks action verbin track_sale

Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.

Kontextkosten

~1,707Tokens (Tool-Definitionen)
~1.6 KBTypische Antwortgröße
Mittlere Auswirkung auf die Aufmerksamkeit (1.33% von 128k Kontext)

Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.

Installieren

Installation mit einem Klick

Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:

{
  "mcpServers": {
    "subtraq": {
      "url": "https://subtraq.co/api/mcp"
    }
  }
}

Remote-Endpunkte

https://subtraq.co/api/mcpstreamable-http

Was es kann

Tool-Inventar

Tools (8)

🟢 Nur lesen🟡 Schreiben🔴 Löschen⚪ Unbekannt
🟢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.

Eingabe-Schema

{
  "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.

Eingabe-Schema

{
  "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.

Eingabe-Schema

{
  "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.

Eingabe-Schema

{
  "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.

Eingabe-Schema

{
  "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.

Eingabe-Schema

{
  "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.

Eingabe-Schema

{
  "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.

Eingabe-Schema

{
  "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"
  ]
}

Community

Diesen Server bewerten

Nachweis

Aktuelle Beobachtungen

verifiziertVersion nicht aufgezeichnet8 Tools