
舰队MCP
模型上下文协议(MCP)服务器,使AI助手能够与 车队设备管理 用于设备管理、安全监控和合规性执行。
演示
📸 Show/Hide Demo Screenshots
Querying host information and running live queries -->
Managing policies and compliance -->
Software inventory and vulnerability tracking -->
Advanced fleet management operations -->
特性
- 主机管理:列出、搜索、查询和管理整个机队中的主机
- 实时查询执行:对主机实时运行osquery查询
- 政策管理:创建、更新和监控合规性策略
- 软件清单:跨设备跟踪软件安装和漏洞
- 团队和用户管理:将主机和用户组织成团队
- Osquery表发现:osquery表的动态发现和文档
- 只读模式:使用可选的仅SELECT查询执行进行安全探索
- 活动监控:跟踪车队活动和审计日志
快速开始
只是想直接跳进去吗?这将设置具有只读访问权限和启用SELECT查询执行的舰队mcp。只需更换 FLEET_SERVER_URL 和 FLEET_API_TOKEN 和你自己的。
{
"mcpServers": {
"fleet": {
"command": "uvx",
"args": ["fleet-mcp", "run"],
"env": {
"FLEET_SERVER_URL": "https://your-fleet-instance.com",
"FLEET_API_TOKEN": "your-api-token",
"FLEET_READONLY": "true",
"FLEET_ALLOW_SELECT_QUERIES": "true"
}
}
}
}请参阅 可用工具 下面的部分提供了完整的工具列表。
______________________________________________________________________
Local Installation
From PyPI
pip install fleet-mcpFrom Source
git clone https://github.com/SimplyMinimal/fleet-mcp.git
cd fleet-mcp
pip install -e .Using uv (recommended for development)
git clone https://github.com/SimplyMinimal/fleet-mcp.git
cd fleet-mcp
uv sync --dev-->
MCP客户端配置
Fleet MCP可以与各种兼容MCP的客户端集成。下面是常见客户端的配置示例。
先决条件
在配置任何MCP客户端之前,请确保您已经:
- 安装
uv(推荐)或pip:
# Install uv (recommended)
curl -LsSf https://astral.sh/uv/install.sh | sh
# Or use pip
pip install fleet-mcp- 车队API代币:从Fleet实例生成API令牌:
选项1)
- 登录舰队用户界面 - 导航到:我的帐户→ 获取API令牌 - 复制令牌以在配置中使用
选项2)
- 使用创建仅限API的用户 fleetctl
# Generate an API-Only User and get the token
fleetctl user create --name Fleet-MCP --email --password
--role admin --api-only> 备注:此API令牌和您的车队实例URL(https://your-fleet-instance.com)将在客户端配置中使用。
- 选择你的客户:选择您喜欢的AI助手客户端,并按照下面的相应设置说明进行操作。
Install in Claude Desktop
配置文件位置
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - 视窗:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
配置
{
"mcpServers": {
"fleet": {
"command": "uvx",
"args": ["fleet-mcp", "run"],
"env": {
"FLEET_SERVER_URL": "https://your-fleet-instance.com",
"FLEET_API_TOKEN": "your-api-token",
"FLEET_READONLY": "true",
"FLEET_ALLOW_SELECT_QUERIES": "true"
}
}
}
}注: 替换uvx随着fleet-mcp如果您已全局安装了该软件包。为了增强安全性,请使用--config标记以引用TOML文件,而不是嵌入令牌(请参见 安全最佳实践).
Install in Cursor
首选 Settings → Cursor Settings → MCP → Add new global MCP server
在中全局安装 ~/.cursor/mcp.json 或按项目 .cursor/mcp.json。参见 光标MCP文档 了解更多信息。
{
"mcpServers": {
"fleet": {
"command": "uvx",
"args": ["fleet-mcp", "run"],
"env": {
"FLEET_SERVER_URL": "https://your-fleet-instance.com",
"FLEET_API_TOKEN": "your-api-token",
"FLEET_READONLY": "true",
"FLEET_ALLOW_SELECT_QUERIES": "true"
}
}
}
}Install in Cline (VS Code Extension)
配置位置: ~/.cline/mcp_settings.json (macOS/Linux)或 %USERPROFILE%\.cline\mcp_settings.json (Windows)
或者:VS代码设置→ 搜索“临床:MCP设置”→ 编辑JSON
{
"mcpServers": {
"fleet": {
"command": "uvx",
"args": ["fleet-mcp", "run"],
"env": {
"FLEET_SERVER_URL": "https://your-fleet-instance.com",
"FLEET_API_TOKEN": "your-api-token",
"FLEET_READONLY": "true",
"FLEET_ALLOW_SELECT_QUERIES": "true"
}
}
}
}Install in Continue (VS Code Extension)
配置位置: ~/.continue/config.json
{
"mcpServers": [
{
"name": "fleet",
"command": "uvx",
"args": ["fleet-mcp", "run"],
"env": {
"FLEET_SERVER_URL": "https://your-fleet-instance.com",
"FLEET_API_TOKEN": "your-api-token",
"FLEET_READONLY": "true",
"FLEET_ALLOW_SELECT_QUERIES": "true"
}
}
]
}Install in Zed Editor
配置位置: ~/.config/zed/settings.json (macOS/Linux)或 %APPDATA%\Zed\settings.json (Windows)
{
"context_servers": {
"fleet": {
"command": {
"path": "uvx",
"args": ["fleet-mcp", "run"]
},
"settings": {
"env": {
"FLEET_SERVER_URL": "https://your-fleet-instance.com",
"FLEET_API_TOKEN": "your-api-token",
"FLEET_READONLY": "true",
"FLEET_ALLOW_SELECT_QUERIES": "true"
}
}
}
}
}Install in Windsurf
看 Windsurf MCP文件 了解更多信息。
{
"mcpServers": {
"fleet": {
"command": "uvx",
"args": ["fleet-mcp", "run"],
"env": {
"FLEET_SERVER_URL": "https://your-fleet-instance.com",
"FLEET_API_TOKEN": "your-api-token",
"FLEET_READONLY": "true",
"FLEET_ALLOW_SELECT_QUERIES": "true"
}
}
}
}Install in VS Code
看 VS代码MCP文档 了解更多信息。
"mcp": {
"servers": {
"fleet": {
"type": "stdio",
"command": "uvx",
"args": ["fleet-mcp", "run"],
"env": {
"FLEET_SERVER_URL": "https://your-fleet-instance.com",
"FLEET_API_TOKEN": "your-api-token",
"FLEET_READONLY": "true",
"FLEET_ALLOW_SELECT_QUERIES": "true"
}
}
}
}Install in Sourcegraph Cody
配置位置: ~/Library/Application Support/Cody/mcp_settings.json (macOS), %APPDATA%\Cody\mcp_settings.json (Windows),或 ~/.config/Cody/mcp_settings.json (Linux)
{
"mcpServers": {
"fleet": {
"command": "uvx",
"args": ["fleet-mcp", "run"],
"env": {
"FLEET_SERVER_URL": "https://your-fleet-instance.com",
"FLEET_API_TOKEN": "your-api-token",
"FLEET_READONLY": "true",
"FLEET_ALLOW_SELECT_QUERIES": "true"
}
}
}
}Install in Augment Code
通过用户界面: 汉堡菜单→ 设置→ 工具→ + 添加MCP→ Enter uvx fleet-mcp run → 名称:“舰队”→ Add
手动配置: 设置→ 高级→ 编辑设置.json
"augment.advanced": {
"mcpServers": [
{
"name": "fleet",
"command": "uvx",
"args": ["fleet-mcp", "run"],
"env": {
"FLEET_SERVER_URL": "https://your-fleet-instance.com",
"FLEET_API_TOKEN": "your-api-token",
"FLEET_READONLY": "true",
"FLEET_ALLOW_SELECT_QUERIES": "true"
}
}
]
}Install in LM Studio
导航至 Program → Install → Edit mcp.json。参见 LM Studio MCP支持.
{
"mcpServers": {
"fleet": {
"command": "uvx",
"args": ["fleet-mcp", "run"],
"env": {
"FLEET_SERVER_URL": "https://your-fleet-instance.com",
"FLEET_API_TOKEN": "your-api-token",
"FLEET_READONLY": "true",
"FLEET_ALLOW_SELECT_QUERIES": "true"
}
}
}
}Generic MCP Client Configuration
对于其他兼容MCP的客户端,请使用以下通用模式:
{
"mcpServers": {
"fleet": {
"command": "uvx",
"args": ["fleet-mcp", "run"],
"env": {
"FLEET_SERVER_URL": "https://your-fleet-instance.com",
"FLEET_API_TOKEN": "your-api-token",
"FLEET_READONLY": "true",
"FLEET_ALLOW_SELECT_QUERIES": "true"
}
}
}
}配置选项参考
| 环境变量 | 描述 | 默认值 | 必填 |
|---|---|---|---|
FLEET_SERVER_URL | 车队服务器URL | - | ✅ |
FLEET_API_TOKEN | 舰队API令牌 | - | ✅ |
FLEET_READONLY | 启用只读模式 | true | ❌ |
FLEET_ALLOW_SELECT_QUERIES | 允许以只读模式进行SELECT查询 | false | ❌ |
FLEET_VERIFY_SSL | 验证SSL证书 | true | ❌ |
FLEET_TIMEOUT | 请求超时(秒) | 30 | ❌ |
FLEET_MAX_RETRIES | 最大请求重试次数 | 3 | ❌ |
注: 上述所有客户端都使用相同的环境变量。替换uvx随着fleet-mcp如果全局安装。
安全最佳实践
- 使用配置文件:将令牌存储在TOML文件中:
"args": ["fleet-mcp", "--config", "~/.config/fleet-mcp.toml", "run"] - 文件权限:
chmod 600 ~/.config/fleet-mcp.toml - 只读模式:从以下内容开始
FLEET_READONLY=true(默认) - 令牌轮换:定期轮换Fleet API代币
- 环境特定配置:对dev/prod使用单独的配置
可用工具
舰队MCP根据作战模式提供分为两大组的工具。单击以展开每个组。
Read-Only Tools (Always Available)
这些工具在所有模式下都可用(readonly=true 或 readonly=false).它们只读取数据,从不修改舰队状态。
主机管理
fleet_list_hosts-列出具有过滤、分页和搜索功能的主机fleet_get_host-按ID获取特定主机的详细信息fleet_get_host_by_identifier-通过主机名、UUID或硬件序列号获取主机fleet_search_hosts-按主机名、UUID、序列号或IP搜索主机fleet_list_host_upcoming_activities-列出特定主持人即将进行的活动fleet_list_host_past_activities-列出特定主持人过去的活动fleet_get_host_mdm-获取特定主机的MDM信息fleet_list_host_certificates-列出特定主机的证书fleet_get_host_macadmins-获取主机的macadmins数据(Munki、MDM配置文件)fleet_get_host_device_mapping-获取主机的设备映射信息fleet_get_host_encryption_key-获取主机的磁盘加密恢复密钥
查询管理
fleet_list_queries-列出所有已保存的查询并分页fleet_get_query-获取特定已保存查询的详细信息fleet_get_query_report-从计划查询中获取最新结果
政策管理
fleet_list_policies-列出所有合规政策fleet_get_policy_results-获取特定策略的合规性结果
软件和漏洞
fleet_list_software-列出整个车队的软件清单fleet_get_software-获取特定软件项的详细信息fleet_get_host_software-在特定主机上安装软件fleet_get_vulnerabilities-使用筛选列出已知漏洞fleet_get_cve-获取特定CVE的详细信息fleet_search_software-按名称搜索软件fleet_find_software_on_host-按主机名查找主机上的特定软件fleet_get_software_install_result-获取软件安装请求的结果fleet_list_software_titles-列出整个车队的软件标题fleet_get_software_title-获取特定软件标题的详细信息
团队管理
fleet_list_teams-列出所有团队fleet_get_team-获取特定团队的详细信息fleet_list_team_users-列出属于特定团队的所有用户fleet_get_team_secrets-列出团队特定的注册秘密
用户管理
fleet_list_users-列出所有进行筛选的用户fleet_get_user-获取特定用户的详细信息fleet_list_user_sessions-列出用户的活动会话fleet_get_session-按ID获取会话详细信息
标签管理
fleet_list_labels-列出所有标签fleet_get_label-获取特定标签的详细信息
包装管理
fleet_list_packs-列出所有查询包fleet_get_pack-获取特定包的详细信息fleet_list_scheduled_queries-在特定包中列出计划查询
脚本管理
fleet_list_scripts-列出Fleet中可用的所有脚本fleet_get_script-获取特定脚本的详细信息fleet_get_script_result-获取脚本执行的结果fleet_list_batch_scripts-列出批处理脚本执行fleet_get_batch_script-获取批处理脚本执行的详细信息fleet_list_batch_script_hosts-列出批处理脚本执行中的主机fleet_list_host_scripts-列出特定主机可用的脚本
MDM管理
fleet_list_mdm_commands-列出已执行的MDM命令fleet_get_mdm_command_results-获取MDM命令的结果fleet_list_mdm_profiles-列出MDM配置文件fleet_get_host_mdm_profiles-在特定主机上安装MDM配置文件fleet_get_mdm_profiles_summary-获取MDM配置文件部署状态摘要fleet_get_filevault_summary-获取FileVault加密摘要fleet_list_mdm_devices-列出所有已注册MDM的Apple设备fleet_get_bootstrap_metadata-获取团队引导包的元数据fleet_get_bootstrap_summary-获取引导包部署的汇总摘要fleet_get_setup_assistant-获取MDM Apple安装助手配置fleet_list_mdm_apple_installers-列出所有Apple MDM安装程序
VPP/应用商店管理
fleet_list_app_store_apps-列出可供安装的App Store应用程序fleet_list_vpp_tokens-列出在Fleet中配置的VPP令牌
配置管理
fleet_get_config-获取当前Fleet应用程序配置fleet_get_enroll_secrets-获取注册机密配置fleet_get_certificate-获取Fleet服务器证书链fleet_get_version-获取Fleet服务器版本信息
秘密管理
fleet_list_secrets-列出舰队中的秘密变量
邀请管理
fleet_list_invites-列出待处理的用户邀请fleet_verify_invite-验证邀请令牌并获取邀请详细信息
雕刻管理
fleet_list_carves-列出文件雕刻会话fleet_get_carve-获取特定雕刻会话的详细信息fleet_get_carve_block-从雕刻会话中获取特定数据块
设备管理
fleet_get_device_info-使用设备令牌获取设备信息
活动监控
fleet_list_activities-列出车队活动和审计日志
Osquery表发现和引用
fleet_list_osquery_tables-列出具有动态发现功能的可用osquery表fleet_get_osquery_table_schema-获取特定表的详细架构fleet_suggest_tables_for_query-根据意图获取基于AI的表格建议
系统
fleet_health_check-检查Fleet服务器连接和身份验证
Write/Modify Tools (Requires readonly=false)
这些工具可以修改车队状态,并且仅在以下情况下可用 readonly=false 在配置中设置。这将允许您对Fleet环境进行更改,例如创建脚本、策略、管理团队等,此外还可以使用只读工具。设置为 readonly=true (默认)将禁用这些工具。
主机管理
fleet_delete_host-从Fleet中删除主机fleet_transfer_hosts-将主机转移到其他团队fleet_query_host-对特定主机运行临时实时查询fleet_query_host_by_identifier-按主机名/UID/serial运行实时查询fleet_cancel_host_activity-取消特定主持人即将进行的活动fleet_lock_host-远程锁定主机设备fleet_unlock_host-远程解锁主机设备fleet_unenroll_host_mdm-从MDM取消主机注册fleet_add_labels_to_host-向主机添加标签fleet_remove_labels_from_host-从主机中删除标签fleet_refetch_host-强制主机立即重新提取和更新其数据
查询管理
fleet_create_query-创建新的已保存查询fleet_delete_query-删除已保存的查询fleet_run_live_query_with_results-执行实时查询并收集结果fleet_run_saved_query-对主机运行已保存的查询
政策管理
fleet_create_policy-制定新的合规政策fleet_update_policy-更新现有策略fleet_delete_policy-删除策略
软件管理
fleet_install_software-在特定主机上安装软件fleet_batch_set_software-为团队批量上传/设置软件安装程序
团队管理
fleet_create_team-创建新团队fleet_add_team_users-将一个或多个用户添加到特定团队fleet_remove_team_user-从团队中删除特定用户
用户管理
fleet_create_user-创建新用户fleet_update_user-更新现有用户fleet_delete_session-删除/使特定会话无效fleet_delete_user_sessions-删除特定用户的所有会话
标签管理
fleet_create_label-创建新标签fleet_update_label-更新现有标签fleet_delete_label-按名称删除标签
包装管理
fleet_create_pack-创建新的查询包fleet_update_pack-更新现有包fleet_delete_pack-按名称删除包
脚本管理
fleet_run_script-在特定主机上运行脚本fleet_run_batch_script-在多台主机上运行脚本fleet_cancel_batch_script-取消批处理脚本执行fleet_create_script-创建并上传新脚本fleet_modify_script-修改现有脚本fleet_delete_script-删除脚本
MDM管理
fleet_upload_mdm_profile-上传新的MDM配置文件fleet_delete_mdm_profile-删除MDM配置文件fleet_lock_device-远程锁定MDM注册设备fleet_upload_bootstrap_package-上传MDM注册的引导包fleet_delete_bootstrap_package-删除团队的引导包fleet_create_setup_assistant-创建或更新MDM Apple安装助手fleet_delete_setup_assistant-删除MDM Apple安装助手fleet_upload_mdm_apple_installer-上传新的Apple MDM安装程序包
注意:擦拭设备工具目前已禁用,因为它太危险了。如果真的需要,稍后可能会重新审视。
VPP/应用商店管理
fleet_add_app_store_app-添加应用商店应用程序进行分发fleet_update_app_store_app-更新App Store应用设置fleet_delete_vpp_token-删除VPP令牌
配置管理
fleet_update_config-更新Fleet应用程序配置fleet_update_enroll_secrets-更新注册机密配置
秘密管理
fleet_create_secret-创建一个新的秘密变量fleet_delete_secret-按ID删除机密变量
邀请管理
fleet_create_invite-创建新用户邀请fleet_update_invite-更新待处理的邀请fleet_delete_invite-删除待处理的邀请
配置
Fleet MCP支持三种配置方法(按优先顺序):
- 命令行参数 (最高优先级)
- 环境变量 (与
FLEET_前缀) - 配置文件 (出于安全考虑建议)
配置文件(推荐)
创建 fleet-mcp.toml:
[fleet]
server_url = "https://your-fleet-instance.com" # Required
api_token = "your-api-token" # Required
verify_ssl = true # Default: true
timeout = 30 # Default: 30 seconds
max_retries = 3 # Default: 3
readonly = true # Default: true
allow_select_queries = false # Default: false环境变量
看 配置选项参考 对于所有可用变量。环境变量使用 FLEET_ 前缀和覆盖配置文件设置。
命令行参数
fleet-mcp --server-url https://fleet.example.com --api-token YOUR_TOKEN run选项: --config, --server-url, --api-token, --readonly, --verbose
只读模式
舰队MCP磨合 默认情况下为只读模式 安全勘探,无变化风险。
三种操作模式
| 模式 | 配置 | 功能 | 最适合 |
|---|---|---|---|
| 严格只读 (默认) | readonly=true | ||
allow_select_queries=false | ✅ 查看所有资源 |
❌ 不执行查询 ❌ 无修改|安全探索| | 只读+选择 | readonly=true allow_select_queries=true | ✅ 查看所有资源 ✅ 运行SELECT查询 ❌ 无修改|主动监控| | 完整写入 | readonly=false | ✅ 所有操作 ⚠️ AI可以修改车队|全面管理|
配置示例
# Strict Read-Only (Default)
[fleet]
readonly = true
allow_select_queries = false# Read-Only with SELECT Queries
[fleet]
readonly = true
allow_select_queries = true# Full Write Access (⚠️ Use with caution) - Recommended to have LLM prompt for confirmation before making changes
[fleet]
readonly = false命令行命令
| 命令 | 描述 | 示例 |
|---|---|---|
run | 启动MCP服务器 | fleet-mcp run |
test | 测试车队连接 | fleet-mcp test |
init-config | 创建配置模板 | fleet-mcp init-config |
version | 显示版本 | fleet-mcp version |
全局选项: --config, --verbose, --server-url, --api-token, --readonly
用法示例
示例1:列出所有团队
# In Claude Desktop or any MCP client
"List all teams in Fleet"示例2:在主机上查找软件
"What version of Chrome is installed on host-123?"示例3:运行查询
# With allow_select_queries=true
"Run a query to find all processes listening on port 80"示例4:检查合规性
"Show me which hosts are failing the disk encryption policy"示例5:发现Osquery表
"What osquery tables are available for monitoring network connections?"发展
Development Setup
此项目使用 紫外线 用于依赖性管理。
设置
git clone https://github.com/SimplyMinimal/fleet-mcp.git
cd fleet-mcp
uv sync --dev常见任务
| 任务 | 命令 |
|---|---|
| 运行测试 | uv run pytest |
| 格式代码 | uv run black src tests && uv run isort src tests |
| 类型检查 | uv run mypy src |
| Lint | uv run ruff check src tests |
| 添加依赖关系 | uv add package-name |
| 添加开发依赖关系 | uv add --group dev package-name |
项目结构
src/fleet_mcp/
├── cli.py # Command-line interface
├── client.py # Fleet API client
├── config.py # Configuration management
├── server.py # MCP server implementation
├── tools/ # MCP tool implementations
└── utils/ # Utilities (SQL validator, etc.)故障排除
Server Not Appearing in Client
- 验证配置文件中的JSON语法
- 重新启动MCP客户端
- 检查客户端日志是否有错误
- 验证
uvx或fleet-mcp在路径中:which uvx
Connection Errors
- 手动测试:
uvx fleet-mcp test - 验证
FLEET_SERVER_URL可访问的 - 检查
FLEET_API_TOKEN有效 - 对于自签名证书:
FLEET_VERIFY_SSL=false
Authentication Failed (401)
- 验证API令牌是否正确
- 支票令牌尚未过期
- 确保令牌具有适当的权限
- 生成新令牌:Fleet UI→ 我的账户→ 获取API令牌
Query Validation Failed
- 集
FLEET_ALLOW_SELECT_QUERIES=true - 确保查询仅为SELECT(无INSERT、UPDATE、DELETE等)
- 验证osquery SQL语法是否有效
Tool Not Available
- 写入操作需要
FLEET_READONLY=false - 查询执行需要
FLEET_ALLOW_SELECT_QUERIES=true - 检查当前模式下的工具可用性
许可证
Fleet MCP是根据 MIT许可证.
您可以根据MIT许可证的条款,出于任何目的(包括商业用途)自由使用、修改和分发此软件。
免责声明
该项目不隶属于Fleet DM或得到Fleet DM的认可。它是模型上下文协议的独立实现,用于与 舰队 实例。
