System information & packages tools
These tools let an AI assistant inspect a server’s hardware, OS, users, groups, network, disk, and installed software, and install or remove OS-level and Python packages. They answer requests like “what OS is web-01 running”, “is nginx installed on db-03”, or “install the requests package on web-01”.
All tools accept workspace (required) and region (optional, defaults to the configured region). These common parameters are omitted from the tables below.
Summary
| Tool | Description | Access |
|---|---|---|
get_system_info | Hardware specs: CPU model, core count, RAM, architecture | Read-only |
get_os_version | OS name, version, kernel version, distribution | Read-only |
list_system_users | OS-level user accounts (passwd entries) | Read-only |
list_system_groups | OS-level groups | Read-only |
list_system_packages | Installed OS packages (rpm/deb) | Read-only |
get_network_interfaces | Network interface configuration | Read-only |
get_disk_info | Disk devices and partition layout | Read-only |
get_system_time | System clock, timezone, and uptime | Read-only |
get_server_overview | Hardware, OS, time, network, and disk in one call | Read-only |
list_system_package_entries | Package management entries for a server | Read-only |
install_system_package | Install an OS package via the package manager | Additive |
remove_system_package | Remove a system package entry | Destructive |
list_python_packages | Installed Python packages | Read-only |
install_python_package | Install a Python package via pip | Additive |
remove_python_package | Remove a Python package entry | Destructive |
System information
get_system_info
Returns hardware and system specs for a server: CPU model, core count, total RAM, and architecture. Use this to check whether a server meets hardware requirements before deploying a workload.
Access: Read-only
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
server_id | string | Yes | Server ID (UUID) to get system info for |
Example
“What CPU and RAM does web-01 have?”
The assistant calls get_system_info and reports the CPU model, core count, RAM size, and architecture.
get_os_version
Returns OS name, version, kernel version, and Linux distribution info for a server. Use this to check OS compatibility or plan upgrades.
Access: Read-only
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
server_id | string | Yes | Server ID (UUID) to get OS info for |
Example
“What OS and kernel version is db-03 running?”
The assistant calls get_os_version and returns the distribution, version, and kernel.
list_system_users
Lists OS-level user accounts (passwd entries) on a server, including UID, home directory, shell, and group memberships. Filterable by username search or login-enabled status.
This is different from list_iam_users, which lists workspace-level IAM users rather than OS accounts on a server.
Access: Read-only
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
server_id | string | Yes | Server ID (UUID) to get users from |
username_filter | string | No | Search by username |
login_enabled_only | boolean | No | Only return users that can log in. Defaults to false |
Example
“List the login-enabled users on web-01”
The assistant calls list_system_users with login_enabled_only set to true and returns the matching accounts.
list_system_groups
Lists OS-level groups on a server, including GID and member lists. Filterable by group name search.
This is different from list_iam_groups, which lists workspace-level IAM groups rather than OS groups on a server.
Access: Read-only
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
server_id | string | Yes | Server ID (UUID) to get groups from |
groupname_filter | string | No | Search by group name |
Example
“What groups exist on db-03, and who’s in the docker group?”
The assistant calls list_system_groups, optionally filtering by name, and lists the members of each matching group.
list_system_packages
Lists installed OS packages (rpm/deb) on a server: package name, version, and architecture. Searchable by package name and filterable by architecture.
This reads the server’s live package inventory. For the package management entries created through install_system_package, see list_system_package_entries below.
Access: Read-only
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
server_id | string | Yes | Server ID (UUID) to get packages from |
package_name | string | No | Search by package name |
architecture | string | No | Filter by architecture (for example, x86_64, aarch64) |
limit | integer | No | Maximum number of packages to return. Defaults to 100 |
Example
“Is nginx installed on web-01, and what version?”
The assistant calls list_system_packages with package_name set to nginx and reports the matching entry.
get_network_interfaces
Returns network interface configuration for a server: interface names, IP addresses, MAC addresses, MTU, and link up/down status. Use this to understand network topology or troubleshoot connectivity.
Access: Read-only
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
server_id | string | Yes | Server ID (UUID) to get network interfaces for |
Example
“Show me the network interfaces on web-01”
The assistant calls get_network_interfaces and lists each interface with its IP, MAC address, and status.
get_disk_info
Returns physical disk devices and partition layout for a server: disk models, sizes, partition mount points, filesystem types, and capacity. Disk and partition data are fetched concurrently.
Access: Read-only
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
server_id | string | Yes | Server ID (UUID) to get disk info for |
Example
“How is disk space partitioned on db-03?”
The assistant calls get_disk_info and describes each disk’s partitions, mount points, and filesystem types.
get_system_time
Returns the current system clock time, timezone setting, and uptime duration for a server. Use this to check time synchronization or verify how long a server has been running.
Access: Read-only
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
server_id | string | Yes | Server ID (UUID) to get time info for |
Example
“What’s the current time and uptime on web-01?”
The assistant calls get_system_time and reports the clock time, timezone, and uptime.
get_server_overview
Returns a comprehensive snapshot of a server by combining get_system_info, get_os_version, get_system_time, get_network_interfaces, and get_disk_info into a single call, fetched concurrently. Use this instead of calling the individual system info tools when you need the full picture of a server at once. If one of the underlying checks fails, its section reports an error while the rest of the overview is still returned.
Access: Read-only
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
server_id | string | Yes | Server ID (UUID) to get the overview for |
Example
“Give me a full overview of web-01”
The assistant calls get_server_overview and summarizes hardware, OS, uptime, network, and disk in one response.
Package management
Two tools read package state: list_system_packages (above) reads the server’s live package inventory, while list_system_package_entries below reads the package management entries created through install_system_package and remove_system_package. Use the entries tools when you need an entry ID to remove a package.
list_system_package_entries
Lists system package management entries for a server: package names, versions, and installation details from the OS package manager. Use this to audit installed OS-level packages or to find the entry ID needed by remove_system_package.
Access: Read-only
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
server_id | string | Yes | Server ID (UUID) to list packages for |
page | integer | No | Page number for pagination |
page_size | integer | No | Number of items per page |
Example
“Show me the package entries for web-01”
The assistant calls list_system_package_entries and lists each entry with its name, version, and status.
install_system_package
Installs a system package on a server via the OS package manager. Optionally pins a specific version. The installation runs asynchronously on the target server, so a completed response confirms the request was accepted, not that installation has finished.
Access: Additive
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
server_id | string | Yes | Server ID (UUID) to install the package on |
package_name | string | Yes | Name of the package to install |
version | string | No | Specific version to install |
Example
“Install nginx on web-01”
The assistant calls install_system_package with package_name set to nginx and reports that the installation was submitted.
remove_system_package
Removes a system package entry by its ID, which triggers package removal on the target server. This does not accept a package name directly—call list_system_package_entries first to find the entry ID.
This is destructive and cannot be undone from the MCP tool itself. Confirm the entry ID belongs to the intended package before removing it.
Access: Destructive
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
entry_id | string | Yes | Package entry ID to remove (from list_system_package_entries) |
Example
“Remove the nginx package from web-01”
The assistant calls list_system_package_entries to find the entry ID for nginx, confirms it with you, then calls remove_system_package with that ID.
list_python_packages
Lists Python packages installed on a server: package names, versions, and installation details. Use this to audit Python dependencies or check for specific libraries.
Access: Read-only
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
server_id | string | Yes | Server ID (UUID) to list Python packages for |
page | integer | No | Page number for pagination |
page_size | integer | No | Number of items per page |
Example
“What Python packages are installed on web-01?”
The assistant calls list_python_packages and lists the installed packages with their versions.
install_python_package
Installs a Python package on a server via pip. Optionally pins a specific version. The installation runs asynchronously on the target server.
Access: Additive
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
server_id | string | Yes | Server ID (UUID) to install the package on |
package_name | string | Yes | Name of the Python package to install |
version | string | No | Specific version to install |
Example
“Install requests 2.31.0 on web-01”
The assistant calls install_python_package with package_name set to requests and version set to 2.31.0.
remove_python_package
Removes a Python package entry by its ID, which triggers package removal on the target server. This does not accept a package name directly—call list_python_packages first to find the entry ID.
This is destructive and cannot be undone from the MCP tool itself. Confirm the entry ID belongs to the intended package before removing it.
Access: Destructive
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
entry_id | string | Yes | Python package entry ID to remove (from list_python_packages) |
Example
“Remove the requests package from web-01”
The assistant calls list_python_packages to find the entry ID for requests, confirms it with you, then calls remove_python_package with that ID.
Related
- Server management tools - List servers and look up server IDs before calling these tools
- Monitoring & alerts tools - CPU, memory, and disk usage metrics over time
- Getting started - Connect an AI assistant to Alpacon over MCP