Systems Manager
FreeNot checkedEnables AI agents to manage system updates, application installations, and remote host orchestration through MCP tools.
About
Enables AI agents to manage system updates, application installations, and remote host orchestration through MCP tools.
README
Version: 2.1.0
systems-manager is the typed host-operations provider for Agent Utilities and
GraphOS. It exposes cross-platform package, service, process, network, disk,
managed-file, firewall, physical-storage, Agent OS, and privacy-safe host-ingestion
capabilities without exposing a raw command tool.
The current package requires Python 3.11–3.14 and
agent-utilities>=2.0.0,<3.0.0.
Install and run
Install only the interface you need:
pip install "systems-manager[mcp]"
systems-manager-mcp --transport stdio
The optional extras are:
| Extra | Capability |
|---|---|
mcp |
FastMCP provider runtime |
agent |
Agent server and Logfire integration |
all |
MCP plus agent runtime |
test |
Test dependencies |
For an ephemeral MCP launch:
uvx --from "systems-manager[mcp]" systems-manager-mcp --transport stdio
The checked-in mcp_config.json is a reference-only client catalog. It contains
env:// references and safe deny defaults, never deployment endpoints, credentials,
certificate paths, filesystem paths, hostnames, or identities. Project-specific values
belong in AgentConfig or the process launcher.
Security contract
- Network MCP listeners require configured authentication. Non-loopback listeners also require direct TLS or a trusted TLS-terminating proxy, exact allowed hosts, and the current Agent Utilities transport checks.
- Host mutations are denied unless
SYSTEMS_MANAGER_ALLOW_HOST_MUTATIONS=trueand the individual request receives destructive-operation approval. - Managed-file writes additionally require
SYSTEMS_MANAGER_ALLOW_FILESYSTEM_MUTATIONS=true. - Sensitive reads and active probes have independent default-deny gates.
- Managed paths are confined beneath an explicit
SYSTEMS_MANAGER_FILESYSTEM_ROOT; there is no working-directory fallback. - Raw shell, arbitrary commands, plaintext credentials, model-authored cron creation, and compatibility command aliases are not capabilities.
- Logs and observability are metadata-only. Keep
LANGFUSE_CAPTURE_CONTENT=false.
AgentConfig, secrets, and TLS
Use TLS_PROFILE / TLS_PROFILE_REF with TLS_PROFILES_REF for shared verified
outbound trust. Service-specific profiles such as OIDC_TLS_PROFILE_REF,
MODEL_TLS_PROFILE_REF, and LANGFUSE_TLS_PROFILE_REF may select entries from the
same runtime catalog. Do not hardcode CA paths or verification flags in application
code, and do not disable verification for incomplete certificate chains.
Out-of-band BMC health reads consume one runtime secret projection from
SYSTEMS_MANAGER_BMC_CREDENTIALS. AgentConfig resolves the checked env:// or secret
reference before launch; the provider accepts exactly a JSON object with host, user,
and password. No secret-store vendor, secret path, token, or credential value is
embedded in this package.
The MCP listener's own certificate or trusted-proxy boundary uses the current Agent
Utilities MCP_TLS_* configuration. The optional agent listener uses SERVER_TLS_*
and requires JWT configuration for non-loopback serving.
MCP tools
The default MCP_TOOL_MODE=intent exposes the small intent-verb surface. Backing
action-routed tools stay available for governed discovery and on-demand loading. Tool
and tag filters can further reduce the visible surface.
Auto-generated from the live MCP server; do not edit between the markers.
Condensed action-routed tools (MCP_TOOL_MODE=condensed)
| MCP Tool | Toggle Env Var | Description |
|---|---|---|
capture_system_snapshot |
OS_PROVIDERTOOL |
Takes a point-in-time snapshot of the system state (CPU, RAM, Processes). |
get_management_capabilities |
— | |
get_network_connections |
OS_PROVIDERTOOL |
Maps active TCP/UDP endpoints directly to owning processes. |
get_process_details |
OS_PROVIDERTOOL |
Retrieves deep cross-platform process details (threads, modules, memory). |
health_check |
— | |
list_kernel_modules |
OS_PROVIDERTOOL |
List loaded drivers/modules (lsmod or driverquery). |
list_services |
OS_PROVIDERTOOL |
Cross-platform service enumeration (systemctl or Get-Service). |
manage_service |
OS_PROVIDERTOOL |
Start/Stop/Restart/Enable/Disable services cross-platform. |
query_system_logs |
OS_PROVIDERTOOL |
Cross-platform log querying (journalctl or Get-WinEvent). |
sm_advanced_operations |
— | Operations for SSH and specialized managers |
sm_agent_identity_operations |
IDENTITYTOOL |
Issues or verifies privacy-preserving agent identities. |
sm_agent_scheduler_operations |
AGENT_HEALTHTOOL |
Manages the cognitive scheduler: get stats, list processes, preempt, or reset quota. |
sm_agent_specialist_operations |
SPECIALIST_REGISTRYTOOL |
Manages specialist packages: install, uninstall, list, or search. |
sm_agent_watchdog_operations |
WATCHDOGTOOL |
Manages file watchdog triggers: check file change, list active watchers, or drain triggers. |
sm_cron_operations |
— | Operations for cron jobs |
sm_disk_operations |
— | Operations for managing system disks |
sm_file_operations |
— | Operations for file and log management |
sm_firewall_operations |
— | Operations for firewall management |
sm_network_operations |
— | Operations for network analysis |
sm_process_operations |
— | Operations for managing system processes |
sm_service_operations |
— | Operations for managing system services |
sm_storage_health |
STORAGE_HEALTHTOOL |
Physical disk + BMC drive-fault health: SMART (incl. megaraid passthrough), |
sm_system_operations |
— | System operations for managing packages, system health, and updates |
sm_user_operations |
— | Operations for user and group management |
start_system_trace |
OS_PROVIDERTOOL |
Start a kernel-level event trace (ETW on Windows, or strace on Linux). |
stop_system_trace |
OS_PROVIDERTOOL |
Stop a kernel-level event trace. |
systems_ingest_host |
— | Ingest a keyed host telemetry projection through the governed ChangeEnvelope boundary as typed HardwareNode, NetworkInterface, and DiskVolume nodes. |
27 action-routed tool(s) · 0 verbose 1:1 tool(s). Each is enabled unless its <DOMAIN>TOOL toggle is set false; MCP_TOOL_MODE selects the surface (intent default — the six verb-tools, granular set loaded on demand · condensed action-routed · verbose 1:1 · both). Auto-generated — do not edit.
Typical backing domains include OS/package lifecycle, services, processes, networks, disks, managed files, cron removal, structured firewall rules, storage/BMC diagnostics, Agent OS administration, and governed host telemetry ingestion. Discover an action schema before calling it; unavailable operations must not be emulated with another tool.
Knowledge-graph ingestion
systems_ingest_host reads local typed telemetry and submits an allowlisted projection
through the Agent Utilities native governed ingestion boundary. It emits only:
HardwareNode,NetworkInterface, andDiskVolumenodes;hasInterfaceandhasVolumerelationships;- HMAC-SHA-256 opaque identifiers derived with the deployment-owned
SYSTEMS_MANAGER_PSEUDONYMIZATION_KEY.
Hostnames, network addresses, hardware addresses, usernames, local paths, credentials, and arbitrary extra fields are rejected or excluded. Missing graph authority, invalid content, and unavailable ingestion fail explicitly; they are not silent no-ops.
GraphOS delegation
Host operations execute inside the service's local operating-system boundary. For fleet work, GraphOS delegates to an authenticated systems-manager service on the target boundary. Inventory, endpoints, credentials, TLS profiles, and target aliases remain external deployment configuration. Persist only opaque, non-personal references.
The bundled systems-manager-operations skill covers every current provider workflow.
Older BMC command and NIC-bond script skills were consolidated because those raw-script
surfaces are not part of the typed current contract.
Agent server
Install the agent extra and launch:
pip install "systems-manager[agent]"
systems-manager-agent --help
Workspace, MCP catalog, and custom-skill paths are accepted only when explicitly configured and present. There is no packaged-config or current-directory fallback. A non-loopback listener requires an explicit allow gate, direct or trusted-proxy TLS, JWT issuer/JWKS/audience configuration, and debug mode disabled.
Environment variables
The generated table is sourced from the value-free .env.example plus the inherited
Agent Utilities contract.
Package environment variables
| Variable | Example | Description |
|---|---|---|
SYSTEMS_MANAGER_FILESYSTEM_ROOT |
— | Required managed filesystem boundary |
SYSTEMS_MANAGER_TEMP_ROOT |
— | Optional cleanup root beneath the managed boundary |
SYSTEMS_MANAGER_PSEUDONYMIZATION_KEY |
secret-injected | Deployment-owned secret, at least 32 bytes |
SYSTEMS_MANAGER_BMC_CREDENTIALS |
— | Secret-projected JSON with host/user/password |
TLS_PROFILE |
— | Shared mandatory-verification transport profile |
TLS_PROFILES_REF |
— | Runtime reference to the transport profile catalog |
LANGFUSE_TLS_PROFILE_REF |
— | Runtime reference to verified Langfuse trust |
MCP_TOOL_MODE |
intent |
Current intent-first tool surface |
SYSTEMS_MANAGER_ALLOW_HOST_MUTATIONS |
false |
Default-deny host mutations |
SYSTEMS_MANAGER_ALLOW_FILESYSTEM_MUTATIONS |
false |
Default-deny file mutations |
SYSTEMS_MANAGER_ALLOW_SENSITIVE_READS |
false |
Default-deny sensitive inventory |
SYSTEMS_MANAGER_ALLOW_NETWORK_PROBES |
false |
Default-deny active probes |
SYSTEMS_MANAGER_MAX_BLOCKING_OPERATIONS |
2 |
Bounded host-operation concurrency |
SYSTEMS_MANAGER_HEALTH_INGEST |
true |
Enable governed health trend ingestion |
SYSTEMS_MANAGER_HEALTH_AGGREGATE_S |
3600 |
Health trend aggregation window |
SYSTEMS_MANAGER_NODE_REF |
— | Runtime node alias; only a keyed digest persists |
SYSTEMS_MANAGER_NODE_REFS |
— | Runtime aliases for governed derivation |
SYSTEMS_MANAGER_NOTIFY_URL |
— | Optional credential-free HTTPS notification target |
SYSTEMS_MANAGER_REPOSITORY_ALLOWLIST_JSON |
[] |
Approved credential-free repositories |
SYSTEMS_MANAGER_LOCAL_PACKAGE_SHA256_MAP |
{} |
Approved package paths and digests |
SYSTEMS_MANAGER_COMMAND_TIMEOUT_SECONDS |
120 |
Default command timeout |
SYSTEMS_MANAGER_ENV_METADATA_ALLOWLIST |
— | Non-sensitive environment names readable as metadata |
SYSTEMS_MANAGER_UV_VERSION |
— | Exact approved uv release |
SYSTEMS_MANAGER_NVM_COMMIT |
— | Exact approved NVM commit |
SYSTEMS_MANAGER_NVM_DIR |
— | NVM directory beneath the managed filesystem root |
ALLOW_UPDATE_ON_K8S |
false |
Keep Kubernetes lifecycle guard enabled |
MISCTOOL |
true |
Register base health/readiness tools |
OS_PROVIDERTOOL |
true |
Register operating-system provider tools |
STORAGE_HEALTHTOOL |
true |
Register storage health tools |
AGENT_HEALTHTOOL |
true |
Register agent health tools |
IDENTITYTOOL |
true |
Register identity tools |
SPECIALIST_REGISTRYTOOL |
true |
Register specialist registry tools |
WATCHDOGTOOL |
true |
Register filesystem watchdog tools |
MAX_CONCURRENT_AGENTS |
5 |
Agent scheduler limit |
AGENT_POLICIES_PATH |
— | Runtime policy location |
PERMISSIONS_SIGNING_KEY |
secret-injected | Runtime secret projection for identity signing |
SPECIALIST_REGISTRY_PATH |
— | Runtime specialist registry location |
MCP_CONFIG_PATH |
— | Runtime MCP catalog location |
PROJECT_ROOT |
— | Runtime automation boundary |
WORKSPACE_PATH |
— | Explicit agent workspace directory |
TRANSPORT |
stdio |
Local MCP transport |
HOST |
127.0.0.1 |
Loopback bind for HTTP transports |
PORT |
8000 |
Bind port for HTTP transports |
SYSTEMS_MANAGER_ALLOW_REMOTE_AGENT_SERVER |
false |
Explicit non-loopback agent-listener gate |
ENABLE_OTEL |
false |
Enable only with an approved collector |
LANGFUSE_CAPTURE_CONTENT |
false |
Never capture host/tool content |
SERVER_TRUSTED_PROXY_CIDRS |
— | Trusted proxy networks for a remotely served agent |
Inherited agent-utilities variables (apply to every connector)
| Variable | Example | Description |
|---|---|---|
MCP_ENABLED_TOOLS |
— | Comma-separated tool allow-list |
MCP_DISABLED_TOOLS |
— | Comma-separated tool deny-list |
MCP_ENABLED_TAGS |
— | Comma-separated tag allow-list |
MCP_DISABLED_TAGS |
— | Comma-separated tag deny-list |
EUNOMIA_TYPE |
none |
Authorization mode: none | embedded | remote |
EUNOMIA_POLICY_FILE |
mcp_policies.json |
Embedded Eunomia policy file |
EUNOMIA_REMOTE_URL |
— | Remote Eunomia authorization server URL |
OTEL_EXPORTER_OTLP_ENDPOINT |
— | OTLP collector endpoint |
MCP_CLIENT_AUTH |
— | Outbound MCP child auth: oidc-client-credentials | basic | none |
OIDC_CLIENT_ID |
— | OIDC client id (service-account auth) |
OIDC_CLIENT_SECRET_REF |
secret://identity/oidc-client-secret |
Runtime secret reference for the OIDC service account |
MCP_BASIC_AUTH_USERNAME |
— | HTTP Basic username (MCP_CLIENT_AUTH=basic) |
MCP_BASIC_AUTH_PASSWORD_REF |
secret://identity/mcp-basic-password |
Runtime secret reference for HTTP Basic auth (MCP_CLIENT_AUTH=basic) |
DEBUG |
False |
Verbose logging |
PYTHONUNBUFFERED |
1 |
Unbuffered stdout (recommended in containers) |
MCP_URL |
http://localhost:8000/mcp |
URL of the MCP server the agent connects to |
PROVIDER |
openai |
LLM provider for the agent |
MODEL_ID |
gpt-4o |
Model id for the agent |
ENABLE_WEB_UI |
True |
Serve the AG-UI web interface |
47 package + 19 inherited variable(s). Auto-generated from .env.example + the shared agent-utilities set — do not edit.
Development and release gates
pytest -q
ruff check systems_manager tests
black --check systems_manager tests
mkdocs build --strict
pre-commit run --all-files
Run host operations only through mocks during tests. Do not run native builds or live
host mutations as a validation shortcut. The source dependency floor is intentionally
agent-utilities>=2.0.0; regenerate and commit a neutral lock only after that release
is available from the configured package index. Never commit an editable local source
or a stale dependency resolution.
See the documentation for installation, deployment, configuration, usage, multi-host delegation, and security details.
Deploy with agent-utilities-deployment
Provision this package with the consolidated agent-utilities-deployment
workflow. It selects an installed-package, editable-source, or immutable-container
path; records only runtime secret and TLS-profile references in AgentConfig; and
runs doctor, registration, policy, observability, and rollback gates. Ask your agent
to "deploy systems-manager with agent-utilities-deployment".
| Install mode | Command |
|---|---|
| Installed package | uv tool install "systems-manager[mcp]", then run systems-manager-mcp |
| Editable source | uv pip install -e ".[agent]", then run systems-manager-mcp |
| Immutable container | deploy registry.example.invalid/systems-manager@sha256:<digest> through the operator-selected orchestrator |
The repository embeds no deployment profile, credential value, certificate path, or
environment-specific endpoint. Supply those at runtime through AgentConfig and the
configured secret provider.
Governed capability contract
This package ships a compact canonical skill surface with specialist procedures
kept as referenced workflows. The current MCP tools, skill metadata,
connector_manifest.yml, ontology, mappings, shapes, fixtures, migrations,
tool-schema fingerprints, and certification metadata form one versioned
capability contract. Validate them together; do not rely on stale tool names or
historical per-task skill wrappers.
Runtime endpoints, credentials, certificate trust, tenant identity, retention, and observability policy are deployment inputs and are never packaged values. See Configuration, trust, and privacy before enabling a network transport, connector ingestion, GraphOS delegation, or trace export.
Installing Systems Manager
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/Knuckles-Team/systems-managerFAQ
Is Systems Manager MCP free?
Yes, Systems Manager MCP is free — one-click install via Unyly at no cost.
Does Systems Manager need an API key?
No, Systems Manager runs without API keys or environment variables.
Is Systems Manager hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install Systems Manager in Claude Desktop, Claude Code or Cursor?
Open Systems Manager on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
Fetch
Web content fetching and conversion for efficient LLM usage.
AWS KB Retrieval
Retrieval from AWS Knowledge Base using Bedrock Agent Runtime.
by modelcontextprotocolSpring AI MCP Server
Provides auto-configuration for setting up an MCP server in Spring Boot applications.
llm-analysis-assistant
A very streamlined mcp client that supports calling and monitoring stdio/sse/streamableHttp, and can also view request responses through the /logs page. It also
by xuzexin-hzMCP-Agent
A simple, composable framework to build agents using Model Context Protocol by [LastMile AI](https://www.lastmileai.dev)
by lastmile-aiSpring AI MCP Client
Provides auto-configuration for MCP client functionality in Spring Boot applications.
mcp.natoma.ai
A Hosted MCP Platform to discover, install, manage and deploy MCP servers by [Natoma Labs](https://www.natoma.ai)
MCPHub
Website to list high quality MCP servers and reviews by real users. Also provide online chatbot for popular LLM models with MCP server support.
MCP Servers Rating and User Reviews
Website to rate MCP servers, write authentic user reviews, and [search engine for agent & mcp](http://www.deepnlp.org/search/agent)
mkinf
An Open Source registry of hosted MCP Servers to accelerate AI agent workflows.
Compare Systems Manager with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All ai MCPs
