MCP

Référence des outils

Chaque outil du serveur MCP de Teddit, avec ses paramètres et ce qui est renvoyé. Il y a 30 outils, une ressource et deux modèles de prompt.

Comment les outils se comportent

  • Les résultats sont en JSON, renvoyés en texte. render_chart renvoie aussi une image. Les dates sont en ISO 8601, en UTC.
  • Les sites s’appellent des projets. Presque chaque outil prend projectId, un nombre obtenu avec list_projects. Les prompts, les concurrents et les analyses ont aussi des identifiants numériques.
  • Les assistants ont des clés : openai (ChatGPT), anthropic (Claude), perplexity, gemini, google_aio (AI Overviews), google_ai_mode (AI Mode).
  • Les rapports décrivent l’état actuel : la dernière réponse par prompt et par assistant, comme expliqué sous Indicateurs et statuts. Dans le JSON, « cité » est mentioned, « lié » est ownCited, votre place est brandRank, et visibility est le score de visibilité.
  • Les erreurs reviennent comme un résultat d’outil marqué en erreur, avec le texte Error: … et le même message que l’application afficherait.

L’étiquette à côté de chaque outil est l’accès de clé le plus bas qui peut l’appeler :

ÉtiquetteAccès de la cléRôle derrière
LectureLecture, Lecture + édition, Lecture + analyseviewer et au-dessus
Lecture + éditionLecture + édition, Lecture + analysemember et au-dessus
Lecture + analyseLecture + analyseadmin

Espace de travail et sites

whoami Lecture

Sans paramètres. Renvoie au nom de qui la clé agit : kind (token), tokenName, user (la personne qui a créé la clé), org (l’espace de travail : id, name, plan) et role (viewer, member ou admin).

list_projects Lecture

Sans paramètres. Renvoie l’espace de travail, ses limits (sites, prompts par site, analyses par mois et analyses utilisées ce mois-ci), les connectedAssistants, et une entrée par site : id, name, domain, industry, language, location, les nombres de prompts (total, active, draft), le nombre de concurrents, lastAnsweredAt, scanRunning, les stats actuelles (réponses, mentionRate, citationRate, promptCoverage, avgRank, visibility, décomptes de ton), les quatre premières marques par shareOfVoice, et nextSteps : ce qui manque encore dans la configuration du site.

list_providers Lecture

Sans paramètres. Renvoie les six assistants avec key, label, le model en usage, modelOptions, et si l’assistant est enabled.

create_project Lecture + analyse

Commence à suivre un site. Refusé quand le nombre de sites de l’espace de travail est épuisé, ou quand l’adresse n’est pas un domaine.

  • name (texte, obligatoire) : le nom de marque tel qu’il apparaît dans les réponses.
  • url (texte, obligatoire) : le site, par exemple brightloop.example.
  • industry (texte).
  • brandTerms (liste de textes, jusqu’à 50) : d’autres orthographes qui désignent toujours la marque.
  • competitors (liste, jusqu’à 50) : des objets avec name et un domain optionnel.
  • language (texte) : la langue dans laquelle les réponses sont demandées. Par défaut English.
  • location (texte) : où se trouve le client. Par défaut United States.

Renvoie le nouveau site.

update_project Lecture + édition

Change un site. Paramètres : projectId (obligatoire) et n’importe lequel de name, industry, brandTerms, language, location, scanFrequencyDays (1 à 365, l’intervalle entre les analyses planifiées).

Renvoie project et reanalysis. Quand le nom ou les termes de marque changent, chaque réponse stockée est relue immédiatement et reanalysis dit combien de réponses ont été lues et combien citent la marque avant et après. Aucun assistant n’est appelé pour cela.

Rapports

get_dashboard Lecture

Le rapport hebdomadaire d’un site, les données derrière le Tableau de bord.

  • projectId (obligatoire).
  • week (YYYY-MM-DD) : n’importe quelle date dans la semaine voulue. Omis, la dernière semaine.

Les parties principales du résultat :

  • now et previous : décomptes et parts pour la semaine et la semaine précédente (answers, mentioned, mentionRate, ownCited, citationRate, promptCoverage, avgRank, visibility, décomptes de ton).
  • verdict : un titre et un résumé d’un paragraphe de la semaine.
  • leaderboard : vous et chaque concurrent suivi avec les réponses où il est cité, la part de voix et l’évolution.
  • shareOfVoice, sources (les cinq domaines les plus cités, les citations de vos pages), assistants (une ligne par assistant).
  • changes : gained et lost (les prompts où un assistant a commencé ou cessé de vous citer, au plus 50 chacun), et linkGained et linkLost pour les liens.
  • categories (chiffres par catégorie), activity (les analyses de la semaine, réponses collectées, dépenses) et actions (jusqu’à trois prochaines étapes suggérées).

Avant la première analyse, il renvoie un court texte disant qu’il n’y a rien à rapporter.

Semaine après semaine pour un site : les dix dernières semaines.

  • projectId (obligatoire).
  • limit (1 à 200, par défaut 25) : le nombre maximal de prompts à renvoyer dans chaque liste.

Renvoie weeks ; weekByWeek (par semaine : réponses, mentionRate, citationRate, promptCoverage et visibility, chacun avec son évolution) ; wonLost (prompts gagnés et perdus par semaine) ; topics (par catégorie, la part de ses prompts qui vous citent, par semaine) ; topPrompts (les prompts avec le plus haut score de visibilité : latest est le score, change1w et change4w son évolution sur une et quatre semaines) ; et stability avec trois listes et leurs counts :

ListeUn prompt y figure quand
heldau moins un assistant vous a cité dans chacune des quatre dernières semaines.
lostvous avez été cité dans une semaine antérieure et ne l’avez pas été depuis deux semaines ou plus.
volatileil n’est ni tenu ni perdu, et il a basculé entre cité et non cité au moins deux fois.

Prompts

list_prompts Lecture

Les prompts suivis d’un site avec le verdict actuel de chaque assistant.

  • projectId (obligatoire).
  • q : recherche de texte dans le prompt.
  • category : un nom de catégorie.
  • status : draft, active ou paused.
  • verdict : named, lost (un concurrent suivi est cité, et vous n’êtes ni cité ni lié), cited (lié mais pas cité), missing (ni l’un ni l’autre) ou failed. Les règles exactes sont celles du filtre Résultat.
  • competitor : le nom d’un concurrent suivi qu’une réponse actuelle cite.
  • stability : held, volatile ou lost, tels que définis sous get_trends.
  • scanned : yes ou never.
  • sort : created (par défaut), text, category, rank ou scanned. dir : asc ou desc.
  • page (à partir de 1) et perPage (5 à 200, par défaut 20).

Renvoie total, page, lastPage, engines (les assistants qui ont répondu), facets (les catégories, sources et concurrents par lesquels filtrer) et prompts. Chaque prompt a id, text, category, status, intent, source, bestRank, lastScanAt, stability et verdicts : par assistant, l’un de named first, named, linked, not named, not named, failed.

get_prompt Lecture

Un prompt en entier, avec la réponse d’un assistant mot pour mot. La réponse porte surface (app, api ou google : d’où elle a été lue, voir D’où vient une réponse) et askedFrom (pays, langue, recherche web).citedInsteadOfYou liste, sur les dernières réponses, les sites tiers cités là où un concurrent est cité et pas vous, avec les rivaux et les assistants à côté de chacun.

  • projectId, promptId (obligatoires).
  • engine : l’assistant dont inclure la réponse. Omis, le premier qui a répondu.

Renvoie prompt ; verdicts par assistant (mentioned, brandRank, ownCited, sentiment, error, scannedAt) ; heatmap (par assistant et par semaine, un niveau de 0 à 3 : non visible, lié seulement, cité, cité en premier) ; et answer : provider, model, scannedAt, les verdicts, howDescribed (la phrase qui vous décrit), le text complet, competitorsNamed, searches (les recherches web effectuées par l’assistant, quand il les divulgue) et sources. Les sources viennent en quatre groupes : own (votre site), opportunity (pages tierces), competitor (sites des concurrents) et reference (documentation et sites officiels), chaque page avec son url, son kind et son citedTimes.

add_prompts Lecture + édition

Ajoute des prompts à un site.

  • projectId (obligatoire).
  • prompts (liste de 1 à 200, obligatoire). Chaque élément : text (3 à 500 caractères, obligatoire), category, intent (informational, commercial, transactional, navigational ; par défaut informational), funnel (awareness, consideration, decision ; par défaut awareness), status (par défaut active).

Renvoie added (un décompte) et failed : les textes qui n’ont pas été ajoutés, chacun avec la raison. Un texte déjà suivi sur le site, et tout ce qui dépasse la limite de prompts du site, finit là.

update_prompt Lecture + édition

Modifie un prompt. Paramètres : projectId, promptId (obligatoires) et n’importe lequel de text, category, intent, funnel, status. Les réponses collectées restent avec le prompt ; un nouveau texte change ce que les analyses suivantes demandent. category remplace toutes les catégories du prompt par celle-là. Renvoie le prompt.

bulk_update_prompts Lecture + édition

Change plusieurs prompts à la fois. Paramètres : projectId, ids (1 à 5000 identifiants de prompts, obligatoire) et un ou plusieurs parmi status, category (les classe sous cette seule catégorie), addCategory (ajoute une catégorie à celles que chaque prompt a déjà), delete (true supprime les prompts avec leurs réponses et ne peut pas être annulé). Renvoie ok.

import_queries Lecture + édition

Importe une liste de prompts ou de requêtes de recherche en texte, au format décrit sous Importer des prompts.

  • projectId (obligatoire).
  • contents (texte, obligatoire) : les lignes du fichier.
  • status : draft (par défaut) ou active.
  • dryRun (true ou false) : compter seulement ce qui se passerait.

Renvoie rows, created, updated (déjà suivis ; leurs catégories sont remplacées quand la ligne en nomme), skipped et categories (lignes par catégorie).

rewrite_queries Lecture + analyse

Réécrit les requêtes de recherche importées (« email automation pricing ») en questions complètes, avec un modèle d’IA. Ce n’est pas facturé, mais exige un solde supérieur à zéro, et peut être appelé jusqu’à 10 fois par heure. Seuls les prompts importés dont le texte est encore la requête d’origine sont touchés ; l’original reste stocké comme mot-clé du prompt. Paramètres : projectId (obligatoire), category (limiter à une catégorie), dryRun (montrer les réécritures sans enregistrer). Renvoie pending, written, skipped et pairs : chaque original avec sa réécriture.

Concurrents et pages

list_competitors Lecture

Paramètre : projectId. Renvoie competitors (id, name, domain, aliases) ; answersCollected ; ownNamedIn et namedIn (dans combien de réponses actuelles vous et chaque concurrent êtes cités) ; board (pour vous et chaque marque suivie, la part des réponses qui la citent, au total et par assistant) ; et suggestions : des noms non suivis qui apparaissent dans au moins trois réponses des 28 derniers jours.

add_competitor Lecture + édition

Paramètres : projectId, name (obligatoire), domain, aliases (jusqu’à 30 autres orthographes). Les réponses stockées sont relues immédiatement pour la nouvelle marque, sans appeler aucun assistant. Renvoie competitor et reanalysis.

update_competitor Lecture + édition

Paramètres : projectId, competitorId (tous deux obligatoires), name, domain, aliases. Renvoie competitor et reanalysis.

Seul ce que vous envoyez change. Une valeur omise garde ce qui est stocké ; aliases remplace toute la liste ; domain: null retire le domaine.

remove_competitor Lecture + édition

Paramètres : projectId, competitorId. La marque cesse d’être suivie et les réponses stockées sont relues sans elle. Les réponses elles-mêmes sont conservées.

get_competitor_report Lecture

Paramètres : projectId, competitorId. Un concurrent face à vous : des chiffres appariés avec leurs évolutions (tiles), par assistant (assistants), par catégorie (topics), les prompts où seul lui est cité, les deux, ou seulement vous (prompts), les pages de son site que les assistants citent (pages), et les sites tiers cités dans les réponses qui le citent et pas vous (sources : domaine, type, réponses, prompts, assistants). Avant la première analyse, il renvoie empty: true.

list_pages Lecture

Les pages de votre site, lues depuis son sitemap, et si une réponse actuelle pointe vers chacune. Le sitemap est lu quand le site est ajouté puis chaque semaine ; import_sitemap le lit maintenant.

  • projectId (obligatoire).
  • shown : yes pour les pages vers lesquelles une réponse actuelle pointe, no pour le reste.
  • q : recherche dans l’adresse et le titre.
  • page, perPage (5 à 200, par défaut 50).

Renvoie items (id, url, title, path, section, shownBy : les assistants qui pointent vers elle, prompts : combien de prompts y mènent), total, siteTotal, shown et sections.

get_crawler_access Lecture

Ce que votre robots.txt laisse lire à chaque robot IA. Paramètres : projectId (obligatoire), check (true relit d’abord le robots.txt et le llms.txt ; exige une clé Lecture + édition).

Renvoie checkedAt, robots (status : found, missing ou unreachable ; url, httpStatus, error), llmsTxt (present, url), crawlers (chacun avec token, operator, purpose, access : allowed, partial, blocked ou unknown, la line décisive et was quand il a changé) et history. Voir Accès des robots IA.

list_search_queries Lecture

Les recherches web effectuées par les assistants en répondant aux prompts actifs du site, à partir de la dernière réponse par prompt et par assistant, les plus fréquentes en premier (jusqu’à 500). Paramètre : projectId.

Chaque élément : query, answers (les réponses qui l’ont effectuée), named (parmi elles, celles qui vous ont cité), providers, prompts (id, text) et tracked (un prompt avec exactement ce texte existe).

import_sitemap Lecture + édition

Paramètre : projectId. Lit le sitemap du site maintenant (/sitemap.xml et les sitemaps nommés par le robots.txt, en suivant un index de sitemaps) et ajoute chaque page de votre propre domaine pas encore listée, jusqu’à 5 000 adresses. Renvoie seen et added. Échoue avec un message quand aucune page n’y est trouvée.

Analyses

get_scan_options Lecture

Paramètre : projectId. Ce avec quoi une analyse peut être configurée : engines (les assistants connectés), models (par assistant : le modèle par défaut et les autres options, chacune avec un label, un costPerAnswer estimé, une note et, quand elle ne peut pas être choisie, la raison dans unavailable ; pour ChatGPT et Gemini, les options incluent les réponses de l’application chatgpt-app / gemini-app (rapide, immédiat) et chatgpt-app-queue / gemini-app-queue (lent et moins cher, quelques minutes) : la réponse telle que l’application l’affiche), activePrompts, categories (prompts actifs par catégorie), scansThisMonth et scansPerMonth (la limite de l’espace de travail), et spentThisMonth (le coût des analyses du site ce mois civil).

estimate_scan Lecture

Ce qu’une analyse coûterait, avant qu’elle tourne. Prend les mêmes choix que start_scan :

  • projectId (obligatoire).
  • providers (liste de clés d’assistant) : quels assistants interroger. Omis, chaque assistant connecté.
  • promptIds (liste d’identifiants) : un ensemble choisi à la main. Omis, chaque prompt actif. Les prompts qui ne sont pas actifs sont ignorés.
  • category : analyser une seule catégorie.
  • sample (nombre) : analyser seulement ce nombre de prompts, tirés au hasard. repeats (1–5) : poser chaque question ce nombre de fois à chaque assistant ; les réponses, et le prix, suivent (voir Plusieurs réponses à une question).
  • models (objet) : clé d’assistant vers modèle, par exemple {"openai": "gpt-5.4-mini"}. Le modèle doit être l’une des options de cet assistant dans get_scan_options.

Renvoie prompts, answers, cost (dollars américains) et formatted. Ce que le chiffre comprend : Estimation du coût d’une analyse.

start_scan Lecture + analyse

Lance une analyse. Paramètres : tout ce que prend estimate_scan, plus budgetUsd (arrêter l’analyse dès qu’elle a coûté ce montant ; 0 ou omis signifie le double de son estimation) et label (jusqu’à 60 caractères). Renvoie l’analyse : id, status, providers, total, completed, failed, costUsd, budgetUsd, startedAt.

L’appel revient dès que l’analyse est mise en file ; suivez-la avec get_live_scan. Une analyse est refusée, avec la raison comme erreur, quand une autre analyse du site est en cours, qu’aucun prompt actif ne correspond, qu’un nom de modèle est inconnu, que le solde ne couvre pas l’analyse, que le site a atteint son plafond mensuel, ou que les analyses du mois de l’espace de travail sont épuisées.

get_live_scan Lecture

Paramètre : projectId. Renvoie run : null quand rien ne tourne, sinon l’analyse avec progress (elapsed, lastAnswer, secondes perAnswer, eta) et stalled (true quand des réponses sont en file et qu’aucune n’est arrivée après 20 secondes).

cancel_scan Lecture + analyse

Paramètres : projectId, runId. Arrête une analyse en cours. Les réponses encore en file sont abandonnées ; une réponse déjà en route peut encore arriver. Renvoie cancelled : false quand l’analyse était déjà terminée.

list_scans Lecture

Paramètre : projectId. Les 30 dernières analyses du site, les plus récentes en premier, chacune avec son statut, ses assistants, ses modèles, ses nombres de réponses et costUsd. Statuts : queued, running, cancelling, cancelled, done, failed.

Graphiques

render_chart Lecture

Dessine un graphique et le renvoie en image, suivi des valeurs tracées en texte.

Demandez l’un des graphiques propres au site avec projectId et chart :

chartMontre
report.assistants.mentionRateLa part des réponses qui vous citent, une courbe par assistant, dix semaines.
report.assistants.citationRateLa part des réponses qui pointent vers votre site, une courbe par assistant.
report.assistants.visibilityLe score de visibilité (0 à 100), une courbe par assistant.
report.competitorsLa part des réponses qui citent chaque marque, cette semaine face à la précédente.
report.changesSur combien de prompts chaque assistant a commencé et cessé de vous citer.
trends.ratesLes réponses qui vous citent et pointent vers vous, semaine après semaine.
trends.promptCoverageLa part des prompts où vous êtes cité, semaine après semaine.
trends.visibilityLe score de visibilité du site, semaine après semaine.
trends.wonLostLes prompts gagnés et perdus par semaine.
competitors.trendVous et les marques suivies dans le temps.
competitors.headToHeadPar concurrent, les prompts où un seul de vous deux est cité.
competitor.trendVous face à un concurrent. Exige competitorId.

Ou dessinez vos propres données avec custom :

{
  "custom": {
    "type": "bar",
    "labels": ["Brightloop", "Mailora", "Quillsend"],
    "series": [{ "label": "Named in", "points": [12, 20, 16] }],
    "suffix": " answers",
    "horizontal": true
  },
  "title": "Answers naming each brand"
}
  • custom.type : line ou bar. labels et series sont obligatoires ; suffix, horizontal et stacked sont optionnels.
  • week (YYYY-MM-DD) : pour les graphiques report.*, une semaine passée.
  • title (jusqu’à 120 caractères), width (300 à 2000, par défaut 900), height (200 à 1500), dark (true pour un fond sombre).

Ressource et modèles de prompt

Les clients qui prennent en charge les ressources et les prompts MCP voient aussi :

NomTypeCe que c’est
teddit://projectsRessourceLes sites de l’espace de travail avec leurs chiffres actuels, en JSON.
weekly_reviewPromptPrend projectId. Demande à votre IA de faire le bilan de la semaine du site : ce qui a bougé, la raison probable, trois actions, et un graphique. Il utilise get_dashboard, get_trends, list_prompts et render_chart.
grow_prompt_setPromptPrend projectId et en option count (par défaut 10). Demande à votre IA de proposer de nouvelles questions pour les catégories les plus faibles, de vous les montrer, et de les ajouter en brouillons avec add_prompts une fois que vous êtes d’accord.

Les modèles ne font que remettre une instruction toute prête à votre IA. Les propositions et le bilan sont écrits par votre IA, pas par Teddit.

Chaque outil sauf render_chart a des endpoints REST qui renvoient les mêmes données ; voir Endpoints.