Serveur MCP JupiterOne
Serveur MCP (Model Context Protocol) qui donne accès aux outils de JupiterOne. Ce serveur permet aux assistants d'intelligence artificielle et aux autres clients MCP d'interagir avec les données de JupiterOne.
Configuration
Conditions préalables
- Compte JupiterOne: Vous devez disposer d'un compte JupiterOne actif
- Clé API: Générez une clé API à partir des paramètres de votre compte JupiterOne
- ID du compte: Votre identifiant de compte JupiterOne
- Installation du nœud de travail avec une version >= 18 ( Voir https://nodejs.org/en/download et cliquer sur l'un des boutons verts)
Installation avec Claude Desktop
Pour utiliser ce serveur MCP avec Claude Desktop, vous devez l'ajouter à votre fichier de configuration Claude.
Option 1 : Utilisation de npx (Recommandé)
Ajoutez la configuration suivante à votre fichier de configuration Claude Desktop :
{ "mcpServers" : { "jupiterone" : { "command" : "npx", "args" : ["-y", "@jupiterone/jupiterone-mcp"], "env" : { "JUPITERONE_API_KEY" : "your-api-key-here", "JUPITERONE_ACCOUNT_ID" : "your-account-id-here", "JUPITERONE_BASE_URL" : "https://graphql.us.jupiterone.io" } } }
Option 2 : Installation globale (pour les utilisateurs de nvm ou le dépannage)
Si vous utilisez nvm ou si vous rencontrez des problèmes avec l'option 1, installez d'abord le paquetage globalement :
npm install -g @jupiterone/jupiterone-mcp
Ajoutez ensuite cette configuration au fichier de configuration de votre Claude Desktop :
{ "mcpServers" : { "jupiterone" : { "command" : "/usr/local/bin/node", "args" : ["/usr/local/bin/jupiterone-mcp"], "env" : {"JUPITERONE_API_KEY" : "your-api-key-here", "JUPITERONE_ACCOUNT_ID" : "your-account-id-here", "JUPITERONE_BASE_URL" : "https://graphql.us.jupiterone.io" } } }
Note: Il se peut que vous deviez ajuster les chemins dans l'option 2 en fonction de votre installation Node.js :
- Pour Node.js Homebrew :
/usr/local/bin/node
et/usr/local/bin/jupiterone-mcp
- Pour nvm :
~/.nvm/versions/node/v[version]/bin/node
et~/.nvm/versions/node/v[version]/bin/jupiterone-mcp
Installation avec Cursor
Pour l'IDE Cursor, ajoutez la même configuration à vos paramètres Cursor :
- Ouvrez Cursor Settings
- Naviguer vers "Features" → "Model Context Protocol"
- Ajouter la configuration du serveur en utilisant l'option 1 ou l'option 2 ci-dessus
Variables d'environnement
Remplacez les valeurs de remplacement par vos identifiants JupiterOne réels :
- JUPITERONE_API_KEY: Votre clé API JupiterOne (obligatoire)
- JUPITERONE_ACCOUNT_ID: Votre identifiant de compte JupiterOne (obligatoire).
- JUPITERONE_BASE_URL: Point d'accès GraphQL de JupiterOne (facultatif, la valeur par défaut est
https://graphql.us.jupiterone.io)
Obtenir vos informations d'identification JupiterOne
Clé API:
- Connectez-vous à votre compte JupiterOne
- Allez dans Paramètres → Clés API
- Créez une nouvelle clé API ou utilisez une clé existante
ID du compte:
- Vous pouvez l'obtenir en procédant de l'une des manières suivantes :
- Naviguer vers
https://j1dev.apps.us.jupiterone.io/settings/account-management
- Exécutez la requête suivante dans votre compte JupiterOne :
find jupiterone_account as x return x.accountId
Fonctionnalités
Gestion des règles
- list-rules - Liste toutes les règles avec un paramètre de limite optionnel
- get-rule-details - Obtenir des informations détaillées sur une règle spécifique par ID
- create-inline-question-rule - Créer de nouvelles règles basées sur des questions en ligne avec des opérations et des actions
- update-inline-question-rule - Mettre à jour des instances de règles basées sur des questions en ligne existantes
- evaluate-rule - Déclencher l'évaluation à la demande d'une règle spécifique
Évaluations de règles
- list-rule-evaluations - Obtenir des données d'évaluation historiques pour une règle avec un filtrage temporel optionnel
- get-rule-evaluation-details - Obtenir des informations détaillées sur l'évaluation, y compris les résultats de la requête, de la condition et de l'action
- get-raw-data-download-url - Obtenir l'URL de téléchargement des données d'évaluation brutes
- get-rule-evaluation-query-results - Permet d'obtenir les résultats de la requête d'une évaluation de règle
Surveillance des alertes
- get-active-alerts - Permet d'obtenir toutes les alertes actuellement actives avec un paramètre de limite facultatif
Gestion des tableaux de bord
- get-dashboards - Liste de tous les tableaux de bord de votre compte
- create-dashboard - Créer de nouveaux tableaux de bord
- get-dashboard-details - Obtenir des informations détaillées sur les tableaux de bord, y compris les widgets et les dispositions
- update-dashboard - Mettre à jour la présentation d'un tableau de bord existant
Gestion de l'intégration
- get-integration-definitions - Permet d'obtenir la liste des définitions d'intégration disponibles avec les détails de configuration optionnels
- get-integration-instances - Obtenir des instances d'intégration avec un filtrage facultatif par ID de définition
- get-integration-jobs - Liste des travaux d'intégration avec filtrage facultatif par statut, instance ou définition
- get-integration-job - Permet d'obtenir les détails d'un travail d'intégration spécifique
- get-integration-events - Permet d'obtenir les événements d'une tâche d'intégration spécifique avec prise en charge de la pagination
Gestion des comptes
- test-connection - Tester la connexion à l'API JupiterOne et obtenir des informations sur le compte
Exécution de requêtes
- execute-j1ql-query - Exécute une requête J1QL
Outils disponibles
Gestion des règles
Outil | Description de l'outil | Paramètres de l'outil |
---|---|---|
liste-règles | Liste toutes les règles du compte | limit (optionnel) : Nombre de règles à renvoyer (1-1000) |
get-rule-details | Obtenir des informations détaillées sur les règles | ruleId : ID de la règle |
create-inline-question-rule | Créer une nouvelle règle de question en ligne | Objet complexe : nom , description , notifyOnFailure (facultatif), triggerActionsOnNewEntitiesOnly (facultatif), ignorePreviousResults (facultatif), pollingInterval , outputs , specVersion (facultatif), tags (facultatif), templates (facultatif), queries , operations |
update-inline-question-rule | Mise à jour d'une règle existante | id , name , description , notifyOnFailure , triggerActionsOnNewEntitiesOnly , ignorePreviousResults , pollingInterval , outputs , specVersion , version , tags , templates , labels , resourceGroupId , remediationSteps , question , operations |
evaluate-rule | Déclencher l'évaluation de la règle | ruleId : ID de la règle à évaluer |
Evaluations de règles
Outil | Description de l'outil | Paramètres de l'outil |
---|---|---|
list-rule-evaluations | Obtenir l'historique des évaluations de règles | ruleId , beginTimestamp (optionnel), endTimestamp (optionnel), limit (optionnel), tag (optionnel) |
get-rule-evaluation-details | Obtenir les résultats détaillés de l'évaluation | ruleId , timestamp |
get-raw-data-download-url | Obtenir l'URL de téléchargement des données brutes | rawDataKey |
get-rule-evaluation-query-results | Obtenir les résultats de l'évaluation | rawDataKey |
Outil de surveillance des alertes
Outil | Description de l'outil | Paramètres |
---|---|---|
get-active-alerts | Liste des alertes actives | limit (optionnel) : Nombre d'alertes à renvoyer (1-1000) |
Gestion du tableau de bord
Outil | Description de l'outil | Paramètres de l'outil de gestion des tableaux de bord |
---|---|---|
get-dashboards | Liste tous les tableaux de bord | Aucun |
create-dashboard | Créer un nouveau tableau de bord | nom , type |
get-dashboard-details | Obtenir les détails du tableau de bord | dashboardId |
update-dashboard | Mise à jour de la présentation d'un tableau de bord existant | dashboardId , layouts |
create-dashboard-widget | Créer un widget sur un tableau de bord | dashboardId , input |
Gestion de l'intégration
Outil | Description de l'outil | Paramètres |
---|---|---|
get-integration-definitions | Liste des définitions d'intégration | includeConfig (optionnel) : Inclut les champs de configuration |
get-integration-instances | Obtenir des instances d'intégration | definitionId (optionnel), limit (optionnel) |
get-integration-jobs | Liste les travaux d'intégration | status (optionnel), integrationInstanceId (optionnel), integrationDefinitionId (optionnel), integrationInstanceIds (optionnel), size (optionnel) |
get-integration-job | Obtenir les détails d'un travail d'intégration spécifique | integrationJobId , integrationInstanceId |
get-integration-events | Obtenir les événements d'un travail d'intégration spécifique | jobId , integrationInstanceId , curseur (facultatif), taille (facultatif) |
Gestion des comptes
Outil | Description de l'outil | Paramètres |
---|---|---|
test-connexion | Tester la connexion à l'API JupiterOne et obtenir des informations sur le compte | Aucun |
Exécution de la requête
Outil | Description de l'outil | Paramètres de l'outil |
---|---|---|
execute-j1ql-query | Exécute une requête J1QL | requête , variables (optionnel), curseur (optionnel), includeDeleted (optionnel), deferredResponse (optionnel), flags (optionnel), scopeFilters (optionnel) |
Déploiement
Ce paquetage est automatiquement publié sur npm lorsque les changements sont fusionnés sur la branche principale. Le serveur JupiterOne Remote MCP est configuré pour se déployer automatiquement lorsque des versions correctives (par exemple, 0.0.8 → 0.0.9) sont publiées.
Remarque: les mises à jour de versions mineures et majeures (par exemple, 0.0.x → 0.1.0 ou 0.x.x → 1.0.0) nécessitent des mises à jour manuelles des dépendances du serveur MCP distant.