JupiterOne AI Integration (MCP Server)
The JupiterOne Model Context Protocol (MCP) Server enables AI assistants like Claude (on claude.ai and Claude Desktop), Claude Code, Cursor, and Amazon Kiro to interact directly with your JupiterOne account using natural language.
Prerequisites
- Active JupiterOne account with API access
- JupiterOne API key and account ID
- Node.js version 20 or higher (for local server only)
- AI assistant with MCP support (Claude on claude.ai, Claude Desktop, Claude Code, Cursor IDE, ChatGPT, GitHub Copilot, Continue.dev, Cline, Devin Desktop (formerly Windsurf), Amazon Kiro, etc.)
Installation Methods
Install from the Claude connector directory (easiest)
JupiterOne is published in the Claude connector directory. If you use Claude, this is the fastest path — there is no JSON to edit and no URL to construct.
- Open claude.ai/directory/jupiterone.
- Click Connect and choose your JupiterOne region.
- Sign in to JupiterOne, then approve the consent screen — it lists what the connector will be allowed to do before anything is granted.
The directory connector uses JupiterOne's hosted remote server, so it requires no local installation and stays on the current release automatically.
The directory connector is not tied to one account. If your sign-in can reach more than one, ask Claude to "list my JupiterOne accounts" — every tool acts on one account per call, and list-accounts returns each account you can use along with its accountId.
Have an AI set this up for you
If you'd rather not edit JSON by hand, copy the prompt below and paste it into your AI assistant. It will ask for the credentials it needs and walk you through the install.
Preview the prompt
Help me install the JupiterOne MCP server in this client. The setup docs are at https://docs.jupiterone.io/integrations/jupiterone-mcp-server.
- Ask whether I want the remote (OAuth, recommended) or local (API key) deployment.
- If local, ask me for my JupiterOne API key and account ID. My account ID can be found at https://docs.jupiterone.io/features/admin/admin-settings#account-management — this is the account ID, not the vanity domain.
- Show me the JSON to add to your MCP config file. If a config already exists, preserve existing servers and merge mine in.
- Tell me how to restart and verify the server is connected.
Manual setup
The JupiterOne MCP Server can be configured in two ways:
Option 1: Remote HTTP Server (Recommended)
Use JupiterOne's hosted MCP server without local installation:
- URL Format:
https://your-account-id-here.mcp.<REGION>.jupiterone.io/mcp - Example:
https://j1dev.mcp.us.jupiterone.io/mcp - Authentication: OAuth-based authentication with JupiterOne login
Replace <REGION> with us or eu based on your JupiterOne instance. The examples in this guide use us.
The remote HTTP server option:
- Requires no local installation
- Handles authentication through JupiterOne's OAuth flow
- Automatically stays up-to-date with the latest features
- Works across different machines without setup
Option 2: Local Server (stdio)
Install and run the MCP server locally using npx:
npx @jupiterone/jupiterone-mcp
Or install globally for repeated use:
npm install -g @jupiterone/jupiterone-mcp
Configuration
Get Your Credentials
For Remote Server (Option 1)
- Account ID: Found in Account Management
- Region: Your JupiterOne instance region (e.g.,
us,eu)
For Local Server (Option 2)
- API Key: Navigate to Settings → User API Tokens in JupiterOne and create a new API key
- Account ID: Found in Account Management or by running:
find jupiterone_account as x return x.accountId
- Local Server: Uses API key authentication and runs within the context of the user, respecting RBAC configuration
- Remote Server: Uses OAuth authentication through JupiterOne login, automatically applying your user permissions
AI Platform Setup
- Claude Desktop
- Claude Code
- Cursor IDE
- GitHub Copilot
- Continue.dev
- Cline (VS Code Extension)
- Devin Desktop
- Amazon Kiro
Configuration file location:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
Local server
Edit the configuration file above and add:
Local Server Configuration:
{
"mcpServers": {
"jupiterone": {
"command": "npx",
"args": ["-y", "@jupiterone/jupiterone-mcp"],
"env": {
"JUPITERONE_API_KEY": "your-api-key-here",
"JUPITERONE_ACCOUNT_ID": "your-account-id-here"
}
}
}
}
Restart Claude Desktop.
Remote server
In the Claude Desktop App:
- Navigate to Settings → Connectors.
- Click Add custom connector at the bottom of the section.
- Set the title to
JupiterOneand the URL tohttps://your-account-id-here.mcp.us.jupiterone.io/mcp. - Click Add and complete the OAuth sign-in.
Claude Code supports MCP via CLI command or config file.
Option A — CLI (recommended)
For the local server:
claude mcp add jupiterone -- npx -y @jupiterone/jupiterone-mcp \
--env JUPITERONE_API_KEY=your-api-key-here \
--env JUPITERONE_ACCOUNT_ID=your-account-id-here
For the remote server:
claude mcp add --transport http jupiterone https://your-account-id-here.mcp.us.jupiterone.io/mcp
Option B — Config file
Edit ~/.claude.json (user-level) or create .mcp.json in your project root (project-level, can be checked into source control):
Local Server Configuration:
{
"mcpServers": {
"jupiterone": {
"command": "npx",
"args": ["-y", "@jupiterone/jupiterone-mcp"],
"env": {
"JUPITERONE_API_KEY": "your-api-key-here",
"JUPITERONE_ACCOUNT_ID": "your-account-id-here"
}
}
}
}
Remote Server Configuration:
{
"mcpServers": {
"jupiterone": {
"url": "https://your-account-id-here.mcp.us.jupiterone.io/mcp"
}
}
}
Replace us with eu if your JupiterOne instance is in the EU region.
Run /mcp inside Claude Code to verify the server is connected.
- Open Cursor Settings (⌘+, on Mac, Ctrl+, on Windows).
- Navigate to Features → Model Context Protocol.
- Add configuration based on your chosen method:
Local Server Configuration:
{
"mcpServers": {
"jupiterone": {
"command": "npx",
"args": ["-y", "@jupiterone/jupiterone-mcp"],
"env": {
"JUPITERONE_API_KEY": "your-api-key-here",
"JUPITERONE_ACCOUNT_ID": "your-account-id-here"
}
}
}
}
Remote Server Configuration:
{
"mcpServers": {
"jupiterone": {
"url": "https://your-account-id-here.mcp.us.jupiterone.io/mcp"
}
}
}
Replace us with eu if your JupiterOne instance is in the EU region.
- Restart Cursor.
If you've previously connected to JupiterOne or need to switch accounts:
- In Cursor Settings, navigate to Features → Model Context Protocol.
- Expand the Tools enabled section for the JupiterOne MCP server.
- Click the Logout button at the top.
- Restart Cursor to reauthenticate with your JupiterOne account.
GitHub Copilot MCP support is generally available in Visual Studio Code, JetBrains, Eclipse, and Xcode. The MCP servers in Copilot policy is disabled by default and must be enabled by an organization or enterprise administrator before Copilot can connect to JupiterOne.
- Create
.vscode/mcp.jsonin your project root. - Add configuration based on your chosen method.
Local Server Configuration:
{
"servers": {
"jupiterone": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@jupiterone/jupiterone-mcp"],
"env": {
"JUPITERONE_API_KEY": "your-api-key-here",
"JUPITERONE_ACCOUNT_ID": "your-account-id-here"
}
}
}
}
Remote Server Configuration:
{
"servers": {
"jupiterone": {
"type": "http",
"url": "https://your-account-id-here.mcp.us.jupiterone.io/mcp"
}
}
}
- Click Start in the gutter of
.vscode/mcp.jsonto launch the server. - Open Copilot Chat, select Agent mode, and click the tools icon to confirm JupiterOne tools are listed.
For details, see the GitHub Copilot MCP documentation.
- Open Continue.dev settings.
- Navigate to MCP configuration.
- Add configuration based on your chosen method:
Local Server Configuration:
{
"mcpServers": {
"jupiterone": {
"command": "npx",
"args": ["-y", "@jupiterone/jupiterone-mcp"],
"env": {
"JUPITERONE_API_KEY": "your-api-key-here",
"JUPITERONE_ACCOUNT_ID": "your-account-id-here"
}
}
}
}
Remote Server Configuration:
{
"mcpServers": {
"jupiterone": {
"url": "https://your-account-id-here.mcp.us.jupiterone.io/mcp"
}
}
}
Replace us with eu if your JupiterOne instance is in the EU region.
- Install the Cline extension from the VS Code marketplace.
- Open VS Code settings (⌘+, on Mac, Ctrl+, on Windows).
- Search for "Cline MCP".
- Add configuration based on your chosen method:
Local Server Configuration:
{
"mcpServers": {
"jupiterone": {
"command": "npx",
"args": ["-y", "@jupiterone/jupiterone-mcp"],
"env": {
"JUPITERONE_API_KEY": "your-api-key-here",
"JUPITERONE_ACCOUNT_ID": "your-account-id-here"
}
}
}
}
Remote Server Configuration:
{
"mcpServers": {
"jupiterone": {
"url": "https://your-account-id-here.mcp.us.jupiterone.io/mcp"
}
}
}
Replace us with eu if your JupiterOne instance is in the EU region.
Windsurf was rebranded as Devin Desktop by Cognition in June 2026. Existing installs received the change as an over-the-air update, and the configuration file path still uses the original windsurf directory name.
- Open Devin Settings → Cascade → MCP Servers, or click the MCPs icon in the top-right menu of the Cascade panel.
- Open the raw configuration file,
~/.codeium/windsurf/mcp_config.json. - Add configuration based on your chosen method:
Local Server Configuration:
{
"mcpServers": {
"jupiterone": {
"command": "npx",
"args": ["-y", "@jupiterone/jupiterone-mcp"],
"env": {
"JUPITERONE_API_KEY": "your-api-key-here",
"JUPITERONE_ACCOUNT_ID": "your-account-id-here"
}
}
}
}
Remote Server Configuration:
{
"mcpServers": {
"jupiterone": {
"url": "https://your-account-id-here.mcp.us.jupiterone.io/mcp"
}
}
}
Replace us with eu if your JupiterOne instance is in the EU region.
- Restart Devin Desktop.
-
Locate or create your Kiro MCP configuration file:
- Workspace (project-specific):
.kiro/settings/mcp.jsonin your project root - User (global):
~/.kiro/settings/mcp.json
Workspace settings override user settings when both define the same server.
- Workspace (project-specific):
-
Add configuration based on your chosen method.
Local Server Configuration:
{
"mcpServers": {
"jupiterone": {
"command": "npx",
"args": ["-y", "@jupiterone/jupiterone-mcp"],
"env": {
"JUPITERONE_API_KEY": "your-api-key-here",
"JUPITERONE_ACCOUNT_ID": "your-account-id-here"
},
"disabled": false,
"autoApprove": []
}
}
}
Remote Server Configuration:
{
"mcpServers": {
"jupiterone": {
"url": "https://your-account-id-here.mcp.us.jupiterone.io/mcp",
"disabled": false,
"autoApprove": []
}
}
}
-
Save the file. Kiro applies
autoApproveanddisabledToolschanges immediately, but you must restart Kiro to register a newly added server. -
Verify the connection by opening Kiro's Output panel and selecting Kiro - MCP Logs.
Kiro supports stdio and HTTP transports natively but does not currently support SSE.
Verify Installation
Once configured, test the connection by asking your AI assistant:
"List my JupiterOne integrations"
A successful response confirms the MCP server is connected and authenticated. If you receive an error or no response, see Troubleshooting.
What You Can Do
The MCP server provides 29 tools spanning query execution, alert monitoring, rules management, dashboard management, integration monitoring, and account discovery. Ask your AI assistant questions in natural language — it selects the right tool and, when a query is needed, writes the J1QL for you.
Prompt Templates by Use Case
Copy any prompt below and paste it into your AI assistant. Where a prompt produces a J1QL query, the query is shown so you can learn the syntax or adapt it.
- Asset Inventory
- Identity & Access
- Vulnerabilities
- Compliance & Alerts
- Integrations
| Prompt | J1QL the AI generates |
|---|---|
| "How many cloud instances do I have, broken down by provider?" | Find Host with _integrationType != undefined as h return h._integrationType as Provider, count(h) as Total |
| "List all data stores that are not encrypted" | Find DataStore with encrypted != true |
| "Show me all resources without a data classification tag" | Find (Host|DataStore) with classification = undefined |
| "Which S3 buckets are publicly accessible?" | Find aws_s3_bucket with classification = 'Public' OR bucketPolicy.public = true |
| "Find all hosts that have not been scanned in the last 30 days" | Find Host that !has Assessment with _createdOn > date.now-30days |
| Prompt | J1QL the AI generates |
|---|---|
| "Who has admin access across all providers?" | Find AccessRole with admin = true as role that assigned User as user return user.displayName, role.displayName, role._integrationType |
| "Find users with MFA disabled" | Find User with mfaEnabled != true |
| "Which service accounts have not been rotated in 90 days?" | Find AccessKey with createdOn < date.now-90days as key return key.displayName, key._integrationType, key.createdOn |
| "List new hires from the last 12 months" | Find employee with _createdOn > date.now-12months |
| "Find all users who can assume a role in a production account" | Find User that assigned AccessRole that assigned Account with tag.Production = true |
| Prompt | J1QL the AI generates |
|---|---|
| "Show me all critical vulnerabilities from the last 7 days" | Find Finding with severity = 'critical' and _createdOn > date.now-7days as f return f.displayName, f.severity, f.numericSeverity |
| "Which applications have open vulnerabilities?" | Find Application as app that has Vulnerability as vuln return app.displayName, vuln.displayName, vuln.severity |
| "Are there any hosts with both public exposure and critical vulnerabilities?" | Find Host with publicIpAddress != undefined that has Finding with severity = 'critical' |
| "Find vulnerabilities that have been open for more than 30 days" | Find Vulnerability with _createdOn < date.now-30days and open = true |
| "Count open findings by severity" | Find Finding with open = true as f return f.severity as Severity, count(f) as total |
| Prompt | J1QL the AI generates |
|---|---|
| "Get all active alerts" | Uses get-active-alerts tool directly |
| "List all my alert rules" | Uses list-rules tool directly |
| "Create a rule that fires when a new critical vulnerability is found" | Uses create-inline-question-rule tool with a Finding query |
| "Show my dashboards" | Uses get-dashboards tool directly |
| "Create a dashboard tracking my biggest security risks" | Uses create-dashboard + create-dashboard-widget tools |
| Prompt | J1QL the AI generates |
|---|---|
| "List my JupiterOne integrations" | Uses get-integration-instances tool directly |
| "Which integrations failed their last run?" | Uses get-integration-jobs tool with status filter |
| "Show me the event log for the latest AWS integration job" | Uses get-integration-jobs then get-integration-events tools |
| "What integration types are available?" | Uses get-integration-definitions tool directly |
| "Is my CrowdStrike integration healthy?" | Uses get-integration-instances then get-integration-jobs tools |
For the full J1QL language reference, including traversals, aggregations, and filtering, see the J1QL documentation.
Available Tools
The MCP server exposes the following tools. Your AI assistant selects the right tool automatically based on your question.
Query Execution
| Tool | Description |
|---|---|
execute-j1ql-query | Execute any J1QL query. Supports variables, cursor-based pagination, deleted entity inclusion, scope filters, and query flags. |
get-query-results | Retrieve results of a long-running query. Use when execute-j1ql-query returns status: "IN_PROGRESS" with a resultsUrl. |
Alert Monitoring
| Tool | Description |
|---|---|
get-active-alerts | List currently active alerts, with optional limit (1–1000). |
Rules Management
| Tool | Description |
|---|---|
list-rules | List all rules in the account, with optional limit. |
get-rule-details | Get full details of a specific rule by ID. |
create-inline-question-rule | Create a new inline question-based rule with queries, operations, and actions. |
update-inline-question-rule | Update an existing inline question rule. |
delete-rule | Delete an alert rule. Irreversible, and it does not dismiss alerts the rule already raised. |
evaluate-rule | Trigger on-demand evaluation of a specific rule. |
list-rule-evaluations | Get historical evaluation data for a rule, with optional time range filtering. |
get-rule-evaluation-details | Get detailed evaluation results including query output, condition results, and action results. |
get-raw-data-download-url | Get a download URL for raw evaluation data. |
get-rule-evaluation-query-results | Get the actual query results from a rule evaluation. |
Dashboard Management
| Tool | Description |
|---|---|
get-dashboards | List all dashboards in your account. |
create-dashboard | Create a new dashboard. |
get-dashboard-details | Get full dashboard information including widgets and layouts. |
update-dashboard | Update an existing dashboard's layout. |
create-dashboard-widget | Add a widget to a dashboard. |
update-dashboard-widget | Update an existing widget's query, title, or chart type. |
delete-dashboard | Delete an entire dashboard and all its widgets. |
delete-dashboard-widget | Delete a single widget from a dashboard. |
Integration Management
| Tool | Description |
|---|---|
get-integration-definitions | List available integration types, optionally including configuration fields. |
get-integration-instances | List configured integration instances, optionally filtered by definition. |
get-integration-jobs | List integration jobs filtered 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. |
Account Management
| Tool | Description |
|---|---|
test-connection | Test connectivity and return account information and permissions. |
list-accounts | List JupiterOne accounts the authenticated user can access, each with its accountId, display name, and mcpUrl — the connector URL that pins that account. Use it to find the right account when a connector points at one you cannot reach. |
list-entity-types | Discover all entity classes and types available in your account. |
Known Limitations
- Deletes cover rules and dashboards only:
delete-rule,delete-dashboard, anddelete-dashboard-widgetare the only delete operations. Integrations, entities, and other resources cannot be deleted through the MCP server. Write and delete tools are annotated (readOnlyHint/destructiveHint) so MCP clients can prompt for approval before running them. - Deleting a rule does not dismiss its alerts: alerts the rule already raised stay active after the rule is gone, and the rule's configuration cannot be recovered. To stop a rule firing while keeping its configuration and evaluation history, ask for its polling interval to be set to
DISABLEDinstead of deleting it.
The MCP server consumes your JupiterOne API rate limit quota. Each operation counts against your API rate limits. Monitor your usage to avoid hitting limits during critical operations.
Troubleshooting
URL uses your vanity domain instead of your account ID
The remote server URL must use your account ID, not your vanity domain (the custom subdomain like acme.app.us.jupiterone.io). If you see authentication or "account not found" errors with the remote server, double-check the URL.
Find your account ID in Account Management — it is listed separately from the Vanity URL.
Server does not appear in your client
- Confirm your JSON config is valid (a single trailing comma will cause silent failure).
- Restart your AI client. Most clients only load MCP config on startup.
- Check the client's MCP log:
- Claude Desktop:
~/Library/Logs/Claude/mcp*.log(macOS) or%APPDATA%\Claude\logs\mcp*.log(Windows) - Cursor: Output panel → "Cursor MCP"
- VS Code (Copilot/Cline): Output panel → relevant extension
- Kiro: Output panel → "Kiro - MCP Logs"
- Claude Code: run
/mcpinside the session
- Claude Desktop:
npx or command not found errors
The local server requires Node.js 20+ on your PATH. Run node --version in the same shell your client uses. On macOS, GUI apps may not inherit your shell's PATH; use an absolute path to npx (find it with which npx) in the config.
OAuth flow fails for the remote server
Sign out of your JupiterOne account in your browser, then retry the OAuth handshake.
A query comes back as status: "IN_PROGRESS"
This is not an error. Heavy graph traversals can outlive a single tool call, so the query keeps running on the server and the response carries a resultsUrl handle. Your assistant should call get-query-results with that handle to collect the results — it does not need to run the query again.
- Queries that succeed almost always finish within about 4 minutes.
- Past roughly 13 minutes a query will not complete. Narrow it — indexed
WITHfilters, a smallerLIMIT, fewer traversals — and run it again. - The handle expires about an hour after the query started. Re-running an identical query within about 5 minutes re-attaches to the same execution instead of starting over.
If your assistant keeps re-issuing execute-j1ql-query instead of using the handle, it restarts the query from scratch each time. Tell it to call get-query-results with the resultsUrl it was given.
A valid query is rejected as a syntax error (local server)
The local server checks J1QL against a copy of the platform's query grammar that is bundled when the package is published, so syntax mistakes come back instantly instead of costing a round-trip. A significantly out-of-date install can therefore reject syntax that a newer query service would accept.
Update the package first: npx picks up the newest version on each run, and a global install updates with npm install -g @jupiterone/jupiterone-mcp. If you need to bypass the local check in the meantime, set JUPITERONE_SKIP_QUERY_VALIDATION to 1 in your MCP client config — the backend still validates every query.
{
"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_SKIP_QUERY_VALIDATION": "1"
}
}
}
}
This applies to the local server only. The remote server always runs the current release, so its grammar cannot fall behind.
Hitting API rate limits
Each MCP query consumes JupiterOne API quota. See API rate limiting for limits and recommendations.
FAQ
Data Residency & Processing
The JupiterOne MCP Server is available in two deployment modes. The local server runs on your machine and uses your API key to fetch data on demand from JupiterOne's cloud — data never passes through any centralized JupiterOne MCP host. The remote HTTP server is hosted by JupiterOne in the same region as your account and authenticates via OAuth; data residency follows the same regional principles as standard JupiterOne API access. In both modes, retrieved data is forwarded to your AI assistant's LLM provider (e.g., Anthropic, OpenAI) per your client's configuration.
LLM Compatibility & Data Handling
The MCP Server integrates with any AI assistant that supports the Model Context Protocol (MCP), including Claude on claude.ai, Claude Desktop, Claude Code, Cursor IDE, ChatGPT, GitHub Copilot, Continue.dev, Cline, Devin Desktop (formerly Windsurf), and Amazon Kiro. Once the server is running and configured, your assistant can use natural language to request security data, which is fetched from JupiterOne and passed to the LLM for interpretation. This means data such as asset inventories, vulnerability reports, or alert summaries can be included in AI prompts, depending on what you query. It's important to treat this as a form of third-party data sharing—ensure your selected assistant has appropriate enterprise security practices in place.
Privacy, Logging & Data Sharing
Your API key (local server) or OAuth session (remote server) governs all access, and data is only transmitted in response to your assistant's specific queries. JupiterOne does not store the results of your queries, your query parameters, or action payloads.
For operational monitoring, the remote server records sanitized, non-sensitive usage telemetry — such as which tool ran and whether it succeeded — with query content redacted. The local server keeps this telemetry on your own machine and sends nothing to JupiterOne.
Separately, your AI assistant may log conversations or prompts on its own platform, just as it would during typical usage. To manage exposure, review your LLM provider's data retention and privacy terms, and consider using enterprise or self-hosted models for sensitive environments.
For JupiterOne's formal data-handling commitments — including data collection, retention, storage, and third-party processors — see the Privacy Policy, Data Processing Addendum, and Subprocessors in the Legal & Security Hub. For privacy questions, contact privacy@jupiterone.com.
Access Control & Security Enforcement
Data access through the MCP Server is governed entirely by the credentials you provide. The local server inherits all access controls from the user role attached to the API key; the remote server inherits them from the OAuth-authenticated user. AI assistants can only retrieve what your account has permission to access. You can further restrict access by scoping the API key, adjusting user roles, or disabling individual MCP tools. You retain full control over when the server runs and what it can access — turning off the server or removing its configuration from your assistant completely disables AI access.
Rate Limits & Quotas
Every request made through the MCP Server counts against your JupiterOne API rate limit. This includes queries for asset data, alerts, dashboards, or integrations. Frequent use through an AI assistant could impact your rate quota if not monitored. We recommend reviewing your API usage regularly—especially when enabling assistants for broad or high-frequency queries—to avoid service slowdowns.
Deployment, Support & Customer Control
The JupiterOne MCP Server can be deployed either locally on your machine or accessed through JupiterOne's hosted remote server. The local server runs entirely in your environment with no persistent connections; the remote server connects securely through OAuth authentication and is hosted in the same region as your account. You can disable either at any time by stopping the local process or removing your AI assistant's MCP configuration. For assistance or onboarding, reach out to your CSM or email support@jupiterone.com.
Release notes
- What's new in MCP 2.0 — the 2026-07-28 protocol revision, a cacheable tool list, accurate query result schemas, and the Node.js 20 requirement for the local server
- What's new in MCP 1.0 — the first generally available release: 24 tools, hardened OAuth on the remote server, structured output, and the 1.x point releases that took it to 28 tools
Support
For technical support or questions, email support@jupiterone.com. Existing customers can also reach their Customer Success Manager or use their standard JupiterOne support channels.