Communitygithub.com

amplitude/builder-skills

Instrumentez un serveur MCP Node/TypeScript avec le SDK @amplitude/mcp-analytics d'Amplitude pour que les appels d'outils, les sessions et les justifications soient suivis comme des événements Amplitude.

Qu'est-ce que builder-skills ?

Cette compétence guide un développeur à travers l'instrumentation d'un serveur MCP (Model Context Protocol) Node/TypeScript avec le SDK `@amplitude/mcp-analytics` d'Amplitude. Elle permet de transformer chaque appel d'outil en un événement Amplitude traçable, joignable aux autres données produit (rétention, revenus, usage web/mobile). La compétence couvre quatre étapes clés : l'installation du SDK et l'instrumentation des appels d'outils (obligatoire), la configuration correcte de l'identité utilisateur (obligatoire pour éviter une population déconnectée), la capture de la justification de l'agent (recommandée via un champ `rationale` dans les schémas d'entrée), et l'ajout de paramètres UTM aux liens sortants (recommandé pour attribuer le trafic MCP). Elle insiste sur l'importance de toujours se référer au README officiel du SDK pour les détails d'API, car celui-ci évolue rapidement. Enfin, elle mentionne les erreurs courantes à éviter, comme l'utilisation de snippets obsolètes ou l'oubli de la capture UTM côté web.

Compatible avec✓Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/amplitude/builder-skills/tree/HEAD/engineering-skills/skills/instrument-mcp-server

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Configuration de l'Analytique MCP Amplitude

Instruments un serveur MCP pour que chaque appel d'outil devienne un événement Amplitude, joignable au reste des données Amplitude du produit (rétention, revenus, usage web/mobile).

La référence SDK faisant autorité est le README du paquet : https://github.com/amplitude/Amplitude-MCP-Analytics-Node (npm: @amplitude/mcp-analytics). Le SDK est en préversion et évolue rapidement — récupérez toujours le dernier README et suivez-le pour l'installation, les formes d'API, la configuration et les événements par défaut. Ne vous fiez pas à des extraits mémorisés ou aux résumés de cette compétence pour les détails de l'API du SDK ; le README prévaut en cas de conflit.

Il y a quatre étapes. Les étapes 1 à 2 sont obligatoires et sont documentées dans le README — cette compétence vous dit quelles sections suivre et quels invariants vérifier. Les étapes 3 à 4 sont fortement recommandées et sont documentées en détail ici, car elles nécessitent des modifications en dehors du SDK (les schémas d'outils du serveur et l'application web du produit) que le README du SDK ne couvre intentionnellement pas.

Faites-les dans l'ordre : Étape 1 (appels d'outils) → Étape 2 (identité) → Étape 3 (justification) → Étape 4 (UTM, uniquement si le serveur renvoie des liens). Assurez-vous d'avoir l'identité correcte avant de déclarer quoi que ce soit comme « terminé » — tout ce qui suit en dépend.

Avant de commencer

Confirmez :

  1. Il s'agit d'un serveur MCP Node/TypeScript basé sur @modelcontextprotocol/sdk. Ce SDK ne prend pas en charge d'autres langages/exécutions.
  2. L'utilisateur a (ou peut obtenir) une clé API Amplitude pour le projet dans lequel les événements doivent arriver.
  3. Quel gestionnaire de paquets le dépôt utilise (pnpm/npm/yarn) — ajustez la commande d'installation en conséquence.

Étape 1 — Installer le SDK et suivre les appels d'outils (obligatoire)

Récupérez le README et suivez ses sections Installation et Démarrage rapide. Installez toujours la dernière version publiée (ex. pnpm add @amplitude/mcp-analytics@latest) — ne figez jamais une version de mémoire, et ne reproduisez pas les commandes d'installation de cette compétence.

Invariants à vérifier une fois le branchement effectué (le README explique chacun) :

  • analytics.instrumentServer(server, ...) s'exécute avant server.connect() — l'ordre est important.
  • Chaque gestionnaire d'outil est enveloppé avec analytics.instrumentTool(...). Les outils non enveloppés ne sont pas suivis. L'enveloppe a la même forme que le gestionnaire et est un passe-through sans effet si le serveur n'a jamais été lié, il est donc sûr d'envelopper défensivement.
  • Les événements par défaut portent tous le préfixe [MCP] , donc ils n'entrent jamais en collision avec les événements Amplitude existants du produit. Consultez le tableau des Événements par défaut du README (et docs/events.md dans le dépôt) pour l'ensemble actuel des événements et propriétés.

Optionnel : attachez des dimensions personnalisées stables (niveau de plan, équipe, indicateurs de fonctionnalité) via extra sur instrumentTool/instrumentServer — voir la section Propriétés d'événement personnalisées du README.

Étape 2 — Obtenir une identité correcte (obligatoire, faites ceci avant de déclarer l'étape 1 « terminée »)

Les événements MCP doivent porter le même user_id que le produit envoie déjà à Amplitude depuis le web/mobile. Ignorer ceci et l'utilisation MCP apparaîtra comme une population déconnectée qui ne peut pas être jointe aux données produit — ceci va à l'encontre de l'objectif principal de l'intégration.

Suivez la section Identité du README pour l'API actuelle : elle propose une liaison au niveau du serveur, setIdentity() par requête à l'intérieur d'un gestionnaire, et une carte resolveIdentity optionnelle à partir des revendications authInfo de la requête. Choisissez celle qui correspond au modèle d'authentification du serveur.

Un comportement à signaler à l'utilisateur : les événements entièrement anonymes, sans ancrage sont ignorés par défaut (non comptés comme utilisateurs) sauf si l'option emitAnonymousEvent: true est explicitement activée pour un suivi uniquement agrégé — demandez avant d'activer ceci, car cela modifie ce qui est compté.

Étape 3 — Capturer la justification (recommandé)

Contrairement à un humain cliquant sur un bouton, un agent peut vous dire pourquoi il a appelé un outil. Capturer ceci transforme les données de « ce qui s'est passé » en « ce que l'utilisateur essayait de faire ».

Le côté SDK est un appel (analytics.setRationale(...) — voir la section Justification du README), mais le SDK ne lit jamais la justification à partir des entrées de l'outil lui-même : comment la justification atteint le serveur est une convention côté serveur que cette compétence implémente. Le modèle éprouvé est l'injection de schéma — ajoutez un champ rationale optionnel au schéma d'entrée de chaque outil. Comme le paramètre est décrit dans le schéma que les agents lisent déjà, ils le remplissent sans y être invités, sur tous les clients, avec zéro modification côté client :

// Ajoutez au schéma d'entrée de chaque outil (exemple avec zod) :
rationale: z
  .string()
  .optional()
  .describe(
    'Brève explication de la raison pour laquelle vous appelez cet outil et ce que ' +
    'vous attendez d\'apprendre du résultat.',
  ),

Puis lisez-la à l'intérieur du gestionnaire instrumenté et transmettez-la au SDK :

analytics.instrumentTool(async (args, extra) => {
  if (typeof args.rationale === 'string') {
    analytics.setRationale(args.rationale);
  }
  return doWork(args);
}, { name: 'search' });

Rendre le champ optionnel signifie que rien ne casse lorsqu'un agent l'omet. Il est émis comme la propriété réservée [MCP] Rationale (tronquée à 1 000 caractères ; la dernière écriture gagne). Cela vaut la peine d'être fait sur chaque outil, pas seulement un échantillon.

Étape 4 — Baliser UTM les liens sortants (recommandé, uniquement si le serveur renvoie des URL)

Cette étape est entièrement en dehors du SDK — elle modifie la façon dont le serveur construit les URL et dépend de l'analyse côté web du produit. Elle n'est pas couverte dans le README du SDK.

Si une réponse d'outil inclut un lien (tableau de bord, documentation, page produit), balisez-le avant qu'il ne quitte le serveur afin que les clics soient attribuables au trafic MCP/agent au lieu d'apparaître comme directs :

function addUtmParams(url: string, clientName?: string): string {
  const u = new URL(url);
  u.searchParams.append('utm_source', 'mcp');
  u.searchParams.append('utm_medium', 'referral');
  // Le client connecté (ex. "Claude", "Cursor"), si vous le connaissez :
  u.searchParams.append('utm_content', clientName ?? 'unknown');
  return u.toString();
}

Faites passer chaque chemin de construction d'URL dans les réponses d'outils par une fonction centrale comme celle-ci — un seul lien non balisé brise l'histoire d'attribution pour ce flux.

Prérequis (dites-le explicitement à l'utilisateur) : cela ne fonctionne que si leur analyse web capture les paramètres UTM sur les événements de visionnage de page (ou tout autre événement que leur site déclenche à l'arrivée). Le SDK Browser 2 d'Amplitude le fait par défaut — voir Suivi de l'attribution marketing (Les paramètres UTM, de référent et d'ID de clic sont capturés d'office). S'ils utilisent un suivi de visionnage de page personnalisé, ils doivent confirmer que les valeurs UTM arrivent également sur ces événements, sinon il n'y a rien à joindre aux clics balisés MCP.

Documentation Amplitude pertinente :

Après l'instrumentation

Une fois que les événements circulent, dirigez un agent de codage vers la compétence analyze-mcp-server publiée d'Amplitude pour effectuer un clustering d'intention et faire apparaître les modèles d'erreur d'appel d'outil par intention. (Si ce projet a la compétence mcp-intent-error-analysis installée, c'est celle-ci — utilisez-la une fois que l'utilisateur a des données qui circulent et souhaite les analyser, plutôt que de dupliquer cette analyse ici.)

Erreurs courantes à signaler

  • Suivre des extraits d'API obsolètes au lieu du README actuel — récupérez-le à jour ; le SDK est en préversion et évolue rapidement.
  • Installer une version figée/ancienne au lieu de la dernière version publiée.
  • Appeler instrumentServer() après server.connect() — doit être avant.
  • Envelopper certains gestionnaires d'outils mais pas d'autres — chaque outil a besoin de instrumentTool.
  • Envoyer un user_id qui ne correspond pas à celui utilisé sur le web/mobile — casse la possibilité de jonction, le but même de l'intégration.
  • Activer emitAnonymousEvent: true sans que l'utilisateur comprenne que cela gonfle les comptes agrégés avec du trafic sans ancrage.
  • Oublier le prérequis UTM (capture côté web) et supposer que le simple balisage des liens est suffisant.

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

amplitude/builder-skills

Performs deep analysis of a specific Amplitude chart to explain trends, anomalies, and likely drivers. Use when a metric looks unusual, investigating a spike or drop, or understanding the "why" behind numbers.

amplitude/builder-skills

Deeply analyze Amplitude dashboards by analyzing key charts, surfacing top areas for concern and takeaways, identify anomalies, then explain changes using customer feedback trends.

amplitude/builder-skills

Designs A/B tests with proper metrics and variants, analyzes running or completed experiments, and interprets results with statistical rigor. Use when setting up experiments, checking experiment status, analyzing results, or making ship decisions.

amplitude/builder-skills

Synthesizes customer feedback into actionable themes including feature requests, bugs, pain points, and praise. Use when planning product roadmap, understanding user sentiment, investigating specific issues, or preparing voice-of-customer reports.

amplitude/builder-skills

Analyze MCP server usage instrumented with Amplitude's MCP Analytics SDK: break usage and errors down by tool, read the rationales within each tool to see what callers are trying to do, and produce a prioritized write-up of actionable fixes. Use this skill whenever the user asks to understand how their MCP server is being used, what agents/users are trying to do with it, why tool calls are failing, what to fix or improve in their MCP server, or asks for an "MCP usage report", "tool error analysis", "intent analysis", "rationale clustering", or "MCP insights". Also trigger when the user mentions [MCP]-prefixed events, tool rationale, tool call errors, or just finished instrumenting their MCP server and wants to see what the data says. Requires the Amplitude MCP connector.

amplitude/builder-skills

Read lost deals and churned accounts from your CRM, extract reasons clustered by theme (missing features, pricing, competitors, UX), and write a prioritized weekly analysis with product improvement recommendations. Use before roadmap planning or to build the case for prioritizing retention work.

amplitude/builder-skills

Creates Amplitude charts from natural language descriptions, handling event selection, filters, groupings, and visualization choices. Use when you know what you want to measure but prefer not to build the chart manually.

amplitude/builder-skills

Guide an Amplitude user through building a custom agent by suggesting use cases grounded in their role and data, shaping the idea into a well-formed spec, and generating a ready-to-run Global Agent deeplink that creates it. Use to create, build, or set up a custom agent, automate a recurring analysis, or put a repeated report on a schedule.

amplitude/builder-skills

Builds comprehensive Amplitude dashboards from requirements or goals, organizing charts into logical sections with appropriate layouts. Use when creating a complete dashboard from scratch or assembling existing charts into a cohesive view.

amplitude/builder-skills

Monitors all active and recently completed experiments across Amplitude projects, triages them by importance, then runs deep analysis and reporting on the most impactful ones. Use when the user asks to "check on experiments", "experiment status", "experiment review", "what experiments are running", or wants a periodic experiment health report.

amplitude/builder-skills

Pull Intercom tickets and Slack support messages from the past 7 days, classify each signal, enrich with CRM data (ARR, plan, renewal), score by customer value and churn risk, and output a tiered priority report saved to Drive. Use when you need a fast, data-driven view of what support signals matter most.

amplitude/builder-skills

Use this skill whenever a user wants to improve existing pages on their website to get cited more by AI models — whether they say "our pages aren't getting cited", "improve this page for AI visibility", "which of our pages should we update", "make this article more cite-worthy", "our competitors are getting cited instead of us", "update our content for AI search", or any variation where the goal is improving an existing asset rather than creating something new. This skill pulls owned pages from AI Visibility, identifies which ones have citation potential but are underperforming, compares them against the external pages that are winning citations on the same topics, and produces section-level rewrites or a full-page update — then pushes the revision to the CMS as a draft. Trigger even if the user just says "help me get cited more" or "why is [competitor] getting cited instead of us".

amplitude/builder-skills

Use this skill whenever a user wants to win AI citations on prompts that competitors currently dominate — whether they say "competitors are getting cited instead of us", "we're losing on these prompts", "how do I outrank [competitor] in AI answers", "find prompts where we should be winning", "create content to beat [competitor]", or any variation where the goal is capturing AI share on prompts a competitor currently owns. This skill pulls competitor visibility data from AI Visibility, identifies the specific prompts where competitors win and Amplitude is absent, clusters them by intent, and produces targeted comparison pages, alternatives content, or rebuttal assets — then pushes drafts to CMS. Trigger on any mention of competitor, prompt hijack, outrank, or "why is [competitor] getting cited instead of us".

amplitude/builder-skills

Use this skill whenever a user wants to turn AI Visibility data into published content — whether they say "find content gaps", "what should we write about", "which topics have low visibility", "help me get cited by AI models", "create a blog post from our AI Visibility gaps", "we're losing to competitors on these prompts", or any variation where they want to go from AI visibility weakness to a draft article, landing page, or FAQ. This skill connects directly to Amplitude AI Visibility data (topics, prompts, visibility scores, citations, competitor data, full LLM responses and sources) and produces a publish-ready content brief plus full article draft. If the user mentions CMS (WordPress, Webflow, Contentful, Sanity, HubSpot, Ghost, Shopify), also trigger this skill to push the draft directly. Trigger even if they just say something vague like "what content should we create?" in an AI Visibility context.

amplitude/builder-skills

Use this skill whenever a user wants to test content variants before publishing to find which one will get cited most by AI models — whether they say "which version of this content will perform better", "test this article before we publish", "simulate how AI will respond to this content", "which angle should we use", "generate content variants and pick the winner", "run a simulation before publishing", or any variation where the goal is data-driven content selection rather than gut-feel publishing. This skill takes an identified content opportunity, generates 2–3 distinct variants with different angles or structures, scores them against actual AI model responses from AI Visibility, references the Simulate Changes feature for pre-publish validation, and produces a clear recommendation on which variant to publish — then pushes the winner to CMS. Trigger on any mention of "simulate", "test variants", "which performs better", "A/B content", or "before we publish".

amplitude/builder-skills

Use this skill whenever a user wants to understand which external sources are being cited by AI models on topics relevant to their brand, and wants to create content that will outrank those sources — whether they say "what sources are AI models citing", "why is [third-party site] being cited instead of us", "we want to be the definitive source on X", "build something that gets cited more than G2 or TechRadar", "create an authoritative asset", or any variation where the goal is producing a new reference asset (definition page, benchmark, methodology, glossary, comparison hub) designed to beat existing top-cited sources. This skill analyzes AI Visibility source data, reverse-engineers what makes top-cited pages authoritative, and produces a superior source asset — then pushes it to CMS as a draft. Trigger on any mention of "sources", "third-party citations", "authoritative content", "definitional pages", or "outrank".

amplitude/builder-skills

Instruments a pull request with Amplitude analytics that conform to the project's existing taxonomy. Reads the tracking plan via the Amplitude MCP server (events, properties, naming conventions), analyzes the PR diff to find the few user actions genuinely worth tracking, detects the codebase's SDK and tracking patterns, and adds instrumentation that matches both. Optionally (opt-in) stages new events and properties on an Amplitude tracking-plan branch for data-governance review. Use when asked to "instrument this PR", "add analytics to this change", "add tracking", "add Amplitude events", "instrument this feature", or "what should I track here".

amplitude/builder-skills

Diagnoses product health by cross-referencing Amplitude analytics (dashboards, charts, funnels, feedback, AI agent analytics), optionally Datadog (errors, latency, stack traces), and optionally Slack (qualitative feedback, bug reports, feature requests). Identifies what's broken, what's working, and what to do about it — with root causes, not just symptoms. Use when asked to "diagnose my product", "what's going on", "product health check", "what's broken", "where are users struggling", "give me a product diagnosis", or "what should I focus on".

amplitude/builder-skills

Turn one or more meeting transcripts, notes, or Slack threads into concise takeaways and clear action items with DRIs. Works with a single meeting or a batch from the whole week.

amplitude/builder-skills

Summarizes B2B account health by analyzing usage patterns, engagement trends, risk signals, and expansion opportunities. Use for customer success reviews, renewal preparation, QBRs, or account prioritization.

Skills associés