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.
- JupiterOne Account: You need an active JupiterOne account
- API Key: Generate an API key from your JupiterOne account settings
- Account ID: Your JupiterOne account identifier
- Working node installation with a version >= 18 (See https://nodejs.org/en/download and click one of the green buttons)
To use this MCP server with Claude Desktop, you need to add it to your Claude configuration file.
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"
}
}
}
}
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
For Cursor IDE, add the same configuration to your Cursor settings:
- Open Cursor Settings
- Navigate to "Features" → "Model Context Protocol"
- Add the server configuration using either Option 1 or Option 2 from above
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
)
-
API Key:
- Log into your JupiterOne account
- Go to Settings → API Keys
- Create a new API key or use an existing one
-
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
- 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
- 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
- get-active-alerts - Get all currently active alerts with optional limit parameter
- 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
- 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
- test-connection - Test connection to JupiterOne API and get account information
- execute-j1ql-query - Execute a J1QL query
Tool | Description | Parameters |
---|---|---|
list-rules |
List all rules in the account | limit (optional): Number of rules to return (1-1000) |
get-rule-details |
Get detailed rule information | ruleId : ID of the rule |
create-inline-question-rule |
Create new inline question rule | Complex object: name , description , notifyOnFailure (optional), triggerActionsOnNewEntitiesOnly (optional), ignorePreviousResults (optional), pollingInterval , outputs , specVersion (optional), tags (optional), templates (optional), queries , operations |
update-inline-question-rule |
Update existing rule | id , name , description , notifyOnFailure , triggerActionsOnNewEntitiesOnly , ignorePreviousResults , pollingInterval , outputs , specVersion , version , tags , templates , labels , resourceGroupId , remediationSteps , question , operations |
evaluate-rule |
Trigger rule evaluation | ruleId : ID of the rule to evaluate |
Tool | Description | Parameters |
---|---|---|
list-rule-evaluations |
Get rule evaluation history | ruleId , beginTimestamp (optional), endTimestamp (optional), limit (optional), tag (optional) |
get-rule-evaluation-details |
Get detailed evaluation results | ruleId , timestamp |
get-raw-data-download-url |
Get download URL for raw data | rawDataKey |
get-rule-evaluation-query-results |
Get query results from evaluation | rawDataKey |
Tool | Description | Parameters |
---|---|---|
get-active-alerts |
List active alerts | limit (optional): Number of alerts to return (1-1000) |
Tool | Description | Parameters |
---|---|---|
get-dashboards |
List all dashboards | None |
create-dashboard |
Create new dashboard | name , type |
get-dashboard-details |
Get dashboard details | dashboardId |
update-dashboard |
Update an existing dashboard layout | dashboardId , layouts |
create-dashboard-widget |
Create a widget on a dashboard | dashboardId , input |
Tool | Description | Parameters |
---|---|---|
get-integration-definitions |
List integration definitions | includeConfig (optional): Include configuration fields |
get-integration-instances |
Get integration instances | definitionId (optional), limit (optional) |
get-integration-jobs |
List integration jobs | status (optional), integrationInstanceId (optional), integrationDefinitionId (optional), integrationInstanceIds (optional), size (optional) |
get-integration-job |
Get details for a specific integration job | integrationJobId , integrationInstanceId |
get-integration-events |
Get events for a specific integration job | jobId , integrationInstanceId , cursor (optional), size (optional) |
Tool | Description | Parameters |
---|---|---|
test-connection |
Test connection to JupiterOne API and get account information | None |
Tool | Description | Parameters |
---|---|---|
execute-j1ql-query |
Execute a J1QL query | query , variables (optional), cursor (optional), includeDeleted (optional), deferredResponse (optional), flags (optional), scopeFilters (optional) |
This package is automatically published to npm when changes are merged to the main branch. The JupiterOne Remote MCP server is configured to automatically deploy when patch versions (e.g., 0.0.8 → 0.0.9) are published.
Note: Minor and major version updates (e.g., 0.0.x → 0.1.0 or 0.x.x → 1.0.0) require manual updates to the Remote MCP server's dependencies.