Skip to content
FirstSIDocs

MCP tools

The 58 tools of the MCP server, by scope.

The FirstSI MCP server exposes the same data as the API as tools an AI assistant can call (Claude, ChatGPT, Copilot or any MCP client). Each tool needs the scope shown below on the token; a tool whose scope is missing is not offered. Tool descriptions are those of the product, written in French.

Address: https://<your-console>/api/v1/mcp (HTTP transport, JSON-RPC, POST). Setup: MCP server.

58 tools, grouped by scope:

read:machines

list_machines

Liste des postes et serveurs équipés de l'agent FirstSI : nom, IP, OS, version d'agent, état (online/offline), dernier contact, modules actifs. Paginé : renvoyer meta.next_cursor dans cursor pour la suite.

ArgumentTypeDescription
statusstringonline ou offline
limitintegerNombre maximal de lignes (défaut 50)
cursorstring

get_machine

Fiche d'un poste équipé de l'agent (par nom d'hôte).

ArgumentTypeDescription
hostname (required)string

read:netdiag

netdiag_overview

Tous les postes en diagnostic réseau NetDiag avec leur verdict courant (OK, PC, LAN, INFRA, WAN, DNS, SERVICE), le type de lien (Ethernet / Wi-Fi / VPN), le SSID et l'état d'alerte. Point de départ pour « quel poste a un problème réseau ? ».

netdiag_summary

Résumé NetDiag d'un poste sur une période : répartition des verdicts, causes principales, dernière mesure (lien, Wi-Fi, latences passerelle / Internet, sondes vers les serveurs). Sert à qualifier une plainte « c'est lent » ou « ça coupe ».

ArgumentTypeDescription
hostname (required)string
period1h · 3h · 6h · 12h · 24h · 3d · 7d · 30dFenêtre glissante (défaut 24h)

netdiag_events

Événements NetDiag d'un poste (changements de verdict, alertes, applications qui figent ou saturent, appels Teams, itinérance Wi-Fi, VPN, traceroutes, tests de débit, captures...). Filtrable par source et texte. Les plus récents d'abord.

ArgumentTypeDescription
hostname (required)string
period1h · 3h · 6h · 12h · 24h · 3d · 7d · 30dFenêtre glissante (défaut 24h)
sourcestringverdict, appv, alert, app, teams, ap, vpn, wlan, driver, trace, speed, capture, netprofile, switch, dhcp, power, wan, tcpfail, proc, install
qstringTexte cherché dans le message
limitintegerNombre maximal de lignes (défaut 50)

netdiag_apps

Applications suivies sur un poste : verdict par application (APP / HOST / NET / SERVER / OK), CPU et RAM, dépendances réseau (serveurs contactés) et sondes vers ces serveurs, tendance mémoire et soupçon de fuite. Sert à répondre « est-ce l'application, le poste, le réseau ou le serveur ? ».

ArgumentTypeDescription
hostname (required)string
period1h · 3h · 6h · 12h · 24h · 3d · 7d · 30dFenêtre glissante (défaut 24h)

read:flows

list_flows

Flux reseau detailles d'un poste ou de tout le parc : date, processus, utilisateur, adresse et port distants, protocole, sens, octets. Fenetre de 7 jours au plus (au-dela, utiliser flows_destinations ou flows_summary qui lisent les agregats). Pagine : renvoyer meta.next_cursor dans cursor pour la suite.

ArgumentTypeDescription
machinestringNom d'hote ; absent = tous les postes
period1h · 3h · 6h · 12h · 24h · 3d · 7d · 30dFenêtre glissante (défaut 24h)
protocolTCP · UDP
directioninbound · outbound
remote_ipstringAdresse distante, prefixe accepte (ex. 10.20.0.)
remote_portinteger
processstring
destinationstringCherche dans l'adresse ET le nom d'hote distant
limitinteger
cursorstring

flows_explore

Explorateur de flux : volume (ou nombre de connexions) croisé par 1 à 3 dimensions parmi interne (appareil), externe, pays, operateur (AS), port, service, proto, sens, source (agent/passerelle), passerelle, site, interface, processus, utilisateur ; avec filtre (ex. « pays != FR et service = https »). Renvoie le top N, la série temporelle et les liens entre dimensions. Répond à « vers quels pays / opérateurs part notre trafic ? », « quel appareil parle à tel pays ? ». Au-delà de 6 h, les flux des postes ne croisent que poste × une autre dimension.

ArgumentTypeDescription
dimsstringDimensions séparées par des virgules (1 à 3), ex. interne,pays
sourceall · agent · gateway · firewallall (agents + passerelles), agent, gateway (IPFIX), firewall (journaux du pare-feu : connexions autorisées/bloquées, VPN ; mesure = nombre de connexions ; dimensions en plus : action, regle, categorie)
period1h · 6h · 24h · 7d · 30d
metricbytes · flows
filterstringClauses « dimension opérateur valeur » reliées par « et » ; opérateurs = != ~ !~ in > <
limitintegerNombre maximal de lignes (défaut 10)

flows_destinations

Avec qui les postes parlent-ils ? Destinations les plus vues sur la periode (jusqu'a 31 jours), avec volume, nombre de flux et nombre de postes concernes. Lit les agregats horaires, donc rapide meme sur un mois.

ArgumentTypeDescription
machinestring
period1h · 3h · 6h · 12h · 24h · 3d · 7d · 30dFenêtre glissante (défaut 24h)
limitinteger
sourceagent · gateway · allagent (postes équipés, défaut), gateway (flux des passerelles, appareils sans agent compris), all (les deux, sans double compte)

flows_summary

Volumes reseau sur la periode : totaux, repartition par protocole et par sens, et courbe heure par heure. Sert a repondre a « depuis quand ca consomme ? » ou « qu est-ce qui a change cette semaine ? ».

ArgumentTypeDescription
machinestring
period1h · 3h · 6h · 12h · 24h · 3d · 7d · 30dFenêtre glissante (défaut 24h)

flows_talkers

Postes qui echangent le plus sur la periode, tries par volume total. Point de depart pour « qui sature la ligne ? ».

ArgumentTypeDescription
period1h · 3h · 6h · 12h · 24h · 3d · 7d · 30dFenêtre glissante (défaut 24h)
limitinteger

flows_blocked

Connexions sortantes en échec vues par les agents : refusées, sans réponse (délai dépassé), bloquées par le pare-feu local, réseau ou hôte injoignable. Poste, processus, destination.

ArgumentTypeDescription
machinestring
typerefused · timeout · blocked · host_unreachable · network_unreachable · reset · aborted · unknown
period1h · 3h · 6h · 12h · 24h · 3d · 7d · 30dFenêtre glissante (défaut 24h)
limitintegerNombre maximal de lignes (défaut 100)

read:alerts

list_alerts

Flux unifié des alertes : NetDiag (postes et applications), HostMonitor (incidents de disponibilité) et SIEM (incidents de sécurité). status=open : ce qui est en cours maintenant ; status=all : historique sur la période. Chaque alerte porte kind, severity, status, title, target, details.

ArgumentTypeDescription
statusopen · alldéfaut all
kindstringnetdiag, hostmonitor, siem (séparés par des virgules)
period1h · 3h · 6h · 12h · 24h · 3d · 7d · 30dFenêtre glissante (défaut 24h)
limitintegerNombre maximal de lignes (défaut 50)

read:monitors

list_monitors

Moniteurs de disponibilité HostMonitor (HTTP, SSL, DNS, ping, whois...) : état, dernier contrôle, temps de réponse, disponibilité 24 h / 7 j / 30 j, objectif SLA.

ArgumentTypeDescription
statusstringup, down, degraded

monitor_incidents

Incidents d'un moniteur HostMonitor (id numérique) : début, fin, durée, cause, acquittement, notes. Par défaut 30 jours, incidents en cours toujours inclus.

ArgumentTypeDescription
monitor_id (required)integer
period1h · 3h · 6h · 12h · 24h · 3d · 7d · 30dFenêtre glissante (défaut 24h)
limitintegerNombre maximal de lignes (défaut 50)

maintenance_windows

Fenêtres de maintenance (ponctuelles et récurrentes) : horaires, sondes couvertes, active en ce moment ou non. Sert à savoir si une alerte a été volontairement masquée.

ArgumentTypeDescription
active11 = seulement celles actives maintenant

list_heartbeats

Traitements planifiés qui doivent se signaler régulièrement (sauvegardes, imports...) : dernier signal, code de sortie, état.

list_profiles

Profils applicatifs (ex. « Sage FRP 1000 ») : ce qu'il faut surveiller pour une application, paramètres, déploiements.

get_profile

Définition complète d'un profil applicatif : sondes, requêtes de contrôle, fenêtres, trace de ce qui a été vérifié.

ArgumentTypeDescription
profile_id (required)integer

profile_drift

Écarts entre un déploiement de profil et l'état réel : éléments conformes, modifiés (champ, attendu, réel), supprimés, non déployés.

ArgumentTypeDescription
deployment_id (required)integer

read:inventory

list_assets

Inventaire des actifs (postes, serveurs) : matériel, OS, rôles, score de risque, nombre de CVE par gravité, logiciels en fin de vie, dernier scan. Recherche par nom, FQDN, IP ou OS.

ArgumentTypeDescription
qstring
limitintegerNombre maximal de lignes (défaut 50)
cursorstring

get_asset

Fiche complète d'un actif (id numérique) avec la liste de ses logiciels installés : version, éditeur, CVE, fin de vie, licence.

ArgumentTypeDescription
asset_id (required)integer

search_software

Logiciels installés sur tout le parc, avec le poste porteur. Filtres : texte (nom, éditeur), has_cve (au moins une vulnérabilité), eol (fin de vie atteinte ou proche). Sert à « qui a encore Java 8 ? » ou « où est installé tel logiciel ? ».

ArgumentTypeDescription
qstring
has_cveboolean
eolboolean
limitintegerNombre maximal de lignes (défaut 50)
cursorstring

list_cves

Vulnérabilités détectées (logiciel × CVE) : CVSS, gravité, exploitation connue (KEV), EPSS, description, logiciel et poste concernés. Filtre par CVSS minimal et statut.

ArgumentTypeDescription
min_cvssnumber
statusstring
limitintegerNombre maximal de lignes (défaut 50)
cursorstring

read:security

security_logons

Ouvertures de session Active Directory (4624) et échecs (4625) : qui, sur quel poste, depuis quelle adresse, type d'ouverture (interactive, réseau, bureau à distance...), raison de l'échec. Fenêtre de 7 jours au plus. Sert à « qui s'est connecté sur ce serveur ? » ou « d'où viennent les échecs de ce compte ? ».

ArgumentTypeDescription
userstringCompte (recherche partielle)
hoststringPoste source ou cible
source_ipstring
resultsuccess · failure
period1h · 3h · 6h · 12h · 24h · 3d · 7d · 30dFenêtre glissante (défaut 24h)
limitintegerNombre maximal de lignes (défaut 100)
cursorstring

security_lockouts

Verrouillages (4740) et déverrouillages (4767) de comptes. L'événement de verrouillage donne le contrôleur qui l'a prononcé ; pour trouver l'origine des mauvais mots de passe, enchaîner avec security_logons result=failure sur le même compte.

ArgumentTypeDescription
userstring
period1h · 3h · 6h · 12h · 24h · 3d · 7d · 30dFenêtre glissante (défaut 24h)

security_account_changes

Changements dans l'annuaire : comptes créés, activés, désactivés, supprimés, mots de passe réinitialisés, ajouts et retraits de groupes, stratégie d'audit, objets d'annuaire modifiés. Qui a fait quoi, sur quel compte ou groupe. Fenêtre de 90 jours au plus.

ArgumentTypeDescription
userstringAuteur, compte visé ou objet (recherche partielle)
typeaccount · group · computer · policy · directory
period1h · 3h · 6h · 12h · 24h · 3d · 7d · 30dFenêtre glissante (défaut 24h)
limitintegerNombre maximal de lignes (défaut 100)
cursorstring

security_risky_accounts

Comptes classés par score de risque, calculé sur le graphe des connexions : administrateur ou non, nombre de postes atteints, échecs d'ouverture, centralité.

ArgumentTypeDescription
limitintegerNombre maximal de lignes (défaut 30)

security_anomalies

Écarts au comportement habituel détectés par SI-Tracer (connexions inhabituelles, volumes anormaux...).

ArgumentTypeDescription
statusstring
period1h · 3h · 6h · 12h · 24h · 3d · 7d · 30dFenêtre glissante (défaut 24h)

security_incidents

Incidents SIEM : corrélations d'événements de plusieurs modules (fichiers, réseau, DNS, annuaire). status=open pour ceux en cours.

ArgumentTypeDescription
statusstringopen, ou un statut précis (RESOLVED...)
severityCRITICAL · HIGH · MEDIUM · LOW
period1h · 3h · 6h · 12h · 24h · 3d · 7d · 30dFenêtre glissante (défaut 24h)
limitintegerNombre maximal de lignes (défaut 50)

security_incident

Détail d'un incident SIEM (identifiant renvoyé par security_incidents) avec ses événements, actions recommandées et actions déjà prises.

ArgumentTypeDescription
incident_id (required)string

security_rules

Règles de corrélation SIEM : ce qui est surveillé, gravité, fenêtre, nombre de déclenchements.

read:databases

db_instances

Instances de bases de données surveillées (SQL Server, MariaDB...) : version, édition, état, dernier contrôle. Point de départ : les autres outils db_* prennent l'id d'instance renvoyé ici.

db_metrics

Courbe des indicateurs d'une instance : CPU, mémoire, connexions, latences d'E/S, espérance de vie des pages, verrous, attente principale.

ArgumentTypeDescription
instance_id (required)integer
period1h · 3h · 6h · 12h · 24h · 3d · 7d · 30dFenêtre glissante (défaut 24h)

db_slow_queries

Requêtes lentes captées sur une instance, triées par durée : texte, durée, CPU, lectures, attente, blocage, base, compte, poste et programme.

ArgumentTypeDescription
instance_id (required)integer
period1h · 3h · 6h · 12h · 24h · 3d · 7d · 30dFenêtre glissante (défaut 24h)
min_msinteger
limitintegerNombre maximal de lignes (défaut 30)

db_top_queries

Requêtes les plus coûteuses d'une instance sur la période (cumul), par CPU, durée ou lectures. Sert à « qu'est-ce qui charge la base ? ».

ArgumentTypeDescription
instance_id (required)integer
period1h · 3h · 6h · 12h · 24h · 3d · 7d · 30dFenêtre glissante (défaut 24h)
bycpu · duration · reads
limitintegerNombre maximal de lignes (défaut 20)

db_sessions

Qui exécute quoi : échantillons des sessions actives d'une instance (compte, poste, programme, commande, attente, bloqué par, requête).

ArgumentTypeDescription
instance_id (required)integer
period1h · 3h · 6h · 12h · 24h · 3d · 7d · 30dFenêtre glissante (défaut 24h)
loginstring
limitintegerNombre maximal de lignes (défaut 100)

db_blocking

Blocages détectés sur une instance : session bloquante (compte, poste, programme, requête), durée, requête bloquée.

ArgumentTypeDescription
instance_id (required)integer
period1h · 3h · 6h · 12h · 24h · 3d · 7d · 30dFenêtre glissante (défaut 24h)

db_alerts

Alertes DB Monitor (seuils dépassés, blocages, erreurs de collecte). status=open pour celles en cours.

ArgumentTypeDescription
statusopen · all
period1h · 3h · 6h · 12h · 24h · 3d · 7d · 30dFenêtre glissante (défaut 24h)

db_checks

Requêtes de contrôle métier (ex. « aucun automate en échec », « sauvegarde de moins de 26 h ») et leur dernier résultat.

db_check_results

Historique des résultats d'une requête de contrôle (id renvoyé par db_checks).

ArgumentTypeDescription
check_id (required)integer
period1h · 3h · 6h · 12h · 24h · 3d · 7d · 30dFenêtre glissante (défaut 24h)

read:dns

dns_resolutions

Noms de domaine résolus par les postes (agent) : domaine, adresse obtenue, processus. Fenêtre de 7 jours au plus. Sert à « qui a contacté ce domaine ? ».

ArgumentTypeDescription
machinestringNom d'hôte exact
domainstringRecherche partielle
period1h · 3h · 6h · 12h · 24h · 3d · 7d · 30dFenêtre glissante (défaut 24h)
limitintegerNombre maximal de lignes (défaut 100)

dns_top_domains

Domaines les plus demandés sur la période, avec le nombre de postes concernés.

ArgumentTypeDescription
machinestring
period1h · 3h · 6h · 12h · 24h · 3d · 7d · 30dFenêtre glissante (défaut 24h)
limitintegerNombre maximal de lignes (défaut 50)

dns_threats

Requêtes DNS vers des domaines classés malveillants (listes de menaces) : poste, processus, catégorie, gravité, acquittement.

ArgumentTypeDescription
acknowledged0 · 1
period1h · 3h · 6h · 12h · 24h · 3d · 7d · 30dFenêtre glissante (défaut 24h)
limitintegerNombre maximal de lignes (défaut 100)

read:files

file_events

Accès aux fichiers partagés : qui a lu, créé, modifié, supprimé ou renommé quoi, depuis quel poste. Fenêtre de 31 jours au plus. Sert à « qui a supprimé ce dossier ? ».

ArgumentTypeDescription
userstring
pathstringChemin ou nom de fichier (recherche partielle)
typestringType d'action (ex. delete, create, modify, rename, read)
period1h · 3h · 6h · 12h · 24h · 3d · 7d · 30dFenêtre glissante (défaut 24h)
limitintegerNombre maximal de lignes (défaut 100)
cursorstring

file_summary

Synthèse des accès aux fichiers sur la période : volumes par type d'action, utilisateurs et dossiers les plus actifs.

ArgumentTypeDescription
period1h · 3h · 6h · 12h · 24h · 3d · 7d · 30dFenêtre glissante (défaut 24h)

read:network

network_sites

Sites (agences, datacenters) de l'infrastructure réseau.

ArgumentTypeDescription
qstring

network_devices

Équipements réseau (routeurs, pare-feu, commutateurs, bornes Wi-Fi) : état, modèle, firmware, CPU, mémoire, site.

ArgumentTypeDescription
site_idinteger
typestring
statusstring
qstring
limitintegerNombre maximal de lignes (défaut 100)
cursorstring

network_device

Fiche d'un équipement réseau avec ses liens WAN (opérateur, latence, perte, débit) et ses interfaces.

ArgumentTypeDescription
device_id (required)integer

network_device_metrics

Courbe d'un équipement réseau : CPU, mémoire, latence, gigue, perte, trafic.

ArgumentTypeDescription
device_id (required)integer
period1h · 3h · 6h · 12h · 24h · 3d · 7d · 30dFenêtre glissante (défaut 24h)

network_tunnels

Tunnels VPN entre sites : état, latence, gigue, perte, débit. Sert à « quelle agence a perdu son lien ? ».

ArgumentTypeDescription
statusstring
site_idinteger

network_alerts

Alertes de l'infrastructure réseau (équipements, tunnels, ports). status=open pour celles en cours.

ArgumentTypeDescription
statusopen · all
period1h · 3h · 6h · 12h · 24h · 3d · 7d · 30dFenêtre glissante (défaut 24h)

network_ports

Ports ouverts découverts sur le réseau, avec service, version et indication « attendu » (référence).

ArgumentTypeDescription
ipstring
portinteger
statestring
limitintegerNombre maximal de lignes (défaut 200)

read:firewall

fw_devices

Pare-feu et passerelles déclarés (WatchGuard, UniFi...) dont les journaux syslog et les flux IPFIX sont collectés : fabricant, site, dernier envoi, état de la collecte (reçue, interrompue et sa cause probable : agent relais, tunnel, équipement muet). Une collecte interrompue signifie qu'une absence d'alerte ne vaut pas « rien à signaler ».

fw_events

Journaux des pare-feu analysés : authentifications (VPN, portail, LDAP relayé) réussies ou refusées avec l'adresse publique réelle, trafic refusé, intrusions, changements de configuration. ad_events = événements du contrôleur de domaine rapprochés (même compte, ±15 s). Fenêtre de 7 jours au plus. Sert à « d'où viennent ces échecs de connexion ? ».

ArgumentTypeDescription
categoryauth · vpn · tunnel · ids · deny · allow · admin · system · other
actionsuccess · failure · blocked · allowed · detected · changed · up · down · info
device_idinteger
userstringCompte (partiel)
ipstringAdresse source ou destination exacte
period1h · 3h · 6h · 12h · 24h · 3d · 7d · 30dFenêtre glissante (défaut 24h)
limitintegerNombre maximal de lignes (défaut 100)

fw_traffic

Trafic vu par les passerelles (IPFIX / NetFlow), y compris des appareils sans agent : plus gros émetteurs internes et principales destinations (adresse, port), par heure complète.

ArgumentTypeDescription
device_idinteger
period1h · 3h · 6h · 12h · 24h · 3d · 7d · 30dFenêtre glissante (défaut 24h)
limitintegerNombre maximal de lignes (défaut 20)

fw_threats

Communications entre un appareil interne et une adresse IP listée comme malveillante (ThreatFox, Feodo...), vues par les passerelles, les pare-feu ou les agents : appareil identifié (poste, client UniFi), indicateur, nombre d'occurrences, incident SIEM.

ArgumentTypeDescription
statusopen · acknowledged
period1h · 3h · 6h · 12h · 24h · 3d · 7d · 30dFenêtre glissante (défaut 24h)
limitintegerNombre maximal de lignes (défaut 100)

fw_report

Bilan de la frontière réseau sur une période : échecs d'authentification (comptes visés, dont comptes réels de l'annuaire, adresses attaquantes), connexions VPN réussies, appareils internes ayant contacté une adresse malveillante, trafic bloqué, coupures de tunnel, état de la collecte, incidents. Point de départ pour « que s'est-il passé sur le pare-feu cette semaine ? ».

ArgumentTypeDescription
period24h · 7d · 30d · 90dPériode (défaut 7d)

Source: · FirstSI Docs · updated 2026-10-10