> ## Documentation Index
> Fetch the complete documentation index at: https://docs.unpage.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# AWS

The [AWS](https://aws.amazon.com/) plugin provides access to the following
resources from Amazon Web Services:

<AccordionGroup>
  <Accordion title="Knowledge Graph nodes" icon="diagram-project">
    * EC2 Instances
    * RDS Databases
    * S3 Buckets
    * Application Load Balancers (ALB)
    * Classic Load Balancers (ELB)
    * ALB Target Groups
    * EBS Volumes
  </Accordion>

  <Accordion title="Metrics" icon="chart-line">
    **EC2 Instances:**

    * CPU Utilization
    * Network In/Out
    * Status Check Failed
    * EBS Read/Write Bytes

    **RDS Databases:**

    * CPU Utilization
    * Database Connections
    * DB Load Relative to vCPUs
    * Free Storage Space
    * Network Receive Throughput
    * Read/Write IOPS
    * Read/Write Throughput

    **Application Load Balancers:**

    * Request Count
    * HTTP Response Codes (2XX, 3XX, 4XX, 5XX)
    * Healthy/Unhealthy Host Count
    * Target Response Time

    **Classic Load Balancers:**

    * Request Count
    * HTTP Backend Response Codes
    * Healthy/Unhealthy Host Count
    * Latency

    **S3 Buckets:**

    * Bucket Size (Bytes)
    * Number of Objects
    * Request metrics (Get, Put, Delete, etc.)
  </Accordion>

  <Accordion title="MCP Tools" icon="wrench">
    * **get\_realtime\_instance\_status**: Get real-time status information for an EC2 instance
    * **get\_realtime\_instance\_status\_by\_node**: Get instance status using a knowledge graph node ID
  </Accordion>
</AccordionGroup>

## Prerequisites

You should have AWS credentials configured through one of the following methods:

* **AWS CLI Profile**: Use `aws configure` to set up a named profile, or have the [AWS CLI](https://aws.amazon.com/cli/) installed and authenticated
* **Environment Variables**: Set `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`, and optionally `AWS_SESSION_TOKEN`
* **IAM Roles**: If running on AWS infrastructure (EC2, Lambda, etc.)
* **AWS SSO**: If using AWS Single Sign-On, ensure you can run `aws sso login`

The plugin follows the [standard AWS credential provider chain](https://docs.aws.amazon.com/sdkref/latest/guide/standardized-credentials.html).

## Configuration

Configure the AWS plugin by running `uv run unpage configure` or by editing
the `~/.unpage/profiles/<profile_name>/config.yaml` file:

```yaml theme={null}
plugins:
  # ...
  aws:
    enabled: true
    # Optional: specify an AWS profile
    accounts:
      default:
        profile: "my-aws-profile"
```

If no profile is specified, the plugin will use the default AWS credential providers.

## Tools

The AWS plugin provides the following tools to Agents and MCP Clients:

<Card title="get_realtime_instance_status">
  Get real-time status information for an EC2 instance directly from AWS API.

  **Arguments**

  <ParamField path="instance_id" type="string" required>
    The EC2 instance ID (e.g., "i-0abcd1234efgh5678").
  </ParamField>

  <ParamField path="region" type="string" required>
    The AWS region where the instance is located (e.g., "us-east-1").
  </ParamField>

  **Returns** `dict | string`: A dictionary containing instance status information or an error message if the instance couldn't be found.

  Example response:

  ```json theme={null}
  {
    "InstanceId": "i-0abcd1234efgh5678",
    "InstanceState": { "Code": 16, "Name": "running" },
    "AvailabilityZone": "us-east-1a",
    "SystemStatus": { "Status": "ok" },
    "InstanceStatus": { "Status": "ok" }
  }
  ```
</Card>

<br />

<Card title="get_realtime_instance_status_by_node">
  Get real-time status information for an EC2 instance using a node ID from the knowledge graph.

  **Arguments**

  <ParamField path="node_id" type="string" required>
    The node ID from the knowledge graph (e.g., "aws\_ec2\_instance:i-0abcd1234efgh5678").
  </ParamField>

  **Returns** `dict | string`: Same as `get_realtime_instance_status` or an error message if the node doesn't exist, isn't an EC2 instance, or the instance couldn't be found.
</Card>
