Skip to main content
AppSignal MCP expose 24 outils répartis sur sept domaines : incidents d’erreur, performance, Anomaly detection, journalisation, métriques, tableaux de bord et découverte d’applications. Les outils comprennent à la fois des opérations de lecture et d’écriture.

Flux de travail

Ces exemples montrent comment les outils se combinent pour des tâches courantes.

Enquête sur une erreur en production

  1. Lister les exceptions ouvertes récentes : « Show me all open incidents in production from the last 24 hours »
  2. Obtenir les détails complets sur un incident spécifique : « Get the details for incident #847 including the stack trace »
  3. Récupérer les traces pour voir ce qui s’est passé au niveau du code : « Get the error traces for incident #847 »
  4. Documenter vos conclusions : « Add a note to incident #847: investigated the database timeout — connection pool was exhausted during peak traffic »
  5. La résoudre : « Close incident #847 »

Profilage d’une action lente

  1. Obtenir un aperçu des performances : « Which actions are slowest in the web namespace right now? »
  2. Récupérer les traces pour le pire contrevenant : « Get traces for BlogPostsController#index from the last hour »
  3. Inspecter l’arbre des spans pour trouver le goulot d’étranglement : « Show me the full span tree for trace abc123 »
  4. Plonger dans un span spécifique : « Get the details for span def456 in trace abc123 »

Triage d’un lot d’incidents

  1. « Find all open incidents in the background namespace from the last week »
  2. « Mark incidents #120, #121, and #122 as work in progress and assign them to Jana »
  3. « Close all incidents related to ActionMailer — they were fixed in the last deploy »

Recherche de journaux pendant un incident

  1. « Find all error logs from the last hour »
  2. « Show me logs where message contains ‘timeout’ on web-1 between 14:00 and 15:00 »
  3. « Get fatal logs from the payments source over the last 30 minutes »

Reconstruction du parcours d’un client

Lorsqu’un utilisateur signale qu’un problème est survenu, la réponse est généralement répartie sur les journaux de plusieurs sources, ainsi que sur les erreurs et les traces. Recoller cette chronologie à la main est le genre de travail que l’interface de journalisation ne peut pas faire pour vous, mais qu’un agent peut faire.
  1. « Get all logs for user.id=4321 from production over the last 24 hours, across every source »
  2. « Narrow that to the window between 14:00 and 15:30 UTC and group the results by source »
  3. « List any open exception incidents from production in that same window — anything tagged with user.id=4321? »
  4. « For incident #903, pull the error traces and walk the span tree »
  5. « Summarize what happened: which actions did this user hit, what failed, and where did the error originate? »
Cela utilise get_log_lines, get_exception_incidents et get_traces dans une seule conversation. L’étape finale de résumé est là où MCP justifie son intérêt — l’agent compose le récit, pas vous.

Configuration du traitement des journaux

AppSignal exécute les actions de ligne de journal lors de l’ingestion, dans l’ordre que vous définissez. Un modèle courant consiste à émettre une métrique, créer un déclencheur, puis filtrer — cela garantit qu’AppSignal capture le signal avant d’écarter la ligne de journal.
  1. Vérifier les actions de ligne de journal existantes et leur ordre : utilisez get_app_resources avec sections: ["log_line_actions"]
  2. « Create a metrics action that counts log lines where severity is error as log.error_count »
  3. « Add a trigger action that fires an alert when severity is fatal »
  4. « Add a filter to drop all health check log lines »
  5. « Reorder those actions so the metrics action runs first, then the trigger, then the filter »

Création d’un déclencheur de Anomaly detection

  1. Découvrir les métriques disponibles : « What metrics are available for my production app? »
  2. Vérifier les tags disponibles : « What tags are available for response_time? »
  3. Créer le déclencheur : « Create a trigger that fires when mean response time exceeds 500ms for more than 5 minutes, and notify the Slack #alerts channel »
  4. Archiver un ancien déclencheur une fois remplacé : utilisez get_triggers pour trouver d’abord l’ID, puis « Archive the old response_time trigger »

Construction d’un tableau de bord de surveillance

  1. « What metrics are available for my production app? »
  2. « Create a dashboard called ‘API Health’ in production »
  3. « Add a line chart of p95 response time by action to the API Health dashboard »
  4. « Add an area chart of error rate broken down by namespace »

Référence des outils

Chaque outil prend app_name et app_environment pour identifier l’application cible. Les deux sont mis en correspondance sans tenir compte de la casse, donc MyApp/Production et myapp/production se résolvent vers la même application. Si le nom ne correspond à aucune application à laquelle vous avez accès, l’outil renvoie une erreur qui liste les applications qui vous sont disponibles, afin que l’agent puisse réessayer avec un nom valide.

Découverte d’applications

get_applications

Obtenez toutes les applications AppSignal auxquelles l’utilisateur a accès. Retourne les applications au format app_name/app_environment. Utilisez-le d’abord pour découvrir les applications disponibles avant d’appeler d’autres outils. Aucun paramètre requis.

get_app_resources

Découvrez les ressources disponibles dans une application AppSignal — namespaces, tableaux de bord, utilisateurs, notifieurs, sources de journaux, actions de ligne de journal, marqueurs de déploiement et moniteurs de disponibilité. Particulièrement utile lors de la configuration de déclencheurs, de l’attribution d’incidents ou de la compréhension de la structure d’une application. La section deploy_markers retourne jusqu’à 100 déploiements récents, chacun avec sa révision complète et la plage horaire pendant laquelle il était actif. Restreignez-la avec deploy_marker_namespace ou deploy_marker_revision. Pour trouver les erreurs qu’un déploiement a introduites, passez sa révision à get_exception_incidents (ou utilisez revision: "last" pour le déploiement le plus récent). La section uptime_monitors liste chaque URL surveillée et ses paramètres. La disponibilité elle-même n’est pas stockée — elle est calculée à partir de métriques, donc interrogez le compteur uptime_monitor_error_count avec get_metrics_timeseries pour la calculer.

Incidents d’erreur

get_exception_incidents

Listez et recherchez les exceptions et erreurs AppSignal. Utilisez-le pour obtenir un aperçu des exceptions récentes, rechercher dans une période, trouver des incidents par état, ou vérifier quels incidents nécessitent attention. Retourne 50 incidents par page.

get_incident

Obtenez des informations détaillées sur un incident AppSignal. Retourne l’état actuel, l’attribution, la première et la dernière occurrence, les messages d’erreur, les traces de pile ou les détails de l’alerte d’anomalie. Prend en charge les incidents d’exception et d’anomalie.

update_incidents

Mettez à jour en masse les incidents d’une application AppSignal. Utilisez-le pour modifier l’état d’incidents, mettre à jour la gravité ou attribuer et désattribuer des membres d’équipe sur plusieurs incidents à la fois. Utilisez get_app_resources avec sections: ["users"] pour trouver les ID utilisateur pour l’attribution.

manage_incident_note

Créez ou mettez à jour une note sur un incident AppSignal. Markdown est pris en charge. Utilisez-le pour ajouter des commentaires, mises à jour de statut, conclusions d’enquête ou étapes de résolution. Incluez une URL complète d’issue GitHub dans la note pour lier cette issue à l’incident, lorsque GitHub est configuré pour l’application.
Cet outil s’appelait auparavant create_incident_note. L’ancien nom fonctionne toujours comme alias, afin que les invites et configurations existantes continuent de fonctionner.

Performance

get_performance

Aperçu des performances : incidents de performance basés sur des échantillons et actions lentes à partir des traces. Pour les applications Ruby et Elixir standard, retourne les incidents de performance basés sur des échantillons. Pour les applications qui envoient également des traces OpenTelemetry, retourne en plus une liste classée d’actions avec la durée moyenne, le débit et le taux d’erreur. Les applications en cours de migration vers OpenTelemetry peuvent retourner les deux. Outils de suivi : utilisez get_incident pour inspecter un incident de performance spécifique, get_traces pour récupérer des traces d’échantillon pour une action lente, et update_incidents pour modifier l’état, la gravité ou les attributions.

get_traces

Interrogez les traces de performance et d’erreur, inspectez les arbres de spans et consultez les détails des spans. Prend en charge deux types de traces :
  • Traces de performance — identifiées par le namespace et action_name. Utilisez-les pour enquêter sur des requêtes lentes.
  • Traces d’erreur — identifiées par digest. Obtenez le digest depuis get_incident ou get_exception_incidents, puis utilisez-le ici pour voir les traces d’erreur réelles.
Chaque type de trace prend en charge trois modes :
  1. Mode liste — trouvez des traces et obtenez les ID de trace. Fournissez le namespace + action_name, ou digest.
  2. Mode arbre — passez un trace_id pour voir tous les spans sous forme d’arbre compact.
  3. Mode détail de span — passez trace_id et span_id pour les attributs de span complets, les événements et les informations de ressource.
Le flux de travail typique est : lister les traces → inspecter un arbre de trace → plonger dans un span.

Anomaly detection

get_anomaly_incidents

Listez et recherchez les alertes de Anomaly detection AppSignal. Retourne 50 alertes par page, y compris les horodatages et valeurs pour chaque alerte.

get_triggers

Listez les déclencheurs de Anomaly detection pour une application AppSignal. Retourne les déclencheurs actifs (non archivés) avec leur configuration complète — conditions, notifieurs et liens vers les tableaux de bord. Utilisez-le pour trouver les ID de déclencheur avant d’appeler manage_trigger ou archive_trigger.

manage_trigger

Créer ou mettre à jour un déclencheur de Anomaly detection. Les déclencheurs sont immuables. Lorsque vous mettez à jour un déclencheur, AppSignal archive celui existant (fermant toutes ses alertes et incidents) et en crée un nouveau avec une référence de chaîne de versions. Fournissez tous les champs pour les opérations de création et de mise à jour. Utilisez get_metric_names et get_metric_tags pour découvrir les métriques et champs disponibles. Utilisez get_app_resources(sections: ["notifiers"]) pour trouver les ID de notifieur.

archive_trigger

Archiver un déclencheur de Anomaly detection et fermer toutes les alertes et incidents associés. Idempotent — n’effectue aucune opération si le déclencheur est déjà archivé. Utilisez get_triggers pour trouver l’ID du déclencheur.

Journalisation

get_log_lines

Interrogez les lignes de journal en utilisant la syntaxe d’expression d’AppSignal. Prend en charge la correspondance exacte, contient, la négation, les comparaisons numériques, la logique booléenne et les attributs imbriqués. Retourne jusqu’à 100 lignes par appel, du plus récent au plus ancien par défaut. Pour les grandes plages horaires, divisez en plusieurs appels et itérez vers l’avant. Syntaxe de requête : Champs disponibles : severity, hostname, group, message et tout attribut personnalisé.

manage_log_line_action

Créer ou mettre à jour une action de ligne de journal. Les actions de ligne de journal s’exécutent pendant l’ingestion des journaux, dans l’ordre que vous définissez. Il existe trois types :
  • filter — écarte les lignes de journal correspondantes afin qu’elles ne soient jamais stockées ni traitées
  • trigger — déclenche des alertes et incidents lorsque la requête correspond
  • metrics — extrait des métriques de compteur, jauge ou distribution à partir des lignes de journal correspondantes
L’ordre d’exécution est important : si un filtre écarte une ligne de journal, les actions suivantes ne la verront jamais. Un modèle courant consiste à placer les actions de métriques et de déclencheurs avant toute action de filtre. Utilisez reorder_log_line_actions pour modifier l’ordre après la création. Les nouvelles actions sont ajoutées à la fin de l’ordre d’exécution.

reorder_log_line_actions

Modifier l’ordre d’exécution des actions de ligne de journal. Fournissez les ID d’action dans l’ordre souhaité. Les ID d’action non inclus sont ajoutés à la fin dans leur ordre relatif actuel. Utilisez get_app_resources(sections: ["log_line_actions"]) pour trouver les ID et voir l’ordre actuel.

delete_log_line_action

Supprimer définitivement une action de ligne de journal. Utilisez get_app_resources(sections: ["log_line_actions"]) pour d’abord trouver l’ID de l’action.

Métriques

discover_metrics

Découvrez les catégories de métriques disponibles et leurs métriques pour la surveillance. Utilisez-le pour obtenir un aperçu de ce que vous pouvez surveiller, ou pour explorer une catégorie spécifique. Accepte également une référence dashboard:id pour afficher les métriques utilisées dans un tableau de bord spécifique.

get_metric_names

Obtenez les noms de toutes les métriques pour l’application donnée. Retourne les noms des métriques sous forme de chaîne séparée par des virgules. Utilisez-les comme entrée pour get_metric_tags, get_metrics_timeseries et get_metrics_list.

get_metric_tags

Obtenez les tags et le type de métrique (Gauge, Counter, etc.) pour une métrique spécifique. Utilisez les résultats pour construire des requêtes valides avec get_metrics_timeseries et get_metrics_list.

get_metrics_timeseries

Obtenez une série chronologique pour une métrique dans l’application donnée. Retourne des données point par point pour une plage horaire, un type de métrique et une combinaison de tags donnés. Les valeurs des tags prennent en charge la correspondance par caractère générique avec *.

get_metrics_list

Obtenez une valeur agrégée pour une métrique sur une plage horaire. Retourne une seule valeur agrégée plutôt qu’une série chronologique point par point. Utile pour les vues récapitulatives.

Tableaux de bord

manage_dashboard

Créer ou mettre à jour un tableau de bord AppSignal. Cet outil gère uniquement les métadonnées du tableau de bord (titre et description). Utilisez create_dashboard_visual et update_dashboard_visual pour ajouter des graphiques.

create_dashboard_visual

Ajoutez un nouveau graphique à un tableau de bord existant. Utilisez discover_metrics ou get_metrics_list pour trouver d’abord les métriques disponibles.

update_dashboard_visual

Mettez à jour un graphique existant sur un tableau de bord. Tous les champs sont facultatifs sauf les identifiants. Les champs non spécifiés conservent leurs valeurs actuelles. Si metrics est fourni, il remplace toutes les métriques existantes sur ce visuel.

Permissions des tokens

Chaque token MCP a des permissions configurables par ensemble d’outils : app, exceptions, performance, metrics, anomalies, dashboards, logging. Chaque ensemble d’outils peut être défini sur read, write ou désactivé. Les tokens peuvent également être limités à des applications spécifiques et configurés pour exposer automatiquement les nouveaux outils à mesure qu’ils sont ajoutés. Pour connaître les étapes de création, consultez Authentification.

Un outil manquant ?

En complément des jeux d’outils ci-dessus, AppSignal MCP expose get_more_tools, un outil de découverte et de retour d’expérience. Il ne débloque aucun outil caché aujourd’hui. À la place, il confirme la liste actuelle des outils et journalise ce que vous avez demandé, afin que l’équipe AppSignal puisse voir vers quelles capacités les utilisateurs se tournent. get_more_tools prend deux paramètres : La plupart des agents n’y auront pas recours d’eux-mêmes, il faut donc demander explicitement : « Utilise l’outil AppSignal get_more_tools pour chercher un moyen d’exporter en masse les incidents au format CSV. » Le serveur répond que la liste complète des outils est déjà affichée et que votre demande a été journalisée sur votre compte et votre organisation. Rien de nouveau n’est renvoyé à l’agent — la valeur réside dans la demande journalisée.
Vous butez sur les limites du jeu d’outils actuel ? Demandez à votre agent d’appeler get_more_tools, puis publiez la même demande dans la communauté Discord afin que l’équipe AppSignal puisse l’évaluer.