Releases: SimplyMinimal/fleet-mcp
v1.1.3
- Publishing to MCP registry for better reach and usability.
- Updated
README.mdfor PyPI. No change to fleet-mcp server itself. - Full Changelog: v1.1.2...v1.1.3
v1.1.2
[1.1.2] - 2025-11-20
Added
- Demo Screenshots: Four screenshots showcasing fleet-mcp in action (LLM-driven host queries, policy management, software tracking, and advanced operations), included in a collapsible README section. You can view it by expanding the Show/Hide Demo Screenshots section on the main
README.mdpage.
Changed
- Policy Tools: Improved
fleet_list_policieswith fuzzy keyword-based search across all teams.
Fixed
- API None Handling: Corrected handling of
Nonevalues for device mappings, activities, and certificates.
Documentation
- Updated
docs/USAGE.mdwith policy search and cross-team discovery examples.
Full Changelog: v1.1.0...v1.1.2
v1.1.0
[1.1.0] - 2025-11-20
Added
-
Asynchronous Query Execution: New async query pattern to work around the 60-second MCP client timeout limitation in TypeScript-based clients like LM Studio
fleet_run_live_query_with_resultsnow supports async mode whenFLEET_USE_ASYNC_QUERY_MODE=truefleet_get_query_resultstool to retrieve results from async queries by campaign IDfleet_list_async_queriestool to list all running and completed async queries with status filteringfleet_cancel_querytool to cancel running async queries- Disk-based storage for intermediate query results with configurable retention (default: 24 hours)
- Future Redis support planned for distributed deployments
-
Schema Overrides Feature: Enhanced osquery table documentation with Fleet's curated metadata
- Automatic download of YAML schema files from Fleet's GitHub repository (
schema/tables/) - Local caching of schema overrides in
~/.fleet-mcp/cache/schema_overrides.json - Intelligent merging of override data with base osquery schemas
- Prominent display of usage requirements and examples in
fleet_get_osquery_table_schemaresponses - Multi-tier loading strategy: cache → download → stale cache fallback
- 24-hour cache TTL with graceful degradation if downloads fail
- Automatic download of YAML schema files from Fleet's GitHub repository (
-
Fuzzy Matching Host Lookup: Intelligent host identifier resolution for flexible host targeting
- New
host_identifier.pyutility module for smart host lookups - Support for matching hosts by hostname, UUID, serial number, or hardware model
- Enhanced
fleet_run_live_query_with_resultsto support fuzzy host matching - Automatic disambiguation when multiple hosts match
- New
-
CVE Filtering Support: Enhanced vulnerability tracking and reporting
- New CVE filtering capabilities in
software_tools.py - Filter software by specific CVE identifiers
- Improved vulnerability tracking across the fleet
- Updated documentation with CVE filtering examples
- New CVE filtering capabilities in
-
WebSocket-Based Live Query: Complete rewrite of live query execution
- Replaced
fleet_run_live_querywith WebSocket-basedfleet_run_live_query_with_results - New
websocket_client.pymodule for real-time result streaming - Improved reliability and performance for live queries
- Replaced
-
Docker Support: Containerized deployment option
- Added Dockerfile for easy deployment and distribution
- Simplified setup for containerized environments
-
Custom Variables Support: Added support for custom variables in Fleet
-
Development Tooling:
- Pre-commit hooks for automated code quality checks (Black, isort, mypy)
.pre-commit-hooks-guide.mddocumentation- Updated
CONTRIBUTING.mdwith pre-commit setup instructions - Auto-updating pre-commit hook versions
-
Security Policy: Added
SECURITY.mdfile with security reporting direction.
Changed
- Query Tool Enhancement:
fleet_run_live_query_with_resultsnow returns campaign_id and status immediately in async mode instead of blocking - Configuration Options: Added three new configuration parameters:
use_async_query_mode(default: false) - Enable async query executionasync_query_storage_dir(default:.fleet_mcp_async_queries) - Directory for storing async query resultsasync_query_retention_hours(default: 24) - Hours to retain completed query results
- Table Schema Cache: Enhanced
TableSchemaCacheto support schema overrides with automatic download and caching - Health Check: Now reports schema override cache status and source (cache/download/none)
Fixed
- Policy Creation: Fixed issue with creating policies globally vs team-specific
- WebSocket Connection: Improved WebSocket connection handling for live queries
- Import Organization: Updated
known_first_partyin pyproject.toml for better import sorting
Technical Improvements
- AsyncQueryManager: New disk-based query job manager with status tracking (pending/running/completed/failed/cancelled)
- Background Task Management: Async queries run in background tasks with proper lifecycle management
- Code Refactoring: Applied some DRY (Don't Repeat Yourself) principles across the codebase
- Refactored all tools to use common response formatting functions
- Created common utilities for pagination parameter building
- Applied
@handle_fleet_api_errorsdecorator across all tool functions - Consolidated error handling and response formatting
- Refactored activity, device, user, config, team, VPP, and async query tools
- Error Handling: Improved error messages for async query operations with detailed status information
- Code Quality: Temporarily disabled ruff formatter in favor of Black for more consistent formatting
- Package Updates: Updated uv packages and added WebSocket dependencies
Documentation
- Updated usage documentation with async query pattern examples
- Added schema overrides feature documentation
- Enhanced configuration guide with new async query settings
- Added CVE filtering examples
- Added fuzzy host matching documentation
- Enhanced troubleshooting section
Full Changelog: v1.0.2...v1.1.0
v1.0.2
Fully fleshed out Fleet tools to make fleet-mcp useful.
What's new in v1.0.2:
fleet_get_scriptnow gets the full script content in addition to the metadatafleet_health_checkwill return current version number offleet-mcpitself
Read-Only Tools (Default Mode. Set by readonly=true)
Host Management
fleet_list_hosts- List hosts with filtering, pagination, and searchfleet_get_host- Get detailed information about a specific host by IDfleet_get_host_by_identifier- Get host by hostname, UUID, or hardware serialfleet_search_hosts- Search hosts by hostname, UUID, serial number, or IPfleet_list_host_upcoming_activities- List upcoming activities for a specific hostfleet_list_host_past_activities- List past activities for a specific hostfleet_get_host_mdm- Get MDM information for a specific hostfleet_list_host_certificates- List certificates for a specific hostfleet_get_host_macadmins- Get macadmins data (Munki, MDM profiles) for a hostfleet_get_host_device_mapping- Get device mapping information for a hostfleet_get_host_encryption_key- Get disk encryption recovery key for a host
Query Management
fleet_list_queries- List all saved queries with paginationfleet_get_query- Get details of a specific saved queryfleet_get_query_report- Get the latest results from a scheduled query
Policy Management
fleet_list_policies- List all compliance policiesfleet_get_policy_results- Get compliance results for a specific policy
Software & Vulnerabilities
fleet_list_software- List software inventory across the fleetfleet_get_software- Get detailed information about a specific software itemfleet_get_host_software- Get software installed on a specific hostfleet_get_vulnerabilities- List known vulnerabilities with filteringfleet_get_cve- Get detailed information about a specific CVEfleet_search_software- Search for software by namefleet_find_software_on_host- Find specific software on a host by hostnamefleet_get_software_install_result- Get the result of a software installation requestfleet_list_software_titles- List software titles across the fleetfleet_get_software_title- Get detailed information about a specific software title
Team Management
fleet_list_teams- List all teamsfleet_get_team- Get details of a specific teamfleet_list_team_users- List all users that are members of a specific teamfleet_get_team_secrets- List team-specific enroll secrets
User Management
fleet_list_users- List all users with filteringfleet_get_user- Get details of a specific userfleet_list_user_sessions- List active sessions for a userfleet_get_session- Get session details by ID
Label Management
fleet_list_labels- List all labelsfleet_get_label- Get detailed information about a specific label
Pack Management
fleet_list_packs- List all query packsfleet_get_pack- Get detailed information about a specific packfleet_list_scheduled_queries- List scheduled queries in a specific pack
Script Management
fleet_list_scripts- List all scripts available in Fleetfleet_get_script- Get details of a specific scriptfleet_get_script_result- Get the result of a script executionfleet_list_batch_scripts- List batch script executionsfleet_get_batch_script- Get details of a batch script executionfleet_list_batch_script_hosts- List hosts in a batch script executionfleet_list_host_scripts- List scripts available for a specific host
MDM Management
fleet_list_mdm_commands- List MDM commands that have been executedfleet_get_mdm_command_results- Get results of MDM commandsfleet_list_mdm_profiles- List MDM configuration profilesfleet_get_host_mdm_profiles- Get MDM profiles installed on a specific hostfleet_get_mdm_profiles_summary- Get summary of MDM profile deployment statusfleet_get_filevault_summary- Get FileVault encryption summaryfleet_list_mdm_devices- List all MDM-enrolled Apple devicesfleet_get_bootstrap_metadata- Get metadata about a bootstrap package for a teamfleet_get_bootstrap_summary- Get aggregated summary about bootstrap package deploymentfleet_get_setup_assistant- Get the MDM Apple Setup Assistant configurationfleet_list_mdm_apple_installers- List all Apple MDM installers
VPP/App Store Management
fleet_list_app_store_apps- List App Store apps available for installationfleet_list_vpp_tokens- List VPP tokens configured in Fleet
Configuration Management
fleet_get_config- Get the current Fleet application configurationfleet_get_enroll_secrets- Get the enrollment secrets configurationfleet_get_certificate- Get the Fleet server certificate chainfleet_get_version- Get the Fleet server version information
Secret Management
fleet_list_secrets- List secret variables in Fleet
Invite Management
fleet_list_invites- List pending user invitesfleet_verify_invite- Verify an invite token and get invite details
Carve Management
fleet_list_carves- List file carve sessionsfleet_get_carve- Get detailed information about a specific carve sessionfleet_get_carve_block- Get a specific block of data from a carve session
Device Management
fleet_get_device_info- Get device information using a device token
Activity Monitoring
fleet_list_activities- List Fleet activities and audit logs
Osquery Table Discovery & Reference
fleet_list_osquery_tables- List available osquery tables with dynamic discoveryfleet_get_osquery_table_schema- Get detailed schema for a specific tablefleet_suggest_tables_for_query- Get AI-powered table suggestions based on intent
System
fleet_health_check- Check Fleet server connectivity and authentication
Write/Modify Tools (Requires readonly=false)
These tools can modify Fleet state and are only available when readonly=false is set in the configuration. This will allow you to make changes to your Fleet environment such as creating scripts, policies, managing teams, etc. in addition to the read-only tools. Setting to readonly=true (default) will disable these tools.
Host Management
fleet_delete_host- Remove a host from Fleetfleet_transfer_hosts- Transfer hosts to a different teamfleet_query_host- Run an ad-hoc live query against a specific hostfleet_query_host_by_identifier- Run a live query by hostname/UUID/serialfleet_cancel_host_activity- Cancel an upcoming activity for a specific hostfleet_lock_host- Lock a host device remotelyfleet_unlock_host- Unlock a host device remotelyfleet_unenroll_host_mdm- Unenroll a host from MDMfleet_add_labels_to_host- Add labels to a hostfleet_remove_labels_from_host- Remove labels from a hostfleet_refetch_host- Force a host to refetch and update its data immediately
Query Management
fleet_create_query- Create a new saved queryfleet_delete_query- Delete a saved queryfleet_run_live_query- Execute a live query against specified hostsfleet_run_saved_query- Run a saved query against hosts
Policy Management
fleet_create_policy- Create a new compliance policyfleet_update_policy- Update an existing policyfleet_delete_policy- Delete a policy
Software Management
fleet_install_software- Install software on a specific hostfleet_batch_set_software- Batch upload/set software installers for a team
Team Management
fleet_create_team- Create a new teamfleet_add_team_users- Add one or more users to a specific teamfleet_remove_team_user- Remove a specific user from a team
User Management
fleet_create_user- Create a new userfleet_update_user- Update an existing userfleet_delete_session- Delete/invalidate a specific sessionfleet_delete_user_sessions- Delete all sessions for a specific user
Label Management
fleet_create_label- Create a new labelfleet_update_label- Update an existing labelfleet_delete_label- Delete a label by name
Pack Management
fleet_create_pack- Create a new query packfleet_update_pack- Update an existing packfleet_delete_pack- Delete a pack by name
Script Management
fleet_run_script- Run a script on a specific hostfleet_run_batch_script- Run a script on multiple hostsfleet_cancel_batch_script- Cancel a batch script executionfleet_create_script- Create and upload a new scriptfleet_modify_script- Modify an existing scriptfleet_delete_script- Delete a script
MDM Management
fleet_upload_mdm_profile- Upload a new MDM configuration profilefleet_delete_mdm_profile- Delete an MDM configuration profilefleet_lock_device- Lock an MDM-enrolled device remotelyfleet_upload_bootstrap_package- Upload a bootstrap package for MDM enrollmentfleet_delete_bootstrap_package- Delete a bootstrap package for a teamfleet_create_setup_assistant- Create or update an MDM Apple Setup Assistantfleet_delete_setup_assistant- Delete the MDM Apple Setup Assistantfleet_upload_mdm_apple_installer- Upload a new Apple MDM installer package
Note: The wipe device tool is currently disabled as it is too dangerous. It may be revisited later if really needed.
VPP/App Store Management
fleet_add_app_store_app- Add an App Store app for distributionfleet_update_app_store_app- Update App Store app settingsfleet_delete_vpp_token- Delete a VPP token
Config...
v1.0.1
Fully fleshed out Fleet tools to make fleet-mcp useful.
Read-Only Tools (Default Mode. Set by readonly=true)
Host Management
fleet_list_hosts- List hosts with filtering, pagination, and searchfleet_get_host- Get detailed information about a specific host by IDfleet_get_host_by_identifier- Get host by hostname, UUID, or hardware serialfleet_search_hosts- Search hosts by hostname, UUID, serial number, or IPfleet_list_host_upcoming_activities- List upcoming activities for a specific hostfleet_list_host_past_activities- List past activities for a specific hostfleet_get_host_mdm- Get MDM information for a specific hostfleet_list_host_certificates- List certificates for a specific hostfleet_get_host_macadmins- Get macadmins data (Munki, MDM profiles) for a hostfleet_get_host_device_mapping- Get device mapping information for a hostfleet_get_host_encryption_key- Get disk encryption recovery key for a host
Query Management
fleet_list_queries- List all saved queries with paginationfleet_get_query- Get details of a specific saved queryfleet_get_query_report- Get the latest results from a scheduled query
Policy Management
fleet_list_policies- List all compliance policiesfleet_get_policy_results- Get compliance results for a specific policy
Software & Vulnerabilities
fleet_list_software- List software inventory across the fleetfleet_get_software- Get detailed information about a specific software itemfleet_get_host_software- Get software installed on a specific hostfleet_get_vulnerabilities- List known vulnerabilities with filteringfleet_get_cve- Get detailed information about a specific CVEfleet_search_software- Search for software by namefleet_find_software_on_host- Find specific software on a host by hostnamefleet_get_software_install_result- Get the result of a software installation requestfleet_list_software_titles- List software titles across the fleetfleet_get_software_title- Get detailed information about a specific software title
Team Management
fleet_list_teams- List all teamsfleet_get_team- Get details of a specific teamfleet_list_team_users- List all users that are members of a specific teamfleet_get_team_secrets- List team-specific enroll secrets
User Management
fleet_list_users- List all users with filteringfleet_get_user- Get details of a specific userfleet_list_user_sessions- List active sessions for a userfleet_get_session- Get session details by ID
Label Management
fleet_list_labels- List all labelsfleet_get_label- Get detailed information about a specific label
Pack Management
fleet_list_packs- List all query packsfleet_get_pack- Get detailed information about a specific packfleet_list_scheduled_queries- List scheduled queries in a specific pack
Script Management
fleet_list_scripts- List all scripts available in Fleetfleet_get_script- Get details of a specific scriptfleet_get_script_result- Get the result of a script executionfleet_list_batch_scripts- List batch script executionsfleet_get_batch_script- Get details of a batch script executionfleet_list_batch_script_hosts- List hosts in a batch script executionfleet_list_host_scripts- List scripts available for a specific host
MDM Management
fleet_list_mdm_commands- List MDM commands that have been executedfleet_get_mdm_command_results- Get results of MDM commandsfleet_list_mdm_profiles- List MDM configuration profilesfleet_get_host_mdm_profiles- Get MDM profiles installed on a specific hostfleet_get_mdm_profiles_summary- Get summary of MDM profile deployment statusfleet_get_filevault_summary- Get FileVault encryption summaryfleet_list_mdm_devices- List all MDM-enrolled Apple devicesfleet_get_bootstrap_metadata- Get metadata about a bootstrap package for a teamfleet_get_bootstrap_summary- Get aggregated summary about bootstrap package deploymentfleet_get_setup_assistant- Get the MDM Apple Setup Assistant configurationfleet_list_mdm_apple_installers- List all Apple MDM installers
VPP/App Store Management
fleet_list_app_store_apps- List App Store apps available for installationfleet_list_vpp_tokens- List VPP tokens configured in Fleet
Configuration Management
fleet_get_config- Get the current Fleet application configurationfleet_get_enroll_secrets- Get the enrollment secrets configurationfleet_get_certificate- Get the Fleet server certificate chainfleet_get_version- Get the Fleet server version information
Secret Management
fleet_list_secrets- List secret variables in Fleet
Invite Management
fleet_list_invites- List pending user invitesfleet_verify_invite- Verify an invite token and get invite details
Carve Management
fleet_list_carves- List file carve sessionsfleet_get_carve- Get detailed information about a specific carve sessionfleet_get_carve_block- Get a specific block of data from a carve session
Device Management
fleet_get_device_info- Get device information using a device token
Activity Monitoring
fleet_list_activities- List Fleet activities and audit logs
Osquery Table Discovery & Reference
fleet_list_osquery_tables- List available osquery tables with dynamic discoveryfleet_get_osquery_table_schema- Get detailed schema for a specific tablefleet_suggest_tables_for_query- Get AI-powered table suggestions based on intent
System
fleet_health_check- Check Fleet server connectivity and authentication
Write/Modify Tools (Requires readonly=false)
These tools can modify Fleet state and are only available when readonly=false is set in the configuration. This will allow you to make changes to your Fleet environment such as creating scripts, policies, managing teams, etc. in addition to the read-only tools. Setting to readonly=true (default) will disable these tools.
Host Management
fleet_delete_host- Remove a host from Fleetfleet_transfer_hosts- Transfer hosts to a different teamfleet_query_host- Run an ad-hoc live query against a specific hostfleet_query_host_by_identifier- Run a live query by hostname/UUID/serialfleet_cancel_host_activity- Cancel an upcoming activity for a specific hostfleet_lock_host- Lock a host device remotelyfleet_unlock_host- Unlock a host device remotelyfleet_unenroll_host_mdm- Unenroll a host from MDMfleet_add_labels_to_host- Add labels to a hostfleet_remove_labels_from_host- Remove labels from a hostfleet_refetch_host- Force a host to refetch and update its data immediately
Query Management
fleet_create_query- Create a new saved queryfleet_delete_query- Delete a saved queryfleet_run_live_query- Execute a live query against specified hostsfleet_run_saved_query- Run a saved query against hosts
Policy Management
fleet_create_policy- Create a new compliance policyfleet_update_policy- Update an existing policyfleet_delete_policy- Delete a policy
Software Management
fleet_install_software- Install software on a specific hostfleet_batch_set_software- Batch upload/set software installers for a team
Team Management
fleet_create_team- Create a new teamfleet_add_team_users- Add one or more users to a specific teamfleet_remove_team_user- Remove a specific user from a team
User Management
fleet_create_user- Create a new userfleet_update_user- Update an existing userfleet_delete_session- Delete/invalidate a specific sessionfleet_delete_user_sessions- Delete all sessions for a specific user
Label Management
fleet_create_label- Create a new labelfleet_update_label- Update an existing labelfleet_delete_label- Delete a label by name
Pack Management
fleet_create_pack- Create a new query packfleet_update_pack- Update an existing packfleet_delete_pack- Delete a pack by name
Script Management
fleet_run_script- Run a script on a specific hostfleet_run_batch_script- Run a script on multiple hostsfleet_cancel_batch_script- Cancel a batch script executionfleet_create_script- Create and upload a new scriptfleet_modify_script- Modify an existing scriptfleet_delete_script- Delete a script
MDM Management
fleet_upload_mdm_profile- Upload a new MDM configuration profilefleet_delete_mdm_profile- Delete an MDM configuration profilefleet_lock_device- Lock an MDM-enrolled device remotelyfleet_upload_bootstrap_package- Upload a bootstrap package for MDM enrollmentfleet_delete_bootstrap_package- Delete a bootstrap package for a teamfleet_create_setup_assistant- Create or update an MDM Apple Setup Assistantfleet_delete_setup_assistant- Delete the MDM Apple Setup Assistantfleet_upload_mdm_apple_installer- Upload a new Apple MDM installer package
Note: The wipe device tool is currently disabled as it is too dangerous. It may be revisited later if really needed.
VPP/App Store Management
fleet_add_app_store_app- Add an App Store app for distributionfleet_update_app_store_app- Update App Store app settingsfleet_delete_vpp_token- Delete a VPP token
Configuration Management
fleet_update_config- Update the Fleet application configurationfleet_update_enroll_secrets- Update the enrollment secrets configuration
Secret Management
- `fle...
Initial Release of Fleet-MCP
An initial release of an experimental MCP tool for Fleet