npm package: @striderlabs/mcp-att
Description: MCP server for AT&T telecom account management
Author: Strider Labs
Latest version: 1.0.0

# @striderlabs/mcp-att

MCP (Model Context Protocol) server for AT&T telecom account management. Automates att.com using Playwright with optional Browserbase cloud browser support.

## Tools

| Tool | Description |
|------|-------------|
| `get_account_overview` | Current plan, balance due, and usage summary |
| `get_usage_details` | Detailed data / call / text usage breakdown |
| `pay_bill` | Initiate a one-time bill payment |
| `get_bill_history` | View past bills |
| `check_upgrade_eligibility` | Check device upgrade eligibility for a line |

## Installation

```bash
npm install @striderlabs/mcp-att
```

Or use the tarball directly:

```bash
npm install /path/to/striderlabs-mcp-att-1.0.0.tgz
```

## Usage

### With Claude Desktop

Add to `~/Library/Application Support/Claude/claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "att": {
      "command": "npx",
      "args": ["-y", "@striderlabs/mcp-att"],
      "env": {
        "BROWSERBASE_CDP_URL": "wss://connect.browserbase.com?apiKey=YOUR_KEY"
      }
    }
  }
}
```

### With Browserbase (recommended for production)

Set the `BROWSERBASE_CDP_URL` environment variable to connect to a Browserbase cloud browser session:

```bash
BROWSERBASE_CDP_URL="wss://connect.browserbase.com?apiKey=YOUR_BROWSERBASE_API_KEY" node dist/index.js
```

If `BROWSERBASE_CDP_URL` is not set, a local headless Chromium browser is launched automatically.

### Running locally

```bash
npm run build
node dist/index.js
```

## Environment Variables

| Variable | Required | Description |
|----------|----------|-------------|
| `BROWSERBASE_CDP_URL` | No | Browserbase CDP WebSocket URL. If omitted, launches a local headless browser. |

## Tool Reference

### `get_account_overview`

Returns current plan name, account number, balance due, due date, and data usage summary.

**Input:**
```json
{
  "username": "your-att-email@example.com",
  "password": "your-password"
}
```

### `get_usage_details`

Returns data used/remaining, talk minutes, and text message counts for the current billing period.

**Input:**
```json
{
  "username": "your-att-email@example.com",
  "password": "your-password"
}
```

### `pay_bill`

Navigates to the payment page and pre-fills the amount. **Does not automatically submit the payment** — manual confirmation is required for security.

**Input:**
```json
{
  "username": "your-att-email@example.com",
  "password": "your-password",
  "amount": 85.00,
  "payment_method": "Visa ending in 4242"
}
```

### `get_bill_history`

Returns a list of past bills with dates and amounts.

**Input:**
```json
{
  "username": "your-att-email@example.com",
  "password": "your-password"
}
```

### `check_upgrade_eligibility`

Checks whether a line is eligible for a device upgrade and, if not, when it becomes eligible.

**Input:**
```json
{
  "username": "your-att-email@example.com",
  "password": "your-password",
  "line_number": "2125551234"
}
```

## Security Notes

- Credentials are passed per-call and are never stored or logged.
- The `pay_bill` tool intentionally does **not** auto-submit payments; it requires manual confirmation.
- Use Browserbase or another cloud browser provider so credentials are never processed on your local machine.

## Development

```bash
npm install
npm run build       # compile TypeScript → dist/
npm run dev         # run with ts-node (requires ts-node)
npm pack            # create tarball
```

## License

MIT