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