kickload-watcher-mcp 0.1.0 → 0.1.2
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 +164 -233
- package/compliance-poller.js +216 -215
- package/config.js +113 -103
- package/email-sender.js +137 -137
- package/github-webhook.js +322 -321
- package/index.js +266 -270
- package/kickload-client.js +260 -254
- package/package.json +51 -51
- package/pipeline.js +448 -448
- package/setup.js +193 -201
package/README.md
CHANGED
|
@@ -1,233 +1,164 @@
|
|
|
1
|
-
# KickLoad Watcher MCP
|
|
2
|
-
|
|
3
|
-
Automated API performance testing for Claude
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
|
34
|
-
|
|
35
|
-
|
|
|
36
|
-
|
|
|
37
|
-
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
## Project Structure
|
|
167
|
-
|
|
168
|
-
```
|
|
169
|
-
kickload-watcher-mcp/
|
|
170
|
-
├── index.js ← MCP server + tool handlers
|
|
171
|
-
├── orchestrator.js ← Main pipeline coordinator
|
|
172
|
-
├── compliance-poller.js ← Anthropic Compliance API watcher
|
|
173
|
-
├── file-watcher.js ← Filesystem watcher for saved code
|
|
174
|
-
├── test-generator.js ← Claude API test parameter generator
|
|
175
|
-
├── kickload-runner.js ← KickLoad API integration (/cra-line)
|
|
176
|
-
├── email-sender.js ← Email delivery (SMTP/SendGrid/SES)
|
|
177
|
-
├── identity-map.js ← Claude user ID → email mapping
|
|
178
|
-
├── config.js ← All configuration
|
|
179
|
-
├── users.json ← Developer identity map (you fill this)
|
|
180
|
-
├── .env.example ← Environment variable template
|
|
181
|
-
└── package.json
|
|
182
|
-
```
|
|
183
|
-
|
|
184
|
-
---
|
|
185
|
-
|
|
186
|
-
## What the Email Looks Like
|
|
187
|
-
|
|
188
|
-
```
|
|
189
|
-
Subject: [KickLoad Watcher] ✅ PASS — /api/checkout tested
|
|
190
|
-
|
|
191
|
-
Hi John,
|
|
192
|
-
|
|
193
|
-
Your API endpoint was automatically tested by KickLoad Watcher.
|
|
194
|
-
|
|
195
|
-
STATUS: ✅ PASS
|
|
196
|
-
ENDPOINT: /api/checkout
|
|
197
|
-
TESTED AT: 2 Apr 2026, 14:32 IST
|
|
198
|
-
|
|
199
|
-
RESULTS:
|
|
200
|
-
Average Latency: 123ms
|
|
201
|
-
Error Rate: 0.5%
|
|
202
|
-
Throughput: 4,500 req/s
|
|
203
|
-
Test Duration: 47s
|
|
204
|
-
|
|
205
|
-
📄 Download Full Report → [link expires in 24hrs]
|
|
206
|
-
|
|
207
|
-
— KickLoad Watcher | Automated by NeeyatAI
|
|
208
|
-
```
|
|
209
|
-
|
|
210
|
-
---
|
|
211
|
-
|
|
212
|
-
## Troubleshooting
|
|
213
|
-
|
|
214
|
-
**No email received?**
|
|
215
|
-
- Run `send_test_email` MCP tool to verify email config
|
|
216
|
-
- Check `users.json` has the correct Claude user ID mapped
|
|
217
|
-
- Gmail: ensure App Password is used, not account password
|
|
218
|
-
|
|
219
|
-
**Compliance API not working?**
|
|
220
|
-
- Verify Enterprise plan is active
|
|
221
|
-
- Only Primary Owners can enable Compliance API
|
|
222
|
-
- File watcher still works without it
|
|
223
|
-
|
|
224
|
-
**Test not triggering?**
|
|
225
|
-
- Check `WATCH_PATHS` includes your project directories
|
|
226
|
-
- Ensure files have supported extensions (.js, .ts, .py, etc.)
|
|
227
|
-
- Check console logs for "API code detected" messages
|
|
228
|
-
|
|
229
|
-
---
|
|
230
|
-
|
|
231
|
-
## License
|
|
232
|
-
|
|
233
|
-
MIT © NeeyatAI
|
|
1
|
+
# KickLoad Watcher MCP
|
|
2
|
+
|
|
3
|
+
Automated API performance testing for Claude Code workflows.
|
|
4
|
+
|
|
5
|
+
This tool automatically detects API endpoints, runs load tests via KickLoad, and sends results via email.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 🚀 Installation
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
npx kickload-watcher-mcp@beta
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## 🧠 First Run Setup
|
|
18
|
+
|
|
19
|
+
On first run, you will be prompted to enter:
|
|
20
|
+
|
|
21
|
+
* ANTHROPIC_API_KEY
|
|
22
|
+
* KICKLOAD_API_TOKEN
|
|
23
|
+
* Gmail address + App Password
|
|
24
|
+
* NGROK_AUTHTOKEN
|
|
25
|
+
|
|
26
|
+
These values are saved in a local `.env` file.
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## 🔑 Required Services
|
|
31
|
+
|
|
32
|
+
| Service | Link |
|
|
33
|
+
| ------------------ | ----------------------------------------- |
|
|
34
|
+
| Anthropic | https://console.anthropic.com |
|
|
35
|
+
| KickLoad | https://kickload.neeyatai.com |
|
|
36
|
+
| Gmail App Password | https://myaccount.google.com/apppasswords |
|
|
37
|
+
| Ngrok | https://dashboard.ngrok.com |
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## ⚙️ Example `.env`
|
|
42
|
+
|
|
43
|
+
```env
|
|
44
|
+
ANTHROPIC_API_KEY=your_key
|
|
45
|
+
KICKLOAD_API_TOKEN=your_token
|
|
46
|
+
|
|
47
|
+
EMAIL_PROVIDER=smtp
|
|
48
|
+
SMTP_HOST=smtp.gmail.com
|
|
49
|
+
SMTP_PORT=465
|
|
50
|
+
SMTP_USER=your@gmail.com
|
|
51
|
+
SMTP_PASS=your-app-password
|
|
52
|
+
EMAIL_FROM_ADDRESS=your@gmail.com
|
|
53
|
+
|
|
54
|
+
NGROK_AUTHTOKEN=your_ngrok_token
|
|
55
|
+
|
|
56
|
+
WATCH_PATHS=.
|
|
57
|
+
TRIGGER_MODE=claudecode
|
|
58
|
+
LOG_LEVEL=info
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## 🔁 Workflow
|
|
64
|
+
|
|
65
|
+
1. Save backend API file
|
|
66
|
+
2. Watcher detects endpoints
|
|
67
|
+
3. Ngrok exposes local server (if needed)
|
|
68
|
+
4. Claude generates test parameters
|
|
69
|
+
5. KickLoad runs performance test
|
|
70
|
+
6. Results sent via email
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## 📡 Features
|
|
75
|
+
|
|
76
|
+
* Automatic API detection (Express, Flask, FastAPI, etc.)
|
|
77
|
+
* Claude-powered test generation
|
|
78
|
+
* Auto ngrok tunneling for localhost
|
|
79
|
+
* Email reporting system
|
|
80
|
+
* Smart batching + deduplication
|
|
81
|
+
* Retry + error handling
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## ⚠️ Important Notes
|
|
86
|
+
|
|
87
|
+
* `.env` is required after setup
|
|
88
|
+
* Use Gmail App Password (not normal password)
|
|
89
|
+
* Ngrok token is required for localhost testing
|
|
90
|
+
* Backend must be running
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## 🧪 Troubleshooting
|
|
95
|
+
|
|
96
|
+
### Setup runs twice
|
|
97
|
+
|
|
98
|
+
Delete `.env` and run again.
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
### Missing config error
|
|
103
|
+
|
|
104
|
+
Check `.env` contains:
|
|
105
|
+
|
|
106
|
+
* ANTHROPIC_API_KEY
|
|
107
|
+
* KICKLOAD_API_TOKEN
|
|
108
|
+
* SMTP_USER
|
|
109
|
+
* SMTP_PASS
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
### Ngrok not working
|
|
114
|
+
|
|
115
|
+
Add:
|
|
116
|
+
|
|
117
|
+
```env
|
|
118
|
+
NGROK_AUTHTOKEN=your-token
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
### Email not sending
|
|
124
|
+
|
|
125
|
+
* Check Gmail App Password
|
|
126
|
+
* Verify SMTP_USER and SMTP_PASS
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
## 📁 Project Structure
|
|
131
|
+
|
|
132
|
+
```
|
|
133
|
+
index.js → entry point
|
|
134
|
+
setup.js → first-run setup
|
|
135
|
+
pipeline.js → core logic
|
|
136
|
+
kickload-client.js → API communication
|
|
137
|
+
email-sender.js → email system
|
|
138
|
+
file-watcher.js → file detection
|
|
139
|
+
compliance-poller.js → Claude session tracking
|
|
140
|
+
ngrok-manager.js → tunnel handling
|
|
141
|
+
config.js → configuration
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
## 🏁 Run Locally
|
|
147
|
+
|
|
148
|
+
```bash
|
|
149
|
+
node index.js
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
## 📦 NPM Usage
|
|
155
|
+
|
|
156
|
+
```bash
|
|
157
|
+
npx kickload-watcher-mcp@beta
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
---
|
|
161
|
+
|
|
162
|
+
## 📜 License
|
|
163
|
+
|
|
164
|
+
MIT © NeeyatAI
|