Netskope NPA MCP Server
一个模型上下文协议 (MCP) 服务器,用于通过大型语言模型 (LLMs) 管理 Netskope 网络私有访问 (NPA) 基础设施。
警告
还需要大量工作才能让所有 50 个工具都处于可操作状态,我强烈建议不要在生产环境中使用此工具
演示
https://github.com/johnneerdael/netskope-mcp/raw/refs/heads/main/demo.mov
安装
选项 1: NPM 包
使用 npm 安装包:
npm install @johnneerdael/netskope-mcp
选项 2: 本地开发
克隆存储库并安装依赖项:
git clone https://github.com/johnneerdael/netskope-mcp.git
cd netskope-mcp
npm install
npm run build
MCP 配置
将以下配置添加到您的 MCP 设置文件中:
Windows with WSL
对于 NPM 安装:
{
"mcpServers": {
"netskope-mcp": {
"command": "wsl.exe",
"args": [
"bash",
"-c",
"source ~/.nvm/nvm.sh && NETSKOPE_BASE_URL=https://your-tenant.goskope.com NETSKOPE_API_KEY=your-token npx -y @johnneerdael/netskope-mcp"
]
}
}
}
对于本地开发:
{
"mcpServers": {
"netskope-mcp": {
"command": "wsl.exe",
"args": [
"bash",
"-c",
"cd /path/to/netskope-mcp && NETSKOPE_BASE_URL=https://your-tenant.goskope.com NETSKOPE_API_KEY=your-token node dist/cli.js"
]
}
}
}
Linux 和 macOS
对于 NPM 安装:
{
"mcpServers": {
"netskope-mcp": {
"command": "npx",
"args": ["-y", "@johnneerdael/netskope-mcp"],
"env": {
"NETSKOPE_BASE_URL": "https://your-tenant.goskope.com",
"NETSKOPE_API_KEY": "your-token"
}
}
}
}
对于本地开发:
{
"mcpServers": {
"netskope-mcp": {
"command": "node",
"args": ["dist/cli.js"],
"cwd": "/path/to/netskope-mcp",
"env": {
"NETSKOPE_BASE_URL": "https://your-tenant.goskope.com",
"NETSKOPE_API_KEY": "your-token"
}
}
}
}
环境变量
Netskope NPA MCP Server 需要配置以下环境变量才能正常运行:
必要变量
-
NETSKOPE_BASE_URL
- 描述: 您 Netskope 租户的基 URL
- 格式: 包含协议的完整 URL
- 示例:
https://your-tenant.goskope.com - 用途: 用于与您的 Netskope 租户进行所有 API 通信
- 注意: 必须是完整的租户 URL,不能包含任何路径组件
-
NETSKOPE_API_KEY
- 描述: 用于 Netskope 服务进行身份验证的 API 令牌
- 格式: 来自 Netskope 管理控制台的字符串令牌
- 示例:
030f31f7d57fd94834af57a3edc4bbda - 用途: 对于所有 API 请求都需要进行身份验证
- 安全说明: 保持此令牌安全,切勿将其提交到版本控制
配置示例
开发环境
export NETSKOPE_BASE_URL="https://dev-tenant.goskope.com"
export NETSKOPE_API_KEY="your-development-token"
生产环境
export NETSKOPE_BASE_URL="https://prod-tenant.goskope.com"
export NETSKOPE_API_KEY="your-production-token"
AlertsTools
-
getAlertConfig
- 描述: 获取发布者的当前警报配置设置,包括各种事件(如升级和连接状态更改)的通知偏好设置。
- 必要参数: 无
- 响应模式:
{ adminUsers: string[], // 要通知的管理员用户邮箱数组 eventTypes: string[], // 要监控的事件类型数组 selectedUsers: string // 要额外通知的用户 } - 事件类型:
UPGRADE_WILL_START: 升级开始前的通知UPGRADE_STARTED: 升级过程开始时的通知UPGRADE_SUCCEEDED: 升级成功完成时的通知UPGRADE_FAILED: 升级过程失败时的通知CONNECTION_FAILED: 发生发布者连接问题时通知
- 使用示例:
- "检查哪些管理员配置为接收升级通知:使用
getAlertConfig返回当前管理员用户及其通知偏好设置列表。" - "在计划的维护窗口之前验证警报配置:使用
getAlertConfig确保正确的团队成员将被通知升级事件。" - "审计发布者监控设置:使用
getAlertConfig显示正在跟踪哪些关键事件以及谁会收到通知。"
- "检查哪些管理员配置为接收升级通知:使用
-
updateAlertConfig
- 描述: 更新发布者的警报配置设置,允许自定义各种系统事件(包括升级和连接状态更改)的通知偏好设置。
- 必要参数:
{ adminUsers: string[], // 要接收通知的管理员用户邮箱数组 eventTypes: string[], // 要监控的事件类型数组 selectedUsers: string // 要接收通知的用户 } - 响应模式: 与 getAlertConfig 相同
- 使用示例:
- "配置通知:更新警报设置以确保关键事件得到适当监控。"
- "修改接收者:调整接收特定类型警报的管理员列表。"
- "事件选择:为不同的用户组自定义触发通知的事件类型。"
LocalBrokerTools
-
listLocalBrokers
- 描述: 列出您 Netskope 环境中配置的所有本地代理。本地代理用于现场零信任网络访问 (ZTNA) 场景,在这种情况下,最终用户连接到本地代理而不是云代理来访问托管在现场的私有应用程序。
- 必要参数: 无
- 可选参数:
fields: 要在响应中返回的特定字段数组
- 响应模式:
{ status: 'success' | 'not found', total: number, data: Array<{ id: number, // 本地代理的唯一标识符 name: string, // 本地代理的显示名称 common_name: string, // 用于代理识别的通用名称 registered: boolean // 代理的注册状态 }> - 使用示例:
- "监控您的本地代理部署:列出您的本地代理以了解所有注册代理及其当前状态的总览。"
- "验证高可用性设置:检查您是否在每个站点配置了多个本地代理,方法是查看已部署代理的列表。"
- "审计代理注册:列出所有本地代理以识别任何需要关注的未注册实例。"
-
createLocalBroker
- 描述: 创建一个新的本地代理实例,用于处理现场 ZTNA 流量。这通常用于设置新站点或为现有位置扩展容量时。
- 必要参数:
{ name: string // 新本地代理的名称 } - 响应模式:
{ status: 'success' | 'not found', data: { id: number, // 分配的唯一标识符 name: string, // 配置的代理名称 common_name: string, // 分配的通用名称 registered: boolean // 初始注册状态 } } - 使用示例:
- "部署新站点:为新的办公室位置创建本地代理两次以确保高可用性。"
- "扩展容量:通过创建新的代理实例来处理增加的现场流量。"
- "初始化 HA 设置:创建具有描述性名称的多个本地代理,以指示其站点和角色。"
-
getLocalBroker
- 描述: 通过其 ID 获取有关特定本地代理的详细信息。使用此方法可以监控单个代理实例的状态和配置。
- 必要参数:
id: 要检索的本地代理的数字标识符
- 响应模式:
{ status: 'success' | 'not found', data: { id: number, // 代理的唯一标识符 name: string, // 代理的显示名称 common_name: string, // 代理的通用名称 registered: boolean // 当前注册状态 } } - 使用示例:
- "检查代理健康状态:检索特定代理的详细信息以验证其注册状态和配置。"
- "故障排除连接问题:获取正在遇到问题的代理的详细信息。"
- "验证部署:通过检索其详细信息来确认新代理的成功创建。"
-
updateLocalBroker
- 描述: 更新现有本地代理的配置。使用此方法可以修改代理设置,例如其名称,同时保持其身份和连接。
- 必要参数:
{ id: number, // 要更新的代理的标识符 name: string // 新的代理名称 } - 响应模式:
{ status: 'success' | 'not found', data: { id: number, // 代理的标识符 name: string, // 更新的代理名称 common_name: string, // 代理的通用名称 registered: boolean // 当前注册状态 } } - 使用示例:
- "为了清晰起见重命名:更新代理的名称以更好地反映其位置或其在基础设施中的角色。"
- "标准化命名:修改代理名称以遵循组织内更新的命名约定。"
- "更新 HA 对:调整代理名称以清楚地指示主用和备用角色。"
-
deleteLocalBroker
- 描述: 从您的 Netskope 配置中删除本地代理。使用时需谨慎,因为这将影响应用程序访问。
- 必要参数:
id: 要删除的本地代理的数字标识符
- 响应模式:
{ status: 'success' | 'error' } - 使用示例:
- "退役代理:删除不再需要或已被替换的代理。"
- "清理测试实例:删除用于测试的代理。"
- "删除未使用的代理:清理不再需要的代理。"
-
getBrokerConfig
- 描述: 获取本地代理的全局配置设置,包括影响所有代理实例的主机名配置。
- 必要参数: 无
- 使用示例:
- "查看全局设置:检查当前主机名配置,该配置会影响所有本地代理。"
- "准备更改:在计划更新之前检查现有配置。"
- "审计配置:确保主机名设置与您的网络架构一致。"
-
updateBrokerConfig
- 描述: 更新所有本地代理的全局配置设置,允许您修改系统范围的代理行为。
- 必要参数:
{ hostname: string // 新的主机名配置 } - 响应模式:
{ status: 'success' | 'not found', data: { hostname: string // 更新的主机名配置 } } - 使用示例:
- "修改全局设置:更新主机名配置以反映网络更改。"
- "基础设施更新:调整代理配置以适应新的网络要求。"
- "标准化设置:确保所有代理实例都使用一致的主机名配置。"
-
generateLocalBrokerRegistrationToken
- 描述: 为特定本地代理生成新的注册令牌,启用与 Netskope 管理平面进行安全注册。
- 必要参数:
id: 本地代理的数字标识符
- 响应模式:
{ data: { token: string // 注册令牌 }, status: string } - 使用示例:
- "初始设置:为新的代理注册生成令牌。"
- "重新注册:创建新的令牌以重新建立代理注册。"
- "安全刷新:定期旋转注册令牌。"