Skip to main content
Glama
was-member-keramat

WAS Stape MCP

README.md
# WAS Stape MCP

Production-quality shareable Model Context Protocol (MCP) server for Stape.io — standard stdio transport, zero-server setup, interactive credential CLI, cross-platform support.

Exposes 10 tools to AI assistants (Claude, Cursor, Antigravity, VS Code, Zed) for automating server-side Google Tag Manager (sGTM) containers, Conversions API (CAPI) Gateways, custom domains, and power-ups.

## Prerequisites

- Node.js 18+
- A Stape.io account ([https://stape.io](https://stape.io))
- Stape Account API Key (`Account settings` -> `API Keys`)

## Quick start — 3 steps

### Step 1 — Get your Stape API Key

1. Log into your [Stape.io account](https://stape.io).
2. Click your account name at the top right -> **Account settings**.
3. Go to **API Keys** -> click **Create API key**.
4. Copy your key securely.

### Step 2 — Connect credentials

Run the interactive setup command:

```bash
npx -y github:was-member-keramat/was-stape-mcp auth
```

Credentials are validated against Stape.io and stored locally at `~/.was-stape-mcp/config.json` with secure file permissions (`0600`).

### Step 3 — Add to your AI client configuration

Add the following to your AI client's MCP configuration (`mcpServers` section):

#### Claude Desktop / Cursor / Antigravity Config (`claude_desktop_config.json` or `mcp_config.json`)

```json
{
  "mcpServers": {
    "WAS Stape MCP": {
      "command": "npx",
      "args": ["-y", "github:was-member-keramat/was-stape-mcp"]
    }
  }
}
```

---

## What you can ask the AI

Here are example prompts you can use with your AI coding assistant:

- **Discovery**: "List all my sGTM containers on Stape."
- **Inspection**: "Show details for container ID `cnt_12345`."
- **Domains**: "What custom domains are configured for my container?"
- **Provisioning**: "Create a new sGTM container named `my-ecommerce-sgtm` in the `us` region."
- **Logs & Traffic**: "Show me request statistics and bandwidth usage for the past 7 days."
- **Power-ups**: "Which power-ups are currently enabled for container `cnt_12345`?"
- **Raw API**: "Run a GET call to `/v1/container` using `stape_api`."

---

## All tools (10 total)

| Category | Tool Name | Description |
|---|---|---|
| **Account** | `stape_get_account` | Get account details, subscription plan, and usage stats |
| **Containers** | `stape_list_containers` | List sGTM and CAPI Gateway containers |
| **Containers** | `stape_get_container` | Get details for a specific container by ID |
| **Containers** | `stape_create_container` | Create a new sGTM or CAPI container |
| **Containers** | `stape_delete_container` | Delete or cancel a container by ID |
| **Domains** | `stape_list_domains` | List custom domains configured for a container |
| **Domains** | `stape_add_domain` | Add a custom domain to an sGTM container |
| **Analytics & Logs** | `stape_get_container_logs` | Get request statistics and traffic bandwidth |
| **Power-ups** | `stape_list_powerups` | List power-ups enabled on a container |
| **Universal** | `stape_api` | Raw API caller escape hatch (`method`, `path`, `body`) |

---

## CLI commands

| Command | Usage |
|---|---|
| `npx -y github:was-member-keramat/was-stape-mcp` | Start the MCP server (used by AI tools via stdio) |
| `npx -y github:was-member-keramat/was-stape-mcp auth` | Connect / re-connect Stape API Key |
| `npx -y github:was-member-keramat/was-stape-mcp status` | Display saved config location and timestamp |
| `npx -y github:was-member-keramat/was-stape-mcp logout` | Delete saved local credentials |
| `npx -y github:was-member-keramat/was-stape-mcp help` | Show CLI help text |

---

## Multi-account setup

You can override local config with environment variables (`STAPE_API_KEY`, `STAPE_BASE_URL`). This enables configuring multiple Stape accounts in your AI client:

```json
{
  "mcpServers": {
    "Stape Main": {
      "command": "npx",
      "args": ["-y", "github:was-member-keramat/was-stape-mcp"],
      "env": {
        "STAPE_API_KEY": "key_main_account_token"
      }
    },
    "Stape Client B": {
      "command": "npx",
      "args": ["-y", "github:was-member-keramat/was-stape-mcp"],
      "env": {
        "STAPE_API_KEY": "key_client_b_token"
      }
    }
  }
}
```

---

## Troubleshooting

### Windows Script Execution Error
If PowerShell blocks script execution:
```powershell
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned
```

### Windows `npx` Cache Issues
If updates aren't pulled automatically on Windows:
```powershell
Remove-Item -Recurse -Force "$env:LOCALAPPDATA\npm-cache" -ErrorAction SilentlyContinue
npm cache clean --force
```

### Invalid API Key Errors
Ensure you created an **Account API Key** (`Account settings` -> `API Keys`) and not a restricted single-container key unless you are targeting specific container scope.

---

## License

MIT License. Free to share, remix, redistribute. Author: `was-member-keramat`.

TDQS

B3.4/5.0

Scored across 10 tools

Disambiguation4/5

Most tools have distinct purposes (account, containers, domains, logs, powerups). However, the generic stape_api tool blurs boundaries, potentially causing misselection when a specific tool exists.

Naming Consistency4/5

All tools follow the stape_<verb>_<noun> pattern except for stape_api, which breaks the convention. The rest are consistent and predictable.

Tool Count5/5

10 tools cover the main aspects of Stape account and container management without being overwhelming. Each tool serves a clear purpose.

Completeness3/5

The set covers basic CRUD for containers and domain listing but lacks update/delete for domains, manage powerups, or update containers. The generic stape_api can fill gaps but the official tool surface has notable omissions.

Maintenance

ActivitySlowing
ResponsivenessNo issues