Subtraq

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

사용해야 할까요

품질 및 안전성

A
설명 품질
78%
스키마 완전성
98%
이름 품질
100%
오염 위험
100%
권한 일치
100%
프로토콜 준수
100%

발견 사항 (4)

  • LOWTool 'create_space' description lacks action verbcreate_space에서
  • LOWTool 'create_link' description lacks action verbcreate_link에서
  • LOWTool 'get_link' description lacks action verbget_link에서
  • LOWTool 'track_sale' description lacks action verbtrack_sale에서

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~1,707토큰 (도구 정의)
~1.6 KB일반적인 응답 크기
중간 정도의 주의 영향 (128k 컨텍스트의 1.33%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

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

원격 엔드포인트

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

할 수 있는 일

도구 목록

도구 (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.

입력 스키마

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

입력 스키마

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

입력 스키마

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

입력 스키마

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

입력 스키마

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

입력 스키마

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

입력 스키마

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

입력 스키마

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

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 8개