Pro plan from £5 per endpoint per month · see pricing
Secronyx

Reference

Tool reference

Every tool Secronyx registers, grouped by scope, with arguments, platform notes and command-line equivalents, generated from the server's own tools/list output.

Secronyx exposes system state to AI clients as MCP tools. This page lists all 661 of them. It is generated by gen-tools.sh, which builds the server, starts it over stdio with --enable-sensitive and no --scopes restriction, sends initialize followed by tools/list, and renders what the server returns. Scope membership is obtained the same way, by starting the server once per scope with --scopes <scope>; the command-line flag tables are read from the source of cmd/secronyx. Tool names, descriptions and argument schemas are therefore the server's own words, and the tables are in the server's registration order. If a tool changes, rerun the script rather than editing this page.

The first sections explain how tools are listed, called, scoped and run from the shell. The scope sections that follow are the reference proper. Related pages: JSON-RPC API, Scopes and authorization, Command line, Configuration reference, and the documentation home.

How the server exposes tools

Secronyx speaks JSON-RPC 2.0 over stdio or HTTP. The protocol version it reports from initialize is 2024-11-05, and the only capability it advertises is tools. The request methods it accepts are initialize, initialized, tools/list, tools/call and ping; any other method returns error code -32601 (Method not found). A message without an id is a notification and gets no reply.

tools/list returns the whole inventory in one response. There is no cursor and no pagination, and the server answers it whether or not initialize has been sent. On the stdio transport, and on HTTP when no identity has been authenticated, the list is every registered tool. When the HTTP transport has authenticated the caller, the list is filtered to the tools whose scope the caller's grants cover.

tools/call takes {"name": "<tool>", "arguments": {...}}. Three outcomes are possible:

  • Success. The result is {"content": [{"type": "text", "text": "<JSON>"}]}. Every tool on this page returns its data as one text item holding the collector's result serialised as JSON with two-space indentation.
  • Collector failure. The result is still a tool result, not a JSON-RPC error. It carries "isError": true and one text item of the form Error: <message>.
  • Oversized result. When the text exceeds the per-call cap it is replaced by an error result whose text is Error: result too large: <n> bytes exceeds the <cap> byte cap; narrow the query (limit, lines, filters). The cap defaults to 4 MiB (DefaultMaxResultBytes = 4 << 20) and is set with --max-result-bytes; a value below 1 KiB is raised to 1 KiB.

Two JSON-RPC errors are specific to tools:

  • -32602 Tool not found, with data set to the requested name. A tool that exists in the source but was excluded at registration, for example a sensitive tool when --enable-sensitive is off, is reported exactly like a tool that never existed.
  • -32003 Forbidden, with data of the form tool "<name>" requires scope "<scope>". The HTTP transport returns this when the authenticated caller's grants do not cover the tool's scope.

Every tools/call, whether it succeeds, fails, is denied or names an unknown tool, is written to the audit log with the tool name, arguments, identity, client IP, duration and outcome. See Audit logging.

The inputSchema on each tool is advisory. The server hands arguments to the handler without validating them against the schema; handlers read the arguments they need, take integers from JSON numbers, and fall back to their own defaults when an argument is absent. get_capabilities, for example, inspects PID 1 when pid is omitted even though its schema marks pid as required. Read the Required column below as "the tool is meaningless without it", not as "the server rejects the call without it".

A complete exchange over stdio, one JSON object per line:

{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"example","version":"0"}}}
{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"get_uptime","arguments":{}}}
{"jsonrpc":"2.0","id":1,"result":{"protocolVersion":"2024-11-05","capabilities":{"tools":{}},"serverInfo":{"name":"secronyx","version":"dev"}}}
{"jsonrpc":"2.0","id":2,"result":{"content":[{"type":"text","text":"{\n  \"boot_time\": \"2026-08-27T23:55:58.640118524+01:00\",\n  \"uptime\": 1761127750000000,\n  \"uptime_str\": \"20 days, 9 hours, 12 minutes, 7 seconds\",\n  \"timestamp\": \"2026-09-17T09:08:06.390121094+01:00\"\n}"}]}}

Scopes and registration

Every tool belongs to exactly one scope, fixed at registration in internal/mcp/tools*.go. The scope decides two things: whether the tool is registered at all, and which identities may call it over HTTP.

Registration is controlled by two settings, read once at startup before any tool is registered:

  • --scopes <list>, or the SECRONYX_SCOPES environment variable: a comma-separated list of scopes to register. Empty, the default, means every scope except sensitive.
  • --enable-sensitive, or SECRONYX_ENABLE_SENSITIVE=1: permits registration of the sensitive scope. It is required even when sensitive appears in --scopes; --scopes sensitive on its own registers nothing.

A tool outside the policy is never registered, so it is absent from tools/list and returns Tool not found from tools/call on every transport. At startup the server logs what it dropped, for example Scope policy: 644 tools not registered (sensitive=false, scopes="core,logs"), and logs WARNING: sensitive-scope tools are enabled when the sensitive scope is on. With the defaults the inventory is 630 tools; with --enable-sensitive it is 661.

On the HTTP transport an identity's grants are matched against the tool's scope as the bare scope name, as mcp:tools:<scope>, or as the wildcard *; the bare mcp:tools grants nothing. The scopes that are actually registered are advertised as scopes_supported in the protected-resource metadata served at /.well-known/oauth-protected-resource. How identities obtain grants is covered in Authentication and Scopes and authorization.

The 19 scopes are:

Scope Purpose Tools Registered by default
core Core metrics: CPU, memory, disk, network interfaces, processes (instant and sampled), uptime and temperature. 8 yes
logs Log access: systemd journal, syslog, kernel log, application logs, the Windows Event Log, PowerShell script blocks, AppArmor, SELinux and seccomp audit events and macOS unified log faults. 9 yes
hooks System hooks: scheduled tasks and cron, startup items, systemd services, kernel modules and drivers, DNS, routes, firewall rules, listening ports, ARP, network statistics, mounts, disk I/O, open files and inodes, plus event history (socket, file and hardware events, the event monitor and the NTFS USN journal). 20 yes
hardware Hardware: platform summary, USB, PCI and block devices, batteries, fans, firmware, serial ports, CPU vulnerabilities and topology, PCIe, Thunderbolt, IOMMU, EDAC, sensors and GPU compute processes, SMBIOS, chassis, memory layout, ACPI tables, CPU features, device firmware, Intel ME, security MSRs and macOS IOKit, T2 and displays. 38 yes
resources Process and resource detail: IPC, namespaces, cgroups, capabilities, the process tree, zombie, blocked and orphan processes, file descriptors, threads and priorities, pipes and the physical memory map. 13 yes
state System state: virtualisation, time zone and NTP, core dumps, power, NUMA, login sessions and history, groups and password policy, kernel parameters, fstab, locale, systemd deep-dive, macOS administration, crash and panic reports, CUPS, container detail, LXD/Incus and cloud instance metadata. 57 yes
software Software inventory: system and language package managers, lock files, SBOM output, vulnerability lookups, containers, developer tools, language runtimes, web servers and database servers, browser and editor extensions, macOS package receipts, Portage and RPM file lists. 124 yes
triage Triage and summary queries: OS profile, service manager, cloud environment, recent reboots, failures and critical events, security basics and combined incident and posture snapshots. 25 yes
windows Windows enterprise features: registry, DCOM, IIS (sites, pools, modules, ASP.NET, FTP, ARR and request filtering), Active Directory, VSS, WMI, W32Time, reliability, system identity and boot. 127 yes
enhanced Enhanced diagnostics: GPU, container runtimes and workloads, Kubernetes node info, WSL, and kernel performance counters (scheduler, softirq, memory compression, PSI, hugepages, OOM, clock sources). 27 yes
report System reports: parallel collection of many tools into a single report document. 2 yes
storage Storage deep dive: SMART, I/O latency, volumes, LVM, ZFS, RAID, Btrfs, XFS, LUKS, quotas, TRIM, schedulers, NFS, Samba, autofs, file locks and log directory usage. 25 yes
security Platform security controls: Windows (Defender, firewall, BitLocker, AppLocker, WDAC, Credential Guard, UAC, audit policy), macOS (FileVault, Gatekeeper, SIP, XProtect, pf, MDM) and Linux (auditd, lockdown, sysctl, MAC, PAM, polkit, setuid, fail2ban); Windows persistence, autoruns, security products and EDR sensors; file, process and launch-binary integrity and signatures; trusted roots; macOS security controls; and container and Docker daemon security. 87 yes
network Network intelligence: connection tracking, DNS, firewall detail, Wi-Fi, connectivity probes, proxy and hosts configuration, IPv6, bonding, DHCP, NetworkManager and netplan, offload and error statistics, LLDP and traffic control, the protocols and services databases and the Wi-Fi scan cache. 29 yes
analytics Analytics and trends: historical metrics, anomaly detection, capacity forecasting and trend analysis. 4 yes
alerts Automation and alerting: alert status, remediation suggestions and runbook recommendations. 3 yes
compliance Security and compliance: security scan, framework compliance checks, forensic snapshot, audit trail and hardening recommendations. 5 yes
consumer Consumer and workstation diagnostics: Bluetooth, audio, printers, displays, Windows Update and Defender status, crashes and minidumps, boot timing, VPN, activation, System Restore, Appx packages, power plans, startup impact, fonts, Internet Explorer extensions, browser plug-ins and URL scheme handlers. 27 yes
sensitive Sensitive data: authentication logs, environment variables (system and per-process), user accounts, sudo and SSH configuration, MAC status, certificates and macOS TCC permissions, execution evidence (prefetch, BAM, ShimCache, UserAssist, ShellBags, Office MRU), logon sessions, process events, SSH keys and known hosts, shell history, password status, kernel keys, DNS cache, container environments and print jobs. Opt-in at registration. 31 no (--enable-sensitive)

Platform support

Secronyx is built for Linux, macOS and Windows, and every tool is registered on every platform. The Platform column in the tables records only what the tool's own description states: Windows, Linux, macOS, a combination, or a slow on macOS warning. A blank entry means the description does not restrict the tool; it does not promise data on every platform.

On a platform a tool does not support, the call still succeeds. The collector returns an empty result, usually with an error field saying why, and tools/call reports it as an ordinary result without isError. Two examples captured on a Linux host, from get_iis_sites and get_macos_applications:

{"sites": [], "count": 0, "error": "IIS is only available on Windows", "timestamp": "2026-09-17T09:06:05.932723298+01:00"}
{"applications": [], "count": 0, "timestamp": "2026-09-17T09:08:09.932945802+01:00"}

The slow on macOS marker repeats a warning that the description itself carries: those tools call log show. The descriptions use three phrasings, kept verbatim in the Description column: Note: May be slow on macOS (uses log show), WARNING: High latency on macOS (1+ minutes, uses log show) and, for get_incident_triage_snapshot and get_security_posture_snapshot, WARNING: High latency on macOS (may take 1-5 minutes due to log queries). A few Windows tools state requires admin in their description; that phrase is kept verbatim too.

Calling a tool from the command line

secronyx --query <name> runs one tool's collector and prints the result, bypassing MCP entirely. It is the quickest way to see what a tool returns on a particular host:

secronyx --query get_cpu_info --json
secronyx --query get_capabilities --pid 1 --json
secronyx --query get_service_log_view --service nginx --lines 200 --json
secronyx --query get_registry_key --hive HKLM --regpath 'SOFTWARE\Microsoft\Windows NT\CurrentVersion' --json

How this differs from a tools/call:

  • No scope policy. --query builds its own in-process registry with every scope enabled, sensitive included, so sensitive tools run without --enable-sensitive and --scopes has no effect. It runs the same handler, with the same schema, that tools/call runs. Anyone who can run the binary as a user with the relevant file permissions can read what those tools read; see Security model.
  • No audit event. Audit logging is initialised exactly as for the server (pass --no-audit to skip that), but the tool-call event is written by the MCP tools/call handler, which --query does not pass through. Redaction, by contrast, is applied inside the collectors, so --redact (on by default) and --no-redact govern --query output as they govern MCP results; see Redaction.
  • Output format. With --json the result is printed as indented JSON and nothing else. Without it, a line === <name> === and a blank line precede the same JSON. An unknown name prints Error: unknown query '<name>' and Use --help to see available queries. to stderr and exits with status 1; a collector error prints Error: <message> and exits 1. Startup warnings such as WARNING: audit logging is DISABLED go to stderr.
  • Arguments come from --args, a JSON object in the same shape as the arguments of a tools/call, and from shorthand flags that each set one argument. A shorthand flag is passed only when it is given on the command line, and it overrides the same argument in --args; --args that is not a JSON object prints an error beginning Error: --args must be a JSON object and exits 1. The first table lists the flags; the second lists the tools whose schema declares the argument each shorthand flag sets. Any argument without a shorthand flag is passed through --args, for example secronyx --query get_processes --args '{"limit":25}' --json.
Flag Type Default Sets argument Purpose (from the flag definition)
--args string (empty) any Tool arguments as a JSON object (for --query)
--pid int 0 pid Process ID for queries that need it (e.g., get_capabilities)
--image-id string (empty) image_id Image ID for container queries (e.g., get_docker_image_history)
--path string (empty) path Path for file and lock file queries (e.g., get_npm_lock)
--regpath string (empty) path Registry key path
--service string (empty) service Service name for service queries (e.g., get_service_log_view)
--limit int 0 limit Limit for queries that support it
--hours int 0 hours Hours for time-based queries
--days int 0 days Days for time-based queries
--lines int 0 lines Lines for log queries
--period string (empty) period Period for analytics queries (1h, 24h, 7d)
--framework string (empty) framework Compliance framework (cis, pci-dss, hipaa, stig)
--hive string (empty) hive Registry hive (HKLM, HKCU, HKCR, HKU, HKCC)
--max-depth int 0 max_depth Maximum depth for recursive queries
--appid string (empty) appid DCOM AppID GUID
--site-name string (empty) site_name IIS site name for site-specific queries
--app-pool string (empty) app_pool_name IIS application pool name for app pool queries
Flag Tools whose schema declares the argument
--pid get_process_environ, get_capabilities, get_process_env_names, get_process_open_pipes, get_process_memory_map
--image-id get_docker_image_history, get_docker_image_metadata
--path get_app_logs, get_npm_lock, get_pip_lock, get_cargo_lock, get_go_sum, get_gemfile_lock, get_app_config, get_yarn_lock, get_pnpm_lock, get_poetry_lock, get_composer_lock, get_mix_lock, get_pubspec_lock, get_swift_resolved, get_podfile_lock, get_gradle_lock, get_conda_lock, get_registry_key, get_registry_tree, get_registry_security, get_file_metadata
--regpath get_app_logs, get_npm_lock, get_pip_lock, get_cargo_lock, get_go_sum, get_gemfile_lock, get_app_config, get_yarn_lock, get_pnpm_lock, get_poetry_lock, get_composer_lock, get_mix_lock, get_pubspec_lock, get_swift_resolved, get_podfile_lock, get_gradle_lock, get_conda_lock, get_registry_key, get_registry_tree, get_registry_security, get_file_metadata
--service get_service_log_view
--limit get_processes, get_recent_reboots, get_recent_service_failures, get_recent_kernel_events, get_recent_resource_incidents, get_recent_config_changes, get_recent_critical_events, get_deployment_events, get_iis_failed_requests, get_shell_history, get_process_events, get_socket_events, get_file_events, get_hardware_events, get_portage_packages, get_rpm_package_files, get_apparmor_events, get_selinux_events, get_seccomp_events, get_crash_reports, get_kernel_panic_reports, get_macos_log_faults, get_etc_services, get_process_memory_map
--hours get_auth_failure_summary, get_audit_trail, get_macos_xprotect_events, get_powershell_script_blocks
--days get_recently_installed_software
--lines get_journal_logs, get_syslog, get_kernel_logs, get_auth_logs, get_app_logs, get_event_log, get_service_log_view, get_container_logs
--period get_historical_metrics, get_trend_analysis
--framework get_compliance_check
--hive get_registry_key, get_registry_tree, get_registry_security
--max-depth get_registry_tree, get_macos_iokit_registry
--appid get_dcom_permissions
--site-name get_iis_request_filtering, get_iis_ip_security, get_iis_url_authorization, get_iis_custom_headers, get_iis_url_rewrite, get_iis_redirect_rules, get_iis_default_document, get_iis_directory_browse, get_iis_failed_request_rules, get_iis_failed_requests, get_iis_logging, get_iis_aspnet_compilation, get_iis_aspnet_session, get_iis_aspnet_machinekey, get_iis_aspnet_custom_errors, get_iis_aspnet_globalization, get_iis_request_limits, get_iis_site_state, get_iis_config_effective_diff, get_iis_config_diff, get_iis_ftp_ssl, get_iis_ftp_user_isolation, get_iis_ftp_authorization, get_iis_ftp_ip_security, get_iis_ftp_logging, get_iis_ftp_firewall, get_iis_asp_settings, get_iis_asp_session, get_iis_asp_limits, get_iis_asp_com_plus, get_iis_asp_cache, get_iis_client_cert_mapping, get_iis_aspnet_impersonation, get_iis_forms_auth, get_iis_hidden_segments, get_iis_webdav, get_iis_double_escaping, get_iis_high_bit_chars, get_iis_query_strings, get_iis_file_extensions, get_iis_kernel_cache
--app-pool get_iis_apppool_recycling, get_iis_apppool_process_model, get_iis_apppool_cpu, get_iis_apppool_failure, get_iis_worker_processes

Every one of the 661 tools can be run with --query, under its tool name.

Reading the tables

Each scope below has a tools table and, where any tool takes arguments, an arguments table.

  • Tool: the name to pass in tools/call and to --query.
  • Description: the description string the server returns, verbatim.
  • Platform: the restriction stated in that description, if any (see above).
  • Argument, Type, Required, Default: taken from inputSchema.properties and inputSchema.required. Where a property carries an enum, or a minimum or maximum, the permitted values or bounds are appended to the description in parentheses. A range that appears only in the description text is enforced, if at all, by the handler.

Scope: core

Core metrics: CPU, memory, disk, network interfaces, processes (instant and sampled), uptime and temperature. 8 tools. Over HTTP an identity needs the grant core, mcp:tools:core or * to list or call them; --scopes core registers only this scope.

Tool Description Platform
get_cpu_info Get CPU usage, frequency, load average, and core count —
get_memory_info Get total, used, available memory and swap usage —
get_disk_info Get disk partitions, usage, and filesystem types —
get_network_info Get network interfaces, I/O counters, and connections —
get_processes Get running processes, optionally sorted by CPU or memory usage —
get_processes_sampled Get running processes with accurate CPU% via time-delta sampling. Takes two CPU time measurements with a delay to calculate accurate CPU usage. —
get_uptime Get system boot time and uptime duration —
get_temperature Get hardware temperature sensor readings —

Arguments

Tool Argument Type Required Default Description
get_cpu_info per_cpu boolean no false Include per-CPU core statistics
get_processes limit integer no 10 Maximum number of processes to return
get_processes sort_by string no cpu Sort by 'cpu' or 'memory' (allowed: cpu, memory)
get_processes_sampled sample_duration_ms integer no 1000 Duration between CPU time measurements in milliseconds (default: 1000)

Scope: logs

Log access: systemd journal, syslog, kernel log, application logs, the Windows Event Log, PowerShell script blocks, AppArmor, SELinux and seccomp audit events and macOS unified log faults. 9 tools. Over HTTP an identity needs the grant logs, mcp:tools:logs or * to list or call them; --scopes logs registers only this scope.

Tool Description Platform
get_journal_logs Get systemd journal logs (Linux only) Linux
get_syslog Get traditional syslog entries —
get_kernel_logs Get kernel/dmesg logs —
get_app_logs Get application-specific logs —
get_event_log Get Windows Event Log entries —
get_apparmor_events Linux only: AppArmor audit records (denied, allowed/complain and other results) from /var/log/audit/audit.log, or from the kernel and audit journald transports when that file is unreadable, grouped by profile and operation, plus whether AppArmor is enabled (time window up to 168 hours; last 16 MB of audit.log or 20000 journal lines; up to 500 events and 100 groups; reading system logs usually needs root or the adm/systemd-journal group) Linux
get_selinux_events Linux only: SELinux access-vector (AVC, USER_AVC) and policy-error records from /var/log/audit/audit.log or journald, grouped by source context, target context, class and permissions, plus the current SELinux mode (time window up to 168 hours; last 16 MB of audit.log or 20000 journal lines; up to 500 events and 100 groups; usually needs root) Linux
get_seccomp_events Linux only: seccomp audit records (a process's syscall filter killed, trapped, failed or logged a system call) from /var/log/audit/audit.log or journald, with the filter action and architecture decoded and grouped by executable and syscall number (time window up to 168 hours; up to 500 events and 100 groups; usually needs root) Linux
get_macos_log_faults macOS only: unified log fault entries (or error and fault entries) from log show with a fixed predicate, grouped by process, subsystem and level, with messages redacted and capped at 500 characters (time window up to 360 minutes; scans at most 50000 lines within 60 seconds; up to 500 entries and 100 groups) macOS

Arguments

Tool Argument Type Required Default Description
get_journal_logs lines integer no 50 Number of log lines to return
get_journal_logs priority string no — Filter by priority (emerg, alert, crit, err, warning, notice, info, debug)
get_journal_logs unit string no — Filter by systemd unit name
get_syslog lines integer no 50 Number of log lines to return
get_kernel_logs lines integer no 50 Number of log lines to return
get_app_logs lines integer no 50 Number of log lines to return
get_app_logs path string no — Path to log file or directory
get_event_log lines integer no 50 Number of entries to return
get_event_log log_name string no System Event log name (Application, System, Security)
get_apparmor_events limit integer no 100 Maximum individual events to return, newest first (default 100, max 500); counts and groups cover every event in the window (minimum 1, maximum 500)
get_apparmor_events since_hours integer no 24 How many hours back to look (default 24, max 168) (minimum 1, maximum 168)
get_selinux_events limit integer no 100 Maximum individual events to return, newest first (default 100, max 500); counts and groups cover every event in the window (minimum 1, maximum 500)
get_selinux_events since_hours integer no 24 How many hours back to look (default 24, max 168) (minimum 1, maximum 168)
get_seccomp_events limit integer no 100 Maximum individual events to return, newest first (default 100, max 500); counts and groups cover every event in the window (minimum 1, maximum 500)
get_seccomp_events since_hours integer no 24 How many hours back to look (default 24, max 168) (minimum 1, maximum 168)
get_macos_log_faults levels string no fault Which levels to include: fault (default) or error_and_fault (allowed: fault, error_and_fault)
get_macos_log_faults limit integer no 100 Maximum individual entries to return, newest first (default 100, max 500) (minimum 1, maximum 500)
get_macos_log_faults since_minutes integer no 60 How many minutes back to look (default 60, max 360) (minimum 1, maximum 360)

Scope: hooks

System hooks: scheduled tasks and cron, startup items, systemd services, kernel modules and drivers, DNS, routes, firewall rules, listening ports, ARP, network statistics, mounts, disk I/O, open files and inodes, plus event history (socket, file and hardware events, the event monitor and the NTFS USN journal). 20 tools. Over HTTP an identity needs the grant hooks, mcp:tools:hooks or * to list or call them; --scopes hooks registers only this scope.

Tool Description Platform
get_scheduled_tasks Get scheduled tasks (Windows Task Scheduler, at jobs, launchd) —
get_cron_jobs Get cron entries (Linux/macOS) Linux, macOS
get_startup_items Get startup programs and services —
get_systemd_services Get systemd service status (Linux) Linux
get_kernel_modules Get loaded kernel modules —
get_loaded_drivers Get device drivers —
get_dns_servers Get configured DNS servers —
get_routes Get routing table —
get_firewall_rules Get firewall rules —
get_listening_ports Get listening network ports —
get_arp_table Get ARP table entries —
get_network_stats Get network stack statistics —
get_mounts Get mounted filesystems —
get_disk_io Get disk I/O statistics —
get_open_files Get open file descriptors —
get_inode_usage Get inode usage (Linux/macOS) Linux, macOS
get_socket_events Socket open/close history (TCP/UDP, IPv4/IPv6, owning process where visible) from an in-memory ring buffer (3000 events) fed by polling the socket table, plus connect/bind/accept records from the Linux audit log and Sysmon network events (ID 3) on Windows when readable. History begins when the monitor started; connections shorter than the poll interval can be missed; metadata only, no payloads —
get_file_events Change history for a fixed, compiled-in watch list of security-sensitive paths (accounts, sudoers, sshd config, authorized_keys, cron, systemd/launchd units, hosts, loader and shell startup files, Windows startup folders, tasks and HKLM Run keys): created, deleted, modified or attributes changed with metadata and SHA-256 (files up to 1 MiB; account hash databases metadata only), polled every 10 seconds into a 1500-event ring buffer, plus audited file operations with process context from the Linux audit log and Sysmon file events on Windows. No caller paths; file contents are never returned —
get_hardware_events Device and disk history: USB and block device attach/detach and volume mount/unmount found by polling (sysfs and mountinfo on Linux, ioreg and mount on macOS, drive letters on Windows) into a 1500-event ring buffer, plus USB and removable-disk kernel messages from the journal across retained boots (Linux, 20,000 lines max), the unified log (macOS, 24 hours max) and Kernel-PnP / Partition diagnostic events (Windows). History in the buffer begins when the monitor started Linux
get_event_monitor_status Status of the in-memory event monitor behind get_process_events, get_socket_events, get_file_events and get_hardware_events: start time, buffer window, capacities (10,000 events total), overwritten counts and per-source health. Starts the monitor if it is not running —

Arguments

Tool Argument Type Required Default Description
get_socket_events include_system_logs boolean no true Also read the platform's own event records (audit log, Windows event logs, macOS unified log) for history before the monitor started (default true)
get_socket_events limit integer no 500 Maximum events to return, newest first (default 500, max 1000) (minimum 1, maximum 1000)
get_socket_events log_hours integer no 24 How many hours of platform event records to read (default 24, max 168; macOS unified log capped at 24) (minimum 1, maximum 168)
get_socket_events since_seconds integer no 0 Only return events from the last N seconds (0 = everything buffered or read) (minimum 0, maximum 604800)
get_file_events include_system_logs boolean no true Also read the platform's own event records (audit log, Windows event logs, macOS unified log) for history before the monitor started (default true)
get_file_events limit integer no 500 Maximum events to return, newest first (default 500, max 1000) (minimum 1, maximum 1000)
get_file_events log_hours integer no 24 How many hours of platform event records to read (default 24, max 168; macOS unified log capped at 24) (minimum 1, maximum 168)
get_file_events since_seconds integer no 0 Only return events from the last N seconds (0 = everything buffered or read) (minimum 0, maximum 604800)
get_hardware_events include_system_logs boolean no true Also read the platform's own event records (audit log, Windows event logs, macOS unified log) for history before the monitor started (default true)
get_hardware_events limit integer no 500 Maximum events to return, newest first (default 500, max 1000) (minimum 1, maximum 1000)
get_hardware_events log_hours integer no 24 How many hours of platform event records to read (default 24, max 168; macOS unified log capped at 24) (minimum 1, maximum 168)
get_hardware_events since_seconds integer no 0 Only return events from the last N seconds (0 = everything buffered or read) (minimum 0, maximum 604800)

Scope: hardware

Hardware: platform summary, USB, PCI and block devices, batteries, fans, firmware, serial ports, CPU vulnerabilities and topology, PCIe, Thunderbolt, IOMMU, EDAC, sensors and GPU compute processes, SMBIOS, chassis, memory layout, ACPI tables, CPU features, device firmware, Intel ME, security MSRs and macOS IOKit, T2 and displays. 38 tools. Over HTTP an identity needs the grant hardware, mcp:tools:hardware or * to list or call them; --scopes hardware registers only this scope.

Tool Description Platform
get_hardware_info Get system, BIOS, and motherboard information —
get_usb_devices Get connected USB devices —
get_pci_devices Get PCI devices —
get_block_devices Get block device topology —
get_battery_health Get battery health details: cycle count, design vs full-charge capacity, health percentage, manufacturer, technology —
get_fan_speeds Get fan speed readings in RPM from hardware monitoring sensors —
get_input_devices Get attached input devices: keyboards, mice, touchpads, and other HID devices —
get_firmware_info Get BIOS/UEFI firmware vendor, version, release date, board details, and boot mode (UEFI vs BIOS) —
get_removable_media Get attached removable storage devices (USB drives, SD cards, external disks) —
get_serial_ports Get serial/COM ports with driver information —
get_cpu_vulnerabilities Get CPU vulnerability and mitigation status (Spectre, Meltdown, etc.) from sysfs —
get_cpu_frequency_scaling Get cpufreq scaling policies (governor, min/max/current frequency, driver) and boost state —
get_cpu_topology Get CPU topology (sockets, cores per socket, threads per core) and cache hierarchy —
get_kernel_cmdline Get the kernel boot command line tokenized into key=value and flag entries —
get_pcie_link_status Get PCIe link speed/width (current and max) per PCI device with class/vendor identifiers —
get_thunderbolt_devices Get connected Thunderbolt devices (name, vendor, authorized, generation) —
get_mmc_devices Get MMC/SD hosts and attached cards (name, type, size) —
get_watchdog_info Get hardware watchdog devices (identity, timeout, timeleft, state, nowayout) —
get_rtc_info Get real-time clock devices (name, date, time, hctosys, wake alarm support) —
get_iommu_status Get IOMMU status (enabled, group count, intel_iommu/amd_iommu kernel parameters) —
get_edac_memory_errors Get ECC memory error counters (corrected/uncorrected) per EDAC memory controller; empty when no ECC reporting —
get_power_supplies Get the broad power supply inventory (mains/battery/USB: type, online, status, capacity); see the battery health query for deep battery diagnostics —
get_numa_stats Get runtime NUMA allocation counters (numa_hit/miss/foreign, local/other node) and per-node memory; get_numa_topology covers static layout —
get_hwmon_sensors Get the full hwmon sensor inventory (temperatures, fans, voltages, power) in scaled units; get_temperature is a temps-only summary —
get_gpu_compute_processes Get GPU compute processes (pid, name, memory) via nvidia-smi or rocm-smi; empty when neither tool is available —
get_smbios_tables Get the inventory of SMBIOS structures (type, name, handle, size, string count) plus the SMBIOS version; no raw bytes. Linux reads /sys/firmware/dmi (full detail needs root, otherwise types only), Windows the firmware table API, Intel Macs ioreg (capped at 500) —
get_chassis_info Get the system enclosure from SMBIOS: chassis type, manufacturer, lock present, boot/power/thermal state, security status, height, serial and asset tag (Linux without root falls back to /sys/class/dmi/id with fewer fields; not available on Apple silicon) —
get_oem_strings Get the vendor-defined SMBIOS OEM strings (type 11), secret-looking values redacted (Linux needs root; capped at 500) —
get_memory_layout Get physical memory arrays, memory modules (size, type, speed, voltage, manufacturer, part and serial number, rank) and the address ranges mapped to arrays and modules, from SMBIOS types 16/17/19/20 (Linux needs root, falls back to EDAC; macOS without SMBIOS falls back to system_profiler; capped at 500 per list) —
get_acpi_tables Get ACPI table names, sizes and SHA-256 digests, never table contents. Linux lists /sys/firmware/acpi/tables (digests need root), Windows uses the firmware table API, Intel Macs ioreg; Apple silicon has no ACPI (capped at 500) —
get_cpu_features Get CPU vendor, brand, family/model/stepping, microcode and the CPU feature flags (plus kernel-reported CPU bug list on Linux) from /proc/cpuinfo, macOS sysctl machdep.cpu/hw.optional, or CPUID on Windows (capped at 500 flags) —
get_device_firmware Get firmware versions of individual components: NVMe/SATA/MMC disks, Thunderbolt controllers, InfiniBand and network adapters (ethtool -i), Intel ME and SMBIOS firmware inventory entries; macOS via system_profiler, Windows via Win32_DiskDrive (capped at 500; up to 32 network interfaces) —
get_intel_me_info Get Intel Management Engine interface details: firmware versions, device state and firmware status words from /sys/class/mei on Linux, or the MEI driver version on Windows (status not_installed when the mei driver is absent; unsupported on macOS) —
get_security_msrs Get a fixed set of security-relevant x86 model-specific registers (IA32_FEATURE_CONTROL, SPEC_CTRL, ARCH_CAPABILITIES, TSX_CTRL, MISC_ENABLE, EFER) with decoded bits, per CPU. Linux only, needs root and an already loaded msr module (never loaded by this tool); up to 64 CPUs Linux
get_power_sensors Get power, energy, current and voltage readings in W/J/A/V: Linux hwmon and power_supply, macOS AppleSmartBattery telemetry via ioreg, Windows WMI BatteryStatus (capped at 500) —
get_macos_ibridge_info Get Apple T2 (iBridge) coprocessor model and firmware from system_profiler; reports not_present on Macs without one (macOS only) macOS
get_macos_connected_displays Get connected displays (name, vendor/product ids, serial, resolution, connection type, main, mirror, online) from system_profiler (macOS only; capped at 32) macOS
get_macos_iokit_registry Get I/O Kit registry entries (name, class, id, parent, path, busy state, retain count) for one plane, down to a depth limit, optionally filtered by class; no properties are dumped (macOS only; capped at 500 entries) macOS

Arguments

Tool Argument Type Required Default Description
get_macos_iokit_registry class_contains string no — Only return entries whose class contains this text (letters, digits, underscore), e.g. USB, PCI, Display
get_macos_iokit_registry max_depth integer no 3 Depth below the root to list (default 3) (minimum 1, maximum 8)
get_macos_iokit_registry plane string no IOService Registry plane: IOService, IODeviceTree, IOUSB, IOPower (allowed: IOService, IODeviceTree, IOUSB, IOPower)

Scope: resources

Process and resource detail: IPC, namespaces, cgroups, capabilities, the process tree, zombie, blocked and orphan processes, file descriptors, threads and priorities, pipes and the physical memory map. 13 tools. Over HTTP an identity needs the grant resources, mcp:tools:resources or * to list or call them; --scopes resources registers only this scope.

Tool Description Platform
get_ipc_resources Get System V IPC resources (shared memory, semaphores, message queues) —
get_namespaces Get Linux namespace information —
get_cgroups Get cgroup limits and usage information —
get_capabilities Get process capabilities (Linux only) Linux
get_process_tree Get the process hierarchy (pid, ppid, name, depth), capped at 500 entries —
get_zombie_processes Get zombie (Z-state) processes with pid, name, ppid, and parent name —
get_blocked_processes Get processes in uninterruptible sleep (D-state) with wchan where available (Linux) Linux
get_file_descriptor_usage Get system-wide file descriptor/handle usage and top 10 processes by open descriptors —
get_thread_summary Get total system thread count and top 10 processes by thread count —
get_process_priorities Get the distribution of process nice values/priority classes and processes at realtime or negative nice priority —
get_orphan_processes Get non-root processes reparented to PID 1 (orphans), capped at 100 entries —
get_physical_memory_map Physical memory and I/O address map from /proc/iomem (Linux only) with total System RAM; the kernel hides addresses from non-root readers, reported as insufficient_privileges with names only; capped at 500 regions Linux
get_process_open_pipes Anonymous pipes and FIFOs held open by processes, grouped by pipe with the pid, process name, descriptor and read/write mode at each end, to show which processes are connected (Linux only, from /proc//fd); other users' processes need root (status partial); capped at 500 pipes and 32 ends per pipe Linux

Arguments

Tool Argument Type Required Default Description
get_capabilities pid integer yes — Process ID to get capabilities for
get_process_open_pipes cross_process_only boolean no true Skip pipes whose ends all belong to one process (default true)
get_process_open_pipes pid integer no — Only pipes this process holds (0 = all processes) (minimum 0)

Scope: state

System state: virtualisation, time zone and NTP, core dumps, power, NUMA, login sessions and history, groups and password policy, kernel parameters, fstab, locale, systemd deep-dive, macOS administration, crash and panic reports, CUPS, container detail, LXD/Incus and cloud instance metadata. 57 tools. Over HTTP an identity needs the grant state, mcp:tools:state or * to list or call them; --scopes state registers only this scope.

Tool Description Platform
get_vm_info Detect if running in a virtual machine or container —
get_timezone Get timezone and locale information —
get_ntp_status Get NTP synchronization status —
get_core_dumps Get core dump/crash dump information —
get_power_state Get power/battery state information —
get_numa_topology Get NUMA topology information —
get_container_fs_changes Get files added, changed or deleted in a Docker container's writable layer compared with its image (docker diff, up to 500 paths) —
get_container_processes Get processes running inside a Docker container as seen from the host (docker top, running containers only, up to 500 processes, command lines redacted) —
get_container_networks Get each Docker container's network attachments: network, IPv4/IPv6 address, gateway, MAC and aliases (up to 500 containers) —
get_docker_image_metadata Get Docker image provenance labels, repo digests and root filesystem layer digests (one image, or up to 200 images and 200 layers each) —
get_docker_resource_labels Get Docker networks and volumes with labels, driver options (redacted), subnets and mountpoints (up to 200 networks and 500 volumes) —
get_lxd_instances Get LXD/Incus containers and VMs with status, PID, process count, effective config (user., cloud-init. and environment.* values redacted) and devices, plus flags for isolation-weakening settings such as privileged, nesting, raw.lxc and host device passthrough. Capped at 500 instances, 200 config keys and 100 devices each. Linux only; read-only GET requests to the local LXD/Incus API socket at fixed paths; needs root or lxd/incus-admin group membership. Never connects when the daemon is not already running (so a socket-activated daemon is not started); follow-up lookups share a 30s budget. Linux
get_lxd_images Get images in the local LXD/Incus image store: fingerprint, OS, release, architecture, aliases, size, auto-update source and timestamps. Capped at 500. Linux only; read-only GET requests to the local LXD/Incus API socket at fixed paths; needs root or lxd/incus-admin group membership. Never connects when the daemon is not already running (so a socket-activated daemon is not started); follow-up lookups share a 30s budget. Linux
get_lxd_networks Get LXD/Incus networks with type, managed flag, IPv4/IPv6 subnets, users and live interface state (MTU, MAC, byte and packet counters). Capped at 500 networks, live state for the first 100. Linux only; read-only GET requests to the local LXD/Incus API socket at fixed paths; needs root or lxd/incus-admin group membership. Never connects when the daemon is not already running (so a socket-activated daemon is not started); follow-up lookups share a 30s budget. Linux
get_lxd_storage_pools Get LXD/Incus storage pools with driver, source, status and space/inode usage. Capped at 500 pools, capacity for the first 100. Linux only; read-only GET requests to the local LXD/Incus API socket at fixed paths; needs root or lxd/incus-admin group membership. Never connects when the daemon is not already running (so a socket-activated daemon is not started); follow-up lookups share a 30s budget. Linux
get_lxd_certificates Get client certificates trusted by the LXD/Incus API: name, type, fingerprint, project restriction, subject, issuer and validity window (PEM body not returned). Capped at 500. Linux only; read-only GET requests to the local LXD/Incus API socket at fixed paths; needs root or lxd/incus-admin group membership. Never connects when the daemon is not already running (so a socket-activated daemon is not started); follow-up lookups share a 30s budget. Linux
get_lxd_cluster Get LXD/Incus cluster status, per-member join configuration (secret-looking values redacted) and cluster members with URL, roles, database flag and health. Capped at 500 members. Linux only; read-only GET requests to the local LXD/Incus API socket at fixed paths; needs root or lxd/incus-admin group membership. Never connects when the daemon is not already running (so a socket-activated daemon is not started); follow-up lookups share a 30s budget. Linux
get_azure_instance_metadata Get Azure VM identity, placement, image and tags from the link-local Instance Metadata Service (fixed field list; user data and keys never returned; secret-looking tag values redacted). Queried only when SMBIOS identifies Azure; 2s timeout, no proxy, no redirects. —
get_ec2_instance_tags Get EC2 instance tags from the link-local metadata service using IMDSv2 (session token never returned; secret-looking values redacted). Needs instance metadata tags enabled; queried only when platform detection identifies AWS; 2s per request and 20s total for tag values, no proxy, no redirects; capped at 100 tags. —
get_yandex_instance_metadata Get Yandex Cloud instance ID, name, hostname, zone, folder, serial console flag and SSH key fingerprints from the link-local metadata service (user data and other attribute values never returned). Queried only when SMBIOS identifies Yandex Cloud; 2s timeout, no proxy, no redirects. —
get_macos_launchd_jobs List launchd jobs with PID, status, and Apple vs third-party counts (macOS only) macOS
get_macos_login_items List launch agents/daemons and System Events login items (macOS only) macOS
get_macos_spotlight_status Get Spotlight indexing status per volume via mdutil (macOS only) macOS
get_macos_timemachine_status Get Time Machine configuration, destinations, and auto-backup setting (macOS only) macOS
get_macos_software_update_config Get macOS software update preferences (automatic check/download, last success) (macOS only) macOS
get_macos_kernel_extensions List loaded kernel extensions with non-Apple flag via kmutil/kextstat (macOS only) macOS
get_macos_system_extensions List system extensions with category, bundle ID, version, and state (macOS only) macOS
get_macos_power_settings Get pmset power management settings per power source (macOS only) macOS
get_macos_sharing_status Get SSH, Screen Sharing, and File Sharing service status (macOS only) macOS
get_macos_network_services List network services with enabled state, order, and hardware port (macOS only) macOS
get_macos_apfs_info Get APFS containers, physical stores, and volumes with encryption status (macOS only) macOS
get_macos_dock_apps List applications pinned to the Dock (labels only) (macOS only) macOS
get_macos_running_apps Get GUI applications registered with Launch Services (name, pid, bundle identifier, type) and which one is frontmost, from lsappinfo (macOS only; capped at 500) macOS
get_cups_destinations Get CUPS print queues (state, accepting jobs, default, device URI with credentials removed, queue options) from lpstat/lpoptions (macOS and Linux; capped at 100 queues) —
get_macos_preferences Get values from a fixed allowlist of security-relevant preference domains (system, managed and the server user's own files); secrets redacted, activity keys withheld (macOS only; capped at 500 values) macOS
get_crash_reports Crash report metadata, newest first: macOS .ips/.crash files in /Library/Logs/DiagnosticReports and each user's ~/Library/Logs/DiagnosticReports (process, path, bundle id, version, exception type/signal/codes, crashed thread, parent and responsible process); Linux apport reports in /var/crash and systemd-coredump files in /var/lib/systemd/coredump (executable, package, signal, uid, pid, time). No stack traces, registers, command lines or memory (fixed directories; up to 200 reports; symlinks are never followed; files readable by root only are reported as insufficient_privileges) —
get_kernel_panic_reports Kernel panic record metadata, newest first: macOS panic reports (.panic and Kernel/panic .ips) in /Library/Logs/DiagnosticReports with panic headline, OS and kernel version, model, uptime, panicked process, last loaded/unloaded kext and kexts in the backtrace; Linux pstore records (/sys/fs/pstore, /var/lib/systemd/pstore) and kdump dmesg files under /var/crash with the panic or oops headline and kernel release. No registers or raw frames (fixed directories; up to 200 records; pstore usually needs root) —
get_login_sessions Get active login sessions (user, tty, from-host, login time, idle) —
get_login_history Get recent login history (user, tty, host, time, duration) —
get_user_groups Get local groups with member lists —
get_password_policy Get password aging and complexity policy metadata (no hashes) —
get_kernel_parameters Get a curated set of kernel tuning parameters (swappiness, file-max, somaxconn, etc.) —
get_fstab_entries Get parsed /etc/fstab entries (device, mountpoint, fstype, options, dump, pass) —
get_locale_info Get full locale environment and keyboard layout —
get_systemd_analyze_time Get boot phase durations from systemd-analyze time (Linux; systemd counterpart to the Windows-only get_boot_timing) Linux
get_systemd_blame Get the top 20 slowest-starting units from systemd-analyze blame (Linux) Linux
get_systemd_critical_chain Get the boot critical chain (unit activation times and delays) from systemd-analyze critical-chain (Linux) Linux
get_systemd_sockets Get systemd socket units with listen addresses and activated services (Linux) Linux
get_systemd_targets Get systemd target units and their states (Linux) Linux
get_systemd_environment Get the systemd manager environment block with credential-like values redacted (Linux) Linux
get_systemd_unit_files Get systemd unit files with counts by state (enabled/disabled/static/masked/...) and the full list capped at 300 (Linux) Linux
get_systemd_slices Get systemd slice units (cgroup resource hierarchy) and their states (Linux) Linux
get_logind_sessions Get logind sessions with user, seat, TTY, remote host, state, and idle hint (Linux) Linux
get_systemd_boot_entries Get systemd-boot loader entries from bootctl list; empty when systemd-boot is not the boot loader (Linux) Linux
get_coredump_summary Get core dumps aggregated by executable and signal with counts and most-recent time (Linux; complements get_core_dumps, which lists raw dump files) Linux
get_dbus_services Get D-Bus bus names (name, PID, unit; capped at 200) plus the count of activatable services (Linux) Linux
get_systemd_resolved_links Get per-link DNS configuration from systemd-resolved (servers, domains, DNSSEC per link; deeper than get_dns_servers) (Linux) Linux

Arguments

Tool Argument Type Required Default Description
get_container_fs_changes container_id string yes — Container ID, unique ID prefix or name; it is matched against the daemon's own container list before use
get_container_processes container_id string yes — Container ID, unique ID prefix or name; it is matched against the daemon's own container list before use
get_docker_image_metadata image_id string no — Optional image ID or reference (repo:tag or repo@digest); omit for all local images
get_macos_preferences domain string no — Optional single domain to read; must be one of the allowlisted domains (allowed: com.apple.AppleFileServer, com.apple.Bluetooth, com.apple.CrashReporter, com.apple.MCX, com.apple.RemoteManagement, com.apple.SoftwareUpdate, com.apple.SubmitDiagInfo, com.apple.TimeMachine, com.apple.alf, com.apple.applicationaccess, com.apple.commerce, com.apple.driver.AppleIRController, com.apple.loginwindow, com.apple.mDNSResponder, com.apple.screensaver, com.apple.security, com.apple.smb.server)
get_crash_reports limit integer no 50 Maximum reports to return, newest first (default 50, max 200) (minimum 1, maximum 200)
get_kernel_panic_reports limit integer no 50 Maximum reports to return, newest first (default 50, max 200) (minimum 1, maximum 200)

Scope: software

Software inventory: system and language package managers, lock files, SBOM output, vulnerability lookups, containers, developer tools, language runtimes, web servers and database servers, browser and editor extensions, macOS package receipts, Portage and RPM file lists. 124 tools. Over HTTP an identity needs the grant software, mcp:tools:software or * to list or call them; --scopes software registers only this scope.

Tool Description Platform
get_path_executables Get executables found in PATH directories —
get_system_packages Get installed system packages (dpkg, rpm, apk, pacman, brew, chocolatey) —
get_python_packages Get installed Python packages from site-packages —
get_node_packages Get globally installed Node.js packages —
get_go_modules Get Go modules from the module cache —
get_rust_packages Get Rust crates from Cargo registry cache —
get_ruby_gems Get installed Ruby gems —
get_maven_packages Get Java/Maven packages from ~/.m2/repository —
get_php_packages Get PHP packages from Composer —
get_dotnet_packages Get .NET/NuGet packages from the global package cache —
get_macos_applications Get installed macOS applications from /Applications (macOS only) macOS
get_windows_hotfixes Get Windows hotfixes/updates (Windows only) Windows
get_sbom_cyclonedx Generate CycloneDX 1.4 SBOM from installed packages —
get_sbom_spdx Generate SPDX 2.3 SBOM from installed packages —
get_vulnerabilities_osv Query OSV API for vulnerabilities in installed packages —
get_vulnerabilities_debian Query Debian Security Tracker for vulnerabilities in system packages (Debian/Ubuntu only) Linux (Debian/Ubuntu)
get_vulnerabilities_nvd Query NVD (National Vulnerability Database) for vulnerabilities in installed packages —
get_docker_images Get Docker/Podman container images —
get_docker_containers Get Docker/Podman containers (running and stopped) —
get_docker_image_history Get layer history for a Docker/Podman image —
get_snap_packages Get installed Snap packages (Linux only) Linux
get_flatpak_packages Get installed Flatpak packages (Linux only) Linux
get_homebrew_casks Get installed Homebrew Casks (macOS only) macOS
get_scoop_packages Get installed Scoop packages (Windows only) Windows
get_windows_programs Get installed Windows programs from registry (Windows only) Windows
get_windows_features Get Windows optional features (Windows only) Windows
get_npm_lock Parse package-lock.json for precise npm dependency versions —
get_pip_lock Parse requirements.txt or Pipfile.lock for Python dependency versions —
get_cargo_lock Parse Cargo.lock for Rust dependency versions —
get_go_sum Parse go.sum for Go module versions and checksums —
get_gemfile_lock Parse Gemfile.lock for Ruby gem versions —
get_applications Discover installed and running applications (web servers, databases, message queues, etc.) —
get_app_config Read application config file with sensitive data redacted (passwords, API keys, tokens, etc.) —
get_perl_packages Get installed Perl modules from CPAN/cpanm —
get_lua_packages Get installed LuaRocks packages —
get_haskell_packages Get installed Haskell packages from Cabal/Stack —
get_swift_packages Get Swift Package Manager packages (macOS/Linux only) Linux, macOS
get_elixir_packages Get installed Hex packages for Elixir —
get_r_packages Get installed R packages from CRAN —
get_julia_packages Get installed Julia packages —
get_dart_packages Get Dart/Flutter pub cache packages —
get_ocaml_packages Get installed OPAM packages (macOS/Linux only) Linux, macOS
get_conda_packages Get Conda environments and packages —
get_gradle_packages Get Java/Gradle dependency cache packages —
get_yarn_lock Parse yarn.lock for Yarn dependency versions (supports v1 and v2+ formats) —
get_pnpm_lock Parse pnpm-lock.yaml for pnpm dependency versions —
get_poetry_lock Parse poetry.lock for Python Poetry dependency versions —
get_composer_lock Parse composer.lock for PHP Composer dependency versions with integrity hashes —
get_mix_lock Parse mix.lock for Elixir Hex dependency versions —
get_pubspec_lock Parse pubspec.lock for Dart/Flutter dependency versions —
get_swift_resolved Parse Package.resolved for Swift Package Manager dependencies (macOS/Linux only) Linux, macOS
get_podfile_lock Parse Podfile.lock for CocoaPods dependencies (macOS only) macOS
get_gradle_lock Parse gradle.lockfile for Gradle dependency versions —
get_conda_lock Parse conda-lock.yml for Conda dependency versions —
get_monitoring_agents Detect installed monitoring/metrics agents (Datadog, New Relic, node_exporter, telegraf, collectd, Zabbix, netdata, Grafana agent, NRPE) —
get_log_shippers Detect installed log shippers (fluentd, fluent-bit, filebeat, logstash, vector, promtail, splunkd, syslog-ng, rsyslog with remote target hints) —
get_backup_tools Detect installed backup tools (restic, borg, duplicity, rclone, Veeam agent, rsnapshot, kopia) with cron/systemd-timer schedule references —
get_config_management_agents Detect configuration management agents (Puppet, Chef, Salt minion, Ansible, CFEngine) with last-run artifact directory timestamps —
get_remote_access_tools Detect remote access tools (TeamViewer, AnyDesk, RustDesk, VNC servers, Chrome Remote Desktop, sshd, RDP/xrdp) —
get_orchestration_services Detect orchestration/service-discovery daemons (Consul, Nomad, etcd, Vault server, ZooKeeper, k3s, k0s) —
get_message_brokers Detect installed message brokers (Kafka, RabbitMQ, NATS, Mosquitto, ActiveMQ, EMQX) —
get_cache_proxy_services Detect cache/proxy services (Squid, Varnish, Traefik, Envoy, memcached) - presence and running state only —
get_virtualization_hosts Detect virtualization host software (libvirt, QEMU process count, VirtualBox VM count, VMware, Hyper-V, Multipass, Lima) —
get_secrets_daemons Detect secret-store daemons and CLIs (GNOME Keyring, KWallet, Vault agent, 1Password, Bitwarden, pass, gopass) - presence only, never contents —
get_print_scan_services Detect print/scan services (CUPS with printer count, saned, Windows Print Spooler) —
get_ai_ml_services Detect local AI/ML serving software (Ollama with model names, llama.cpp server, NVIDIA container toolkit, ML serving processes, LM Studio, Jan) —
get_chromium_extensions Get extensions in Chrome, Edge, Brave, Chromium, Vivaldi, Opera and Arc profiles for each user: id, name, version, API and host permissions, content-script injection targets, enabled state, install location and origin. Reads only manifests and the extension section of profile preferences from fixed per-user paths, never browsing data (max 64 users, 500 extensions) —
get_firefox_addons Get Firefox, LibreWolf and Waterfox add-ons for each user profile: id, name, version, type, enabled/disabled flags, signature status, permissions and host permissions, install location. Reads each profile's extensions.json from fixed per-user paths only (max 64 users, 500 add-ons) —
get_safari_extensions Get Safari web extensions, app extensions and content blockers from the plug-in registry (as seen by the account running Secronyx) plus legacy .safariextz files per user. Safari's own on/off toggle needs Full Disk Access and is not reported (macOS only, max 500) macOS
get_vscode_extensions Get VS Code, VS Code Insiders, VSCodium, Cursor, Windsurf, Positron and remote-server extensions for each user: id, publisher, version, engine, activation events, dependencies, install source and time. Reads package.json and extensions.json from fixed per-user extension dirs; enabled state is not readable (max 64 users, 500 extensions) —
get_database_servers_summary Detect installed and running database servers (PostgreSQL, MySQL/MariaDB, MongoDB, Redis, Elasticsearch/OpenSearch, Memcached, SQL Server, Cassandra, CouchDB, InfluxDB) with versions and default ports —
get_postgres_info Get PostgreSQL server version, running state, data directory, config path, and listening port —
get_postgres_settings Parse key PostgreSQL settings from postgresql.conf (max_connections, shared_buffers, work_mem, wal_level, listen_addresses, port, ssl); credentials are never exposed —
get_mysql_info Get MySQL/MariaDB server version, running state, and config file paths —
get_mysql_settings Parse key MySQL/MariaDB settings from my.cnf (bind-address, port, max_connections, innodb_buffer_pool_size, datadir); credential lines are skipped —
get_redis_info Get Redis server version, running state, config path, and safe config settings (bind, port, maxmemory, appendonly, save); auth directives are skipped —
get_mongodb_info Get MongoDB server version, running state, config path, dbPath, port, bindIp, and whether authorization is enabled —
get_elasticsearch_info Detect Elasticsearch/OpenSearch process, version, config dir, cluster name, node name, node roles, and HTTP port —
get_memcached_info Get Memcached version, running state, port, and memory limit from process arguments —
get_sqlserver_info Get Microsoft SQL Server instances and service state (registry on Windows, process/package detection on Linux) —
get_influxdb_info Get InfluxDB version, running state, and config path —
get_database_data_dirs Report disk usage of readable database data directories for detected database servers —
get_build_tools Detect build toolchain components (gcc, clang, make, cmake, ninja, meson, autoconf, pkg-config, gdb, lldb, msbuild) with versions —
get_version_control_tools Detect version control tools (git, hg, svn) with versions and a non-sensitive git global config summary —
get_editors_installed Detect installed code editors (vim, nvim, emacs, nano, code, codium, subl, zed) with versions —
get_shell_environment List available shells, the current user's default shell, and shell versions —
get_terminal_multiplexers Detect terminal multiplexers (tmux, screen, zellij) with versions and active session counts —
get_ssh_agent_status Report SSH agent status: socket configured, agent reachable, loaded key count and fingerprints (never key material) —
get_gpg_info Report GPG version and public keyring size (key count only, no key export) —
get_version_managers Detect language version managers (pyenv, nvm, rbenv, asdf, sdkman, rustup, volta) and installed versions —
get_ci_runners Detect CI runners/agents (GitHub Actions runner, GitLab runner, Jenkins agent, Buildkite agent): presence and running state —
get_cron_daemon_info Identify the cron implementation (cronie/vixie), version, anacrontab presence and systemd cron.target; notes launchd/Task Scheduler on macOS/Windows —
get_package_manager_versions Detect OS package managers (apt, dpkg, dnf, yum, pacman, zypper, apk, brew, port, nix, choco, winget, scoop) with versions —
get_container_dev_tools Detect container and infrastructure dev tools (docker-compose, kubectl, helm, kind, minikube, terraform, vagrant, packer) via client-only version commands —
get_language_servers Detect language servers (gopls, pyright, rust-analyzer, clangd, typescript-language-server, lua-language-server) with versions —
get_macos_package_receipts Get installer package receipts from the fixed receipt directories /var/db/receipts, /Library/Receipts and /System/Library/Receipts (identifier, version, install location, install time, installer) (macOS only; capped at 500) macOS
get_macos_package_files Get the files installed by one package (path, mode, uid, gid, size, modified time) from its bill of materials; the package must have a receipt in a fixed receipt directory (macOS only; capped at 500 files) macOS
get_portage_packages Get Gentoo Portage installed packages from /var/db/pkg with version, slot, repository, EAPI, build time, size, world-file membership and enabled/disabled USE flags (Linux only, up to 500 by default, max 2000) Linux
get_portage_config Get Gentoo Portage per-package keyword acceptance, mask and unmask rules from fixed files under /etc/portage (package.accept_keywords, package.keywords, package.mask, package.unmask), merged per atom (Linux only, up to 500 rules, 64 files) Linux
get_rpm_package_files Get the files owned by one installed RPM package with owner, group, mode, size, digest (SHA-256 where recorded) and config/doc/ghost flags; the name must exactly match an installed package (Linux with rpm only, up to 500 files by default, max 2000) —
get_java_environment Get detailed Java environment: java/javac versions, JAVA_HOME, installed JDKs (deeper than get_language_runtime_versions) —
get_jvm_processes Get running JVM processes with PID, main class or jar, and -Xmx/-Xms heap settings (max 50) —
get_python_environment Get detailed Python environment: python/pip versions, PYTHONPATH, active virtualenv, conda base env, pyenv global (deeper than get_language_runtime_versions) —
get_node_environment Get detailed Node.js environment: node/npm/npx/yarn/pnpm/bun/deno versions, NODE_ENV, NODE_OPTIONS, nvm installed versions (deeper than get_language_runtime_versions) —
get_go_environment Get detailed Go environment: go version plus GOPATH, GOROOT, GOOS, GOARCH, GOPROXY (credentials stripped), GOPRIVATE, GOFLAGS, CGO_ENABLED (deeper than get_language_runtime_versions) —
get_ruby_environment Get detailed Ruby environment: ruby/gem/bundler versions, rbenv versions, rvm presence (deeper than get_language_runtime_versions) —
get_rust_environment Get detailed Rust environment: rustc/cargo versions, rustup toolchains and default toolchain (deeper than get_language_runtime_versions) —
get_php_environment Get detailed PHP environment: version, loaded php.ini path, and loaded extensions (max 100; deeper than get_language_runtime_versions) —
get_dotnet_environment Get detailed .NET environment: dotnet version, installed SDKs, and installed runtimes (deeper than get_language_runtime_versions) —
get_erlang_elixir_environment Get Erlang/Elixir environment: erl emulator version, elixir/mix versions, and running BEAM VM process count —
get_misc_runtimes Get versions of miscellaneous language runtimes present on PATH: julia, R (Rscript), perl, lua, ghc, swift —
get_web_servers_summary Detect installed and running web servers (nginx, apache, caddy, haproxy, lighttpd, traefik, tomcat, IIS) —
get_nginx_info Get nginx version, running state, main config path and worker process count —
get_nginx_sites Parse nginx server blocks: listen, server_name, root, location count and proxy_pass targets —
get_nginx_ssl_config Get nginx TLS settings: certificate/key file paths (never contents), protocols and ciphers —
get_nginx_upstreams Get nginx upstream blocks with their server entries —
get_apache_info Get Apache httpd version, MPM and running state —
get_apache_vhosts Get Apache virtual hosts (port, name, config file) from apachectl -S —
get_apache_modules Get Apache loaded modules (static and shared) from apachectl -M —
get_haproxy_info Get HAProxy version, config path and frontend/backend/listen section names —
get_caddy_info Get Caddy version and Caddyfile presence in standard paths —
get_tomcat_info Detect Apache Tomcat via running java/catalina process, CATALINA_HOME and common install dirs —
get_php_fpm_info Get PHP-FPM version and per-pool config (name, listen, pm, pm.max_children) —
get_lighttpd_info Get lighttpd version and config path presence —

Arguments

Tool Argument Type Required Default Description
get_docker_image_history image_id string yes — Image ID or name
get_npm_lock path string no — Path to package-lock.json (defaults to current directory)
get_pip_lock path string no — Path to requirements.txt or Pipfile.lock (defaults to current directory)
get_cargo_lock path string no — Path to Cargo.lock (defaults to current directory)
get_go_sum path string no — Path to go.sum (defaults to current directory)
get_gemfile_lock path string no — Path to Gemfile.lock (defaults to current directory)
get_app_config path string yes — Path to the configuration file
get_yarn_lock path string no — Path to yarn.lock (defaults to current directory)
get_pnpm_lock path string no — Path to pnpm-lock.yaml (defaults to current directory)
get_poetry_lock path string no — Path to poetry.lock (defaults to current directory)
get_composer_lock path string no — Path to composer.lock (defaults to current directory)
get_mix_lock path string no — Path to mix.lock (defaults to current directory)
get_pubspec_lock path string no — Path to pubspec.lock (defaults to current directory)
get_swift_resolved path string no — Path to Package.resolved (defaults to current directory)
get_podfile_lock path string no — Path to Podfile.lock (defaults to current directory)
get_gradle_lock path string no — Path to gradle.lockfile (defaults to current directory)
get_conda_lock path string no — Path to conda-lock.yml (defaults to current directory)
get_macos_package_files package_id string yes — Receipt identifier as listed by get_macos_package_receipts, e.g. com.apple.pkg.CLTools_Executables
get_portage_packages limit integer no 500 Maximum entries to return (default 500, max 2000) (minimum 1, maximum 2000)
get_rpm_package_files limit integer no 500 Maximum entries to return (default 500, max 2000) (minimum 1, maximum 2000)
get_rpm_package_files package string yes — Installed RPM package name, e.g. openssl-libs (no version, no wildcards)

Scope: triage

Triage and summary queries: OS profile, service manager, cloud environment, recent reboots, failures and critical events, security basics and combined incident and posture snapshots. 25 tools. Over HTTP an identity needs the grant triage, mcp:tools:triage or * to list or call them; --scopes triage registers only this scope.

Tool Description Platform
get_os_info Get OS version, build, kernel, and platform information —
get_system_profile Get a summary of CPU, memory, disk, and network status —
get_service_manager_info Get service manager status (systemd, launchd, or Windows SCM) —
get_cloud_environment Detect cloud provider and instance metadata (AWS, GCP, Azure) —
get_language_runtime_versions Get installed language runtime versions (Python, Node.js, Go, Ruby, Java, PHP, Rust, .NET) —
get_recent_reboots Get recent system reboot events with timestamps and reasons. Note: May be slow on macOS (uses log show) slow on macOS
get_recent_service_failures Get recent service/daemon failures with error details. Note: May be slow on macOS (uses log show) slow on macOS
get_recent_kernel_events Get recent kernel events (errors, warnings, panics). WARNING: High latency on macOS (1+ minutes, uses log show) slow on macOS
get_recent_resource_incidents Get recent resource incidents (OOM, disk full, high CPU). Note: May be slow on macOS (uses log show) slow on macOS
get_recent_config_changes Get recent configuration file changes. Note: May be slow on macOS (uses log show) slow on macOS
get_recent_critical_events Get recent critical/emergency events across all logs. WARNING: High latency on macOS (1+ minutes, uses log show) slow on macOS
get_failed_units Get currently failed systemd units or equivalent services —
get_timer_jobs Get systemd timers, cron jobs, and scheduled tasks —
get_service_log_view Get recent logs for a specific service. Note: May be slow on macOS (uses log show) slow on macOS
get_deployment_events Get recent deployment/update events (packages, containers) —
get_auth_failure_summary Get authentication failure summary with top IPs and users. Note: May be slow on macOS (uses log show) slow on macOS
get_security_basics Get basic security status (firewall, SELinux/AppArmor, updates) —
get_ssh_security_summary Get SSH security configuration summary —
get_admin_account_summary Get administrative/privileged account summary —
get_exposed_services_summary Get summary of exposed network services —
get_resource_limits Get system resource limits (ulimits, kernel params) —
get_recently_installed_software Get recently installed packages and software —
get_fs_health_summary Get filesystem health summary (usage, issues, read-only mounts) —
get_incident_triage_snapshot Get comprehensive incident triage snapshot (system info, recent events, failures). WARNING: High latency on macOS (may take 1-5 minutes due to log queries) slow on macOS
get_security_posture_snapshot Get security posture snapshot with risk score and recommendations. WARNING: High latency on macOS (may take 1-5 minutes due to log queries) slow on macOS

Arguments

Tool Argument Type Required Default Description
get_recent_reboots limit integer no 10 Maximum number of events to return
get_recent_service_failures limit integer no 20 Maximum number of failures to return
get_recent_kernel_events limit integer no 50 Maximum number of events to return
get_recent_resource_incidents limit integer no 20 Maximum number of incidents to return
get_recent_config_changes limit integer no 50 Maximum number of changes to return
get_recent_critical_events limit integer no 30 Maximum number of events to return
get_service_log_view lines integer no 100 Number of log lines to return
get_service_log_view service string yes — Service name to get logs for
get_deployment_events limit integer no 20 Maximum number of events to return
get_auth_failure_summary hours integer no 24 Hours to look back for failures
get_recently_installed_software days integer no 7 Number of days to look back

Scope: windows

Windows enterprise features: registry, DCOM, IIS (sites, pools, modules, ASP.NET, FTP, ARR and request filtering), Active Directory, VSS, WMI, W32Time, reliability, system identity and boot. 127 tools. Over HTTP an identity needs the grant windows, mcp:tools:windows or * to list or call them; --scopes windows registers only this scope.

Tool Description Platform
get_registry_key Read a Windows registry key and its values (Windows only) Windows
get_registry_tree Recursively enumerate a Windows registry key and its subkeys (Windows only) Windows
get_registry_security Get security descriptor (owner, group, DACL) for a Windows registry key (Windows only) Windows
get_dcom_applications List all registered DCOM applications (Windows only) Windows
get_dcom_permissions Get launch and access permissions for a DCOM application (Windows only) Windows
get_dcom_identities List RunAs identities for all DCOM applications (Windows only) Windows
get_com_security_defaults Get machine-wide COM/DCOM security settings (Windows only) Windows
get_iis_sites List all IIS websites with bindings and configuration (Windows only) Windows
get_iis_app_pools List all IIS application pools with configuration (Windows only) Windows
get_iis_bindings List all site bindings across all IIS sites (Windows only) Windows
get_iis_virtual_dirs List all virtual directories across all IIS sites (Windows only) Windows
get_iis_handlers List all handler mappings configured in IIS (Windows only) Windows
get_iis_modules List all modules (native and managed) installed in IIS (Windows only) Windows
get_iis_ssl_certs List all SSL certificate bindings in IIS (Windows only) Windows
get_iis_auth_config Get authentication configuration for all IIS sites (Windows only) Windows
get_iis_http_sys_listeners Get HTTP.sys listener endpoints and SSL certificate bindings at the kernel level (Windows only) Windows
get_iis_request_filtering Get IIS request filtering configuration including file extensions, verbs, hidden segments, and URL sequences (Windows only) Windows
get_iis_ip_security Get IIS IP security rules (allow/deny lists) at server and site levels (Windows only) Windows
get_iis_url_authorization Get IIS URL authorization rules including allowed/denied users, roles, and verbs (Windows only) Windows
get_iis_isapi_filters Get configured ISAPI filters with their paths, enabled status, and load order (Windows only) Windows
get_iis_isapi_cgi_restrictions Get ISAPI and CGI restriction settings including allowed executables (Windows only) Windows
get_iis_custom_headers Get custom HTTP response headers configured at server and site levels (Windows only) Windows
get_iis_cors_config Get CORS (Cross-Origin Resource Sharing) configuration and rules (Windows only) Windows
get_iis_url_rewrite Get URL rewrite rules including patterns, conditions, and actions (requires URL Rewrite module) (Windows only) Windows
get_iis_redirect_rules Get HTTP redirect configuration including destination URLs and status codes (Windows only) Windows
get_iis_default_document Get default document list and settings for IIS sites (Windows only) Windows
get_iis_directory_browse Get directory browsing settings for IIS sites (Windows only) Windows
get_iis_static_content Get static content configuration including MIME types and document footer settings (Windows only) Windows
get_iis_compression Get HTTP compression settings including static and dynamic compression configuration (Windows only) Windows
get_iis_output_caching Get output caching configuration including cache profiles and kernel cache settings (Windows only) Windows
get_iis_apppool_recycling Get application pool recycling settings including memory limits, request counts, and schedules (Windows only) Windows
get_iis_apppool_process_model Get application pool process model settings including identity, timeouts, and ping behavior (Windows only) Windows
get_iis_apppool_cpu Get application pool CPU throttling and processor affinity settings (Windows only) Windows
get_iis_apppool_failure Get application pool rapid-fail protection and orphan worker process settings (Windows only) Windows
get_iis_failed_request_rules Get failed request tracing rule definitions including status codes and time thresholds (Windows only) Windows
get_iis_failed_requests Get recent failed request trace summaries from FREB logs (Windows only) Windows
get_iis_error_pages Get custom error page mappings including status codes, paths, and response modes (Windows only) Windows
get_iis_logging Get W3C and IIS logging configuration including log format, directory, and rollover settings (Windows only) Windows
get_iis_log_fields Get custom log field definitions (Windows only) Windows
get_iis_mime_types Get MIME type mappings configured in IIS (Windows only) Windows
get_iis_aspnet_compilation Get ASP.NET compilation settings including debug mode, target framework, and batch compilation (Windows only) Windows
get_iis_aspnet_session Get ASP.NET session state configuration (connection strings are redacted) (Windows only) Windows
get_iis_aspnet_machinekey Get ASP.NET machine key configuration (keys are redacted for security) (Windows only) Windows
get_iis_aspnet_custom_errors Get ASP.NET custom errors configuration including error mode and redirects (Windows only) Windows
get_iis_aspnet_globalization Get ASP.NET globalization settings including culture, encoding, and UI culture (Windows only) Windows
get_iis_websocket Get WebSocket protocol settings (Windows only) Windows
get_iis_http2 Get HTTP/2 protocol settings including server push and stream limits (Windows only) Windows
get_iis_request_limits Get request size and timeout limits including max content length, URL, and query string limits (Windows only) Windows
get_iis_fastcgi Get FastCGI application configuration including process pools and timeouts (Windows only) Windows
get_iis_worker_processes Get running IIS worker processes (w3wp.exe) with resource usage and request counts (Windows only) Windows
get_iis_site_state Get current site states (Started/Stopped) and performance counters (Windows only) Windows
get_ad_domain_info Get Active Directory domain membership and configuration (Windows only) Windows
get_ad_dc_health Get domain controller connectivity and health (Windows only) Windows
get_ad_trusts Get domain trust relationships (Windows only) Windows
get_ad_site_info Get AD site and subnet configuration (Windows only) Windows
get_ad_replication_status Get AD replication status and lag (Windows only) Windows
get_vss_providers Get VSS provider inventory (Windows only) Windows
get_vss_writers Get VSS writer status and health (Windows only) Windows
get_shadow_copies Get available shadow copies per volume (Windows only) Windows
get_vss_errors Get recent VSS errors from event log (Windows only) Windows
get_wmi_providers Get WMI provider inventory (Windows only) Windows
get_wmi_repository_health Get WMI repository consistency status (Windows only) Windows
get_wmi_errors Get recent WMI errors from event log (Windows only) Windows
get_w32time_config Get W32Time service configuration (Windows only) Windows
get_w32time_peers Get NTP peer list and status (Windows only) Windows
get_w32time_sync_status Get time sync status and last sync (Windows only) Windows
get_reliability_history Get Reliability Monitor history and index (Windows only) Windows
get_recent_crashes Get recent application and system crashes (Windows only) Windows
get_wer_reports Get Windows Error Reporting submissions (Windows only) Windows
get_iis_config_effective_diff Get effective IIS config diff between defaults and overrides (Windows only) Windows
get_iis_application_init Get IIS application initialization settings (Windows only) Windows
get_iis_config_diff Get IIS config differences vs server defaults (Windows only) Windows
get_iis_locked_sections Get IIS locked configuration sections (Windows only) Windows
get_iis_delegation_rules Get IIS feature delegation rules (Windows only) Windows
get_iis_ftp_sites Get IIS FTP sites list (Windows only) Windows
get_iis_ftp_ssl Get IIS FTP over SSL/TLS configuration (Windows only) Windows
get_iis_ftp_user_isolation Get IIS FTP user isolation mode (Windows only) Windows
get_iis_ftp_authorization Get IIS FTP authorization rules (Windows only) Windows
get_iis_ftp_ip_security Get IIS FTP IP restrictions (Windows only) Windows
get_iis_ftp_logging Get IIS FTP logging configuration (Windows only) Windows
get_iis_ftp_firewall Get IIS FTP firewall and passive port settings (Windows only) Windows
get_iis_asp_settings Get Classic ASP configuration (Windows only) Windows
get_iis_asp_session Get ASP session state configuration (Windows only) Windows
get_iis_asp_limits Get ASP resource limits (Windows only) Windows
get_iis_asp_com_plus Get ASP COM+ settings (Windows only) Windows
get_iis_asp_cache Get ASP script cache settings (Windows only) Windows
get_iis_server_farms Get IIS web farm definitions (Windows only) Windows
get_iis_arr_cache Get ARR disk cache configuration (Windows only) Windows
get_iis_arr_health Get ARR health check configuration (Windows only) Windows
get_iis_arr_affinity Get ARR session affinity settings (Windows only) Windows
get_iis_arr_routing Get ARR reverse proxy and routing rules (Windows only) Windows
get_iis_arr_settings Get ARR global proxy settings (Windows only) Windows
get_iis_client_cert_mapping Get IIS client certificate mapping configuration (Windows only) Windows
get_iis_aspnet_impersonation Get ASP.NET impersonation configuration (Windows only) Windows
get_iis_forms_auth Get Forms authentication configuration (Windows only) Windows
get_iis_hidden_segments Get IIS hidden URL segments (Windows only) Windows
get_iis_webdav Get WebDAV authoring configuration (Windows only) Windows
get_iis_double_escaping Get IIS double-escaping filter setting (Windows only) Windows
get_iis_high_bit_chars Get IIS high-bit character filter setting (Windows only) Windows
get_iis_query_strings Get IIS query string filtering rules (Windows only) Windows
get_iis_file_extensions Get IIS file extension filtering rules (Windows only) Windows
get_iis_kernel_cache Get HTTP.sys kernel cache settings (Windows only) Windows
get_win_system_identity Get complete system identification (BIOS, serial, product info) (Windows only) Windows
get_win_cpu_features Get CPU feature flags and capabilities (Windows only) Windows
get_win_memory_modules Get physical memory module details (DIMM slots) (Windows only) Windows
get_win_tpm_info Get TPM version, status, and attestation info (Windows only) Windows
get_win_device_tree Get Device Manager PnP device hierarchy (Windows only) Windows
get_win_firmware_type Get UEFI/Legacy BIOS detection (Windows only) Windows
get_win_bcd_entries Get Boot Configuration Data entries (Windows only) Windows
get_win_secure_boot Get Secure Boot status and certificates (Windows only) Windows
get_win_recovery_env Get Windows Recovery Environment status (Windows only) Windows
get_win_boot_performance Get detailed boot timing with ETW data (Windows only) Windows
get_windows_mapped_drives Get mapped network drives with local letter, remote path, and status (Windows only) Windows
get_windows_user_profiles Get local user profiles with SID, path, last use time, and loaded state (Windows only) Windows
get_windows_network_adapters Get network adapters with status, link speed, MAC address, and driver version (Windows only) Windows
get_windows_event_log_list Get event log inventory count and configuration of key logs (Windows only) Windows
get_windows_time_service Get Windows Time service status: source, stratum, last sync, poll interval, and peers (Windows only) Windows
get_windows_startup_folders List shortcut and executable names in common startup folders (Windows only) Windows
get_windows_dotnet_versions Get installed .NET Framework versions from registry and .NET runtimes from dotnet CLI (Windows only) Windows
get_windows_powershell_info Get PowerShell version, edition, pwsh presence, and execution policies per scope (Windows only) Windows
get_windows_browsers Get installed browsers and the default browser ProgId (Windows only) Windows
get_windows_print_jobs Get queued print jobs with printer, job id, status, size, and owner; document names excluded (Windows only) Windows
get_windows_smb_sessions Get SMB session and open file counts with client computer names (Windows only, requires admin) Windows
get_windows_power_requests Get active power requests blocking sleep from powercfg (Windows only, requires admin) Windows
get_windows_pending_reboot Get pending reboot indicators from CBS, Windows Update, and pending file renames (Windows only) Windows
get_windows_services_inventory Get the full Windows service inventory with binary path, ServiceDll, start type, account, exit codes and a Microsoft/non-Microsoft flag from the binary's self-reported version resource, null when unreadable (Windows only; capped at 1000; command lines redacted) Windows
get_windows_named_objects Get names and types of named kernel objects (mutexes, events, sections, semaphores) in the global and per-session BaseNamedObjects directories (Windows only; names only, capped at 2000) Windows

Arguments

Tool Argument Type Required Default Description
get_registry_key hive string no HKLM Registry hive (HKLM, HKCU, HKCR, HKU, HKCC)
get_registry_key path string yes — Registry key path (e.g., SOFTWARE\Microsoft\Windows\CurrentVersion)
get_registry_tree hive string no HKLM Registry hive (HKLM, HKCU, HKCR, HKU, HKCC)
get_registry_tree max_depth integer no 3 Maximum depth to recurse (default 3)
get_registry_tree path string yes — Registry key path
get_registry_security hive string no HKLM Registry hive (HKLM, HKCU, HKCR, HKU, HKCC)
get_registry_security path string yes — Registry key path
get_dcom_permissions appid string yes — DCOM AppID GUID (e.g., {00000000-0000-0000-0000-000000000000})
get_iis_request_filtering site_name string no — Optional site name to filter results
get_iis_ip_security site_name string no — Optional site name to filter results
get_iis_url_authorization site_name string no — Optional site name to filter results
get_iis_custom_headers site_name string no — Optional site name to filter results
get_iis_url_rewrite site_name string no — Optional site name to filter results
get_iis_redirect_rules site_name string no — Optional site name to filter results
get_iis_default_document site_name string no — Optional site name to filter results
get_iis_directory_browse site_name string no — Optional site name to filter results
get_iis_apppool_recycling app_pool_name string no — Optional app pool name to filter results
get_iis_apppool_process_model app_pool_name string no — Optional app pool name to filter results
get_iis_apppool_cpu app_pool_name string no — Optional app pool name to filter results
get_iis_apppool_failure app_pool_name string no — Optional app pool name to filter results
get_iis_failed_request_rules site_name string no — Optional site name to filter results
get_iis_failed_requests limit integer no — Maximum number of failed requests to return (default 100)
get_iis_failed_requests site_name string no — Optional site name to filter results
get_iis_logging site_name string no — Optional site name to filter results
get_iis_aspnet_compilation site_name string no — Optional site name to filter results
get_iis_aspnet_session site_name string no — Optional site name to filter results
get_iis_aspnet_machinekey site_name string no — Optional site name to filter results
get_iis_aspnet_custom_errors site_name string no — Optional site name to filter results
get_iis_aspnet_globalization site_name string no — Optional site name to filter results
get_iis_request_limits site_name string no — Optional site name to filter results
get_iis_worker_processes app_pool_name string no — Optional app pool name to filter results
get_iis_site_state site_name string no — Optional site name to filter results
get_iis_config_effective_diff site_name string no — Site name (empty for server-level)
get_iis_config_diff site_name string no — Site name (empty for server-level)
get_iis_ftp_ssl site_name string no — FTP site name (empty for defaults)
get_iis_ftp_user_isolation site_name string no — FTP site name (empty for defaults)
get_iis_ftp_authorization site_name string no — FTP site name (empty for server-level)
get_iis_ftp_ip_security site_name string no — FTP site name (empty for server-level)
get_iis_ftp_logging site_name string no — FTP site name (empty for defaults)
get_iis_ftp_firewall site_name string no — FTP site name (empty for defaults)
get_iis_asp_settings site_name string no — Site name (empty for server-level)
get_iis_asp_session site_name string no — Site name (empty for server-level)
get_iis_asp_limits site_name string no — Site name (empty for server-level)
get_iis_asp_com_plus site_name string no — Site name (empty for server-level)
get_iis_asp_cache site_name string no — Site name (empty for server-level)
get_iis_client_cert_mapping site_name string no — Site name (empty for server-level)
get_iis_aspnet_impersonation site_name string no — Site name (empty for server-level)
get_iis_forms_auth site_name string no — Site name (empty for server-level)
get_iis_hidden_segments site_name string no — Site name (empty for server-level)
get_iis_webdav site_name string no — Site name (empty for server-level)
get_iis_double_escaping site_name string no — Site name (empty for server-level)
get_iis_high_bit_chars site_name string no — Site name (empty for server-level)
get_iis_query_strings site_name string no — Site name (empty for server-level)
get_iis_file_extensions site_name string no — Site name (empty for server-level)
get_iis_kernel_cache site_name string no — Site name (empty for server-level)

Scope: enhanced

Enhanced diagnostics: GPU, container runtimes and workloads, Kubernetes node info, WSL, and kernel performance counters (scheduler, softirq, memory compression, PSI, hugepages, OOM, clock sources). 27 tools. Over HTTP an identity needs the grant enhanced, mcp:tools:enhanced or * to list or call them; --scopes enhanced registers only this scope.

Tool Description Platform
get_gpu_info Get GPU information including memory, utilization, temperature, and processes —
get_container_stats Get real-time CPU, memory, network, and I/O stats for Docker/Podman containers —
get_container_logs Get logs from a Docker/Podman container —
get_docker_networks List Docker networks (id, name, driver, scope) —
get_docker_volumes List Docker volumes (name, driver, mountpoint) —
get_podman_containers List all Podman containers (id, image, names, state, status, created) —
get_compose_projects List Docker Compose projects (name, status, config files) —
get_kubernetes_node_info Detect local Kubernetes node presence: kubelet/kubeadm/k3s/kubectl binaries, kubelet service hint, container runtime sockets (no cluster credentials) —
get_wsl_info Get Windows Subsystem for Linux info: installed distros on Windows, or WSL membership detection on Linux —
get_container_runtimes Detect installed container runtimes (docker, podman, containerd, crio, nerdctl, ctr) with versions and daemon reachability —
get_schedstat_summary Get per-CPU scheduler statistics (run time, wait time, timeslices) from /proc/schedstat (Linux) Linux
get_softirq_stats Get per-type softirq totals (TIMER, NET_RX, NET_TX, BLOCK, SCHED, RCU, ...) summed across CPUs from /proc/softirqs (Linux) Linux
get_ksm_status Get Kernel Samepage Merging (KSM) status: run state, shared/sharing/unshared pages, full scans, general profit (Linux) Linux
get_zswap_status Get zswap compressed swap cache parameters: enabled, compressor, zpool, max pool percent (Linux) Linux
get_zram_info Get zram compressed RAM disk devices: disk size, compression algorithm, original/compressed/used memory, init state (Linux) Linux
get_swap_devices Get per-device swap detail (name, type, size, used, priority) from /proc/swaps plus vm.swappiness and vm.vfs_cache_pressure; complements get_memory_info which reports swap totals only (Linux) Linux
get_slab_summary Get slab memory totals (Slab, SReclaimable, SUnreclaim) from /proc/meminfo and top 20 slab caches by size from /proc/slabinfo when readable (often root-only) (Linux) Linux
get_buddyinfo Get buddy allocator free-page counts by order per memory zone from /proc/buddyinfo, with a fragmentation indicator (share of free pages in order >= 3 blocks) (Linux) Linux
get_kernel_taint Get the kernel taint value from /proc/sys/kernel/tainted decoded into standard flags (P, F, S, R, M, B, U, D, A, W, C, I, O, E, L, K, X, T, ...) with meanings (Linux) Linux
get_kernel_tunables_runtime Get curated runtime kernel tunables (kernel.panic, panic_on_oops, nmi_watchdog, watchdog_thresh, sched_autogroup_enabled, numa_balancing, vm.dirty_ratio, vm.dirty_background_ratio, vm.min_free_kbytes); security sysctls are covered by get_linux_sysctl_security (Linux) Linux
get_pressure_stall_info Get pressure stall information (PSI) for cpu, memory, and io from /proc/pressure (Linux, kernel >= 4.20) Linux
get_hugepages_info Get hugepages counters and transparent hugepage (THP) configuration (Linux) Linux
get_entropy_info Get kernel entropy pool status and available hardware RNG sources (Linux) Linux
get_vmstat_summary Get key virtual memory counters: context switches, forks, page faults, swap and paging activity (Linux/macOS) Linux, macOS
get_interrupts_summary Get total interrupt count and top 15 IRQ sources from /proc/interrupts (Linux) Linux
get_oom_events Get recent OOM-killer events from kernel logs via journalctl or dmesg (Linux) Linux
get_clock_sources Get current and available kernel clock sources, plus timer HZ hint when derivable (Linux) Linux

Arguments

Tool Argument Type Required Default Description
get_container_stats container_id string no — Container ID or name (optional, returns all running containers if not specified)
get_container_logs container_id string yes — Container ID or name
get_container_logs lines integer no 100 Number of lines to return (default 100)
get_container_logs since string no — Return logs since this timestamp (RFC3339 or Unix timestamp)

Scope: report

System reports: parallel collection of many tools into a single report document. 2 tools. Over HTTP an identity needs the grant report, mcp:tools:report or * to list or call them; --scopes report registers only this scope.

Tool Description Platform
generate_system_report Generate a comprehensive system report with all data collected in parallel. Returns JSON suitable for binding to HTML templates. —
generate_iis_report Generate a comprehensive IIS web server report with all data collected in parallel. Returns JSON suitable for binding to HTML templates. Windows only. Windows

Arguments

Tool Argument Type Required Default Description
generate_system_report sections array no — Specific sections to include (default: all). Options: os, hardware, uptime, cpu, memory, gpu, processes, disks, network, listening_ports, dns, routes, arp, startup_items, programs, runtimes
generate_system_report timeout_seconds integer no 30 Maximum time to wait for all collectors (default: 30)
generate_iis_report sections array no — Specific sections to include (default: all). Options: sites, app_pools, bindings, virtual_dirs, handlers, modules, ssl_certs, auth_config
generate_iis_report timeout_seconds integer no 30 Maximum time to wait for all collectors (default: 30)

Scope: storage

Storage deep dive: SMART, I/O latency, volumes, LVM, ZFS, RAID, Btrfs, XFS, LUKS, quotas, TRIM, schedulers, NFS, Samba, autofs, file locks and log directory usage. 25 tools. Over HTTP an identity needs the grant storage, mcp:tools:storage or * to list or call them; --scopes storage registers only this scope.

Tool Description Platform
get_smart_health Get SMART disk health information including temperature, power-on hours, and health status. Requires smartctl or platform-specific APIs —
get_io_latency Get disk I/O latency statistics including read/write latency, IOPS, and queue depth —
get_volume_status Get volume manager status including ZFS pools, LVM groups, MD RAID arrays, and Windows Storage Spaces —
get_mount_changes Get current mount points and filesystem information —
get_fs_events Get filesystem event monitoring capabilities and information for the platform —
get_smart_info Get SMART disk health data including temperature, power-on hours, and health status. Alias for get_smart_health —
get_lvm_info Get LVM logical volume information including volume groups, sizes, and physical/logical volume counts (Linux only) Linux
get_zfs_info Get ZFS pool and dataset information including pool health, size, and fragmentation (Linux/macOS) Linux, macOS
get_raid_info Get software RAID array status including MD RAID (Linux), Apple RAID (macOS), and Storage Spaces (Windows) Linux
get_quota_info Get disk quota usage information for users including blocks and files used/limits —
get_log_directory_usage Get disk usage of well-known log and temp directories plus journald disk usage —
get_log_rotation_config Get log rotation configuration from logrotate (Linux) or newsyslog (macOS) Linux
get_file_locks Get active file locks from /proc/locks with owning process names (Linux only) Linux
get_nfs_client_mounts Get mounted NFS filesystems with per-mount age and read/write ops summary —
get_nfs_exports Get NFS exports from /etc/exports (path, clients, options) —
get_samba_shares_config Get Samba share definitions from smb.conf (name, path, access flags; passwords excluded) —
get_autofs_config Get autofs configuration from /etc/auto.master and referenced map files (Linux only) Linux
get_disk_schedulers Get per-block-device I/O scheduler, rotational flag, read-ahead, and queue depth (Linux only) Linux
get_trim_status Get TRIM/discard support per block device and fstrim.timer status (Linux only) Linux
get_luks_devices Get LUKS encrypted device and mapping names plus crypttab entries (names only, never keys; Linux only) Linux
get_btrfs_info Get Btrfs filesystem details (devices, usage, allocation classes) for mounted btrfs filesystems (Linux only) Linux
get_xfs_info Get XFS filesystem geometry (block size, AG count, log) for mounted XFS filesystems (Linux only) Linux
get_inotify_limits Get inotify sysctl limits and instance usage for accessible processes (Linux only) Linux
get_device_partitions Get disks with partition table type and each partition's number, start sector/offset, size, type GUID and name, label, UUID and filesystem, from sysfs + lsblk on Linux, diskutil on macOS and Get-Partition on Windows (capped at 500 partitions) —
get_macos_time_machine_backups Get Time Machine backup count, oldest and latest backup time and hours since the latest backup, plus up to 50 recent backups (macOS only; listing may need Full Disk Access) macOS

Scope: security

Platform security controls: Windows (Defender, firewall, BitLocker, AppLocker, WDAC, Credential Guard, UAC, audit policy), macOS (FileVault, Gatekeeper, SIP, XProtect, pf, MDM) and Linux (auditd, lockdown, sysctl, MAC, PAM, polkit, setuid, fail2ban); Windows persistence, autoruns, security products and EDR sensors; file, process and launch-binary integrity and signatures; trusted roots; macOS security controls; and container and Docker daemon security. 87 tools. Over HTTP an identity needs the grant security, mcp:tools:security or * to list or call them; --scopes security registers only this scope.

Tool Description Platform
get_windows_defender_status Get Windows Defender status including real-time protection, signatures, tamper protection, and scan ages (Windows only) Windows
get_windows_firewall_profiles Get Windows Firewall profile states for Domain, Private, and Public profiles (Windows only) Windows
get_bitlocker_status Get BitLocker encryption status per volume including protection status, encryption method, and key protectors (Windows only) Windows
get_windows_smb_shares Get SMB shares and permissions summary (Windows only) Windows
get_windows_rdp_config Get RDP configuration including enabled status, NLA, port, and security settings (Windows only) Windows
get_windows_winrm_config Get WinRM listener and authentication configuration (Windows only) Windows
get_windows_applocker_policy Get AppLocker enforcement mode and rule collections (Windows only) Windows
get_windows_wdac_status Get WDAC/Code Integrity policy state including UMCI, KMCI, and HVCI status (Windows only) Windows
get_windows_local_security_policy Get local security policy summary including password policy, lockout policy, and audit settings (Windows only) Windows
get_windows_gpo_applied Get applied Group Policy Objects for computer scope (Windows only) Windows
get_windows_credential_guard Get Credential Guard and LSA protection status (Windows only) Windows
get_windows_update_health Get Windows Update health including pending updates, reboot required, and update source (Windows only) Windows
get_macos_filevault_status Get FileVault disk encryption status (macOS only) macOS
get_macos_gatekeeper_status Get Gatekeeper and notarization status (macOS only) macOS
get_macos_sip_status Get System Integrity Protection (SIP) status (macOS only) macOS
get_macos_xprotect_status Get XProtect/MRT version and status (macOS only) macOS
get_macos_pf_rules Get Packet Filter (pf) status and rules summary (macOS only) macOS
get_macos_mdm_profiles Get installed MDM configuration profiles (macOS only) macOS
get_macos_security_log_events Get unified log security events (macOS only) macOS
get_linux_auditd_status Get auditd status and rule summary (Linux only) Linux
get_linux_kernel_lockdown Get kernel lockdown mode and Secure Boot status (Linux only) Linux
get_linux_sysctl_security Get key sysctl hardening values with security score (Linux only) Linux
get_linux_firewall_backend Get active firewall backend (nftables/iptables/firewalld/ufw) (Linux only) Linux
get_linux_mac_detailed Get detailed SELinux or AppArmor status including profiles and enforcement mode (Linux only) Linux
get_linux_package_repos Get package repository summary (apt/dnf/yum/zypper/pacman) (Linux only) Linux
get_linux_auto_updates Get unattended upgrades/automatic update status (Linux only) Linux
get_vendor_services Get OS vendor services inventory (Microsoft/Apple/Linux distro services) —
get_container_security Get Docker container isolation settings and risky combinations: privileged mode, added capabilities, host PID/network/IPC namespaces, disabled seccomp/AppArmor, docker.sock and sensitive host-path mounts, devices (docker CLI, up to 500 containers) —
get_docker_daemon_security Get Docker daemon security settings from docker info: rootless mode, user-namespace remapping, seccomp/AppArmor/SELinux, live restore, insecure registries, authorization plugins, with findings (proxy credentials redacted) —
get_file_metadata Inspect one regular file inside the configured allowed roots or the fixed OS program directories (/usr/bin, /usr/sbin, /bin, /sbin, /usr/libexec, /usr/local/bin, /usr/local/sbin; /Applications on macOS; System32 and SysWOW64 on Windows): stat metadata (owner, mode, times, inode, symlink target), content type from the first 4 KiB, provenance extended attributes (quarantine, origin URL with query strings removed, Windows Zone.Identifier), SHA-256 of binaries and executables up to 256 MiB (plain text files are not hashed) and code signature on macOS/Windows. File contents are never returned; paths outside those roots or matching the secret deny list are refused —
get_process_image_integrity For each running process (max 500): executable path, deleted-or-replaced-on-disk and fileless (memfd) flags, SHA-256 of the running image (256 MiB per file, 300 files per call, cached), runs-from-temp/hidden-path flags and code signature status on macOS (codesign) and Windows (Authenticode), 150 checks per call. Command lines are not read. Processes of other users need root/administrator to resolve —
get_launch_binary_integrity Executables started by fixed launch sources (systemd system units including drop-in ExecStart overrides, and SysV init scripts on Linux; /Library/LaunchDaemons, /Library/LaunchAgents and /Applications on macOS; services and kernel drivers on Windows), max 500: existence, SHA-256, group/other-writable flag, unquoted Windows service paths with spaces and code signature status on macOS/Windows. Only program paths are read, never arguments or environment —
get_trusted_root_audit Audit the OS certificate trust stores (Linux system bundle and local anchor directories; macOS System roots, System and login keychains; Windows LocalMachine and CurrentUser Root, AuthRoot, CA and TrustedPublisher) and flag certificates not in the vendor default set, recently added anchors (Linux), expired or expiring within 90 days, and weak keys or signatures. Public certificate metadata only, max 1000 certificates Linux
get_macos_app_firewall Get macOS application firewall settings (global state, block-all, stealth, signed-app allowance, logging) and per-app allow/block rules (capped at 200) via socketfilterfw and the legacy alf plist (macOS only) macOS
get_macos_authorization_rights Get a fixed set of macOS authorization database rights (login, screensaver unlock, admin, install) with their login plugin mechanisms, flagging non-Apple (third-party) plugins (macOS only) macOS
get_macos_input_monitoring_access Get apps granted or denied Input Monitoring (keyboard event taps), event posting and Accessibility in the system privacy database (capped at 500; needs root with Full Disk Access; macOS only) macOS
get_macos_gatekeeper_rules Get Gatekeeper assessment rules from the SystemPolicy database, including per-app user approvals (capped at 500; needs root; macOS only) macOS
get_macos_launchd_overrides Get launchd enabled/disabled overrides for the system domain and each local user's GUI domain (capped at 1000; macOS only) macOS
get_macos_app_sandboxes Get App Sandbox containers under /Users/*/Library/Containers with bundle id, bundle path and sandbox entitlement (capped at 500; Full Disk Access may be needed; macOS only) macOS
get_macos_nvram_security Get a fixed allowlist of security-relevant NVRAM variables (boot-args, csr-active-config, auto-boot, security-mode, ...) and flag boot-args that weaken code signing; other variables are only counted (macOS only) macOS
get_macos_xprotect_signatures Get XProtect signature names (legacy plist entries capped at 500, YARA rule names capped at 1000) and blocklist metadata from the newest of the fixed XProtect bundle locations (macOS only) macOS
get_macos_xprotect_events Get recent XProtect and XProtect Remediator unified-log events (fixed predicate, last N hours, default 24 max 168, most recent 200, messages redacted; macOS only) macOS
get_screen_lock_policy Get the effective screen-lock policy: enabled, idle timeout, grace period and whether it is enforced (macOS sysadminctl and configuration profiles; Linux GNOME gsettings/dconf, KDE, Xfce; Windows registry and policy) —
get_macos_managed_policies Get effective managed (MDM/profile) preference values from /Library/Managed Preferences, flattened per domain and user, secret-looking values redacted (macOS only; capped at 500 values) macOS
get_macos_shared_folders Get File Sharing share points (name, path, SMB/AFP shared, guest access) from sharing -l (macOS only; may need root; capped at 200) macOS
get_macos_ad_binding Get the Active Directory binding of this Mac (forest, domain, computer account and advanced options) from dsconfigad -show (macOS only) macOS
get_macos_location_services Get whether Location Services is enabled system-wide from the locationd host preferences (macOS only; needs root) macOS
get_setuid_binaries Get setuid/setgid binaries in standard system binary directories (fixed list, capped) —
get_world_writable_paths Get world-writable files and directories without the sticky bit under /etc, /usr/local/bin, and /opt (bounded depth, capped) —
get_umask_config Get default umask configuration from /etc/login.defs, /etc/profile, and the current process —
get_ssh_host_keys Get SSH host key types, bits, and fingerprints (public key info only, never private keys) —
get_fail2ban_status Get fail2ban jail status with per-jail failure and ban counters —
get_tcp_wrappers_config Get TCP wrappers rules from /etc/hosts.allow and /etc/hosts.deny —
get_login_banners Get login banner files (/etc/issue, /etc/issue.net, /etc/motd): existence and first lines —
get_pam_services Get PAM services from /etc/pam.d with the module names each service uses (capped) —
get_polkit_rules Get polkit rule file names from standard rule directories (names only, no contents) —
get_selinux_booleans Get SELinux boolean states with on/off totals via getsebool (boolean-level detail, complementing get_mac_status and get_linux_mac_detailed which report overall MAC status) —
get_windows_uac_config Get Windows UAC configuration (EnableLUA, ConsentPromptBehaviorAdmin, PromptOnSecureDesktop, EnableVirtualization) (Windows only) Windows
get_windows_audit_policy Get Windows audit policy per category/subcategory via auditpol (Windows only, requires admin) Windows
get_pwquality_config Get PAM password quality configuration from /etc/security/pwquality.conf and pam_pwquality/pam_cracklib arguments in /etc/pam.d (Linux only) Linux
get_process_memory_map Virtual memory regions of one named process: address range, permissions, offset, device/inode and backing file, flagging writable+executable, executable-without-file and deleted-file regions that can indicate code injection (/proc//maps on Linux, vmmap on macOS, VirtualQueryEx on Windows); region metadata only, memory contents are never read; other users' processes need root/administrator; default 1000 regions (max 5000) —
get_windows_binary_acls Windows only: NTFS ACLs of Program Files, the Windows and System32 directories, and the binaries (plus their parent directories) of services and scheduled tasks, flagging write access for Everyone/Users/Authenticated Users/Interactive (matched by SID) and unquoted service paths (no caller paths; max 300 targets) Windows
get_authenticode_signatures Windows only: Authenticode signature status, signer, issuer, serial and expiry for running process images and service and scheduled-task binaries (enumerated paths only, never caller paths; max 300 binaries; signed/valid are null when a file could not be checked; can take a minute) Windows
get_wmi_persistence Get permanent WMI event subscriptions in root\subscription: event filters, command-line and script consumers, and filter-to-consumer bindings (Windows only; 500 per list; script text cut to 4 KB and redacted; reading all subscriptions may need administrator rights) Windows
get_windows_autoruns Get one combined view of Windows auto-start entries: Run/RunOnce keys, Winlogon, AppInit_DLLs, IFEO debuggers, SilentProcessExit, BootExecute, LSA packages, startup folders, auto-start services, enabled scheduled tasks and WMI consumers, with Authenticode status (Windows only; HKCU is the server's own account; capped at 1000 entries and 200 signature checks) Windows
get_windows_security_products Get antivirus, firewall and antispyware products registered with Windows Security Center, including third-party products, with decoded state (on, off, snoozed, expired), owner and definition freshness (Windows client editions only; server editions report unsupported; capped at 200) —
get_windows_security_center Get overall Windows Security Center health for firewall, automatic updates, antivirus, antispyware, internet settings, UAC and the Security Center service (Windows only, via the Security Center API; unsupported where the API is absent) Windows
get_edr_sensor_status Get presence, run state and version of known endpoint security agents (Carbon Black, CrowdStrike, SentinelOne, Defender for Endpoint, Sophos and others) from a fixed list of service names, plus allowlisted Carbon Black sensor settings from its fixed registry key (Windows only) Windows
get_appcompat_shims Get installed custom application compatibility shim databases (SDB) and the executables they apply to, from the fixed AppCompatFlags InstalledSDB and Custom registry keys (Windows only; capped at 500) Windows
get_windows_named_pipes Get named pipe names with current and maximum instance counts by listing the pipe file system root; individual pipes are never opened, so server process IDs are not reported (Windows only; capped at 1000) Windows
get_windows_speculation_control Get Windows kernel speculative-execution mitigation state (KVA shadow, branch prediction, IBRS, STIBP, SSBD, retpoline) from the kernel, plus FeatureSettingsOverride registry values (Windows only) Windows
get_ioc_matches Sweep this host for caller-supplied indicators of compromise and report every hit with minimal evidence. indicators is an object of optional lists: sha256, sha1, md5, file_paths (absolute, exact or glob), file_names, domains (exact, or a leading '.' for the domain and all sub-domains), ips (addresses or CIDRs), urls, process_names, command_line_substrings (4+ chars), named_pipes, mutexes (Windows), registry_keys (Windows, HKLM\path or HKLM\path::ValueName; existence only), services, scheduled_task_names, user_accounts. stix_bundle accepts a STIX 2.1 bundle (object or JSON string, max 2 MiB) whose indicator patterns use simple equality (file:hashes.'SHA-256', file:name, domain-name:value, ipv4-addr:value, url:value, process:name, ...). Max 10000 indicators. Matched against: hashes and paths of the execution surface (running images, modules, services, autoruns, scheduled actions), process names and command lines, live connections and listening sockets, the DNS resolver cache, named pipes, mutexes, services, scheduled tasks and cron, local user accounts and registry keys. Returns hits (indicator_type, indicator, matched_in, evidence, first_seen), counts per type and coverage: which sources were checked and which were unavailable on this platform or privilege level, so a clean result is never mistaken for full coverage. Read-only, no network lookups, command lines redacted, about 60 s budget —
get_execution_surface Every binary that runs or is set up to run, deduplicated by SHA-256 with every place each hash appears (seen_as: process pid/name, module loaded by pid, script run by an interpreter, service, autorun location, scheduled task, cron job, startup or launch item). Sources: running process images (Linux: deleted-on-disk and memfd/fileless images flagged and hashed through /proc), loaded modules and shared libraries (max 4000 paths), services, autoruns (Windows Run keys, Winlogon, IFEO, startup folders, WMI consumers), scheduled task actions, cron jobs and startup/launchd items. Each entry has size, mtime, location flags (temp, download, user-writable, hidden, world-writable) and provenance: Authenticode signer on Windows, codesign signer on macOS, owning rpm/dpkg package on Linux. Hashes are cached by (path, size, mtime) so repeated calls are cheap. Limits: 5000 files hashed, 256 MiB per file (larger files report size and not_hashed_too_large), 600 signature checks per call, about 60 s; flagged and unsigned/unowned entries are listed first. File contents are never returned —
get_suspicious_processes Heuristic leads about running processes, each with a rule id, severity (low/medium/high), reason and evidence; never a verdict. Rules: executable deleted on disk or memfd/fileless (Linux), image in temp, download, user-writable or hidden directories, masquerading (svchost.exe, lsass.exe, csrss.exe, sshd, systemd, launchd ... from an unexpected path, look-alike names, unexpected parent, user-space process named like a kernel thread such as kworker), unsigned (Windows/macOS) or package-unowned (Linux) image holding network connections, suspicious parent-child (Office apps, browsers, web server workers w3wp/httpd/nginx/php-fpm/java spawning cmd, powershell, pwsh, wscript, cscript, mshta, bash, sh, python, perl), encoded or obfuscated command lines (-EncodedCommand, FromBase64String, base64 blobs, IEX/DownloadString, curl|sh, wget -O- | sh), reverse shells (/dev/tcp, nc -e), LOLBin downloads (certutil -urlcache, bitsadmin /transfer, regsvr32 /i:http, rundll32 javascript:, mshta http, msiexec /i http), processes with no parent or re-parented to init from a terminal, and argv[0] naming a system process the image is not. The rule list with descriptions and benign explanations is included. Command lines are redacted; max 2000 findings —
get_yara_matches Scan files with YARA rules using a built-in pure-Go engine and return evidence only: matching rule names, namespace, tags and meta, matched string identifiers, match offsets and lengths, and at most 64 bytes of hex context per match (withheld when it looks like a credential), plus path, size, mtime and SHA-256 of each matching file. File contents are never returned. Bundled rules (original, conservative): EICAR test file, PHP/ASPX/JSP web shells evaluating request input, Mimikatz-style credential dumping strings and LSASS dump commands, Cobalt Strike default pipe names, encoded config and beacon strings, reverse shell one-liners, coin miner pool URLs and miner config, PowerShell download cradles and encoded launchers, LD_PRELOAD rootkit libraries. Caller rules (max 256 KiB) are compiled with the same engine and added to the bundled set unless bundled=false. Supported YARA subset: rules with tags, meta, private/global; text strings with nocase, ascii, wide, fullword, xor, xor(a-b), base64, base64wide; hex strings with ??, nibble wildcards, ~XX, bounded jumps [n-m] (max 4096) and alternatives; regular expressions /.../is mapped to RE2 (no backreferences or lookaround); conditions with and/or/not, comparisons, arithmetic and bitwise operators, $a, #a, @a[i], !a[i], $a at N, $a in (a..b), N/any/all/none/N% of them or ($a*, $b), for..of and for..in loops, filesize, KB/MB, uint8/16/32 and int, be variants, rule references. No modules (import is rejected), no include, no unbounded jumps. Targets are absolute paths or globs (files or directories walked recursively) that must pass the server path policy: the configured allowed roots, the temp, download and web directories and the OS program and library directories; secret material on the deny list is never read and symlinks are not followed out of scope. Without targets, scope selects a preset: default = autorun and persistence targets (systemd/init, cron, shell profiles, ld.so.preload libraries on Linux; launchd on macOS; services, drivers, Run keys, scheduled tasks and startup folders on Windows), running process images (including deleted and memfd images on Linux), temp directories (/tmp, /var/tmp, /dev/shm, %TEMP%, C:\Windows\Temp) and user Downloads, plus C:\ProgramData on Windows; temp, processes, persistence, web (web roots) and all are also available. Caps: max_files (default 2000, max 20000), max_bytes_per_file (default 16 MiB, max 64 MiB; larger files are scanned up to the cap and flagged truncated), max_total_bytes (default 2 GiB), time_budget_seconds (default 60, max 300); reports files scanned, skipped (by reason), truncated, errors and throughput. Read-only; one file is read at a time. Process images of other users need root/administrator —
get_windows_persistence_gaps Get Windows persistence entries that get_windows_autoruns does not cover, each with its MITRE ATT&CK technique, location, value, target file (SHA-256, size, times, Authenticode signer) and whether it differs from stock Windows: BITS jobs with notify command lines, per-user COM hijacks of machine CLSIDs, IFEO GlobalFlag silent-process-exit monitors and verifier DLLs, AppCert DLLs, non-default LSA authentication/security/notification packages, netsh helper DLLs, print monitors and processors, time providers, Winlogon Notify packages, RDP InitialProgram, accessibility binaries (sethc, utilman, osk, magnify, narrator, displayswitch, atbroker) checked against their Microsoft identity, screensavers, Office add-ins, Office test key, Word STARTUP/Excel XLSTART/Outlook VbaProject.OTM/Normal.dotm for every profile, and PowerShell profiles for all hosts and users (Windows only; per-user registry only for loaded hives; 1500 entries, 300 hashes of files up to 64 MB, 200 signature checks, about 60 s; command lines redacted) Windows
get_defender_detections Get Microsoft Defender detection history (Get-MpThreatDetection joined with Get-MpThreat: threat name, severity, category, file and process resources, initial and last detection time, action taken, triggering process and user), Defender exclusions (paths, extensions, processes, IP addresses) from Get-MpPreference and the preference and policy registry keys with key last-write times, add times from event 5007 and flags for risky or recent exclusions, tamper protection, real-time protection and last scan state, policy overrides, and protection-disabled events 5001/5010/5012/5013 from the last 30 days, with findings mapped to ATT&CK (Windows only; needs administrator/SYSTEM to see exclusions; 500 detections, 500 events) Windows
get_defense_evasion Get Windows defence-evasion evidence as findings with severity, evidence and ATT&CK id: Sysmon presence (including renamed driver/service, rule-set SHA-256, version) and recent Sysmon events 8 CreateRemoteThread, 10 LSASS access and 25 process tampering; disabled ETW autologger sessions and providers (EventLog-Security, DefenderApiLogger, Threat-Intelligence and others) and disabled event channels or logs; registered AMSI providers with DLL signers and Windows Script AMSI switches; PowerShell script block, module and transcription logging policy and the PowerShell 2.0 engine; LSA protection (RunAsPPL), Credential Guard and WDigest; cleared event logs (Security 1102, System 104: when and by whom), audit policy changes (4719), event logging stops (1100), new services (7045) and new scheduled tasks (4698) (Windows only; reading the Security log needs SYSTEM or Event Log Readers; time window up to 720 hours, up to 200 events per event ID; command lines redacted) Windows
get_rootkit_indicators (Linux only) Rootkit and dynamic-linker-hijacking evidence, each finding with severity and MITRE ATT&CK ids (T1014, T1574.006): /etc/ld.so.preload (entries with SHA-256, owner, mode, mtime) and processes whose environment sets LD_PRELOAD, LD_AUDIT or LD_LIBRARY_PATH (only those paths are kept, every other variable is discarded); hidden processes (stat probe of every pid up to pid_max, capped at 4194304, compared with the /proc listing, plus parent links and the kernel task count); hidden kernel modules (/proc/modules vs /sys/module vs the ftrace function list) with per-module taint (out-of-tree, unsigned, forced) and decoded kernel taint; loaded eBPF programs and maps (bpftool when installed, else BPF descriptors in /proc/<pid>/fdinfo) with type, name, attach type, load time and owning pid; kprobes, uprobes and enabled trace events (tracefs, debugfs kprobes/list). Benign defaults (systemd BPF programs, GPU and endpoint-agent modules, BCC/perf probes) are reported as info with context. Syscall table hooks are out of scope. Read-only; root is needed for other users' processes, tracefs and BPF objects; bounded to 60 s, 20000 processes and 500 findings Linux
get_code_injection_evidence Per-process code injection evidence: executable memory not backed by a file on disk, with severity and MITRE ATT&CK ids (T1055, T1620, T1055.012). Linux: /proc/<pid>/maps anonymous rwx/r-x regions, memfd and deleted-file mappings, executable heap or stack, code mapped from /tmp, /dev/shm or hidden directories. Windows: VirtualQueryEx over every accessible process (query-information access only, which cannot read memory) for MEM_PRIVATE executable regions and MEM_IMAGE regions whose file cannot be resolved (hollowing, doppelganging). macOS is unsupported (task_for_pid needs entitlements); use get_process_memory_map there. Never reads memory contents: addresses, sizes, protections, backing path or "anonymous", and counts only. JIT runtimes (JVM, .NET, V8/Electron, SpiderMonkey, LuaJIT, Mesa llvmpipe, Direct3D WARP) are counted as expected instead of flagged. Bounded: default 2000 processes (max 10000), 20 regions per process (max 200), 60 s; other users' and protected processes need root/administrator —
get_macos_download_provenance (macOS only) Where downloaded files came from: every user's LaunchServices quarantine events database (QuarantineEventsV2, read with sqlite3 -readonly) with download time, quarantining agent (browser, mail, curl, script host), origin and data URLs (credentials in URLs redacted), sender and event type; plus the com.apple.quarantine attribute of the top-level items in each user's Downloads, Desktop and Applications, /Applications and /Users/Shared, linked to its event by UUID, with kind (Mach-O, script, app bundle, disk image, pkg) and SHA-256 of executables. Flags executables, app bundles, disk images and pkgs downloaded recently, from raw IP addresses, over plain HTTP or by non-browser agents, recent executables in Downloads/Desktop without a quarantine attribute (Gatekeeper bypass, MITRE T1553.001) and files whose event was pruned. Never reads file contents. Downloads and Desktop need Full Disk Access for the agent (reported per source). Bounded: 500 events per user (max 5000), 1000 files (max 5000), 1000 entries per folder, 60 s macOS
get_macos_launch_item_signing (macOS only) Code signing and location evidence for every persistence item: LaunchDaemons and LaunchAgents in /Library, each user's ~/Library/LaunchAgents and (with include_apple) /System, plus login items and app-embedded agents from Background Task Management (sfltool dumpbtm, root). Per item: label, plist SHA-256/owner/mode, program path (and the script an interpreter runs), whether it exists, its SHA-256, owner, who other than root can replace it, hidden or temporary location, RunAtLoad/KeepAlive, run-as user, DYLD_* environment, BTM developer/team/disposition, and the signature from codesign -dv/--verify and spctl --assess: status (signed, ad-hoc, unsigned, invalid), signer type (Apple, App Store, Developer ID, development), team identifier, authority chain, hardened runtime, notarization (stapled ticket or Gatekeeper source). Flags unsigned, ad-hoc, invalid or un-notarized programs, programs in /tmp, /Users/Shared or dot-directories, programs or plists writable by non-root users (privilege escalation for root daemons), missing programs and DYLD injection (MITRE T1543.001/.004, T1547.015, T1574.006). Arguments are redacted. Bounded: 500 items (max 2000), 2000 plists, 60 s macOS
get_macos_tcc_anomalies (macOS only) Suspicious privacy (TCC) grants: rows of the system and every user's TCC.db (read-only sqlite3) with service, client (bundle id or path, resolved to its application), access, auth reason (user consent, system, MDM), last modified time, Apple Event target and whether a code requirement pins the grant, plus the client's code signature (codesign/spctl). Flags allowed grants to unsigned, ad-hoc, invalid or non-Apple clients, to terminals and scripting hosts (osascript, Terminal, iTerm, python, shells), to clients in temporary or hidden locations or whose binary is gone, path grants without a code requirement, and sensitive services (Full Disk Access, Screen Recording, Accessibility, Input Monitoring, event posting, Microphone, Camera, Automation) granted recently (MITRE T1548, T1059.002). Requires the agent to run as root with Full Disk Access; unreadable databases are reported clearly per source. Bounded: 1000 grants (max 5000), 300 signature checks, 60 s macOS
get_macos_dylib_hijack_candidates (macOS only) Dylib hijacking and injection candidates (MITRE T1574.004, T1574.006) for running processes and launchd job programs: Mach-O load commands parsed in-process with Go's debug/macho (no otool), finding LC_LOAD_WEAK_DYLIB references to dylibs that do not exist, @rpath dependencies where a writable LC_RPATH directory is searched before the real library, @rpath libraries resolved from user-writable directories, relative LC_RPATH entries, missing or user-writable dylibs loaded by root processes, and DYLD_INSERT_LIBRARIES/DYLD_* variables in launchd plists. Each candidate gives the binary, why it was examined (pid or launch item), the load command, the reference as written, the path to plant at, who other than root can write it, and whether library validation or the hardened runtime (read from the embedded code signature and entitlements) blocks it. Sealed system volume and dyld shared cache binaries are skipped; only main executables are examined. Never reads code or data, only headers. Bounded: 500 binaries (max 2000), 2000 candidates, 60 s macOS
get_beaconing_candidates Command-and-control beaconing candidates: outbound connections that repeat at a regular interval, grouped by (process image, remote address, port, protocol) and scored for periodicity (mean, median, min/max interval and jitter as coefficient of variation), connection count, observed duration and destination rarity (contacted by one process only); the score breakdown and the method are in the result. Data comes from the in-memory event ring's socket history (polled every 2-10 s since this Secronyx process first served an event tool), plus Linux auditd connect and Windows Sysmon event 3 records when present, and the current connection table; cached DNS answers (resolvectl show-cache, Get-DnsClientCache) map addresses to names without any lookups. The observation window is stated explicitly; when the monitor was just started the status is no_history, not a clean result. Loopback, link-local, multicast and inbound connections are excluded; OS update, telemetry, cloud and security agent destinations or processes are labelled with severity info, not dropped. Optional image SHA-256 and signer via the process image integrity collector. Linux, Windows and macOS; read-only, no network access; bounded to the newest 1000 socket events, 500 candidates and 60 s —
get_dns_anomalies Suspicious DNS evidence, each with a 0-100 score, severity and reasons: DGA-like names (domain-label entropy, length, consonant and digit runs, vowel ratio), DNS tunnelling shapes (very long names or labels, many labels, high-entropy or hex/base32/base64 subdomains, many distinct subdomains under one domain), NULL and unusual TXT records, names under abuse-prone TLDs (configurable list; TLDs first seen by this Secronyx process are marked), DNS over HTTPS and DNS over TLS use (resolvers on 443/853, well-known DoH services in connections and the cache), direct DNS to servers that are not configured resolvers, and resolver configuration tampering: /etc/resolv.conf overriding systemd-resolved or symlinked elsewhere, resolved.conf DNSOverTLS, Windows static adapter DNS overriding DHCP, NRPT rules, custom DoH templates and DoH policy, macOS scutil per-domain resolvers and /etc/resolver files, public resolvers, and resolvers outside an expected list. Names come from the local DNS cache (systemd-resolved show-cache needs systemd 254+ and root; Windows Get-DnsClientCache; macOS has no readable cache) and from socket event records; nothing is resolved. The scoring method is returned with the result. Linux, Windows and macOS; read-only, no network access; bounded to 10000 names, 1000 results and 60 s —
get_timeline One ordered, de-duplicated incident timeline for a time window, merged from read-only sources Secronyx already collects; each entry has the UTC time, source, event type, summary, subject (user, process, pid, path, remote) and the tool that returns full details. Sources: process, socket (close events omitted) and watched-file events from the event ring plus audit, Sysmon or unified-log records; Linux wtmp logins/logouts, failed logins, reboots, systemd unit starts/stops/failures (journal), cron runs (journal), timer last runs, package installs, and mtime/ctime of persistence paths (units, cron, profile scripts, sudoers, authorized_keys, ld.so.preload); Windows Security and System events (logons and failures excluding service logons, logoffs, scheduled task create/update/delete 4698/4699/4702, account and group changes, log cleared 1102/104, service installs 7045, crashes, start-type changes, boots and shutdowns), Prefetch run times, BAM last execution, ShimCache file times, the newest 500 USN journal records, scheduled task last runs, installs, and autorun target file times; macOS logins (last), failed logins, reboots, launchd failures, installs (InstallHistory) and launchd plist and other persistence file times. Per-source counts, truncation and errors or unsupported notes are returned. Sources run concurrently (4 at a time) within a 60 s budget; a slow source is reported as timed out. Linux, Windows and macOS; read-only —

Arguments

Tool Argument Type Required Default Description
get_file_metadata path string yes — Absolute path of a regular file inside the allowed roots or OS program directories
get_macos_xprotect_events hours integer no 24 Look-back window in hours (1-168, default 24) (minimum 1, maximum 168)
get_process_memory_map limit integer no 1000 Maximum regions to return (default 1000, max 5000) (minimum 1, maximum 5000)
get_process_memory_map only_flagged boolean no false Return only flagged regions (writable+executable, anonymous executable or deleted file); the summary still counts every region (default false)
get_process_memory_map pid integer yes — Process id to inspect (minimum 1)
get_ioc_matches indicators object no Object of indicator lists keyed by type (sha256, sha1, md5, file_paths, file_names, domains, ips, urls, process_names, command_line_substrings, named_pipes, mutexes, registry_keys, services, scheduled_task_names, user_accounts)
get_ioc_matches stix_bundle object no Optional STIX 2.1 bundle (object or JSON string, max 2 MiB); indicator patterns with simple equality comparisons are converted to indicators
get_execution_surface max_entries integer no Maximum executables returned (default 3000, max 5000)
get_execution_surface include_modules boolean no true Include loaded modules / shared libraries of running processes (default true)
get_yara_matches rules string no Optional YARA rule source (max 256 KiB) in the supported subset; compiled errors are returned with line numbers
get_yara_matches targets array no Optional absolute file or directory paths or globs to scan (max 64), checked against the path policy; when omitted the scope preset is scanned
get_yara_matches max_files integer no Maximum files to scan (default 2000, max 20000)
get_yara_matches max_bytes_per_file integer no Bytes read from each file (default 16777216, max 67108864)
get_yara_matches max_total_bytes integer no Total bytes read across all files (default 2 GiB, max 16 GiB)
get_yara_matches include_context boolean no true Return up to 64 bytes of matched bytes as hex per match (default true)
get_yara_matches time_budget_seconds integer no Wall-clock budget for the scan (default 60, max 300)
get_yara_matches list_rules boolean no Also list every loaded rule with its tags and meta (default false)
get_yara_matches bundled boolean no true Also scan with the bundled Secronyx rules (default true; ignored and always true when no rules are given)
get_yara_matches scope string no Preset scanned when no targets are given (default: default)
get_defense_evasion hours integer no 168 How many hours of event logs to read (default 168, max 720)
get_defense_evasion max_events integer no 50 Maximum events returned per event ID (default 50, max 200)
get_rootkit_indicators skip_pid_probe boolean no false Skip the hidden-process pid probe, which stats every pid up to pid_max (a few seconds on hosts with pid_max 4194304) (default false)
get_code_injection_evidence pid integer no Scan only this process id (default: all processes)
get_code_injection_evidence max_processes integer no 2000 Maximum processes to scan (default 2000, max 10000)
get_code_injection_evidence max_regions_per_process integer no 20 Maximum suspicious regions returned per process, most severe first; counts cover every region (default 20, max 200)
get_code_injection_evidence include_expected boolean no false Also list processes whose findings are all explained by a JIT runtime or upgraded libraries, with their regions (default false: they are only counted)
get_macos_download_provenance max_events integer no 500 Most recent quarantine events returned per user (default 500, max 5000)
get_macos_download_provenance max_files integer no 1000 Maximum files returned (default 1000, max 5000)
get_macos_download_provenance recent_days integer no 30 Downloads newer than this many days count as recent (default 30, max 3650)
get_macos_launch_item_signing include_apple boolean no false Also examine Apple's own jobs in /System/Library (sealed system volume; several hundred items, slower). Default false: they are only counted
get_macos_launch_item_signing max_items integer no 500 Maximum launch items examined and returned (default 500, max 2000)
get_macos_launch_item_signing skip_signing boolean no false Skip codesign/spctl checks and return locations and hashes only (faster) (default false)
get_macos_tcc_anomalies only_flagged boolean no false Return only grants with a low or higher finding (default false: all grants)
get_macos_tcc_anomalies max_grants integer no 1000 Maximum grants returned, most severe first (default 1000, max 5000)
get_macos_tcc_anomalies recent_days integer no 30 Sensitive grants newer than this many days are flagged as recent (default 30, max 3650)
get_macos_dylib_hijack_candidates max_binaries integer no 500 Maximum binaries parsed (default 500, max 2000)
get_macos_dylib_hijack_candidates include_mitigated boolean no false Also return candidates blocked by library validation or the hardened runtime, as info (default false)
get_beaconing_candidates min_connections integer no 4 Minimum connection starts in a group before it is scored (default 4, min 3, max 1000)
get_beaconing_candidates max_candidates integer no 50 Maximum candidates returned, highest score first (default 50, max 500)
get_beaconing_candidates log_hours integer no 24 How far back audit/Sysmon connection records are read (default 24, max 168)
get_beaconing_candidates include_signatures boolean no false Add image SHA-256 and code signer for each candidate's process (hashes every running image once; default false)
get_beaconing_candidates min_score integer no 60 Report groups scoring at least this (0-100, default 60)
get_dns_anomalies abuse_tlds array no Replace the built-in abuse-prone TLD list (e.g. ["zip", "top", "xyz"]; max 200 entries of letters, digits and hyphens)
get_dns_anomalies expected_resolvers array no IP addresses of the resolvers this host should use (max 32); any other configured resolver is reported with a high score
get_dns_anomalies min_score integer no 20 Report findings scoring at least this (1-100, default 20)
get_dns_anomalies max_results integer no 200 Maximum findings returned, highest score first (default 200, max 1000)
get_timeline since string no Window start: RFC3339 (2026-10-08T09:00:00Z) or relative to now (90m, 24h, 7d, 2w); default 24h; windows longer than 30 days are cut to 30 days
get_timeline until string no Window end: RFC3339 or relative to now; default now
get_timeline sources array no Only these sources (default all on this platform): process_events, socket_events, file_events, logins, auth_failures, reboots, systemd_units, cron_runs, timer_runs, service_failures, packages, autorun_file_times, windows_events, prefetch, bam, shimcache, usn_journal, scheduled_task_runs
get_timeline limit integer no 2000 Maximum entries returned; when exceeded the oldest are dropped (default 2000, max 20000)

Scope: network

Network intelligence: connection tracking, DNS, firewall detail, Wi-Fi, connectivity probes, proxy and hosts configuration, IPv6, bonding, DHCP, NetworkManager and netplan, offload and error statistics, LLDP and traffic control, the protocols and services databases and the Wi-Fi scan cache. 29 tools. Over HTTP an identity needs the grant network, mcp:tools:network or * to list or call them; --scopes network registers only this scope.

Tool Description Platform
get_connection_tracking Get network connection tracking information including established, listening, and time-wait connections —
get_dns_stats Get DNS resolver statistics including configured servers, cache status, and resolution status —
get_firewall_deep Get detailed firewall configuration including rules, chains, and policy information —
get_wifi_metrics Get WiFi interface metrics including signal strength, noise, link quality, and connection details —
get_network_latency Measure network latency to specified targets using ICMP ping —
get_proxy_config Get system proxy configuration (HTTP/HTTPS/SOCKS proxies and bypass lists) —
get_hosts_file Get parsed hosts file entries (static hostname to IP mappings) —
get_dns_cache_stats Get DNS resolver cache statistics (counts only, no cached names) —
get_ipv6_status Get IPv6 enablement status and addresses per network interface —
get_network_bonding Get bonded, teamed, and bridged network interface configuration —
get_multicast_groups Get joined multicast groups per network interface —
get_socket_summary Get socket counts by protocol and connection state —
get_dhcp_leases Get active DHCP lease info (IP, server, router, DNS, obtained/expires) from local lease files and platform tools —
get_network_manager_status Get NetworkManager daemon status, version, state, and connection profiles (Linux only) Linux
get_netplan_config Get netplan configuration summary: renderer and per-interface dhcp4/addresses (Linux only, secrets redacted) Linux
get_nsswitch_config Get /etc/nsswitch.conf name service database source ordering —
get_tcp_congestion_info Get TCP congestion control algorithm, available algorithms, default qdisc, and TCP fast open settings —
get_interface_offload_settings Get NIC offload settings (TSO, GSO, GRO, checksumming) for up interfaces via ethtool (Linux only) Linux
get_interface_error_stats Get per-interface error counters: rx/tx errors, rx/tx dropped, collisions —
get_mdns_status Get mDNS responder (avahi-daemon, mDNSResponder, or Dnscache) presence and running state —
get_time_sync_peers Get configured/active time sources with per-peer reachability, stratum, offset, and delay (deeper than get_ntp_status, which reports only overall sync state) —
get_hostname_config Get hostname configuration: hostname, FQDN, static/pretty names, chassis, and domain/workgroup —
get_saved_wifi_networks Get saved WiFi profile names only (keys/passwords are never read or returned) —
get_lldp_neighbors Get LLDP neighbors (switch/chassis/port identity) via lldpctl if installed (Linux only) Linux
get_traffic_control Get traffic control queueing disciplines (tc qdisc) per interface with parameters (Linux only) Linux
get_etc_protocols IP protocol number database (/etc/protocols; drivers\etc\protocol on Windows): name, number, aliases and comment; fixed path, capped at 500 entries —
get_etc_services Service name to port/transport database (/etc/services; drivers\etc\services on Windows) with optional port, protocol and name filters; fixed path, default 500 entries (max 5000), total_matched shows the full match count —
get_network_connectivity The OS's own connectivity verdict per address family and interface (NetworkManager cached state plus default routes on Linux, scutil --nwi reachability on macOS, connection profile IPv4/IPv6 connectivity on Windows); reads cached state only and sends no probe traffic; capped at 64 interfaces —
get_wifi_survey Nearby Wi-Fi networks from the OS scan cache (nmcli --rescan no on Linux, system_profiler on macOS, netsh wlan show networks on Windows): SSID, BSSID where available, channel, band, signal and security; never starts a scan, so results may be stale; macOS may withhold SSIDs without Location Services; capped at 200 —

Arguments

Tool Argument Type Required Default Description
get_network_latency targets array no — List of target hosts/IPs to ping (default: 8.8.8.8, 1.1.1.1)
get_etc_services limit integer no 500 Maximum entries to return (default 500, max 5000) (minimum 1, maximum 5000)
get_etc_services name string no — Only entries whose name or alias contains this text (case-insensitive, letters/digits/._+/- only, max 64)
get_etc_services port integer no — Only entries for this port (0 = any) (minimum 0, maximum 65535)
get_etc_services protocol string no — Only entries for this transport: tcp, udp, sctp, dccp or ddp

Scope: analytics

Analytics and trends: historical metrics, anomaly detection, capacity forecasting and trend analysis. 4 tools. Over HTTP an identity needs the grant analytics, mcp:tools:analytics or * to list or call them; --scopes analytics registers only this scope.

Tool Description Platform
get_historical_metrics Get historical system metrics for CPU, memory, and disk usage over a specified period —
get_anomaly_detection Detect anomalies in current system metrics by comparing against thresholds —
get_capacity_forecast Get capacity forecasts for disk and memory resources with estimated time to exhaustion —
get_trend_analysis Analyze performance trends for CPU, memory, and disk I/O —

Arguments

Tool Argument Type Required Default Description
get_historical_metrics period string no 1h Time period for historical data: 1h, 24h, or 7d (default: 1h)
get_trend_analysis period string no 1h Time period for trend analysis: 1h, 24h, or 7d (default: 1h)

Scope: alerts

Automation and alerting: alert status, remediation suggestions and runbook recommendations. 3 tools. Over HTTP an identity needs the grant alerts, mcp:tools:alerts or * to list or call them; --scopes alerts registers only this scope.

Tool Description Platform
get_alert_status Get current system alert status including CPU, memory, disk, and network alerts —
get_remediation_suggestions Get remediation suggestions based on current system issues and alerts —
get_runbook_recommendations Get runbook recommendations based on current system state and active issues —

Scope: compliance

Security and compliance: security scan, framework compliance checks, forensic snapshot, audit trail and hardening recommendations. 5 tools. Over HTTP an identity needs the grant compliance, mcp:tools:compliance or * to list or call them; --scopes compliance registers only this scope.

Tool Description Platform
get_security_scan Perform a security vulnerability scan checking for common misconfigurations and vulnerabilities —
get_compliance_check Perform compliance checks against security frameworks (CIS, PCI-DSS, HIPAA, STIG) —
get_forensic_snapshot Collect a forensic snapshot including running processes, network connections, loaded modules, and user sessions —
get_audit_trail Retrieve security audit events including authentication, privilege escalation, and service events —
get_hardening_recommendations Get security hardening recommendations based on current system configuration —

Arguments

Tool Argument Type Required Default Description
get_compliance_check framework string no basic Compliance framework to check against: cis, pci, hipaa, stig (default: basic)
get_audit_trail hours integer no 24 Number of hours of audit history to retrieve (default: 24)

Scope: consumer

Consumer and workstation diagnostics: Bluetooth, audio, printers, displays, Windows Update and Defender status, crashes and minidumps, boot timing, VPN, activation, System Restore, Appx packages, power plans, startup impact, fonts, Internet Explorer extensions, browser plug-ins and URL scheme handlers. 27 tools. Over HTTP an identity needs the grant consumer, mcp:tools:consumer or * to list or call them; --scopes consumer registers only this scope.

Tool Description Platform
get_bluetooth_devices Get Bluetooth devices and adapter status (Windows only, stubs on other platforms) Windows
get_audio_devices Get audio playback and recording devices (Windows only, stubs on other platforms) Windows
get_printers Get printer information and spooler status (Windows only, stubs on other platforms) Windows
get_display_config Get display/monitor configuration and video adapters (Windows only, stubs on other platforms) Windows
get_windows_update_status Get Windows Update pending updates, history, and failures (Windows only) Windows
get_defender_status Get Windows Defender status including real-time protection and signature info (Windows only) Windows
get_minidump_analysis Get BSOD bugcheck analysis from minidump files (Windows only) Windows
get_boot_timing Get boot phase timings from Windows diagnostics (Windows only) Windows
get_security_features Get VBS, HVCI, TPM, Secure Boot, BitLocker status (Windows only) Windows
get_driver_details Get all device drivers with version and signing info (Windows only) Windows
get_shell_extensions Get Explorer shell extensions (Windows only) Windows
get_search_index_status Get Windows Search indexer health and status (Windows only) Windows
get_vpn_connections Get VPN profiles and connection status (Windows only) Windows
get_app_crashes Get application crash history from Windows Error Reporting (Windows only) Windows
get_activation_status Get Windows license and activation state (Windows only) Windows
get_system_restore_status Get System Restore points and configuration (Windows only) Windows
get_appx_packages Get UWP/AppX/MSIX packages inventory (Windows only) Windows
get_power_plan Get active power plan and settings (Windows only) Windows
get_startup_impact Get startup programs with impact rating (Windows only) Windows
get_network_profiles Get network location profiles (Public/Private/Domain) (Windows only) Windows
get_storage_sense Get Storage Sense configuration and cleanup settings (Windows only) Windows
get_default_apps Get default file type associations (Windows only) Windows
get_virtual_memory_config Get pagefile and virtual memory settings (Windows only) Windows
get_installed_fonts Get installed font inventory (Windows only) Windows
get_ie_extensions Get Internet Explorer browser helper objects, toolbars and toolbar/menu extensions from fixed registry keys (HKLM, 32-bit view, and the running account's HKCU) with the COM server path (Windows only, max 200) Windows
get_browser_plugins Get legacy NPAPI-style browser plug-ins from fixed system and per-user plug-in directories (Linux, macOS Internet Plug-Ins) or the MozillaPlugins registry keys (Windows) (max 200) Linux
get_url_scheme_handlers Get URL scheme handler registrations and default handler choices: .desktop x-scheme-handler entries and mimeapps.list (Linux), app bundle CFBundleURLTypes and per-user Launch Services choices (macOS), HKCR URL protocols and the running account's UserChoice (Windows). Commands are redacted (max 500 handlers, 500 defaults) Linux

Scope: sensitive

Sensitive data: authentication logs, environment variables (system and per-process), user accounts, sudo and SSH configuration, MAC status, certificates and macOS TCC permissions, execution evidence (prefetch, BAM, ShimCache, UserAssist, ShellBags, Office MRU), logon sessions, process events, SSH keys and known hosts, shell history, password status, kernel keys, DNS cache, container environments and print jobs. Opt-in at registration. 31 tools. Over HTTP an identity needs the grant sensitive, mcp:tools:sensitive or * to list or call them; --scopes sensitive together with --enable-sensitive registers only this scope.

Tool Description Platform
get_auth_logs Get authentication logs (requires 'sensitive' scope) —
get_env_vars Get system environment variables (sensitive values redacted) —
get_user_accounts Get local user accounts and groups —
get_sudo_config Get sudo/privilege escalation configuration (Unix-like systems) —
get_ssh_config Get SSH server and client configuration —
get_mac_status Get Mandatory Access Control status (SELinux/AppArmor on Linux) —
get_certificates Get SSL/TLS certificates from system trust store with expiry information —
get_process_environ Get environment variables for a specific process (Linux only) Linux
get_macos_tcc_permissions Get TCC (Transparency, Consent, and Control) permissions summary (macOS only, sensitive) macOS
get_ssh_known_hosts Get SSH known_hosts entries for each local user and the system-wide file: host patterns (hashed entries stay hashed), marker, key type, bits and SHA256 fingerprint. Fixed paths, symlinks refused, capped at 500 entries; other users' files need root —
get_user_ssh_keys Get private SSH keys found in each local user's ~/.ssh: format, whether passphrase-protected, cipher/KDF, key type, bits, public-key fingerprint, loose file permissions and weak key flags. Never returns key material; reads only key headers. Capped at 500 keys —
get_user_ssh_client_config Get each local user's ~/.ssh/config (and the system ssh_config) with redacted option values and risky settings flagged (ProxyCommand, LocalCommand, StrictHostKeyChecking no, agent/X11 forwarding, legacy algorithms). Includes followed only inside the same directory, depth 2, 500 options per file —
get_account_password_status Get per-account password state: empty, locked, no password, hash algorithm and weak-hash flag, last change, age limits, never-expires and expired flags. Linux reads /etc/shadow (root required), Windows uses Get-LocalUser; hashes are never returned; macOS unsupported —
get_shell_history Get the most recent shell commands per local user from bash, zsh, sh, fish and PowerShell history files, with credentials redacted. Reads only the last 256 KiB of each file, returns up to 'limit' commands per file (default 50, max 200) and 2000 in total; other users need root —
get_kernel_keys Get Linux kernel keyring entries from /proc/keys: serial, flags, usage, timeout, permissions, owner, type and description. Metadata only, never payloads; only keys visible to the collector's user; capped at 500 (Linux only) Linux
get_dns_cache_entries Get names held in the local DNS resolver cache with record type (no record data). Windows uses Get-DnsClientCache; Linux uses resolvectl show-cache (systemd-resolved, root required); macOS unsupported. Capped at 500 —
get_process_env_names Get the environment variable names of a process with a flag for credential-like values, and redacted values only when include_values is true. Linux (/proc) and macOS (kern.procargs2); other users' processes need root; capped at 500 variables —
get_container_envs Get configured environment variables of Docker containers, names with values passed through the secret redactor (one container, or up to 500 containers and 200 variables each) —
get_process_events Process start/exit history from an in-memory ring buffer (4000 events) that starts polling the process list on the first call to an event tool, plus exec records from the Linux audit log, Windows Security 4688/4689 and Sysmon 1/5 events when readable (last 500 per source). History begins when the monitor started; short-lived processes between 2-second polls can be missed; command lines redacted and capped at 1024 characters; no eBPF, ETW or Endpoint Security probes —
get_macos_account_policy Get per-user account policy counters for local users: failed login count and time, password last-set time and age, account creation time (no password material; capped at 100 users; macOS only) macOS
get_macos_quicklook_cache Get files that have QuickLook thumbnails cached for the user the server runs as (path, hit count, last hit), most recent first; reveals viewed files (macOS only; capped at 200; fixed read-only query) macOS
get_cups_print_jobs Get pending and recently completed CUPS print jobs (job id, queue, user, size, time) from lpstat; document titles are never collected (macOS and Linux; capped at 200) —
get_windows_prefetch Windows only: list prefetch files in the fixed %SystemRoot%\Prefetch directory with executable name, path hash, run count, last 8 run times and volume serials (header metadata only, never the lists of touched files; newest 500; needs administrator; reports whether the prefetcher is enabled) Windows
get_windows_bam_activity Windows only: per-user last execution time of programs recorded by the Background Activity Moderator service (fixed HKLM bam\State\UserSettings key; newest 500; needs administrator) Windows
get_windows_shimcache Windows only: application compatibility cache (shimcache) entries decoded from the fixed AppCompatCache registry value: path, file modification time and, on Windows 7/8, the execution flag (first 500 in cache order) Windows
get_windows_userassist Windows only: Explorer UserAssist launch counters per user (decoded program or shortcut path, run count, focus count/time, last run) from hives already loaded under HKEY_USERS (newest 500; logged-off users are not read) Windows
get_windows_shellbags Windows only: folders users browsed in Explorer, rebuilt from BagMRU shellbag data in loaded user hives (path, item type, FAT timestamps, MFT reference; capped at 500; logged-off users are not read) Windows
get_windows_office_mru Windows only: Microsoft Office recently opened files (application, version, path, last opened time) from File MRU keys of loaded user hives (newest 500; logged-off users are not read) Windows
get_powershell_script_blocks Windows only: PowerShell script-block logging events (ID 4104) from the Microsoft-Windows-PowerShell/Operational log, reassembled per script block with secrets redacted and text capped at 4096 characters, plus the logging policy state (time window up to 168 hours, up to 1000 events) Windows
get_ntfs_usn_journal Windows only: most recent NTFS change journal (USN) records of the system volume: file name, change reasons, attributes, file and parent references (reads at most the last 4 MB of the journal; no full paths; needs administrator) Windows
get_windows_logon_sessions Get LSA logon sessions with user, domain, logon type (interactive, network, service, remote interactive) and authentication package (NTLM, Kerberos), plus counts of NTLM network logons (Windows only; capped at 500; sensitive: per-user activity) Windows

Arguments

Tool Argument Type Required Default Description
get_auth_logs lines integer no 50 Number of log lines to return
get_process_environ pid integer yes — Process ID to get environment for
get_shell_history limit integer no — Commands per history file (default 50, max 200)
get_shell_history user string no — Only read this local account's history (account name)
get_process_env_names include_values boolean no — Also return values after credential redaction (default false)
get_process_env_names pid integer yes — Process ID
get_container_envs container_id string no — Optional container ID, ID prefix or name; omit for all containers
get_process_events include_system_logs boolean no true Also read the platform's own event records (audit log, Windows event logs, macOS unified log) for history before the monitor started (default true)
get_process_events limit integer no 500 Maximum events to return, newest first (default 500, max 1000) (minimum 1, maximum 1000)
get_process_events log_hours integer no 24 How many hours of platform event records to read (default 24, max 168; macOS unified log capped at 24) (minimum 1, maximum 168)
get_process_events since_seconds integer no 0 Only return events from the last N seconds (0 = everything buffered or read) (minimum 0, maximum 604800)
get_powershell_script_blocks hours integer no 24 How many hours back to read (default 24, max 168) (minimum 1, maximum 168)
get_powershell_script_blocks max_events integer no 200 Maximum log events to read before reassembly (default 200, max 1000) (minimum 1, maximum 1000)
get_ntfs_usn_journal max_records integer no 200 Maximum records to return, newest first (default 200, max 500) (minimum 1, maximum 500)

Built 2026-09-28. Found a mistake? Tell us.