@xodn348/clawpay 0.2.1 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +127 -17
- package/dist/installer.d.ts +6 -0
- package/dist/installer.d.ts.map +1 -1
- package/dist/installer.js +172 -6
- package/dist/installer.js.map +1 -1
- package/dist/setup.d.ts.map +1 -1
- package/dist/setup.js +0 -1
- package/dist/setup.js.map +1 -1
- package/dist/stripe-cli.d.ts +22 -0
- package/dist/stripe-cli.d.ts.map +1 -0
- package/dist/stripe-cli.js +156 -0
- package/dist/stripe-cli.js.map +1 -0
- package/dist/types.d.ts +11 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -2
- package/skill/SKILL.md +64 -0
- package/Formula/clawpay.rb +0 -17
package/README.md
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
# ClawPay
|
|
9
9
|
|
|
10
|
-
Open-source
|
|
10
|
+
Open-source payment MCP server for AI agents. Works with Claude Code, OpenClaw, OpenCode, Claude Desktop, Cursor, and any MCP client.
|
|
11
11
|
|
|
12
12
|
> [!WARNING]
|
|
13
13
|
> ClawPay enables AI agents to make real financial transactions. Real money is involved.
|
|
@@ -21,38 +21,53 @@ Open-source Stripe MCP Server for AI Agents. Let Claude, OpenCode, and any MCP c
|
|
|
21
21
|
|
|
22
22
|
## Quick Start
|
|
23
23
|
|
|
24
|
+
### Option A — With Stripe CLI (Recommended)
|
|
25
|
+
|
|
26
|
+
Install Stripe CLI (if not already installed):
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
brew install stripe/stripe-cli/stripe
|
|
30
|
+
# or: npm install -g @stripe/stripe-cli
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Login to Stripe:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
stripe login
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Install and configure ClawPay (auto-detects your Stripe key):
|
|
40
|
+
|
|
24
41
|
```bash
|
|
25
42
|
npm install -g @xodn348/clawpay
|
|
26
43
|
clawpay install
|
|
27
44
|
```
|
|
28
45
|
|
|
29
|
-
|
|
46
|
+
### Option B — Without Stripe CLI
|
|
30
47
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
48
|
+
```bash
|
|
49
|
+
npm install -g @xodn348/clawpay
|
|
50
|
+
clawpay install
|
|
51
|
+
```
|
|
35
52
|
|
|
36
|
-
|
|
53
|
+
You'll be prompted to enter your Stripe Secret Key manually. Open [Stripe Dashboard → API Keys](https://dashboard.stripe.com/apikeys) to find it.
|
|
37
54
|
|
|
38
55
|
---
|
|
39
56
|
|
|
40
|
-
|
|
57
|
+
Auto-detects and configures **Claude Code, OpenClaw**, OpenCode, Claude Desktop, and Cursor.
|
|
41
58
|
|
|
42
|
-
|
|
43
|
-
# npm
|
|
44
|
-
npm install -g @xodn348/clawpay
|
|
59
|
+
> OpenClaw users: also run `npm install -g mcporter`
|
|
45
60
|
|
|
46
|
-
|
|
47
|
-
bun add -g @xodn348/clawpay
|
|
61
|
+
Once installed, ask your AI: **"set up payment method"**
|
|
48
62
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
```
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## Installation
|
|
53
66
|
|
|
54
67
|
Node.js 18 or higher is required.
|
|
55
68
|
|
|
69
|
+
For the quickest setup, use **Option A** above with Stripe CLI. For manual configuration, see the [Manual Configuration](#manual-configuration) section below.
|
|
70
|
+
|
|
56
71
|
---
|
|
57
72
|
|
|
58
73
|
## Manual Configuration
|
|
@@ -99,12 +114,91 @@ If auto-detection doesn't find your client, add ClawPay manually.
|
|
|
99
114
|
|
|
100
115
|
Same format as Claude Desktop above.
|
|
101
116
|
|
|
117
|
+
### Claude Code
|
|
118
|
+
|
|
119
|
+
Run in your terminal:
|
|
120
|
+
|
|
121
|
+
```bash
|
|
122
|
+
claude mcp add -s user clawpay \
|
|
123
|
+
-e STRIPE_SECRET_KEY=sk_test_... \
|
|
124
|
+
-e PAYPAL_CLIENT_ID=your-paypal-client-id \
|
|
125
|
+
-e PAYPAL_CLIENT_SECRET=your-paypal-client-secret \
|
|
126
|
+
-- clawpay
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
This registers ClawPay globally across all Claude Code projects. PayPal credentials are optional.
|
|
130
|
+
|
|
131
|
+
### OpenClaw
|
|
132
|
+
|
|
133
|
+
Install ClawPay and mcporter (the MCP bridge):
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
npm install -g @xodn348/clawpay mcporter
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
Or install the skill via ClawdHub:
|
|
140
|
+
|
|
141
|
+
```bash
|
|
142
|
+
clawdhub install clawpay
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
OpenClaw uses ClawPay through the mcporter bridge. Set your credentials as environment variables:
|
|
146
|
+
|
|
147
|
+
```bash
|
|
148
|
+
export STRIPE_SECRET_KEY=sk_test_...
|
|
149
|
+
export PAYPAL_CLIENT_ID=your-paypal-client-id # optional
|
|
150
|
+
export PAYPAL_CLIENT_SECRET=your-paypal-client-secret # optional
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
Then ask OpenClaw: **"set up my payment method"** to get started.
|
|
154
|
+
|
|
102
155
|
Replace `sk_test_...` with your actual Stripe secret key. Use a test key (`sk_test_`) during development and a live key (`sk_live_`) only in production.
|
|
103
156
|
|
|
104
157
|
PayPal credentials are optional. Required only to use the `send_paypal` tool.
|
|
105
158
|
|
|
106
159
|
---
|
|
107
160
|
|
|
161
|
+
## Usage Examples
|
|
162
|
+
|
|
163
|
+
Ask your AI agent naturally — ClawPay handles the rest.
|
|
164
|
+
|
|
165
|
+
**Register a card**
|
|
166
|
+
> "Set up my payment method"
|
|
167
|
+
|
|
168
|
+
Opens Stripe Checkout in your browser. Supports card, Google Pay, Apple Pay, Alipay, and more. Credentials are stored locally in `~/.clawpay/config.json`.
|
|
169
|
+
|
|
170
|
+
**Make a payment**
|
|
171
|
+
> "Pay $25 for the monthly subscription"
|
|
172
|
+
|
|
173
|
+
Charges the registered payment method. Amount, currency, and description are passed to Stripe automatically.
|
|
174
|
+
|
|
175
|
+
**Check balance**
|
|
176
|
+
> "What's my current Stripe balance?"
|
|
177
|
+
|
|
178
|
+
Returns available and pending balance from your Stripe account.
|
|
179
|
+
|
|
180
|
+
**View transactions**
|
|
181
|
+
> "Show my last 10 transactions"
|
|
182
|
+
|
|
183
|
+
Lists recent payment intents with status, amount, and description.
|
|
184
|
+
|
|
185
|
+
**Issue a refund**
|
|
186
|
+
> "Refund the last payment"
|
|
187
|
+
|
|
188
|
+
Issues a full refund for the specified payment intent ID.
|
|
189
|
+
|
|
190
|
+
**Connect PayPal**
|
|
191
|
+
> "Set up my PayPal account"
|
|
192
|
+
|
|
193
|
+
Links your PayPal credentials for P2P sending.
|
|
194
|
+
|
|
195
|
+
**Send money via PayPal**
|
|
196
|
+
> "Send $30 to friend@email.com for dinner"
|
|
197
|
+
|
|
198
|
+
Sends money via PayPal Payouts to an email address or phone number.
|
|
199
|
+
|
|
200
|
+
---
|
|
201
|
+
|
|
108
202
|
## MCP Tools Reference
|
|
109
203
|
|
|
110
204
|
ClawPay exposes seven tools over the MCP stdio protocol.
|
|
@@ -197,6 +291,22 @@ Any `pay` call that exceeds these limits is rejected before it reaches Stripe.
|
|
|
197
291
|
|
|
198
292
|
---
|
|
199
293
|
|
|
294
|
+
## Supported Payment Methods
|
|
295
|
+
|
|
296
|
+
ClawPay uses Stripe's [Dynamic Payment Methods](https://dashboard.stripe.com/settings/payment_methods), which automatically shows the best payment options for each customer.
|
|
297
|
+
|
|
298
|
+
| Method | Status | Notes |
|
|
299
|
+
|--------|--------|-------|
|
|
300
|
+
| Credit / Debit Card | ✅ Always available | All major cards |
|
|
301
|
+
| Apple Pay | ✅ Default on | Safari on Apple devices |
|
|
302
|
+
| Google Pay | ⚙️ Enable in Dashboard | Chrome with Google Wallet |
|
|
303
|
+
| Alipay | ⚙️ Enable in Dashboard | For Alipay users |
|
|
304
|
+
| Link | ⚙️ Enable in Dashboard | Stripe's one-click checkout |
|
|
305
|
+
|
|
306
|
+
To enable Google Pay, Alipay, or other methods, go to [Stripe Dashboard → Payment Methods](https://dashboard.stripe.com/settings/payment_methods) and toggle them on. No code changes required.
|
|
307
|
+
|
|
308
|
+
---
|
|
309
|
+
|
|
200
310
|
## Audit Log
|
|
201
311
|
|
|
202
312
|
Every action ClawPay takes is recorded to `~/.clawpay/audit.log` as JSON Lines (one JSON object per line).
|
package/dist/installer.d.ts
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
import { spawnSync } from "node:child_process";
|
|
2
|
+
export declare const _spawnSync: {
|
|
3
|
+
fn: typeof spawnSync;
|
|
4
|
+
};
|
|
5
|
+
export declare function installClaudeCode(stripeKey: string, paypalClientId?: string, paypalClientSecret?: string): Promise<boolean>;
|
|
6
|
+
export declare function installOpenClaw(): Promise<boolean>;
|
|
1
7
|
export declare function runInstall(): Promise<void>;
|
|
2
8
|
export declare function runUninstall(): Promise<void>;
|
|
3
9
|
//# sourceMappingURL=installer.d.ts.map
|
package/dist/installer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"installer.d.ts","sourceRoot":"","sources":["../src/installer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"installer.d.ts","sourceRoot":"","sources":["../src/installer.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAG/C,eAAO,MAAM,UAAU,EAAE;IAAE,EAAE,EAAE,OAAO,SAAS,CAAA;CAAsB,CAAC;AA2LtE,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,MAAM,EACjB,cAAc,CAAC,EAAE,MAAM,EACvB,kBAAkB,CAAC,EAAE,MAAM,GAC1B,OAAO,CAAC,OAAO,CAAC,CAgClB;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC,CAoBxD;AAGD,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CA6JhD;AAID,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAiClD"}
|
package/dist/installer.js
CHANGED
|
@@ -2,6 +2,9 @@ import { createInterface } from "node:readline";
|
|
|
2
2
|
import { promises as fs } from "node:fs";
|
|
3
3
|
import { homedir } from "node:os";
|
|
4
4
|
import { join, dirname } from "node:path";
|
|
5
|
+
import { spawnSync } from "node:child_process";
|
|
6
|
+
import { detectStripeKey } from "./stripe-cli.js";
|
|
7
|
+
export const _spawnSync = { fn: spawnSync };
|
|
5
8
|
async function pathExists(filePath) {
|
|
6
9
|
try {
|
|
7
10
|
await fs.stat(filePath);
|
|
@@ -20,6 +23,7 @@ async function isDirectory(dirPath) {
|
|
|
20
23
|
return false;
|
|
21
24
|
}
|
|
22
25
|
}
|
|
26
|
+
/* c8 ignore start */
|
|
23
27
|
async function readJsonSafe(filePath) {
|
|
24
28
|
try {
|
|
25
29
|
const content = await fs.readFile(filePath, "utf-8");
|
|
@@ -29,6 +33,8 @@ async function readJsonSafe(filePath) {
|
|
|
29
33
|
return {};
|
|
30
34
|
}
|
|
31
35
|
}
|
|
36
|
+
/* c8 ignore end */
|
|
37
|
+
/* c8 ignore start */
|
|
32
38
|
function askQuestion(question) {
|
|
33
39
|
return new Promise((resolve) => {
|
|
34
40
|
const rl = createInterface({
|
|
@@ -41,6 +47,8 @@ function askQuestion(question) {
|
|
|
41
47
|
});
|
|
42
48
|
});
|
|
43
49
|
}
|
|
50
|
+
/* c8 ignore end */
|
|
51
|
+
/* c8 ignore start */
|
|
44
52
|
function getMcpClients() {
|
|
45
53
|
const home = homedir();
|
|
46
54
|
return [
|
|
@@ -66,6 +74,8 @@ function getMcpClients() {
|
|
|
66
74
|
},
|
|
67
75
|
];
|
|
68
76
|
}
|
|
77
|
+
/* c8 ignore end */
|
|
78
|
+
/* c8 ignore start */
|
|
69
79
|
function buildClawPayEntry(stripeKey, mcpKey, paypalClientId, paypalClientSecret) {
|
|
70
80
|
if (mcpKey === "mcp") {
|
|
71
81
|
const environment = {
|
|
@@ -98,15 +108,151 @@ function buildClawPayEntry(stripeKey, mcpKey, paypalClientId, paypalClientSecret
|
|
|
98
108
|
},
|
|
99
109
|
};
|
|
100
110
|
}
|
|
111
|
+
/* c8 ignore end */
|
|
112
|
+
const SKILL_MD_CONTENT = `---
|
|
113
|
+
name: clawpay
|
|
114
|
+
description: Make payments with ClawPay via Stripe and PayPal. Use when user wants to pay, send money, charge, refund, check balance, view transactions, set up payment method, or configure PayPal. Triggers: pay, send money, charge, refund, balance, transactions, set up payment, set up paypal, google pay, apple pay, alipay.
|
|
115
|
+
homepage: https://github.com/xodn348/clawpay
|
|
116
|
+
metadata: {"openclaw":{"emoji":"💳","requires":{"bins":["mcporter","clawpay"]},"install":[{"id":"node","kind":"node","package":"@xodn348/clawpay","bins":["clawpay"],"label":"Install ClawPay (npm)"}]}}
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
# ClawPay — Stripe + PayPal Payments
|
|
120
|
+
|
|
121
|
+
Make real payments via Stripe and PayPal using mcporter bridge.
|
|
122
|
+
|
|
123
|
+
## Safety Rules
|
|
124
|
+
|
|
125
|
+
- **Never auto-confirm payments without explicit user approval.** Always preview first; ask for confirmation.
|
|
126
|
+
- **Guardrails enforced:** $100 max per transaction, $500 max per day, USD only.
|
|
127
|
+
- **Audit trail:** Every action logged to \`~/.clawpay/audit.log\`.
|
|
128
|
+
|
|
129
|
+
## Setup (once)
|
|
130
|
+
|
|
131
|
+
\`\`\`bash
|
|
132
|
+
mcporter call --stdio "clawpay" setup_payment
|
|
133
|
+
mcporter call --stdio "clawpay" setup_paypal
|
|
134
|
+
\`\`\`
|
|
135
|
+
|
|
136
|
+
## Stripe Payments
|
|
137
|
+
|
|
138
|
+
**Create payment:**
|
|
139
|
+
\`\`\`bash
|
|
140
|
+
mcporter call --stdio "clawpay" pay amount=1000 currency=usd description="Coffee"
|
|
141
|
+
\`\`\`
|
|
142
|
+
|
|
143
|
+
**Check balance:**
|
|
144
|
+
\`\`\`bash
|
|
145
|
+
mcporter call --stdio "clawpay" get_balance
|
|
146
|
+
\`\`\`
|
|
147
|
+
|
|
148
|
+
**List transactions:**
|
|
149
|
+
\`\`\`bash
|
|
150
|
+
mcporter call --stdio "clawpay" list_transactions limit=5
|
|
151
|
+
\`\`\`
|
|
152
|
+
|
|
153
|
+
**Refund payment:**
|
|
154
|
+
\`\`\`bash
|
|
155
|
+
mcporter call --stdio "clawpay" refund payment_intent_id=pi_xxx
|
|
156
|
+
\`\`\`
|
|
157
|
+
|
|
158
|
+
## PayPal Payouts
|
|
159
|
+
|
|
160
|
+
**Send money via PayPal:**
|
|
161
|
+
\`\`\`bash
|
|
162
|
+
mcporter call --stdio "clawpay" send_paypal recipientEmail=friend@example.com amount=2000 note="Lunch"
|
|
163
|
+
\`\`\`
|
|
164
|
+
|
|
165
|
+
Or by phone:
|
|
166
|
+
\`\`\`bash
|
|
167
|
+
mcporter call --stdio "clawpay" send_paypal recipientPhone=+12025551234 amount=2000
|
|
168
|
+
\`\`\`
|
|
169
|
+
|
|
170
|
+
## Notes
|
|
171
|
+
|
|
172
|
+
- Amounts in cents: \`1000\` = $10.00
|
|
173
|
+
- Currency default: \`usd\`
|
|
174
|
+
- PayPal requires either \`recipientEmail\` or \`recipientPhone\`
|
|
175
|
+
- All transactions logged with timestamps and status`;
|
|
176
|
+
export async function installClaudeCode(stripeKey, paypalClientId, paypalClientSecret) {
|
|
177
|
+
const whichResult = _spawnSync.fn("which", ["claude"], { encoding: "utf-8" });
|
|
178
|
+
if (whichResult.status !== 0) {
|
|
179
|
+
return false;
|
|
180
|
+
}
|
|
181
|
+
const args = [
|
|
182
|
+
"mcp", "add", "-s", "user",
|
|
183
|
+
"clawpay",
|
|
184
|
+
"-e", `STRIPE_SECRET_KEY=${stripeKey}`,
|
|
185
|
+
];
|
|
186
|
+
if (paypalClientId) {
|
|
187
|
+
args.push("-e", `PAYPAL_CLIENT_ID=${paypalClientId}`);
|
|
188
|
+
}
|
|
189
|
+
if (paypalClientSecret) {
|
|
190
|
+
args.push("-e", `PAYPAL_CLIENT_SECRET=${paypalClientSecret}`);
|
|
191
|
+
}
|
|
192
|
+
args.push("--", "clawpay");
|
|
193
|
+
try {
|
|
194
|
+
const result = _spawnSync.fn("claude", args, { encoding: "utf-8" });
|
|
195
|
+
if (result.status !== 0) {
|
|
196
|
+
const errMsg = result.stderr || "Unknown error";
|
|
197
|
+
console.log(` Warning: Claude Code configuration failed: ${errMsg.trim()}`);
|
|
198
|
+
return false;
|
|
199
|
+
}
|
|
200
|
+
console.log(" ✓ Claude Code configured");
|
|
201
|
+
return true;
|
|
202
|
+
} /* c8 ignore start */
|
|
203
|
+
catch (error) {
|
|
204
|
+
console.log(` Warning: Claude Code configuration failed: ${String(error)}`);
|
|
205
|
+
return false;
|
|
206
|
+
} /* c8 ignore end */
|
|
207
|
+
}
|
|
208
|
+
export async function installOpenClaw() {
|
|
209
|
+
const home = homedir();
|
|
210
|
+
const openClawDir = join(home, ".openclaw");
|
|
211
|
+
if (!(await isDirectory(openClawDir))) {
|
|
212
|
+
return false;
|
|
213
|
+
}
|
|
214
|
+
const skillDir = join(openClawDir, "workspace", "skills", "clawpay");
|
|
215
|
+
const skillFile = join(skillDir, "SKILL.md");
|
|
216
|
+
if (await pathExists(skillFile)) {
|
|
217
|
+
console.log(" clawpay skill already installed in OpenClaw — skipping");
|
|
218
|
+
return true;
|
|
219
|
+
}
|
|
220
|
+
await fs.mkdir(skillDir, { recursive: true });
|
|
221
|
+
await fs.writeFile(skillFile, SKILL_MD_CONTENT, "utf-8");
|
|
222
|
+
console.log(" ✓ OpenClaw skill installed");
|
|
223
|
+
return true;
|
|
224
|
+
}
|
|
225
|
+
/* c8 ignore start */
|
|
101
226
|
export async function runInstall() {
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
227
|
+
// Step 1: Try Stripe CLI auto-detection
|
|
228
|
+
const detected = detectStripeKey();
|
|
229
|
+
let stripeKey;
|
|
230
|
+
if (detected) {
|
|
231
|
+
const maskedKey = `${detected.key.slice(0, detected.key.indexOf("_", 3) + 1)}...${detected.key.slice(-4)}`;
|
|
232
|
+
console.log(`\n✓ Detected Stripe ${detected.mode} key from Stripe CLI ${maskedKey}`);
|
|
233
|
+
if (detected.expiresAt) {
|
|
234
|
+
console.log(` (expires: ${detected.expiresAt})`);
|
|
235
|
+
}
|
|
236
|
+
stripeKey = detected.key;
|
|
237
|
+
}
|
|
238
|
+
else {
|
|
239
|
+
// Step 2: Manual fallback — open Dashboard and prompt
|
|
240
|
+
console.log("\nStripe CLI not detected or not logged in.");
|
|
241
|
+
console.log("Opening Stripe Dashboard API Keys page...");
|
|
242
|
+
// Open browser (same platform-detection approach as used elsewhere in the project)
|
|
243
|
+
const platform = process.platform;
|
|
244
|
+
const openCmd = platform === "win32" ? "start" : platform === "darwin" ? "open" : "xdg-open";
|
|
245
|
+
_spawnSync.fn(openCmd, ["https://dashboard.stripe.com/apikeys"], {});
|
|
246
|
+
stripeKey = await askQuestion("\nEnter your Stripe Secret Key (sk_test_, sk_live_, rk_test_, or rk_live_): ");
|
|
247
|
+
if (!/^(sk|rk)_(test|live)_\S{6,}$/.test(stripeKey)) {
|
|
248
|
+
console.error("Error: Invalid Stripe key. Must start with sk_test_, sk_live_, rk_test_, or rk_live_.");
|
|
249
|
+
process.exit(1);
|
|
250
|
+
}
|
|
251
|
+
const maskedKey = `${stripeKey.slice(0, stripeKey.indexOf("_", 3) + 1)}...${stripeKey.slice(-4)}`;
|
|
252
|
+
console.log(`\nConfiguring MCP clients with key ${maskedKey}...`);
|
|
106
253
|
}
|
|
107
254
|
// Never log the full key — show a masked version only
|
|
108
|
-
const maskedKey =
|
|
109
|
-
console.log(`\nConfiguring MCP clients with key ${maskedKey}...`);
|
|
255
|
+
const maskedKey = `${stripeKey.slice(0, stripeKey.indexOf("_", 3) + 1)}...${stripeKey.slice(-4)}`;
|
|
110
256
|
let paypalClientId;
|
|
111
257
|
let paypalClientSecret;
|
|
112
258
|
const configurePaypal = await askQuestion("\nDo you want to configure PayPal? (y/N): ");
|
|
@@ -138,6 +284,12 @@ export async function runInstall() {
|
|
|
138
284
|
console.log(` ✓ ${client.name} configured`);
|
|
139
285
|
configuredCount++;
|
|
140
286
|
}
|
|
287
|
+
const claudeCodeInstalled = await installClaudeCode(stripeKey, paypalClientId, paypalClientSecret);
|
|
288
|
+
if (claudeCodeInstalled)
|
|
289
|
+
configuredCount++;
|
|
290
|
+
const openClawInstalled = await installOpenClaw();
|
|
291
|
+
if (openClawInstalled)
|
|
292
|
+
configuredCount++;
|
|
141
293
|
if (configuredCount === 0) {
|
|
142
294
|
console.log("\nNo MCP client config files found. Add clawpay manually:");
|
|
143
295
|
const openCodeEnv = { STRIPE_SECRET_KEY: maskedKey };
|
|
@@ -170,9 +322,22 @@ export async function runInstall() {
|
|
|
170
322
|
},
|
|
171
323
|
},
|
|
172
324
|
}, null, 2));
|
|
325
|
+
let claudeCodeCmd = `claude mcp add -s user clawpay -e STRIPE_SECRET_KEY=${maskedKey}`;
|
|
326
|
+
if (paypalClientId)
|
|
327
|
+
claudeCodeCmd += ` -e PAYPAL_CLIENT_ID=${paypalClientId}`;
|
|
328
|
+
if (paypalClientSecret)
|
|
329
|
+
claudeCodeCmd += ` -e PAYPAL_CLIENT_SECRET=${paypalClientSecret}`;
|
|
330
|
+
claudeCodeCmd += " -- clawpay";
|
|
331
|
+
console.log("\nClaude Code (run in terminal):");
|
|
332
|
+
console.log(` ${claudeCodeCmd}`);
|
|
333
|
+
console.log("\nOpenClaw:");
|
|
334
|
+
console.log(" Create ~/.openclaw/workspace/skills/clawpay/SKILL.md");
|
|
335
|
+
console.log(" (run: clawpay install after creating ~/.openclaw/ directory)");
|
|
173
336
|
}
|
|
174
337
|
console.log('\nInstallation complete! Ask your AI: "set up payment method"');
|
|
175
338
|
}
|
|
339
|
+
/* c8 ignore end */
|
|
340
|
+
/* c8 ignore start */
|
|
176
341
|
export async function runUninstall() {
|
|
177
342
|
const clients = getMcpClients();
|
|
178
343
|
for (const client of clients) {
|
|
@@ -194,4 +359,5 @@ export async function runUninstall() {
|
|
|
194
359
|
}
|
|
195
360
|
console.log("\nUninstallation complete.");
|
|
196
361
|
}
|
|
362
|
+
/* c8 ignore end */
|
|
197
363
|
//# sourceMappingURL=installer.js.map
|
package/dist/installer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"installer.js","sourceRoot":"","sources":["../src/installer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"installer.js","sourceRoot":"","sources":["../src/installer.ts"],"names":[],"mappings":"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"}
|
package/dist/setup.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AA4BA,wBAAsB,QAAQ,IAAI,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AA4BA,wBAAsB,QAAQ,IAAI,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CA6J/E"}
|
package/dist/setup.js
CHANGED
|
@@ -44,7 +44,6 @@ export async function runSetup() {
|
|
|
44
44
|
const session = await stripe.checkout.sessions.create({
|
|
45
45
|
mode: "setup",
|
|
46
46
|
customer: customerId,
|
|
47
|
-
payment_method_types: ["card"],
|
|
48
47
|
success_url: `http://${SETUP_HOST}:${SETUP_PORT}/success?session_id={CHECKOUT_SESSION_ID}`,
|
|
49
48
|
cancel_url: `http://${SETUP_HOST}:${SETUP_PORT}/cancel`,
|
|
50
49
|
});
|
package/dist/setup.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,MAAM,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,MAAM,UAAU,GAAG,IAAI,CAAC;AACxB,MAAM,UAAU,GAAG,WAAW,CAAC;AAC/B,MAAM,UAAU,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,YAAY;AAE9C,SAAS,WAAW,CAAC,GAAW;IAC9B,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAClC,IAAI,OAAe,CAAC;IACpB,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,OAAO,GAAG,SAAS,GAAG,GAAG,CAAC;IAC5B,CAAC;SAAM,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QAChC,OAAO,GAAG,aAAa,GAAG,GAAG,CAAC;IAChC,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,aAAa,GAAG,GAAG,CAAC;IAChC,CAAC;IACD,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;QACpB,IAAI,GAAG,EAAE,CAAC;YACR,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC;QACnE,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ;IAC5B,IAAI,YAAY,EAAE,EAAE,CAAC;QACnB,OAAO;YACL,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,gEAAgE;SAC1E,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,IAAI,WAAmB,CAAC;IACxB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;QAC5B,IAAI,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;QAC1C,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;YACpF,UAAU,GAAG,QAAQ,CAAC,EAAE,CAAC;QAC3B,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;YACpD,IAAI,EAAE,OAAO;YACb,QAAQ,EAAE,UAAU;YACpB,
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { spawnSync } from "node:child_process";
|
|
2
|
+
import type { StripeCliConfig } from "./types.js";
|
|
3
|
+
declare function parseToml(content: string): Record<string, Record<string, string>>;
|
|
4
|
+
export declare const _parseToml: {
|
|
5
|
+
fn: typeof parseToml;
|
|
6
|
+
};
|
|
7
|
+
export { parseToml };
|
|
8
|
+
export declare function getStripeCliConfigPath(): string;
|
|
9
|
+
export declare const _spawnSyncCli: {
|
|
10
|
+
fn: typeof spawnSync;
|
|
11
|
+
};
|
|
12
|
+
export declare function isStripeCliInstalled(): boolean;
|
|
13
|
+
export declare function isStripeCliLoggedIn(): StripeCliConfig | null;
|
|
14
|
+
export declare function isKeyExpired(expiresAt: string): boolean;
|
|
15
|
+
export declare function readLiveKeyFromKeychain(): string | null;
|
|
16
|
+
export declare function detectStripeKey(): {
|
|
17
|
+
key: string;
|
|
18
|
+
source: "cli" | "manual";
|
|
19
|
+
mode: "test" | "live";
|
|
20
|
+
expiresAt?: string;
|
|
21
|
+
} | null;
|
|
22
|
+
//# sourceMappingURL=stripe-cli.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stripe-cli.d.ts","sourceRoot":"","sources":["../src/stripe-cli.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,iBAAS,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAkD1E;AAED,eAAO,MAAM,UAAU,EAAE;IAAE,EAAE,EAAE,OAAO,SAAS,CAAA;CAAsB,CAAC;AAEtE,OAAO,EAAE,SAAS,EAAE,CAAC;AAErB,wBAAgB,sBAAsB,IAAI,MAAM,CAM/C;AAED,eAAO,MAAM,aAAa,EAAE;IAAE,EAAE,EAAE,OAAO,SAAS,CAAA;CAAsB,CAAC;AAEzE,wBAAgB,oBAAoB,IAAI,OAAO,CAG9C;AAED,wBAAgB,mBAAmB,IAAI,eAAe,GAAG,IAAI,CA+B5D;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAGvD;AAED,wBAAgB,uBAAuB,IAAI,MAAM,GAAG,IAAI,CA4BvD;AAED,wBAAgB,eAAe,IAAI;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,KAAK,GAAG,QAAQ,CAAC;IACzB,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,IAAI,CAiDP"}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import { homedir } from "node:os";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
import { spawnSync } from "node:child_process";
|
|
4
|
+
import { readFileSync } from "node:fs";
|
|
5
|
+
function parseToml(content) {
|
|
6
|
+
const result = {};
|
|
7
|
+
let currentSection = null;
|
|
8
|
+
const lines = content.split("\n");
|
|
9
|
+
for (const line of lines) {
|
|
10
|
+
const trimmed = line.trim();
|
|
11
|
+
if (!trimmed || trimmed.startsWith("#")) {
|
|
12
|
+
continue;
|
|
13
|
+
}
|
|
14
|
+
const sectionMatch = trimmed.match(/^\[([^\]]+)\]$/);
|
|
15
|
+
if (sectionMatch) {
|
|
16
|
+
currentSection = sectionMatch[1];
|
|
17
|
+
if (!result[currentSection]) {
|
|
18
|
+
result[currentSection] = {};
|
|
19
|
+
}
|
|
20
|
+
continue;
|
|
21
|
+
}
|
|
22
|
+
if (currentSection === null) {
|
|
23
|
+
continue;
|
|
24
|
+
}
|
|
25
|
+
const kvMatch = trimmed.match(/^([a-z_]+)\s*=\s*(.+)$/);
|
|
26
|
+
if (!kvMatch) {
|
|
27
|
+
continue;
|
|
28
|
+
}
|
|
29
|
+
const key = kvMatch[1];
|
|
30
|
+
const valueStr = kvMatch[2].trim();
|
|
31
|
+
if (valueStr.startsWith("[")) {
|
|
32
|
+
continue;
|
|
33
|
+
}
|
|
34
|
+
if (valueStr === "true" || valueStr === "false") {
|
|
35
|
+
continue;
|
|
36
|
+
}
|
|
37
|
+
const quotedMatch = valueStr.match(/^['"]([^'"]*)['"]\s*$/);
|
|
38
|
+
if (quotedMatch) {
|
|
39
|
+
const value = quotedMatch[1];
|
|
40
|
+
result[currentSection][key] = value;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return result;
|
|
44
|
+
}
|
|
45
|
+
export const _parseToml = { fn: parseToml };
|
|
46
|
+
export { parseToml };
|
|
47
|
+
export function getStripeCliConfigPath() {
|
|
48
|
+
const xdgConfigHome = process.env.XDG_CONFIG_HOME;
|
|
49
|
+
if (xdgConfigHome) {
|
|
50
|
+
return join(xdgConfigHome, "stripe", "config.toml");
|
|
51
|
+
}
|
|
52
|
+
return join(homedir(), ".config", "stripe", "config.toml");
|
|
53
|
+
}
|
|
54
|
+
export const _spawnSyncCli = { fn: spawnSync };
|
|
55
|
+
export function isStripeCliInstalled() {
|
|
56
|
+
const result = _spawnSyncCli.fn("which", ["stripe"], { encoding: "utf-8" });
|
|
57
|
+
return result.status === 0;
|
|
58
|
+
}
|
|
59
|
+
export function isStripeCliLoggedIn() {
|
|
60
|
+
let content;
|
|
61
|
+
try {
|
|
62
|
+
content = readFileSync(getStripeCliConfigPath(), "utf-8");
|
|
63
|
+
}
|
|
64
|
+
catch {
|
|
65
|
+
return null;
|
|
66
|
+
}
|
|
67
|
+
const parsed = _parseToml.fn(content);
|
|
68
|
+
const defaults = parsed["default"] ?? null;
|
|
69
|
+
if (!defaults) {
|
|
70
|
+
return null;
|
|
71
|
+
}
|
|
72
|
+
const config = {
|
|
73
|
+
deviceName: defaults["device_name"],
|
|
74
|
+
displayName: defaults["display_name"],
|
|
75
|
+
accountId: defaults["account_id"],
|
|
76
|
+
testModeApiKey: defaults["test_mode_api_key"],
|
|
77
|
+
testModePubKey: defaults["test_mode_pub_key"],
|
|
78
|
+
testModeKeyExpiresAt: defaults["test_mode_key_expires_at"],
|
|
79
|
+
liveModeApiKey: defaults["live_mode_api_key"],
|
|
80
|
+
liveModePubKey: defaults["live_mode_pub_key"],
|
|
81
|
+
liveModeKeyExpiresAt: defaults["live_mode_key_expires_at"],
|
|
82
|
+
};
|
|
83
|
+
if (!config.testModeApiKey) {
|
|
84
|
+
return null;
|
|
85
|
+
}
|
|
86
|
+
return config;
|
|
87
|
+
}
|
|
88
|
+
export function isKeyExpired(expiresAt) {
|
|
89
|
+
const expiryDate = new Date(expiresAt + "T00:00:00Z");
|
|
90
|
+
return expiryDate < new Date();
|
|
91
|
+
}
|
|
92
|
+
export function readLiveKeyFromKeychain() {
|
|
93
|
+
if (process.platform !== "darwin") {
|
|
94
|
+
return null;
|
|
95
|
+
}
|
|
96
|
+
const result = _spawnSyncCli.fn("security", [
|
|
97
|
+
"find-generic-password",
|
|
98
|
+
"-s",
|
|
99
|
+
"StripeCLI",
|
|
100
|
+
"-a",
|
|
101
|
+
"default.live_mode_api_key",
|
|
102
|
+
"-w",
|
|
103
|
+
], { encoding: "utf-8" });
|
|
104
|
+
if (result.status !== 0) {
|
|
105
|
+
return null;
|
|
106
|
+
}
|
|
107
|
+
const key = result.stdout.trim();
|
|
108
|
+
if (!/(sk|rk)_live_/.test(key)) {
|
|
109
|
+
return null;
|
|
110
|
+
}
|
|
111
|
+
return key;
|
|
112
|
+
}
|
|
113
|
+
export function detectStripeKey() {
|
|
114
|
+
const envKey = process.env.STRIPE_API_KEY;
|
|
115
|
+
if (envKey) {
|
|
116
|
+
return {
|
|
117
|
+
key: envKey,
|
|
118
|
+
source: "cli",
|
|
119
|
+
mode: envKey.includes("_live_") ? "live" : "test",
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
if (!isStripeCliInstalled()) {
|
|
123
|
+
return null;
|
|
124
|
+
}
|
|
125
|
+
const config = isStripeCliLoggedIn();
|
|
126
|
+
if (!config) {
|
|
127
|
+
return null;
|
|
128
|
+
}
|
|
129
|
+
if (config.testModeApiKey) {
|
|
130
|
+
if (isKeyExpired(config.testModeKeyExpiresAt ?? "")) {
|
|
131
|
+
console.warn(`⚠ Stripe CLI key expired on ${config.testModeKeyExpiresAt}. Run 'stripe login' to refresh.`);
|
|
132
|
+
}
|
|
133
|
+
return {
|
|
134
|
+
key: config.testModeApiKey,
|
|
135
|
+
source: "cli",
|
|
136
|
+
mode: "test",
|
|
137
|
+
expiresAt: config.testModeKeyExpiresAt,
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
/* c8 ignore start */
|
|
141
|
+
if (config.liveModeApiKey && config.liveModeApiKey.includes("***")) {
|
|
142
|
+
const keychainKey = readLiveKeyFromKeychain();
|
|
143
|
+
if (keychainKey) {
|
|
144
|
+
return {
|
|
145
|
+
key: keychainKey,
|
|
146
|
+
source: "cli",
|
|
147
|
+
mode: "live",
|
|
148
|
+
expiresAt: config.liveModeKeyExpiresAt,
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
return null;
|
|
152
|
+
}
|
|
153
|
+
return null;
|
|
154
|
+
/* c8 ignore stop */
|
|
155
|
+
}
|
|
156
|
+
//# sourceMappingURL=stripe-cli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stripe-cli.js","sourceRoot":"","sources":["../src/stripe-cli.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -79,4 +79,15 @@ export interface RefundResult {
|
|
|
79
79
|
status?: string;
|
|
80
80
|
error?: string;
|
|
81
81
|
}
|
|
82
|
+
export interface StripeCliConfig {
|
|
83
|
+
deviceName?: string;
|
|
84
|
+
displayName?: string;
|
|
85
|
+
accountId?: string;
|
|
86
|
+
testModeApiKey?: string;
|
|
87
|
+
testModePubKey?: string;
|
|
88
|
+
testModeKeyExpiresAt?: string;
|
|
89
|
+
liveModeApiKey?: string;
|
|
90
|
+
liveModePubKey?: string;
|
|
91
|
+
liveModeKeyExpiresAt?: string;
|
|
92
|
+
}
|
|
82
93
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,SAAS,GAAG,YAAY,CAAC;CAEvC;AAED,MAAM,WAAW,gBAAgB;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE;QACN,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,UAAU,EAAE;QACV,4BAA4B,EAAE,MAAM,CAAC;QACrC,kBAAkB,EAAE,MAAM,CAAC;QAC3B,iBAAiB,EAAE,MAAM,EAAE,CAAC;QAC5B,mBAAmB,EAAE,OAAO,CAAC;KAC9B,CAAC;IACF,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAED,eAAO,MAAM,cAAc,EAAE,aAY5B,CAAC;AAEF,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvD,OAAO,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACtD;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xodn348/clawpay",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "Open-source Stripe and PayPal MCP Server for AI agents",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"LICENSE",
|
|
13
13
|
"README.md",
|
|
14
14
|
"DISCLAIMER.md",
|
|
15
|
-
"
|
|
15
|
+
"skill"
|
|
16
16
|
],
|
|
17
17
|
"scripts": {
|
|
18
18
|
"build": "tsc",
|
package/skill/SKILL.md
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: clawpay
|
|
3
|
+
description: Make payments with ClawPay via Stripe and PayPal. Use when user wants to pay, send money, charge, refund, check balance, view transactions, set up payment method, or configure PayPal. Triggers: pay, send money, charge, refund, balance, transactions, set up payment, set up paypal, google pay, apple pay, alipay.
|
|
4
|
+
homepage: https://github.com/xodn348/clawpay
|
|
5
|
+
metadata: {"openclaw":{"emoji":"💳","requires":{"bins":["mcporter","clawpay"]},"install":[{"id":"node","kind":"node","package":"@xodn348/clawpay","bins":["clawpay"],"label":"Install ClawPay (npm)"}]}}
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# ClawPay — Stripe + PayPal Payments
|
|
9
|
+
|
|
10
|
+
Make real payments via Stripe and PayPal using mcporter bridge.
|
|
11
|
+
|
|
12
|
+
## Safety Rules
|
|
13
|
+
|
|
14
|
+
- **Never auto-confirm payments without explicit user approval.** Always preview first; ask for confirmation.
|
|
15
|
+
- **Guardrails enforced:** $100 max per transaction, $500 max per day, USD only.
|
|
16
|
+
- **Audit trail:** Every action logged to `~/.clawpay/audit.log`.
|
|
17
|
+
|
|
18
|
+
## Setup (once)
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
mcporter call --stdio "clawpay" setup_payment
|
|
22
|
+
mcporter call --stdio "clawpay" setup_paypal
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Stripe Payments
|
|
26
|
+
|
|
27
|
+
**Create payment:**
|
|
28
|
+
```bash
|
|
29
|
+
mcporter call --stdio "clawpay" pay amount=1000 currency=usd description="Coffee"
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
**Check balance:**
|
|
33
|
+
```bash
|
|
34
|
+
mcporter call --stdio "clawpay" get_balance
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
**List transactions:**
|
|
38
|
+
```bash
|
|
39
|
+
mcporter call --stdio "clawpay" list_transactions limit=5
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
**Refund payment:**
|
|
43
|
+
```bash
|
|
44
|
+
mcporter call --stdio "clawpay" refund payment_intent_id=pi_xxx
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## PayPal Payouts
|
|
48
|
+
|
|
49
|
+
**Send money via PayPal:**
|
|
50
|
+
```bash
|
|
51
|
+
mcporter call --stdio "clawpay" send_paypal recipientEmail=friend@example.com amount=2000 note="Lunch"
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
Or by phone:
|
|
55
|
+
```bash
|
|
56
|
+
mcporter call --stdio "clawpay" send_paypal recipientPhone=+12025551234 amount=2000
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## Notes
|
|
60
|
+
|
|
61
|
+
- Amounts in cents: `1000` = $10.00
|
|
62
|
+
- Currency default: `usd`
|
|
63
|
+
- PayPal requires either `recipientEmail` or `recipientPhone`
|
|
64
|
+
- All transactions logged with timestamps and status
|
package/Formula/clawpay.rb
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
class Clawpay < Formula
|
|
2
|
-
desc "Open-source Stripe MCP Server for AI Agents"
|
|
3
|
-
homepage "https://github.com/xodn348/clawpay"
|
|
4
|
-
url "https://registry.npmjs.org/clawpay/-/clawpay-0.1.0.tgz"
|
|
5
|
-
sha256 "placeholder_sha256"
|
|
6
|
-
license "Apache-2.0"
|
|
7
|
-
depends_on "node"
|
|
8
|
-
|
|
9
|
-
def install
|
|
10
|
-
system "npm", "install", *Language::Node.std_npm_install_args(libexec)
|
|
11
|
-
bin.install_symlink Dir["#{libexec}/bin/*"]
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
test do
|
|
15
|
-
assert_match "clawpay", shell_output("#{bin}/clawpay --help 2>&1", 1)
|
|
16
|
-
end
|
|
17
|
-
end
|