0.0.4 • Published 5 months ago

@jupiterone/jupiterone-mcp v0.0.4

Weekly downloads
-
License
MIT
Repository
-
Last release
5 months ago

JupiterOne MCP Server

A Model Context Protocol (MCP) server that provides access to JupiterOne tools. This server enables AI assistants and other MCP clients to interact with JupiterOne's data.

Configuration

Prerequisites

  1. JupiterOne Account: You need an active JupiterOne account
  2. API Key: Generate an API key from your JupiterOne account settings
  3. Account ID: Your JupiterOne account identifier
  4. Working node installation with a version >= 18

Installation with Claude Desktop

To use this MCP server with Claude Desktop, you need to add it to your Claude configuration file.

Option 1: Using npx (Recommended)

Add the following configuration to your Claude Desktop configuration file:

{
  "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: Global Installation (For nvm users or troubleshooting)

If you're using nvm or experiencing issues with Option 1, first install the package globally:

npm install -g @jupiterone/jupiterone-mcp

Then add this configuration to your Claude Desktop config file:

{
  "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: You may need to adjust the paths in Option 2 based on your Node.js installation:

  • For Homebrew Node.js: /usr/local/bin/node and /usr/local/bin/jupiterone-mcp
  • For nvm: ~/.nvm/versions/node/v[version]/bin/node and ~/.nvm/versions/node/v[version]/bin/jupiterone-mcp

Installation with Cursor

For Cursor IDE, add the same configuration to your Cursor settings:

  1. Open Cursor Settings
  2. Navigate to "Features" → "Model Context Protocol"
  3. Add the server configuration using either Option 1 or Option 2 from above

Environment Variables

Replace the placeholder values with your actual JupiterOne credentials:

  • JUPITERONE_API_KEY: Your JupiterOne API key (required)
  • JUPITERONE_ACCOUNT_ID: Your JupiterOne account ID (required).
  • JUPITERONE_BASE_URL: JupiterOne GraphQL endpoint (optional, defaults to https://graphql.us.jupiterone.io)

Getting Your JupiterOne Credentials

  1. API Key:

    • Log into your JupiterOne account
    • Go to Settings → API Keys
    • Create a new API key or use an existing one
  2. Account ID:

    • This can be retrieved by either of the following:
    • Navigating to https://j1dev.apps.us.jupiterone.io/settings/account-management
    • Run the following query in your JupiterOne account: find jupiterone_account as x return x.accountId

Features

Rules Management

  • list-rules - List all rules with optional limit parameter
  • get-rule-details - Get detailed information about a specific rule by ID
  • create-inline-question-rule - Create new inline question-based rules with operations and actions
  • update-inline-question-rule - Update existing inline question rule instances
  • evaluate-rule - Trigger on-demand evaluation of a specific rule

Rule Evaluations

  • list-rule-evaluations - Get historical evaluation data for a rule with optional time filtering
  • get-rule-evaluation-details - Get detailed evaluation information including query, condition, and action results
  • get-raw-data-download-url - Get download URL for raw evaluation data
  • get-rule-evaluation-query-results - Get the actual query results from a rule evaluation

Alert Monitoring

  • get-active-alerts - Get all currently active alerts with optional limit parameter

Dashboard Management

  • get-dashboards - List all dashboards in your account
  • create-dashboard - Create new dashboards
  • get-dashboard-details - Get detailed dashboard information including widgets and layouts
  • update-dashboard - Update an existing dashboard layout

Integration Management

  • get-integration-definitions - List available integration definitions with optional configuration details
  • get-integration-instances - Get integration instances with optional filtering by definition ID
  • get-integration-jobs - List integration jobs with optional filtering by status, instance, or definition
  • get-integration-job - Get details for a specific integration job
  • get-integration-events - Get events for a specific integration job with pagination support

Account Management

  • test-connection - Test connection to JupiterOne API and get account information

Query Execution

  • execute-j1ql-query - Execute a J1QL query

Available Tools

Rules Management

ToolDescriptionParameters
list-rulesList all rules in the accountlimit (optional): Number of rules to return (1-1000)
get-rule-detailsGet detailed rule informationruleId: ID of the rule
create-inline-question-ruleCreate new inline question ruleComplex object: name, description, notifyOnFailure (optional), triggerActionsOnNewEntitiesOnly (optional), ignorePreviousResults (optional), pollingInterval, outputs, specVersion (optional), tags (optional), templates (optional), queries, operations
update-inline-question-ruleUpdate existing ruleid, name, description, notifyOnFailure, triggerActionsOnNewEntitiesOnly, ignorePreviousResults, pollingInterval, outputs, specVersion, version, tags, templates, labels, resourceGroupId, remediationSteps, question, operations
evaluate-ruleTrigger rule evaluationruleId: ID of the rule to evaluate

Rule Evaluations

ToolDescriptionParameters
list-rule-evaluationsGet rule evaluation historyruleId, beginTimestamp (optional), endTimestamp (optional), limit (optional), tag (optional)
get-rule-evaluation-detailsGet detailed evaluation resultsruleId, timestamp
get-raw-data-download-urlGet download URL for raw datarawDataKey
get-rule-evaluation-query-resultsGet query results from evaluationrawDataKey

Alert Monitoring

ToolDescriptionParameters
get-active-alertsList active alertslimit (optional): Number of alerts to return (1-1000)

Dashboard Management

ToolDescriptionParameters
get-dashboardsList all dashboardsNone
create-dashboardCreate new dashboardname, type
get-dashboard-detailsGet dashboard detailsdashboardId
update-dashboardUpdate an existing dashboard layoutdashboardId, layouts
create-dashboard-widgetCreate a widget on a dashboarddashboardId, input

Integration Management

ToolDescriptionParameters
get-integration-definitionsList integration definitionsincludeConfig (optional): Include configuration fields
get-integration-instancesGet integration instancesdefinitionId (optional), limit (optional)
get-integration-jobsList integration jobsstatus (optional), integrationInstanceId (optional), integrationDefinitionId (optional), integrationInstanceIds (optional), size (optional)
get-integration-jobGet details for a specific integration jobintegrationJobId, integrationInstanceId
get-integration-eventsGet events for a specific integration jobjobId, integrationInstanceId, cursor (optional), size (optional)

Account Management

ToolDescriptionParameters
test-connectionTest connection to JupiterOne API and get account informationNone

Query Execution

ToolDescriptionParameters
execute-j1ql-queryExecute a J1QL queryquery, variables (optional), cursor (optional), includeDeleted (optional), deferredResponse (optional), flags (optional), scopeFilters (optional)