SentinelOne MCP服务器
  
A. 模型上下文协议 将AI助手连接到SentinelOne租户的服务器。管理威胁、调查端点、使用深度可见性进行搜索和分类警报——所有这些都来自自然语言。
零依赖。 Stdlib只支持二进制。无运行时要求。只需复制并运行。
______________________________________________________________________
快速开始
1.建造
git clone https://github.com/c0tton-fluff/sentinelone-mcp-server.git
cd sentinelone-mcp-server
go build -o sentinelone-mcp-server .
2.获取您的API代币
S1控制台>配置文件(右上)> 我的资料 >行动> API令牌操作 > 重新生成API令牌
3.配置您的MCP客户端
添加 ~/.mcp.json:
{
"mcpServers": {
"sentinelone": {
"command": "/path/to/sentinelone-mcp-server",
"env": {
"SENTINELONE_API_KEY": "your_api_token_here",
"SENTINELONE_API_BASE": "https://your-tenant.sentinelone.net"
}
}
}
}
4.去吧
"List all unmitigated threats"
"Investigate threat 1234567890"
"Show infected agents"
"Hunt for PowerShell processes in the last 24 hours"
"What's the reputation of this SHA256?"
"Create an exclusion for /opt/myapp on Linux"
"What applications are installed on Benedict's laptop?"
______________________________________________________________________
工具(21)
威胁
| 工具 | 它做什么 |
|---|
s1_list_threats | 列出具有分类、状态和端点筛选器的威胁 |
s1_get_threat | 完整的威胁细节——哈希值、文件路径、故事情节 |
s1_mitigate_threat | 杀死、隔离、解除隔离、修复或回滚 |
s1_investigate_threat | 一次通话调查:威胁+相关警报+时间线 |
s1_set_analyst_verdict | 设置判断:true_positive、false_ppositive、可疑、未定义 |
s1_set_incident_status | 设置状态(在同一通话中可选择判断) |
代理
| 工具 | 它做什么 |
|---|
s1_list_agents | 列出带有操作系统、状态、感染过滤器的代理,并按分组计数 |
s1_get_agent | 代理详细信息——版本、站点、网络信息、帐户ID |
s1_isolate_agent | 网络隔离端点(维护S1通信) |
s1_reconnect_agent | 删除网络隔离 |
警报
| 工具 | 它做什么 |
|---|
s1_list_alerts | 通过GraphQL查询具有严重性、判断和状态过滤器的统一警报 |
s1_set_alert_verdict | 批量设置分析师对匹配警报的判断 |
s1_set_alert_status | 批量设置事件状态(可选判决) |
深度可见性
| 工具 | 它做什么 |
|---|
s1_dv_query | 使用自动轮询运行威胁搜索查询 |
s1_dv_get_events | 从已完成的查询中检索事件 |
智能
| 工具 | 它做什么 |
|---|
s1_hash_reputation | 哈希判决+通过深度可见性进行舰队范围内的狩猎 |
除外条款
| 工具 | 它做什么 |
|---|
s1_list_exclusions | 列出排除项(路径、哈希、证书、浏览器、文件类型) |
s1_create_exclusion | 创建排除以抑制假阳性检测 |
s1_delete_exclusion | 按ID删除排除项 |
STAR规则
| 工具 | 它做什么 |
|---|
s1_create_star_rule | 从深度可见性查询创建自定义检测规则 |
应用程序
| 工具 | 它做什么 |
|---|
s1_list_applications | 按名称或计算机列出端点上安装的软件 |
______________________________________________________________________
Full parameter reference
s1_list_threats
| 参数 | 类型 | 说明 |
|---|
computerName | string | 按端点名称搜索(部分匹配) |
threatName | string | 按威胁名称搜索(部分匹配) |
limit | number | 最大结果(默认50,最大200) |
mitigationStatuses | string\[\] | 未缓解、缓解、标记为as_benign |
classifications | string\[\] | 恶意软件、PUA、可疑 |
s1_get_威胁
| 参数 | 类型 | 说明 |
|---|
threatId | 字符串 | 必修的。 威胁ID |
s1_动议_三
| 参数 | 类型 | 说明 |
|---|
threatId | 字符串 | 必修的。 威胁ID |
action | 字符串 | 必修的。 杀死、隔离、取消隔离、修复、回滚修复 |
s1_调查_三
| 参数 | 类型 | 说明 |
|---|
threatId | 字符串 | 必修的。 威胁ID |
s1_set_analyst判定
| 参数 | 类型 | 说明 |
|---|
threatId | 字符串 | 必修的。 威胁ID |
verdict | 字符串 | 必修的。 真阳性、假阳性、可疑、未定义 |
s1_set_incident_status
| 参数 | 类型 | 说明 |
|---|
threatId | 字符串 | 必修的。 威胁ID |
status | 字符串 | 必修的。 未解决,正在进行中,已解决 |
verdict | string | 可选:在同一调用中设置分析师判断 |
s1_list_agents
| 参数 | 类型 | 说明 |
|---|
computerName | string | 按计算机名搜索(部分匹配) |
limit | number | 最大结果(默认50,最大200) |
osTypes | string\[\] | windows、macos、linux |
isActive | boolean | 按活动状态筛选 |
isInfected | boolean | 按感染状态筛选 |
networkStatuses | string\[\] | 已连接、已断开连接、正在连接、断开连接 |
countBy | string | 组计数依据:用户、操作系统、站点、组 |
s1_get_agent
| 参数 | 类型 | 说明 |
|---|
agentId | 字符串 | 必修的。 代理ID |
s1_isolate_agent/s1_connect_agent
| 参数 | 类型 | 说明 |
|---|
agentId | 字符串 | 必修的。 代理ID |
s1_list_alerts
| 参数 | 类型 | 说明 |
|---|
limit | number | 最大结果(默认50,最大200) |
severity | string | 低、中、高、临界 |
analystVerdict | string | TRUE_POSITIVE,FALSE_POSITIVE,SUSPICIOUS,underfined |
incidentStatus | string | 新,IN_PROGRESS,已解析(别名:未解析,打开) |
siteIds | string\[\] | 按站点ID筛选 |
storylineId | string | 按故事情节ID与威胁相关 |
s1_set_alert_verdict
| 参数 | 类型 | 说明 |
|---|
verdict | 字符串 | 必修的。 真阳性、假阳性、可疑、未定义 |
alertIds | string\[\] | 特定于目标的警报ID |
query | string | 自由文本搜索(用于用户名匹配) |
ruleName | string\[\] | 按规则名称筛选(部分匹配) |
agentName | string\[\] | 按端点名称而非用户名筛选(部分匹配) |
incidentStatus | string\[\] | 按当前状态筛选 |
siteIds | string\[\] | 按站点ID筛选 |
s1_set_alert_status
| 参数 | 类型 | 说明 |
|---|
status | 字符串 | 必修的。 未解决,正在进行中,已解决 |
verdict | string | 可选:在同一调用中设置分析师判断 |
alertIds | string\[\] | 特定于目标的警报ID |
query | string | 自由文本搜索(用于用户名匹配) |
ruleName | string\[\] | 按规则名称筛选(部分匹配) |
agentName | string\[\] | 按端点名称而非用户名筛选(部分匹配) |
incidentStatus | string\[\] | 按当前状态筛选 |
siteIds | string\[\] | 按站点ID筛选 |
s1_hash_推定
| 参数 | 类型 | 说明 |
|---|
hash | 字符串 | 必修的。 SHA1(40个字符)或SHA256(64个字符) |
s1_dvquery
| 参数 | 类型 | 说明 |
|---|
query | 字符串 | 必修的。 深度可见性查询(S1QL) |
fromDate | 字符串 | 必修的。 ISO格式开始日期 |
toDate | 字符串 | 必修的。 ISO格式结束日期 |
siteIds | string\[\] | 按站点ID筛选 |
accountIds | string\[\] | 按帐户ID筛选 |
s1_dv_get_events
| 参数 | 类型 | 说明 |
|---|
queryId | 字符串 | 必修的。 来自s1_dv_Query的查询ID |
limit | number | 最大结果数(默认值100,最大值100) |
s1_list_排除
| 参数 | 类型 | 说明 |
|---|
type | string | 路径、white_hash、证书、浏览器、file_type |
value | string | 按排除值搜索(部分匹配) |
osTypes | string | windows、macos、linux(逗号分隔) |
siteIds | string\[\] | 按站点ID筛选 |
limit | number | 最大结果(默认50,最大100) |
s1_create_排除
| 参数 | 类型 | 说明 |
|---|
type | 字符串 | 必修的。 路径、white_hash、证书、浏览器、file_type |
value | 字符串 | 必修的。 要排除的值 |
osType | 字符串 | 必修的。 windows、macos、linux |
siteIds | string\[\] | 特定站点的作用域(使用s1_get_agent查找siteId) |
description | string | 排除原因 |
mode | string | 抑制、仅抑制动态、禁用进程监视器、禁用所有监视器 |
pathExclusionType | string | 子文件夹(默认)或文件 |
s1_delete_exclusion
| 参数 | 类型 | 说明 |
|---|
ids | string\[\] | 必修的。 要删除的排除ID |
s1_create_star_rule
| 参数 | 类型 | 说明 |
|---|
name | 字符串 | 必修的。 规则名称 |
s1ql | 字符串 | 必修的。 触发规则的深度可见性查询 |
severity | 字符串 | 必修的。 低、中、高、临界 |
siteIds | string\[\] | 作用域到站点 |
accountIds | string\[\] | 范围到帐户 |
tenant | boolean | 租户范围 |
description | string | 规则检测到什么 |
treatAsThreat | string | 未确定(仅警报)、可疑、恶意 |
networkQuarantine | boolean | 触发器自动隔离端点 |
expirationMode | string | 永久(默认)或临时 |
expiration | string | ISO日期(如果是临时的,则需要) |
status | string | 活动(默认)、草稿、禁用 |
s1_list_应用程序
| 参数 | 类型 | 说明 |
|---|
name | string | 按应用程序名称筛选(部分匹配) |
agentName | string | 按端点名称筛选(部分匹配) |
limit | number | 最大结果数(默认值50,最大值1000) |
至少其中之一 name 或 agentName 是必需的。
______________________________________________________________________
故障排除
| 错误 | 修复 |
|---|
| 配置错误 | 确保 SENTINELONE_API_KEY 和 SENTINELONE_API_BASE 已设置 |
| API_BASE必须为HTTPS | 使用 https:// 不 http:// 为您的租户URL |
| HTTP 401 | API令牌过期或无效--在S1控制台中重新生成 |
| HTTP 403 | 令牌缺少此终结点的权限 |
| HTTP 429 | 速率受限——服务器自动重试并回退 |
| 请求超时 | S1 API耗时>30秒--缩小查询过滤器 |
| 工具未出现 | 请验证中的二进制路径 ~/.mcp.json,重新启动MCP客户端 |
MCP日志: ~/.cache/claude-cli-nodejs/*/mcp-logs-sentinelone/
许可证
麻省理工学院