@webhooks-cc/mcp 1.16.0 → 1.17.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 +3 -2
- package/dist/bin/mcp.js +22 -4
- package/dist/{chunk-4LEPLCW5.mjs → chunk-ZAPNMGCE.mjs} +12 -0
- package/dist/index.js +22 -4
- package/dist/index.mjs +13 -5
- package/dist/tools.js +12 -0
- package/dist/tools.mjs +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -34,7 +34,7 @@ For other agents, `npx skills add kroqdotdev/webhooks-cc` installs the same skil
|
|
|
34
34
|
- **claude.ai and Claude Desktop**: Settings, Connectors, add a custom connector with the URL `https://webhooks.cc/mcp`
|
|
35
35
|
- **ChatGPT**: add it as a custom connector (developer mode)
|
|
36
36
|
|
|
37
|
-
A client that can send headers may use an API key instead: `Authorization: Bearer whcc_...`. The remote server has
|
|
37
|
+
A client that can send headers may use an API key instead: `Authorization: Bearer whcc_...`. The remote server has 46 tools: `send_to` and `replay_request` are left out and `targetUrl` is refused, because a hosted server cannot reach your machine, and waits are capped at 50 seconds. It needs an account (no sandbox), and serves tools only, without prompts or resources.
|
|
38
38
|
|
|
39
39
|
### One-click
|
|
40
40
|
|
|
@@ -83,13 +83,14 @@ Leave out `env` to start without a key. Get your API key at [webhooks.cc/account
|
|
|
83
83
|
|
|
84
84
|
## What it exposes
|
|
85
85
|
|
|
86
|
-
The server exposes `
|
|
86
|
+
The server exposes `48` tools, `3` prompts, and `3` resource surfaces with an API key, the same `48` tools and the prompts with a saved connection, and `11` sandbox tools otherwise. The remote server exposes `46` tools.
|
|
87
87
|
|
|
88
88
|
### Endpoint tools
|
|
89
89
|
|
|
90
90
|
- `create_endpoint`
|
|
91
91
|
- `list_endpoints`
|
|
92
92
|
- `get_endpoint`
|
|
93
|
+
- `favorite_endpoint` (mark or unmark one of your favourites; `list_endpoints` and `get_endpoint` show `favorite`)
|
|
93
94
|
- `update_endpoint`
|
|
94
95
|
- `preview_response`
|
|
95
96
|
- `delete_endpoint`
|
package/dist/bin/mcp.js
CHANGED
|
@@ -445,6 +445,10 @@ function registerResources(server, client) {
|
|
|
445
445
|
var import_zod3 = require("zod");
|
|
446
446
|
var import_sdk2 = require("@webhooks-cc/sdk");
|
|
447
447
|
|
|
448
|
+
// src/version.ts
|
|
449
|
+
var VERSION = true ? "1.17.0" : "0.0.0-dev";
|
|
450
|
+
var MCP_USER_AGENT = `webhooks-cc-mcp/${VERSION}`;
|
|
451
|
+
|
|
448
452
|
// src/tools.ts
|
|
449
453
|
var import_zod2 = require("zod");
|
|
450
454
|
var import_sdk = require("@webhooks-cc/sdk");
|
|
@@ -1177,6 +1181,18 @@ function registerTools(target, client, options = {}) {
|
|
|
1177
1181
|
return jsonContent(endpoint);
|
|
1178
1182
|
})
|
|
1179
1183
|
);
|
|
1184
|
+
server.tool(
|
|
1185
|
+
"favorite_endpoint",
|
|
1186
|
+
"Mark an endpoint as one of your favourites, or unmark it with favorite: false. A favourite is your own choice, so endpoints shared with you through teams can be marked too; list_endpoints and get_endpoint show it as favorite. Idempotent.",
|
|
1187
|
+
{
|
|
1188
|
+
slug: import_zod2.z.string().describe("The endpoint slug"),
|
|
1189
|
+
favorite: import_zod2.z.boolean().optional().describe("true marks it as a favourite (the default), false unmarks it")
|
|
1190
|
+
},
|
|
1191
|
+
withErrorHandling(async ({ slug, favorite }) => {
|
|
1192
|
+
const result = favorite === false ? await client.endpoints.unfavorite(slug) : await client.endpoints.favorite(slug);
|
|
1193
|
+
return jsonContent({ slug, favorite: result.favorite });
|
|
1194
|
+
})
|
|
1195
|
+
);
|
|
1180
1196
|
server.tool(
|
|
1181
1197
|
"update_endpoint",
|
|
1182
1198
|
"Update an endpoint name, mock response, conditional response rules, signing configuration, whether codes and links are picked out of its emails, or the named fields picked out of them.",
|
|
@@ -2149,7 +2165,8 @@ var AgentSession = class {
|
|
|
2149
2165
|
baseUrl: this.baseUrl,
|
|
2150
2166
|
webhookUrl: this.webhookUrl,
|
|
2151
2167
|
clientName: this.clientName,
|
|
2152
|
-
credentialsFile: this.credentialsFile
|
|
2168
|
+
credentialsFile: this.credentialsFile,
|
|
2169
|
+
userAgent: MCP_USER_AGENT
|
|
2153
2170
|
};
|
|
2154
2171
|
}
|
|
2155
2172
|
/**
|
|
@@ -2242,6 +2259,7 @@ function registerSandboxTools(server, options = {}) {
|
|
|
2242
2259
|
baseUrl,
|
|
2243
2260
|
webhookUrl,
|
|
2244
2261
|
credentialsFile: options.credentialsFile,
|
|
2262
|
+
userAgent: MCP_USER_AGENT,
|
|
2245
2263
|
// The human disconnected the agent: back to the sandbox, unless a
|
|
2246
2264
|
// newer connection is already on display.
|
|
2247
2265
|
onRevoked: () => queueMicrotask(() => {
|
|
@@ -2403,7 +2421,8 @@ function sandboxToolSet(server, session, showAccount) {
|
|
|
2403
2421
|
webhookUrl: session.webhookUrl,
|
|
2404
2422
|
email: normalized,
|
|
2405
2423
|
clientName: session.clientName,
|
|
2406
|
-
credentialsFile: session.credentialsFile
|
|
2424
|
+
credentialsFile: session.credentialsFile,
|
|
2425
|
+
userAgent: MCP_USER_AGENT
|
|
2407
2426
|
}));
|
|
2408
2427
|
session.connect = { via: "connect", pending, email: normalized };
|
|
2409
2428
|
attempt = pending;
|
|
@@ -2509,7 +2528,6 @@ function sandboxToolSet(server, session, showAccount) {
|
|
|
2509
2528
|
}
|
|
2510
2529
|
|
|
2511
2530
|
// src/index.ts
|
|
2512
|
-
var VERSION = true ? "1.16.0" : "0.0.0-dev";
|
|
2513
2531
|
function createServer(options = {}) {
|
|
2514
2532
|
const apiKey = options.apiKey ?? process.env.WHK_API_KEY;
|
|
2515
2533
|
const webhookUrl = options.webhookUrl ?? process.env.WHK_WEBHOOK_URL;
|
|
@@ -2524,7 +2542,7 @@ function createServer(options = {}) {
|
|
|
2524
2542
|
registerPrompts(server);
|
|
2525
2543
|
return server;
|
|
2526
2544
|
}
|
|
2527
|
-
const client = new import_sdk3.WebhooksCC({ apiKey, webhookUrl, baseUrl });
|
|
2545
|
+
const client = new import_sdk3.WebhooksCC({ apiKey, webhookUrl, baseUrl, userAgent: MCP_USER_AGENT });
|
|
2528
2546
|
registerTools(server, client);
|
|
2529
2547
|
registerPrompts(server);
|
|
2530
2548
|
registerResources(server, client);
|
|
@@ -959,6 +959,18 @@ function registerTools(target, client, options = {}) {
|
|
|
959
959
|
return jsonContent(endpoint);
|
|
960
960
|
})
|
|
961
961
|
);
|
|
962
|
+
server.tool(
|
|
963
|
+
"favorite_endpoint",
|
|
964
|
+
"Mark an endpoint as one of your favourites, or unmark it with favorite: false. A favourite is your own choice, so endpoints shared with you through teams can be marked too; list_endpoints and get_endpoint show it as favorite. Idempotent.",
|
|
965
|
+
{
|
|
966
|
+
slug: z.string().describe("The endpoint slug"),
|
|
967
|
+
favorite: z.boolean().optional().describe("true marks it as a favourite (the default), false unmarks it")
|
|
968
|
+
},
|
|
969
|
+
withErrorHandling(async ({ slug, favorite }) => {
|
|
970
|
+
const result = favorite === false ? await client.endpoints.unfavorite(slug) : await client.endpoints.favorite(slug);
|
|
971
|
+
return jsonContent({ slug, favorite: result.favorite });
|
|
972
|
+
})
|
|
973
|
+
);
|
|
962
974
|
server.tool(
|
|
963
975
|
"update_endpoint",
|
|
964
976
|
"Update an endpoint name, mock response, conditional response rules, signing configuration, whether codes and links are picked out of its emails, or the named fields picked out of them.",
|
package/dist/index.js
CHANGED
|
@@ -469,6 +469,10 @@ function registerResources(server, client) {
|
|
|
469
469
|
var import_zod3 = require("zod");
|
|
470
470
|
var import_sdk2 = require("@webhooks-cc/sdk");
|
|
471
471
|
|
|
472
|
+
// src/version.ts
|
|
473
|
+
var VERSION = true ? "1.17.0" : "0.0.0-dev";
|
|
474
|
+
var MCP_USER_AGENT = `webhooks-cc-mcp/${VERSION}`;
|
|
475
|
+
|
|
472
476
|
// src/tools.ts
|
|
473
477
|
var import_zod2 = require("zod");
|
|
474
478
|
var import_sdk = require("@webhooks-cc/sdk");
|
|
@@ -1201,6 +1205,18 @@ function registerTools(target, client, options = {}) {
|
|
|
1201
1205
|
return jsonContent(endpoint);
|
|
1202
1206
|
})
|
|
1203
1207
|
);
|
|
1208
|
+
server.tool(
|
|
1209
|
+
"favorite_endpoint",
|
|
1210
|
+
"Mark an endpoint as one of your favourites, or unmark it with favorite: false. A favourite is your own choice, so endpoints shared with you through teams can be marked too; list_endpoints and get_endpoint show it as favorite. Idempotent.",
|
|
1211
|
+
{
|
|
1212
|
+
slug: import_zod2.z.string().describe("The endpoint slug"),
|
|
1213
|
+
favorite: import_zod2.z.boolean().optional().describe("true marks it as a favourite (the default), false unmarks it")
|
|
1214
|
+
},
|
|
1215
|
+
withErrorHandling(async ({ slug, favorite }) => {
|
|
1216
|
+
const result = favorite === false ? await client.endpoints.unfavorite(slug) : await client.endpoints.favorite(slug);
|
|
1217
|
+
return jsonContent({ slug, favorite: result.favorite });
|
|
1218
|
+
})
|
|
1219
|
+
);
|
|
1204
1220
|
server.tool(
|
|
1205
1221
|
"update_endpoint",
|
|
1206
1222
|
"Update an endpoint name, mock response, conditional response rules, signing configuration, whether codes and links are picked out of its emails, or the named fields picked out of them.",
|
|
@@ -2173,7 +2189,8 @@ var AgentSession = class {
|
|
|
2173
2189
|
baseUrl: this.baseUrl,
|
|
2174
2190
|
webhookUrl: this.webhookUrl,
|
|
2175
2191
|
clientName: this.clientName,
|
|
2176
|
-
credentialsFile: this.credentialsFile
|
|
2192
|
+
credentialsFile: this.credentialsFile,
|
|
2193
|
+
userAgent: MCP_USER_AGENT
|
|
2177
2194
|
};
|
|
2178
2195
|
}
|
|
2179
2196
|
/**
|
|
@@ -2266,6 +2283,7 @@ function registerSandboxTools(server, options = {}) {
|
|
|
2266
2283
|
baseUrl,
|
|
2267
2284
|
webhookUrl,
|
|
2268
2285
|
credentialsFile: options.credentialsFile,
|
|
2286
|
+
userAgent: MCP_USER_AGENT,
|
|
2269
2287
|
// The human disconnected the agent: back to the sandbox, unless a
|
|
2270
2288
|
// newer connection is already on display.
|
|
2271
2289
|
onRevoked: () => queueMicrotask(() => {
|
|
@@ -2427,7 +2445,8 @@ function sandboxToolSet(server, session, showAccount) {
|
|
|
2427
2445
|
webhookUrl: session.webhookUrl,
|
|
2428
2446
|
email: normalized,
|
|
2429
2447
|
clientName: session.clientName,
|
|
2430
|
-
credentialsFile: session.credentialsFile
|
|
2448
|
+
credentialsFile: session.credentialsFile,
|
|
2449
|
+
userAgent: MCP_USER_AGENT
|
|
2431
2450
|
}));
|
|
2432
2451
|
session.connect = { via: "connect", pending, email: normalized };
|
|
2433
2452
|
attempt = pending;
|
|
@@ -2536,7 +2555,6 @@ function registerAgentRegistrationTools(server) {
|
|
|
2536
2555
|
}
|
|
2537
2556
|
|
|
2538
2557
|
// src/index.ts
|
|
2539
|
-
var VERSION = true ? "1.16.0" : "0.0.0-dev";
|
|
2540
2558
|
function createServer(options = {}) {
|
|
2541
2559
|
const apiKey = options.apiKey ?? process.env.WHK_API_KEY;
|
|
2542
2560
|
const webhookUrl = options.webhookUrl ?? process.env.WHK_WEBHOOK_URL;
|
|
@@ -2551,7 +2569,7 @@ function createServer(options = {}) {
|
|
|
2551
2569
|
registerPrompts(server);
|
|
2552
2570
|
return server;
|
|
2553
2571
|
}
|
|
2554
|
-
const client = new import_sdk3.WebhooksCC({ apiKey, webhookUrl, baseUrl });
|
|
2572
|
+
const client = new import_sdk3.WebhooksCC({ apiKey, webhookUrl, baseUrl, userAgent: MCP_USER_AGENT });
|
|
2555
2573
|
registerTools(server, client);
|
|
2556
2574
|
registerPrompts(server);
|
|
2557
2575
|
registerResources(server, client);
|
package/dist/index.mjs
CHANGED
|
@@ -13,7 +13,7 @@ import {
|
|
|
13
13
|
registerTools,
|
|
14
14
|
waitForRequestShape,
|
|
15
15
|
withErrorHandling
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-ZAPNMGCE.mjs";
|
|
17
17
|
|
|
18
18
|
// src/index.ts
|
|
19
19
|
import { McpServer as McpServer2 } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
@@ -260,6 +260,12 @@ import {
|
|
|
260
260
|
SandboxClient,
|
|
261
261
|
WebhooksCC
|
|
262
262
|
} from "@webhooks-cc/sdk";
|
|
263
|
+
|
|
264
|
+
// src/version.ts
|
|
265
|
+
var VERSION = true ? "1.17.0" : "0.0.0-dev";
|
|
266
|
+
var MCP_USER_AGENT = `webhooks-cc-mcp/${VERSION}`;
|
|
267
|
+
|
|
268
|
+
// src/sandbox-tools.ts
|
|
263
269
|
var SANDBOX = {
|
|
264
270
|
maxEndpoints: 3,
|
|
265
271
|
requestsPerEndpoint: 25,
|
|
@@ -291,7 +297,8 @@ var AgentSession = class {
|
|
|
291
297
|
baseUrl: this.baseUrl,
|
|
292
298
|
webhookUrl: this.webhookUrl,
|
|
293
299
|
clientName: this.clientName,
|
|
294
|
-
credentialsFile: this.credentialsFile
|
|
300
|
+
credentialsFile: this.credentialsFile,
|
|
301
|
+
userAgent: MCP_USER_AGENT
|
|
295
302
|
};
|
|
296
303
|
}
|
|
297
304
|
/**
|
|
@@ -384,6 +391,7 @@ function registerSandboxTools(server, options = {}) {
|
|
|
384
391
|
baseUrl,
|
|
385
392
|
webhookUrl,
|
|
386
393
|
credentialsFile: options.credentialsFile,
|
|
394
|
+
userAgent: MCP_USER_AGENT,
|
|
387
395
|
// The human disconnected the agent: back to the sandbox, unless a
|
|
388
396
|
// newer connection is already on display.
|
|
389
397
|
onRevoked: () => queueMicrotask(() => {
|
|
@@ -545,7 +553,8 @@ function sandboxToolSet(server, session, showAccount) {
|
|
|
545
553
|
webhookUrl: session.webhookUrl,
|
|
546
554
|
email: normalized,
|
|
547
555
|
clientName: session.clientName,
|
|
548
|
-
credentialsFile: session.credentialsFile
|
|
556
|
+
credentialsFile: session.credentialsFile,
|
|
557
|
+
userAgent: MCP_USER_AGENT
|
|
549
558
|
}));
|
|
550
559
|
session.connect = { via: "connect", pending, email: normalized };
|
|
551
560
|
attempt = pending;
|
|
@@ -654,7 +663,6 @@ function registerAgentRegistrationTools(server) {
|
|
|
654
663
|
}
|
|
655
664
|
|
|
656
665
|
// src/index.ts
|
|
657
|
-
var VERSION = true ? "1.16.0" : "0.0.0-dev";
|
|
658
666
|
function createServer(options = {}) {
|
|
659
667
|
const apiKey = options.apiKey ?? process.env.WHK_API_KEY;
|
|
660
668
|
const webhookUrl = options.webhookUrl ?? process.env.WHK_WEBHOOK_URL;
|
|
@@ -669,7 +677,7 @@ function createServer(options = {}) {
|
|
|
669
677
|
registerPrompts(server);
|
|
670
678
|
return server;
|
|
671
679
|
}
|
|
672
|
-
const client = new WebhooksCC2({ apiKey, webhookUrl, baseUrl });
|
|
680
|
+
const client = new WebhooksCC2({ apiKey, webhookUrl, baseUrl, userAgent: MCP_USER_AGENT });
|
|
673
681
|
registerTools(server, client);
|
|
674
682
|
registerPrompts(server);
|
|
675
683
|
registerResources(server, client);
|
package/dist/tools.js
CHANGED
|
@@ -968,6 +968,18 @@ function registerTools(target, client, options = {}) {
|
|
|
968
968
|
return jsonContent(endpoint);
|
|
969
969
|
})
|
|
970
970
|
);
|
|
971
|
+
server.tool(
|
|
972
|
+
"favorite_endpoint",
|
|
973
|
+
"Mark an endpoint as one of your favourites, or unmark it with favorite: false. A favourite is your own choice, so endpoints shared with you through teams can be marked too; list_endpoints and get_endpoint show it as favorite. Idempotent.",
|
|
974
|
+
{
|
|
975
|
+
slug: import_zod.z.string().describe("The endpoint slug"),
|
|
976
|
+
favorite: import_zod.z.boolean().optional().describe("true marks it as a favourite (the default), false unmarks it")
|
|
977
|
+
},
|
|
978
|
+
withErrorHandling(async ({ slug, favorite }) => {
|
|
979
|
+
const result = favorite === false ? await client.endpoints.unfavorite(slug) : await client.endpoints.favorite(slug);
|
|
980
|
+
return jsonContent({ slug, favorite: result.favorite });
|
|
981
|
+
})
|
|
982
|
+
);
|
|
971
983
|
server.tool(
|
|
972
984
|
"update_endpoint",
|
|
973
985
|
"Update an endpoint name, mock response, conditional response rules, signing configuration, whether codes and links are picked out of its emails, or the named fields picked out of them.",
|
package/dist/tools.mjs
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webhooks-cc/mcp",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.17.0",
|
|
4
4
|
"mcpName": "io.github.kroqdotdev/webhooks-cc",
|
|
5
5
|
"description": "MCP server for webhooks.cc — AI agent integration for webhook testing",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
"dependencies": {
|
|
45
45
|
"@modelcontextprotocol/sdk": "^1.32.1",
|
|
46
46
|
"zod": "^4.6.7",
|
|
47
|
-
"@webhooks-cc/sdk": "1.
|
|
47
|
+
"@webhooks-cc/sdk": "1.21.0"
|
|
48
48
|
},
|
|
49
49
|
"devDependencies": {
|
|
50
50
|
"@types/node": "^26.6.5",
|