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": trueand one text item of the formError: <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:
-32602Tool not found, withdataset to the requested name. A tool that exists in the source but was excluded at registration, for example asensitivetool when--enable-sensitiveis off, is reported exactly like a tool that never existed.-32003Forbidden, withdataof the formtool "<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 theSECRONYX_SCOPESenvironment variable: a comma-separated list of scopes to register. Empty, the default, means every scope exceptsensitive.--enable-sensitive, orSECRONYX_ENABLE_SENSITIVE=1: permits registration of thesensitivescope. It is required even whensensitiveappears in--scopes;--scopes sensitiveon 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' --jsonHow this differs from a tools/call:
- No scope policy.
--querybuilds its own in-process registry with every scope enabled,sensitiveincluded, sosensitivetools run without--enable-sensitiveand--scopeshas no effect. It runs the same handler, with the same schema, thattools/callruns. 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-auditto skip that), but the tool-call event is written by the MCPtools/callhandler, which--querydoes not pass through. Redaction, by contrast, is applied inside the collectors, so--redact(on by default) and--no-redactgovern--queryoutput as they govern MCP results; see Redaction. - Output format. With
--jsonthe 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 printsError: unknown query '<name>'andUse --help to see available queries.to stderr and exits with status 1; a collector error printsError: <message>and exits 1. Startup warnings such asWARNING: audit logging is DISABLEDgo to stderr. - Arguments come from
--args, a JSON object in the same shape as theargumentsof atools/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;--argsthat is not a JSON object prints an error beginningError: --args must be a JSON objectand 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 examplesecronyx --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/calland to--query. - Description: the
descriptionstring the server returns, verbatim. - Platform: the restriction stated in that description, if any (see above).
- Argument, Type, Required, Default: taken from
inputSchema.propertiesandinputSchema.required. Where a property carries anenum, or aminimumormaximum, 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/ |
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/ |
— |
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.