使用说明
思科安全防火墙FMC MCP连接器
MCP服务器,为思科安全防火墙管理中心(FMC)提供高级工具。核心工具:
list_fmc_profiles–发现已配置的FMC实例。find_rules_by_ip_or_fqdn–搜索特定的访问策略。find_rules_for_target–将FTD设备/HA/集群解析为其分配的策略并进行搜索。search_access_rules–使用指标+策略过滤器进行FMC范围内的搜索,包括身份指标(SGT、领域用户/组)。
1.配置FMC访问
单FMC(环境模式)
复制 .env.example 到 .env (或导出env变量)并至少填写:
FMC_BASE_URL=https://<fmc-host>
FMC_USERNAME=<api-user>
FMC_PASSWORD=<password>
FMC_VERIFY_SSL=false
多个FMC(剖面模式)
在下为每个FMC定义一个环境文件 profiles/.复制 profiles/.env.example 转换为新的文件名(例如。, profiles/fmc-north-south.env)并填写:
FMC_PROFILE_ID=fmc-north-south
FMC_PROFILE_DISPLAY_NAME=FMC North-South
FMC_PROFILE_ALIASES=north,north-south,10.0.0.5
FMC_BASE_URL=https://10.0.0.5
FMC_USERNAME=adminapi
FMC_PASSWORD=***
FMC_VERIFY_SSL=false
将服务器指向以下目录:
FMC_PROFILES_DIR=profiles
FMC_PROFILE_DEFAULT=fmc-north-south
当 FMC_PROFILES_DIR 设置后,服务器将自动加载 *.env 该文件夹中的文件,并通过以下方式公开它们 list_fmc_profiles。如果未设置,则使用单个FMC环境变量。
日志记录和HTTP跟踪
日志记录级别可以在活动配置文件(配置文件模式)或根目录中设置 .env (单FMC模式或Docker环境)。默认配置文件的日志记录值在启动时应用。
LOG_LEVEL=DEBUG # overall app logging
HTTPX_TRACE=1 # log FMC request URLs and status codes
HTTPX_LOG_LEVEL=WARNING # httpx/httpcore verbosity (default WARNING)
笔记:
- 在配置文件模式下,将这些文件放入默认配置文件中(命名为
FMC_PROFILE_DEFAULT). - 在Docker中,根
.env(或docker-compose.yml环境)仍必须提供服务器级设置,如FMC_PROFILES_DIR,FMC_PROFILE_DEFAULT,MCP_HOST,以及MCP_PORT.
2.运行MCP服务器
码头工人
docker compose up -d --build
撰写文件需要您 .env 在repo根(或点)中 env_file 在特定的配置文件中)。更改后重建 requirements.txt 或配置文件。
本地Python
您可以直接运行服务器而无需Docker:
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python -m sfw_mcp_fmc.server
通过配置传输 .env (默认为HTTP开启 http://0.0.0.0:8000/mcp 对于本地/dev)。当公开它时,用HTTPS作为前缀,例如 https://<host>:8000/mcp日志显示加载了哪些FMC配置文件。
HTTP承载认证说明
之前描述的README版本 MCP_AUTH_TOKEN,但当前的FastMCP客户端不能可靠地执行它,因此服务器在没有承载身份验证的情况下运行。如果你想继续尝试令牌支持的流,你可以保留env-var并连接代理级身份验证,或者在此仓库中贡献一个工作实现。
3.手动测试
client/test_client.py 是一种交互式线束,它:
- 呼叫
list_fmc_profiles显示可用的FMC,并允许您选择一个。 - 使用您的输入(指标、目标、策略过滤器)调用工具。
在MCP服务器启动时从主机运行它:
python client/test_client.py
4.自动化测试
单元测试包括配置解析、配置文件发现和规则搜索引擎(网络+身份指示器)。在本地或容器内执行:
pip install -r requirements.txt # once per environment
python -m pytest tests
5.与LLM代理商整合
由于服务器遵循MCP协议(通过FastMCP),任何支持MCP的代理平台都可以使用它:
- 注册MCP端点(stdio或HTTP)。对于HTTP,请指向
https://<host>:8000/mcp公开时(使用http://localhost:8000/mcp对于本地/dev)。 - 从代理人那里,打电话
list_fmc_profiles选择FMC(通过id或别名)。 - 调用其他工具
fmc_profile加上你的指标/过滤器。 - 使用结构化的JSON响应来驱动后续步骤(摘要、补救、后续搜索)。
这使得单个MCP实例能够为人类或自动化代理提供多个FMC。
