Skip to main content
Glama
README.md
# CDK MCP Server

> Remote MCP server for buying video game keys, gift cards, and digital subscriptions through AI assistants. Payment in USDC on Base chain (x402 protocol) or credit card via Coinbase Onramp.

**Endpoint:** `https://mcp.cdk.bot/mcp`
**Transport:** streamable-HTTP
**Auth:** none for browsing; per-purchase x402 payment
**Status:** production

This repository documents the [CDK](https://cdk.bot) hosted remote MCP server. There is no installation — connect directly from any MCP-compatible client.

---

## Quick connect

### Claude Desktop / Claude Code
Add to your MCP servers config:
```json
{
  "mcpServers": {
    "cdk": {
      "url": "https://mcp.cdk.bot/mcp",
      "transport": "streamable-http"
    }
  }
}
```

### Cursor
Add to `~/.cursor/mcp.json`:
```json
{
  "mcpServers": {
    "cdk": {
      "url": "https://mcp.cdk.bot/mcp"
    }
  }
}
```

### Cline / Windsurf / Continue / Zed
Use the "Add MCP server" flow with URL `https://mcp.cdk.bot/mcp`.

### Programmatic (any MCP SDK)
```typescript
import { Client } from '@modelcontextprotocol/sdk/client/index.js';
import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp.js';

const client = new Client({ name: 'my-agent', version: '1.0.0' });
await client.connect(new StreamableHTTPClientTransport(new URL('https://mcp.cdk.bot/mcp')));
const tools = await client.listTools();
```

---

## Tools

| Tool | Purpose |
|---|---|
| `search_games` | Search the catalog by title, platform, device, region, language, product type. Returns paginated results with live competitor prices. |
| `get_game_details` | Single product details with live marketplace price comparison (G2A / ENEBA / KINGUIN). |
| `browse_filters` | List available platforms, devices, regions, languages, product types. |
| `get_price_quote` | Lock a USD price for a product for 5 minutes. Returns `quote_id` + payment instructions (USDC address, optional card_payment_url). |
| `confirm_purchase` | Submit `tx_hash` + `quote_id` to verify onchain USDC payment and receive the product key. |
| `check_order` | Get order status, delivery state, and key code (requires `wallet_address`). |
| `request_refund` | Submit a refund claim. Reasons: `not_delivered` (auto-approved), `key_invalid`, `key_already_redeemed`, `wrong_product`. |
| `submit_review` | Submit a public review for a completed order. |

---

## Payment

**USDC on Base chain (direct, instant)**
- Contract: `0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913`
- Verification: onchain ERC-20 Transfer log parsing via viem, 5 block confirmations
- Quote TTL: 5 minutes (price locked by `quote_id`)
- Double-spend protection: unique constraint on `tx_hash`

**Card / PayPal / Apple Pay / ACH via Coinbase Onramp**
- Provider: Coinbase Onramp (fiat → USDC on Base)
- Delivery: 5–15 minutes
- Coverage: 60+ countries
- One-time Coinbase KYC required (~2–3 min)

**Sandbox (Base Sepolia testnet)**
- Pass `"chain": "base-sepolia"` to `get_price_quote` and `confirm_purchase`
- Mock keys: `SANDBOX-XXXXX-...` (cannot be redeemed)
- Sepolia USDC: `0x036CbD53842c5426634e7929541eC2318f3dCF7e`
- Faucets: [Circle USDC](https://faucet.circle.com/), [Alchemy ETH gas](https://www.alchemy.com/faucets/base-sepolia)

---

## Refund policy

| Reason | SLA | Mechanism |
|---|---|---|
| `not_delivered` | Instant | Auto-approved when payment is confirmed but no key was issued |
| `key_invalid` | 24h | Verified via supplier |
| `key_already_redeemed` | 24h | Verified via supplier |
| `wrong_product` | 24h | Verified via supplier |

30-day dispute window from purchase date. Approved refunds paid in USDC back to the original sending wallet. Refund transaction hash provided as onchain proof.

---

## Discovery

| Endpoint | URL |
|---|---|
| MCP server card (SEP-1649) | https://mcp.cdk.bot/.well-known/mcp/server-card.json |
| Agent discovery manifest | https://api.cdk.bot/.well-known/agent.json |
| x402 capability descriptor | https://api.cdk.bot/.well-known/x402 |
| OpenAPI 3.1 spec | https://api.cdk.bot/openapi.json |
| Interactive docs (Swagger) | https://api.cdk.bot/docs |
| Health & live stats | https://api.cdk.bot/health |
| llms.txt | https://cdk.bot/llms.txt |

---

## Example: end-to-end purchase in Claude

```
> Buy Cyberpunk 2077 on Steam.

[Claude uses search_games → finds product]
[Claude uses get_price_quote → receives $24.99 quote_id]
[Claude shows you the card_payment_url and waits]

> [you click the link, pay $24.99 via card]

[Claude uses confirm_purchase with tx_hash from on-chain]
[Claude shows you the activation key]
```

Three MCP tool calls, one click for the user.

---

## Contact

- Website: https://cdk.bot
- Email: info@cdk.bot
- Terms of service: https://cdk.bot/terms

Built on Cloudflare Workers. Backend supply via licensed wholesale distributors.

---

## License

Documentation released under MIT. The MCP server itself is a hosted commercial service — see [terms](https://cdk.bot/terms).