Token导航 LogoToken导航TokenDH.com
nope (Beauchompers) logo
AI代理stdio官方级别未说明来源级核验

nope (Beauchompers)

MCP Server

NOPE是一个用于Palo Alto防火墙的MCP支持的外部动态列表(EDL)管理器,提供Web UI、REST API和MCP工具,用于管理防火墙通过HTTPS消费的IP和域名阻止列表。

工具数

16

提示词数

0

GitHub Stars

1

资源数

0
安全PythonClaudeClaude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

beauchompers

提供方

beauchompers

最后核验

2026/5/17 20:23

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install mcp-proxy

详细介绍

NOPE-网络对象保护引擎

“当你的AI说NOPE时,你的防火墙会监听。”

NOPE是Palo Alto防火墙的启用MCP的外部动态列表(EDL)管理器。它提供了web UI、REST API和MCP工具,用于管理防火墙通过HTTPS使用的IP和域阻止列表。

截图

Dashboard

Domain Block List

特性

  • Web 界面 -用于管理列表和IOC的现代React接口
  • REST API -列表和IOC的完整CRUD操作
  • MCP集成 -LLM友好的工具,用于通过自然语言阻止威胁
  • EDL服务 -NGINX提供与Palo Alto防火墙兼容的基于文本的列表
  • 验证 -IP、CIDR和域的自动验证
  • 除外条款 -内置防止阻止TLD、RFC1918和localhost的保护
  • 去重 -IOC已通过多个来源的评论进行了重复数据消除

快速开始

先决条件

  • Docker和Docker Compose

1.克隆并启动

git clone 
cd nope-edl
./setup.sh

setup.sh 将:

  • 创建 .env.env.example (如果不存在)
  • 自动生成所有必需的机密
  • 启动Docker Compose堆栈
  • 打印带有您凭据的启动横幅

首次启动时会自动生成自签名SSL证书。

要使用其他端口,请设置 NOPE_PORT.env 跑步前 setup.sh,或:

NOPE_PORT=9443 docker compose up -d

建筑

┌─────────────────────────────────────────────────────────────────┐
│                         Docker Compose                          │
├─────────────────────────────────────────────────────────────────┤
│  ┌─────────────┐    ┌─────────────┐    ┌─────────────────────┐ │
│  │   NGINX     │    │  NOPE API   │    │    PostgreSQL       │ │
│  │  (HTTPS)    │───▶│  (FastAPI)  │───▶│    (Database)       │ │
│  │  Port 8081  │    │  Port 8000  │    │    Port 5432        │ │
│  └─────────────┘    └─────────────┘    └─────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘

API终点

列表

方法端点描述
得到/api/lists获取所有包含IOC计数的列表
职位/api/lists创建新列表
得到/api/lists/{slug}获取列表详细信息
补丁/api/lists/{slug}更新列表
删除/api/lists/{slug}删除列表

国际奥委会

方法端点描述
得到/api/iocs?q={query}搜索IOC
职位/api/iocs将IOC添加到列表中
得到/api/iocs/{id}获取国际奥委会详细信息
删除/api/iocs/{id}从所有列表中删除IOC
删除/api/iocs/{id}/lists/{slug}从特定列表中删除IOC

EDL访问

方法端点描述
得到/edl/{slug}以文本形式获取列表(需要基本身份验证)

MCP工具

NOPE公开了MCP工具 /mcp LLM集成。这些工具使AI助手能够通过自然语言管理块列表。

列表管理

工具说明
list_lists获取所有包含IOC计数和描述的黑名单
get_list获取特定列表的详细信息
create_list创建一个包含名称、描述和标签的新块列表
update_list更新列表元数据(名称、描述、标签)
delete_list删除列表并删除所有国际奥委会协会
list_iocs按页码列出特定列表中的所有IOC

国际奥委会管理层

工具说明
block_ioc将IOC(IP、CIDR、域、通配符或哈希)添加到块列表中
unblock_ioc从特定列表或所有列表中删除IOC
search_ioc在所有列表中搜索IOC(支持部分匹配)
update_ioc在现有的IOC中添加评论以获取审计历史记录
bulk_block_ioc在一次操作中添加多个IOC(最多500个)
bulk_unblock_ioc在一次操作中删除多个IOC(最多500个)

排除管理

排除阻止某些IOC被添加到阻止列表中(例如,RFC1918私有范围,TLD)。

工具说明
list_exclusions列出所有活动排除规则(内置和用户定义)
preview_exclusion预览添加排除的影响(显示冲突的IOC)
add_exclusion添加具有可选冲突清除功能的自定义排除规则
remove_exclusion删除用户定义的排除规则

支持的IOC类型

NOPE自动检测IOC类型:

类型示例
IP地址203.0.113.50
CIDR范围203.0.113.0/24
域名evil.com, malware.example.net
通配符域*.badsite.com
SHA256哈希e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
SHA1哈希da39a3ee5e6b4b0d3255bfef95601890afd80709
MD5哈希d41d8cd98f00b204e9800998ecf8427e

MCP身份验证

MCP端点需要API密钥身份验证。在中创建API密钥 设置>API密钥 并将其纳入 api-key 头球

通过mcp代理连接Claude Desktop

Claude Desktop仅支持stdio传输,因此您需要 mcp代理 连接到NOPE的基于HTTP的MCP服务器。

1.安装mcp代理

# Using pip
pip install mcp-proxy

# Or using pipx (recommended)
pipx install mcp-proxy

2.创建API密钥

  1. 登录NOPEhttps://your-server
  2. 首选 设置>API密钥
  3. 点击 +添加API密钥
  4. 输入名称(例如“claude desktop”)
  5. 复制生成的密钥(以开头 nope_)

3.配置克劳德桌面

编辑您的Claude Desktop配置文件:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • 视窗: %APPDATA%\Claude\claude_desktop_config.json

添加NOPE服务器配置:

{
  "mcpServers": {
    "nope": {
      "command": "mcp-proxy",
      "args": [
        "--transport=streamablehttp",
        "--no-verify-ssl",
        "--headers", "api-key", "nope_YOUR_API_KEY_HERE",
        "https://your-nope-server/mcp"
      ]
    }
  }
}

论点解释:

  • --transport=streamablehttp -使用HTTP传输(NOPE的MCP端点需要)
  • --no-verify-ssl -跳过自签名证书的SSL验证
  • --headers api-key ... -传递API密钥进行身份验证
备注:如果Claude Desktop找不到mcp代理,请使用完整路径。跑 which mcp-proxy (macOS/Linux)或 where.exe mcp-proxy (Windows)获取路径。

4.重新启动克劳德桌面

完全退出并重新启动Claude Desktop以加载新配置。

5.验证连接

在Claude Desktop中,您应该可以看到NOPE的可用工具。试着问:

“NOPE中有哪些可用的黑名单?”

连接克劳德代码

克劳德代码 支持stdio和HTTP传输。

选项1:使用mcp代理(HTTP传输)

通过CLI添加MCP服务器:

claude mcp add nope -- mcp-proxy \
  --transport=streamablehttp \
  --no-verify-ssl \
  --headers api-key "nope_YOUR_API_KEY" \
  https://your-nope-server/mcp

移除 --no-verify-ssl 如果使用可信证书。

选项2:直接编辑settings.json

编辑您的Claude Code设置文件:

  • macOS: ~/.claude/settings.json
  • Linux: ~/.claude/settings.json

添加MCP服务器配置:

{
  "mcpServers": {
    "nope": {
      "command": "mcp-proxy",
      "args": [
        "--transport=streamablehttp",
        "--no-verify-ssl",
        "--headers", "api-key", "nope_YOUR_API_KEY_HERE",
        "https://your-nope-server/mcp"
      ]
    }
  }
}

验证连接

添加服务器后,重新启动Claude Code并使用以下命令进行验证:

/mcp

你应该看看 nope 列出了17个可用工具。

MCP对话示例

阻止威胁:

User: "Block evil.com on the domain blocklist"
Agent: Uses block_ioc(value="evil.com", list_slug="domainblocklist")
→ "Successfully added evil.com (domain) to list 'domainblocklist'"

调查国际奥委会:

User: "Why is that IP blocked?"
Agent: Uses search_ioc(value="1.2.3.4")
→ "Found 1 IOC(s):
   - 1.2.3.4 (ip)
     Lists: ipblocklist
     Comments: Malicious C2 server"

批量操作:

User: "Block these IPs from the threat feed: 198.51.100.1, 198.51.100.2, 198.51.100.3"
Agent: Uses bulk_block_ioc(values=["198.51.100.1", "198.51.100.2", "198.51.100.3"],
                           list_slug="ipblocklist", comment="Threat feed import")
→ "Bulk add complete: Added: 3, Skipped: 0, Failed: 0"

排除处理:

User: "Block 192.168.1.1"
Agent: Uses block_ioc(value="192.168.1.1", list_slug="ipblocklist")
→ "Cannot block: RFC1918 private range (matches exclusion '192.168.0.0/16')"

管理除外责任:

User: "Add an exclusion for our partner's domain"
Agent: Uses add_exclusion(value="*.partner.com", reason="Trusted partner domain")
→ "Added exclusion '*.partner.com' (wildcard). Reason: Trusted partner domain"

审计跟踪

通过MCP执行的所有动作都记录有所使用的API密钥名称(例如。, mcp:claude-desktop),在国际奥委会审计历史中可见。

配置

所需的环境变量

NOPE需要这些环境变量才能启动。跑步 ./setup.sh 自动生成所有这些。要手动配置,请复制 .env.example.env 并填写值:

变量描述
SECRET_KEYJWT签名密钥。生成方式 openssl rand -hex 32
DEFAULT_ADMIN_PASSWORD初始管理员密码(至少6个字符)
DEFAULT_EDL_PASSWORDEDL基本身份验证密码(至少6个字符)
DB_PASSWORDPostgreSQL密码

所有密码在启动时都经过验证。如果缺少任何必需的变量或密码不符合最低6个字符的长度要求,该应用程序将拒绝启动。

所有环境变量

变量默认值描述
NOPE_PORT8081用于web UI和API的HTTPS端口
DB_USERnopePostgreSQL用户名
DB_PASSWORD(必填)PostgreSQL密码
SECRET_KEY(必填)JWT签名密钥
DEFAULT_ADMIN_USERadmin默认UI管理员用户名
DEFAULT_ADMIN_PASSWORD(必填)默认UI管理员密码
DEFAULT_EDL_USERedl默认edl基本身份验证用户名
DEFAULT_EDL_PASSWORD(必填)默认EDL基本身份验证密码

自定义SSL证书

默认情况下,自动生成自签名证书。对于生产,请提供您自己的证书:

  1. 将您的证书放在 certs 目录:
   mkdir certs
   cp your-cert.pem certs/cert.pem
   cp your-key.pem certs/key.pem
  1. 取消注释中的绑定挂载 docker-compose.yml:
   nginx:
     volumes:
       - ./certs:/etc/nginx/certs:ro
  1. 重新启动堆栈: docker compose up -d

Palo Alto防火墙配置

  1. 在PAN-OS中,转到 对象>外部动态列表
  2. 创建新的EDL:

- 类型:IP列表或域列表 - 来源: https://your-nope-server/edl/{list-slug} - 证书配置文件:(配置为信任您的证书) - 用户名/密码:您的EDL证书

发展

本地开发(无Docker)

# Backend
cd backend
pip install -e ".[dev]"
uvicorn app.main:app --reload --port 8000

# Frontend
cd frontend
npm install
npm run dev

运行测试

cd backend
pytest

构建于

  • 后端:Python、FastAPI、SQLAlchemy、Alembic、FastMCP
  • 前端:React、TypeScript、Vite、TanStack查询
  • 数据库:PostgreSQL
  • 代理:NGINX

许可证

麻省理工学院

目录标签

目录标签

安全PythonClaude防火墙管理本地部署网络安全IP阻止列表域名阻止列表MCP集成

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

16

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP