@pincerpay/mcp 0.1.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.
Files changed (75) hide show
  1. package/README.md +51 -4
  2. package/dist/client.d.ts +50 -1
  3. package/dist/client.d.ts.map +1 -1
  4. package/dist/client.js +111 -4
  5. package/dist/client.js.map +1 -1
  6. package/dist/prompts/index.d.ts.map +1 -1
  7. package/dist/prompts/index.js +4 -0
  8. package/dist/prompts/index.js.map +1 -1
  9. package/dist/prompts/manage-paywalls.d.ts +3 -0
  10. package/dist/prompts/manage-paywalls.d.ts.map +1 -0
  11. package/dist/prompts/manage-paywalls.js +49 -0
  12. package/dist/prompts/manage-paywalls.js.map +1 -0
  13. package/dist/prompts/monitor-payments.d.ts +3 -0
  14. package/dist/prompts/monitor-payments.d.ts.map +1 -0
  15. package/dist/prompts/monitor-payments.js +50 -0
  16. package/dist/prompts/monitor-payments.js.map +1 -0
  17. package/dist/server.d.ts.map +1 -1
  18. package/dist/server.js +11 -2
  19. package/dist/server.js.map +1 -1
  20. package/dist/tools/check-health.d.ts +4 -0
  21. package/dist/tools/check-health.d.ts.map +1 -0
  22. package/dist/tools/check-health.js +29 -0
  23. package/dist/tools/check-health.js.map +1 -0
  24. package/dist/tools/create-paywall.d.ts +4 -0
  25. package/dist/tools/create-paywall.d.ts.map +1 -0
  26. package/dist/tools/create-paywall.js +51 -0
  27. package/dist/tools/create-paywall.js.map +1 -0
  28. package/dist/tools/delete-paywall.d.ts +4 -0
  29. package/dist/tools/delete-paywall.d.ts.map +1 -0
  30. package/dist/tools/delete-paywall.js +32 -0
  31. package/dist/tools/delete-paywall.js.map +1 -0
  32. package/dist/tools/get-merchant-profile.d.ts +4 -0
  33. package/dist/tools/get-merchant-profile.d.ts.map +1 -0
  34. package/dist/tools/get-merchant-profile.js +27 -0
  35. package/dist/tools/get-merchant-profile.js.map +1 -0
  36. package/dist/tools/get-metrics.d.ts +4 -0
  37. package/dist/tools/get-metrics.d.ts.map +1 -0
  38. package/dist/tools/get-metrics.js +29 -0
  39. package/dist/tools/get-metrics.js.map +1 -0
  40. package/dist/tools/index.d.ts.map +1 -1
  41. package/dist/tools/index.js +35 -3
  42. package/dist/tools/index.js.map +1 -1
  43. package/dist/tools/list-agents.d.ts +4 -0
  44. package/dist/tools/list-agents.d.ts.map +1 -0
  45. package/dist/tools/list-agents.js +37 -0
  46. package/dist/tools/list-agents.js.map +1 -0
  47. package/dist/tools/list-paywalls.d.ts +4 -0
  48. package/dist/tools/list-paywalls.d.ts.map +1 -0
  49. package/dist/tools/list-paywalls.js +37 -0
  50. package/dist/tools/list-paywalls.js.map +1 -0
  51. package/dist/tools/list-transactions.d.ts +4 -0
  52. package/dist/tools/list-transactions.d.ts.map +1 -0
  53. package/dist/tools/list-transactions.js +53 -0
  54. package/dist/tools/list-transactions.js.map +1 -0
  55. package/dist/tools/list-webhooks.d.ts +4 -0
  56. package/dist/tools/list-webhooks.d.ts.map +1 -0
  57. package/dist/tools/list-webhooks.js +41 -0
  58. package/dist/tools/list-webhooks.js.map +1 -0
  59. package/dist/tools/retry-webhook.d.ts +4 -0
  60. package/dist/tools/retry-webhook.d.ts.map +1 -0
  61. package/dist/tools/retry-webhook.js +32 -0
  62. package/dist/tools/retry-webhook.js.map +1 -0
  63. package/dist/tools/update-agent.d.ts +4 -0
  64. package/dist/tools/update-agent.d.ts.map +1 -0
  65. package/dist/tools/update-agent.js +48 -0
  66. package/dist/tools/update-agent.js.map +1 -0
  67. package/dist/tools/update-paywall.d.ts +4 -0
  68. package/dist/tools/update-paywall.d.ts.map +1 -0
  69. package/dist/tools/update-paywall.js +47 -0
  70. package/dist/tools/update-paywall.js.map +1 -0
  71. package/dist/tools/verify-payment.d.ts +4 -0
  72. package/dist/tools/verify-payment.d.ts.map +1 -0
  73. package/dist/tools/verify-payment.js +56 -0
  74. package/dist/tools/verify-payment.js.map +1 -0
  75. package/package.json +2 -2
@@ -0,0 +1,32 @@
1
+ import { z } from "zod";
2
+ const inputSchema = {
3
+ id: z.string().uuid().describe("Paywall UUID to delete."),
4
+ };
5
+ export function registerDeletePaywall(server, client) {
6
+ server.tool("delete-paywall", "Permanently delete a paywalled endpoint. This cannot be undone. " +
7
+ "Use update-paywall with isActive=false to disable without deleting. " +
8
+ "Requires a PincerPay API key.", inputSchema, async ({ id }) => {
9
+ try {
10
+ client.requireAuth();
11
+ }
12
+ catch (err) {
13
+ return {
14
+ content: [{ type: "text", text: err instanceof Error ? err.message : String(err) }],
15
+ isError: true,
16
+ };
17
+ }
18
+ try {
19
+ await client.deletePaywall(id);
20
+ return {
21
+ content: [{ type: "text", text: `Paywall ${id} deleted successfully.` }],
22
+ };
23
+ }
24
+ catch (err) {
25
+ return {
26
+ content: [{ type: "text", text: `Failed to delete paywall: ${err instanceof Error ? err.message : String(err)}` }],
27
+ isError: true,
28
+ };
29
+ }
30
+ });
31
+ }
32
+ //# sourceMappingURL=delete-paywall.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete-paywall.js","sourceRoot":"","sources":["../../src/tools/delete-paywall.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,MAAM,WAAW,GAAG;IAClB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;CAC1D,CAAC;AAEF,MAAM,UAAU,qBAAqB,CACnC,MAAiB,EACjB,MAAyB;IAEzB,MAAM,CAAC,IAAI,CACT,gBAAgB,EAChB,kEAAkE;QAChE,sEAAsE;QACtE,+BAA+B,EACjC,WAAW,EACX,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC5F,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;YAC/B,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,WAAW,EAAE,wBAAwB,EAAE,CAAC;aAClF,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,6BAA6B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBAC3H,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import type { FacilitatorClient } from "../client.js";
3
+ export declare function registerGetMerchantProfile(server: McpServer, client: FacilitatorClient): void;
4
+ //# sourceMappingURL=get-merchant-profile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-merchant-profile.d.ts","sourceRoot":"","sources":["../../src/tools/get-merchant-profile.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEtD,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,iBAAiB,QA8B1B"}
@@ -0,0 +1,27 @@
1
+ export function registerGetMerchantProfile(server, client) {
2
+ server.tool("get-merchant-profile", "Fetch your merchant profile including wallet address, supported chains, " +
3
+ "webhook URL, and on-chain registration status. Requires a PincerPay API key.", {}, async () => {
4
+ try {
5
+ client.requireAuth();
6
+ }
7
+ catch (err) {
8
+ return {
9
+ content: [{ type: "text", text: err instanceof Error ? err.message : String(err) }],
10
+ isError: true,
11
+ };
12
+ }
13
+ try {
14
+ const result = await client.getMerchantProfile();
15
+ return {
16
+ content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
17
+ };
18
+ }
19
+ catch (err) {
20
+ return {
21
+ content: [{ type: "text", text: `Failed to fetch merchant profile: ${err instanceof Error ? err.message : String(err)}` }],
22
+ isError: true,
23
+ };
24
+ }
25
+ });
26
+ }
27
+ //# sourceMappingURL=get-merchant-profile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-merchant-profile.js","sourceRoot":"","sources":["../../src/tools/get-merchant-profile.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,0BAA0B,CACxC,MAAiB,EACjB,MAAyB;IAEzB,MAAM,CAAC,IAAI,CACT,sBAAsB,EACtB,0EAA0E;QACxE,8EAA8E,EAChF,EAAE,EACF,KAAK,IAAI,EAAE;QACT,IAAI,CAAC;YACH,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC5F,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,kBAAkB,EAAE,CAAC;YACjD,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aAC5E,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,qCAAqC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBACnI,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import type { FacilitatorClient } from "../client.js";
3
+ export declare function registerGetMetrics(server: McpServer, client: FacilitatorClient): void;
4
+ //# sourceMappingURL=get-metrics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-metrics.d.ts","sourceRoot":"","sources":["../../src/tools/get-metrics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEtD,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,iBAAiB,QAgC1B"}
@@ -0,0 +1,29 @@
1
+ export function registerGetMetrics(server, client) {
2
+ server.tool("get-settlement-metrics", "Fetch performance metrics from the PincerPay facilitator. " +
3
+ "Returns settlement counters, latency percentiles (p50/p95/p99), " +
4
+ "verification stats, and error rates. No API key required.", {}, async () => {
5
+ try {
6
+ const result = await client.getMetrics();
7
+ return {
8
+ content: [
9
+ {
10
+ type: "text",
11
+ text: JSON.stringify(result, null, 2),
12
+ },
13
+ ],
14
+ };
15
+ }
16
+ catch (err) {
17
+ return {
18
+ content: [
19
+ {
20
+ type: "text",
21
+ text: `Failed to fetch metrics: ${err instanceof Error ? err.message : String(err)}`,
22
+ },
23
+ ],
24
+ isError: true,
25
+ };
26
+ }
27
+ });
28
+ }
29
+ //# sourceMappingURL=get-metrics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-metrics.js","sourceRoot":"","sources":["../../src/tools/get-metrics.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,kBAAkB,CAChC,MAAiB,EACjB,MAAyB;IAEzB,MAAM,CAAC,IAAI,CACT,wBAAwB,EACxB,4DAA4D;QAC1D,kEAAkE;QAClE,2DAA2D,EAC7D,EAAE,EACF,KAAK,IAAI,EAAE;QACT,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;YACzC,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;qBACtC;iBACF;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,4BAA4B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;qBACrF;iBACF;gBACD,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAStD,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,iBAAiB,QAWzE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAsBtD,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,iBAAiB,QAoCzE"}
@@ -5,12 +5,44 @@ import { registerCheckTransaction } from "./check-transaction.js";
5
5
  import { registerScaffoldMiddleware } from "./scaffold-middleware.js";
6
6
  import { registerScaffoldAgent } from "./scaffold-agent.js";
7
7
  import { registerGenerateUcp } from "./generate-ucp.js";
8
+ import { registerCheckHealth } from "./check-health.js";
9
+ import { registerGetMetrics } from "./get-metrics.js";
10
+ import { registerVerifyPayment } from "./verify-payment.js";
11
+ import { registerListPaywalls } from "./list-paywalls.js";
12
+ import { registerCreatePaywall } from "./create-paywall.js";
13
+ import { registerUpdatePaywall } from "./update-paywall.js";
14
+ import { registerDeletePaywall } from "./delete-paywall.js";
15
+ import { registerListTransactions } from "./list-transactions.js";
16
+ import { registerListAgents } from "./list-agents.js";
17
+ import { registerUpdateAgent } from "./update-agent.js";
18
+ import { registerListWebhooks } from "./list-webhooks.js";
19
+ import { registerRetryWebhook } from "./retry-webhook.js";
20
+ import { registerGetMerchantProfile } from "./get-merchant-profile.js";
8
21
  export function registerTools(server, client) {
9
- // Operations tools (facilitator interaction)
22
+ // Monitoring tools (no auth)
10
23
  registerListChains(server, client);
11
- registerCheckTransaction(server, client);
12
24
  registerEstimateGas(server);
13
- // Developer tools (scaffolding + validation)
25
+ registerCheckHealth(server, client);
26
+ registerGetMetrics(server, client);
27
+ // Operations tools (auth required)
28
+ registerCheckTransaction(server, client);
29
+ registerVerifyPayment(server, client);
30
+ // Paywall CRUD (auth required)
31
+ registerListPaywalls(server, client);
32
+ registerCreatePaywall(server, client);
33
+ registerUpdatePaywall(server, client);
34
+ registerDeletePaywall(server, client);
35
+ // Transaction listing (auth required)
36
+ registerListTransactions(server, client);
37
+ // Agent management (auth required)
38
+ registerListAgents(server, client);
39
+ registerUpdateAgent(server, client);
40
+ // Webhook observability (auth required)
41
+ registerListWebhooks(server, client);
42
+ registerRetryWebhook(server, client);
43
+ // Merchant profile (auth required)
44
+ registerGetMerchantProfile(server, client);
45
+ // Developer tools (scaffolding + validation, no auth)
14
46
  registerValidateConfig(server);
15
47
  registerScaffoldMiddleware(server);
16
48
  registerScaffoldAgent(server);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAExD,MAAM,UAAU,aAAa,CAAC,MAAiB,EAAE,MAAyB;IACxE,6CAA6C;IAC7C,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,wBAAwB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAE5B,6CAA6C;IAC7C,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAC/B,0BAA0B,CAAC,MAAM,CAAC,CAAC;IACnC,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC9B,mBAAmB,CAAC,MAAM,CAAC,CAAC;AAC9B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAEvE,MAAM,UAAU,aAAa,CAAC,MAAiB,EAAE,MAAyB;IACxE,6BAA6B;IAC7B,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC5B,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEnC,mCAAmC;IACnC,wBAAwB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEtC,+BAA+B;IAC/B,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEtC,sCAAsC;IACtC,wBAAwB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEzC,mCAAmC;IACnC,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEpC,wCAAwC;IACxC,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAErC,mCAAmC;IACnC,0BAA0B,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE3C,sDAAsD;IACtD,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAC/B,0BAA0B,CAAC,MAAM,CAAC,CAAC;IACnC,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC9B,mBAAmB,CAAC,MAAM,CAAC,CAAC;AAC9B,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import type { FacilitatorClient } from "../client.js";
3
+ export declare function registerListAgents(server: McpServer, client: FacilitatorClient): void;
4
+ //# sourceMappingURL=list-agents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-agents.d.ts","sourceRoot":"","sources":["../../src/tools/list-agents.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAWtD,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,iBAAiB,QA+B1B"}
@@ -0,0 +1,37 @@
1
+ import { z } from "zod";
2
+ const inputSchema = {
3
+ limit: z.number().int().min(1).max(200).default(50).describe("Max items to return."),
4
+ offset: z.number().int().min(0).default(0).describe("Pagination offset."),
5
+ status: z
6
+ .string()
7
+ .optional()
8
+ .describe("Filter by status: active, paused, revoked."),
9
+ };
10
+ export function registerListAgents(server, client) {
11
+ server.tool("list-agents", "List AI agents that have interacted with your merchant account. " +
12
+ "Shows Solana address, spending limits, Squads PDA, and status. " +
13
+ "Agents are auto-registered on first payment. Requires a PincerPay API key.", inputSchema, async ({ limit, offset, status }) => {
14
+ try {
15
+ client.requireAuth();
16
+ }
17
+ catch (err) {
18
+ return {
19
+ content: [{ type: "text", text: err instanceof Error ? err.message : String(err) }],
20
+ isError: true,
21
+ };
22
+ }
23
+ try {
24
+ const result = await client.listAgents({ limit, offset, status });
25
+ return {
26
+ content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
27
+ };
28
+ }
29
+ catch (err) {
30
+ return {
31
+ content: [{ type: "text", text: `Failed to list agents: ${err instanceof Error ? err.message : String(err)}` }],
32
+ isError: true,
33
+ };
34
+ }
35
+ });
36
+ }
37
+ //# sourceMappingURL=list-agents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-agents.js","sourceRoot":"","sources":["../../src/tools/list-agents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,MAAM,WAAW,GAAG;IAClB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,sBAAsB,CAAC;IACpF,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC;IACzE,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,4CAA4C,CAAC;CAC1D,CAAC;AAEF,MAAM,UAAU,kBAAkB,CAChC,MAAiB,EACjB,MAAyB;IAEzB,MAAM,CAAC,IAAI,CACT,aAAa,EACb,kEAAkE;QAChE,iEAAiE;QACjE,4EAA4E,EAC9E,WAAW,EACX,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE;QAClC,IAAI,CAAC;YACH,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC5F,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;YAClE,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aAC5E,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,0BAA0B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBACxH,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import type { FacilitatorClient } from "../client.js";
3
+ export declare function registerListPaywalls(server: McpServer, client: FacilitatorClient): void;
4
+ //# sourceMappingURL=list-paywalls.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-paywalls.d.ts","sourceRoot":"","sources":["../../src/tools/list-paywalls.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAWtD,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,iBAAiB,QA+B1B"}
@@ -0,0 +1,37 @@
1
+ import { z } from "zod";
2
+ const inputSchema = {
3
+ limit: z.number().int().min(1).max(200).default(50).describe("Max items to return."),
4
+ offset: z.number().int().min(0).default(0).describe("Pagination offset."),
5
+ active: z
6
+ .boolean()
7
+ .optional()
8
+ .describe("Filter by active status. Omit to return all."),
9
+ };
10
+ export function registerListPaywalls(server, client) {
11
+ server.tool("list-paywalls", "List paywalled endpoints configured for your merchant account. " +
12
+ "Returns endpoint patterns, USDC amounts, chain overrides, and active status. " +
13
+ "Requires a PincerPay API key.", inputSchema, async ({ limit, offset, active }) => {
14
+ try {
15
+ client.requireAuth();
16
+ }
17
+ catch (err) {
18
+ return {
19
+ content: [{ type: "text", text: err instanceof Error ? err.message : String(err) }],
20
+ isError: true,
21
+ };
22
+ }
23
+ try {
24
+ const result = await client.listPaywalls({ limit, offset, active });
25
+ return {
26
+ content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
27
+ };
28
+ }
29
+ catch (err) {
30
+ return {
31
+ content: [{ type: "text", text: `Failed to list paywalls: ${err instanceof Error ? err.message : String(err)}` }],
32
+ isError: true,
33
+ };
34
+ }
35
+ });
36
+ }
37
+ //# sourceMappingURL=list-paywalls.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-paywalls.js","sourceRoot":"","sources":["../../src/tools/list-paywalls.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,MAAM,WAAW,GAAG;IAClB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,sBAAsB,CAAC;IACpF,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC;IACzE,MAAM,EAAE,CAAC;SACN,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,QAAQ,CAAC,8CAA8C,CAAC;CAC5D,CAAC;AAEF,MAAM,UAAU,oBAAoB,CAClC,MAAiB,EACjB,MAAyB;IAEzB,MAAM,CAAC,IAAI,CACT,eAAe,EACf,iEAAiE;QAC/D,+EAA+E;QAC/E,+BAA+B,EACjC,WAAW,EACX,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE;QAClC,IAAI,CAAC;YACH,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC5F,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;YACpE,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aAC5E,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,4BAA4B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBAC1H,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import type { FacilitatorClient } from "../client.js";
3
+ export declare function registerListTransactions(server: McpServer, client: FacilitatorClient): void;
4
+ //# sourceMappingURL=list-transactions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-transactions.d.ts","sourceRoot":"","sources":["../../src/tools/list-transactions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AA2BtD,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,iBAAiB,QA+B1B"}
@@ -0,0 +1,53 @@
1
+ import { z } from "zod";
2
+ const inputSchema = {
3
+ limit: z.number().int().min(1).max(200).default(50).describe("Max items to return."),
4
+ offset: z.number().int().min(0).default(0).describe("Pagination offset."),
5
+ status: z
6
+ .string()
7
+ .optional()
8
+ .describe("Filter by status: pending, mempool, optimistic, confirmed, failed."),
9
+ chain: z
10
+ .string()
11
+ .optional()
12
+ .describe('Filter by CAIP-2 chain ID, e.g. "solana:devnet" or "eip155:8453".'),
13
+ from: z
14
+ .string()
15
+ .optional()
16
+ .describe("Filter by sender address."),
17
+ to: z
18
+ .string()
19
+ .optional()
20
+ .describe("Filter by recipient address."),
21
+ agent: z
22
+ .string()
23
+ .optional()
24
+ .describe("Filter by agent UUID."),
25
+ };
26
+ export function registerListTransactions(server, client) {
27
+ server.tool("list-transactions", "List payment transactions for your merchant account with filtering and pagination. " +
28
+ "Returns chain, amount, status, gas costs, and timestamps. " +
29
+ "Requires a PincerPay API key.", inputSchema, async ({ limit, offset, status, chain, from, to, agent }) => {
30
+ try {
31
+ client.requireAuth();
32
+ }
33
+ catch (err) {
34
+ return {
35
+ content: [{ type: "text", text: err instanceof Error ? err.message : String(err) }],
36
+ isError: true,
37
+ };
38
+ }
39
+ try {
40
+ const result = await client.listTransactions({ limit, offset, status, chain, from, to, agent });
41
+ return {
42
+ content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
43
+ };
44
+ }
45
+ catch (err) {
46
+ return {
47
+ content: [{ type: "text", text: `Failed to list transactions: ${err instanceof Error ? err.message : String(err)}` }],
48
+ isError: true,
49
+ };
50
+ }
51
+ });
52
+ }
53
+ //# sourceMappingURL=list-transactions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-transactions.js","sourceRoot":"","sources":["../../src/tools/list-transactions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,MAAM,WAAW,GAAG;IAClB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,sBAAsB,CAAC;IACpF,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC;IACzE,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,oEAAoE,CAAC;IACjF,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,mEAAmE,CAAC;IAChF,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,2BAA2B,CAAC;IACxC,EAAE,EAAE,CAAC;SACF,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,8BAA8B,CAAC;IAC3C,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,uBAAuB,CAAC;CACrC,CAAC;AAEF,MAAM,UAAU,wBAAwB,CACtC,MAAiB,EACjB,MAAyB;IAEzB,MAAM,CAAC,IAAI,CACT,mBAAmB,EACnB,qFAAqF;QACnF,4DAA4D;QAC5D,+BAA+B,EACjC,WAAW,EACX,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;QAC1D,IAAI,CAAC;YACH,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC5F,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YAChG,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aAC5E,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,gCAAgC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBAC9H,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import type { FacilitatorClient } from "../client.js";
3
+ export declare function registerListWebhooks(server: McpServer, client: FacilitatorClient): void;
4
+ //# sourceMappingURL=list-webhooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-webhooks.d.ts","sourceRoot":"","sources":["../../src/tools/list-webhooks.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAetD,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,iBAAiB,QA+B1B"}
@@ -0,0 +1,41 @@
1
+ import { z } from "zod";
2
+ const inputSchema = {
3
+ limit: z.number().int().min(1).max(200).default(50).describe("Max items to return."),
4
+ offset: z.number().int().min(0).default(0).describe("Pagination offset."),
5
+ status: z
6
+ .string()
7
+ .optional()
8
+ .describe("Filter by status: pending, delivered, retrying, failed."),
9
+ event: z
10
+ .string()
11
+ .optional()
12
+ .describe('Filter by event type, e.g. "payment.settled", "payment.confirmed", "payment.failed".'),
13
+ };
14
+ export function registerListWebhooks(server, client) {
15
+ server.tool("list-webhooks", "List webhook delivery attempts for your merchant account. " +
16
+ "Shows event type, HTTP status code, retry count, and delivery status. " +
17
+ "Useful for diagnosing missed webhook notifications. Requires a PincerPay API key.", inputSchema, async ({ limit, offset, status, event }) => {
18
+ try {
19
+ client.requireAuth();
20
+ }
21
+ catch (err) {
22
+ return {
23
+ content: [{ type: "text", text: err instanceof Error ? err.message : String(err) }],
24
+ isError: true,
25
+ };
26
+ }
27
+ try {
28
+ const result = await client.listWebhooks({ limit, offset, status, event });
29
+ return {
30
+ content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
31
+ };
32
+ }
33
+ catch (err) {
34
+ return {
35
+ content: [{ type: "text", text: `Failed to list webhooks: ${err instanceof Error ? err.message : String(err)}` }],
36
+ isError: true,
37
+ };
38
+ }
39
+ });
40
+ }
41
+ //# sourceMappingURL=list-webhooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-webhooks.js","sourceRoot":"","sources":["../../src/tools/list-webhooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,MAAM,WAAW,GAAG;IAClB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,sBAAsB,CAAC;IACpF,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC;IACzE,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,yDAAyD,CAAC;IACtE,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,sFAAsF,CAAC;CACpG,CAAC;AAEF,MAAM,UAAU,oBAAoB,CAClC,MAAiB,EACjB,MAAyB;IAEzB,MAAM,CAAC,IAAI,CACT,eAAe,EACf,4DAA4D;QAC1D,wEAAwE;QACxE,mFAAmF,EACrF,WAAW,EACX,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;QACzC,IAAI,CAAC;YACH,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC5F,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;YAC3E,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aAC5E,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,4BAA4B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBAC1H,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import type { FacilitatorClient } from "../client.js";
3
+ export declare function registerRetryWebhook(server: McpServer, client: FacilitatorClient): void;
4
+ //# sourceMappingURL=retry-webhook.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retry-webhook.d.ts","sourceRoot":"","sources":["../../src/tools/retry-webhook.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAMtD,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,iBAAiB,QA+B1B"}
@@ -0,0 +1,32 @@
1
+ import { z } from "zod";
2
+ const inputSchema = {
3
+ id: z.string().uuid().describe("Webhook delivery UUID to retry."),
4
+ };
5
+ export function registerRetryWebhook(server, client) {
6
+ server.tool("retry-webhook", "Manually retry a failed or pending webhook delivery. " +
7
+ "Resets the delivery status and queues it for immediate retry. " +
8
+ "Cannot retry already-delivered webhooks. Requires a PincerPay API key.", inputSchema, async ({ id }) => {
9
+ try {
10
+ client.requireAuth();
11
+ }
12
+ catch (err) {
13
+ return {
14
+ content: [{ type: "text", text: err instanceof Error ? err.message : String(err) }],
15
+ isError: true,
16
+ };
17
+ }
18
+ try {
19
+ const result = await client.retryWebhook(id);
20
+ return {
21
+ content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
22
+ };
23
+ }
24
+ catch (err) {
25
+ return {
26
+ content: [{ type: "text", text: `Failed to retry webhook: ${err instanceof Error ? err.message : String(err)}` }],
27
+ isError: true,
28
+ };
29
+ }
30
+ });
31
+ }
32
+ //# sourceMappingURL=retry-webhook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retry-webhook.js","sourceRoot":"","sources":["../../src/tools/retry-webhook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,MAAM,WAAW,GAAG;IAClB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;CAClE,CAAC;AAEF,MAAM,UAAU,oBAAoB,CAClC,MAAiB,EACjB,MAAyB;IAEzB,MAAM,CAAC,IAAI,CACT,eAAe,EACf,uDAAuD;QACrD,gEAAgE;QAChE,wEAAwE,EAC1E,WAAW,EACX,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC5F,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;YAC7C,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aAC5E,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,4BAA4B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBAC1H,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import type { FacilitatorClient } from "../client.js";
3
+ export declare function registerUpdateAgent(server: McpServer, client: FacilitatorClient): void;
4
+ //# sourceMappingURL=update-agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-agent.d.ts","sourceRoot":"","sources":["../../src/tools/update-agent.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAsBtD,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,iBAAiB,QA+B1B"}
@@ -0,0 +1,48 @@
1
+ import { z } from "zod";
2
+ const inputSchema = {
3
+ id: z.string().uuid().describe("Agent UUID to update."),
4
+ name: z
5
+ .string()
6
+ .optional()
7
+ .describe("New display name for the agent."),
8
+ status: z
9
+ .enum(["active", "paused", "revoked"])
10
+ .optional()
11
+ .describe("Change agent status. Paused/revoked agents are blocked from payments."),
12
+ maxPerTransaction: z
13
+ .string()
14
+ .optional()
15
+ .describe('Max USDC per transaction in base units (e.g. "1000000" = $1).'),
16
+ maxPerDay: z
17
+ .string()
18
+ .optional()
19
+ .describe('Max USDC per day in base units (e.g. "10000000" = $10).'),
20
+ };
21
+ export function registerUpdateAgent(server, client) {
22
+ server.tool("update-agent", "Update an agent's name, status, or spending limits. " +
23
+ "Set status to 'paused' or 'revoked' to block further payments. " +
24
+ "Spending limits are in USDC base units (6 decimals). Requires a PincerPay API key.", inputSchema, async ({ id, name, status, maxPerTransaction, maxPerDay }) => {
25
+ try {
26
+ client.requireAuth();
27
+ }
28
+ catch (err) {
29
+ return {
30
+ content: [{ type: "text", text: err instanceof Error ? err.message : String(err) }],
31
+ isError: true,
32
+ };
33
+ }
34
+ try {
35
+ const result = await client.updateAgent(id, { name, status, maxPerTransaction, maxPerDay });
36
+ return {
37
+ content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
38
+ };
39
+ }
40
+ catch (err) {
41
+ return {
42
+ content: [{ type: "text", text: `Failed to update agent: ${err instanceof Error ? err.message : String(err)}` }],
43
+ isError: true,
44
+ };
45
+ }
46
+ });
47
+ }
48
+ //# sourceMappingURL=update-agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-agent.js","sourceRoot":"","sources":["../../src/tools/update-agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,MAAM,WAAW,GAAG;IAClB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;IACvD,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,iCAAiC,CAAC;IAC9C,MAAM,EAAE,CAAC;SACN,IAAI,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;SACrC,QAAQ,EAAE;SACV,QAAQ,CAAC,uEAAuE,CAAC;IACpF,iBAAiB,EAAE,CAAC;SACjB,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,+DAA+D,CAAC;IAC5E,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,yDAAyD,CAAC;CACvE,CAAC;AAEF,MAAM,UAAU,mBAAmB,CACjC,MAAiB,EACjB,MAAyB;IAEzB,MAAM,CAAC,IAAI,CACT,cAAc,EACd,sDAAsD;QACpD,iEAAiE;QACjE,oFAAoF,EACtF,WAAW,EACX,KAAK,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,iBAAiB,EAAE,SAAS,EAAE,EAAE,EAAE;QAC3D,IAAI,CAAC;YACH,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC5F,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,iBAAiB,EAAE,SAAS,EAAE,CAAC,CAAC;YAC5F,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aAC5E,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,2BAA2B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBACzH,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import type { FacilitatorClient } from "../client.js";
3
+ export declare function registerUpdatePaywall(server: McpServer, client: FacilitatorClient): void;
4
+ //# sourceMappingURL=update-paywall.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-paywall.d.ts","sourceRoot":"","sources":["../../src/tools/update-paywall.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAsBtD,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,iBAAiB,QA8B1B"}
@@ -0,0 +1,47 @@
1
+ import { z } from "zod";
2
+ const inputSchema = {
3
+ id: z.string().uuid().describe("Paywall UUID to update."),
4
+ amount: z
5
+ .string()
6
+ .optional()
7
+ .describe('New USDC price, e.g. "0.05".'),
8
+ description: z
9
+ .string()
10
+ .optional()
11
+ .describe("New description."),
12
+ chains: z
13
+ .array(z.string())
14
+ .optional()
15
+ .describe("New chain overrides."),
16
+ isActive: z
17
+ .boolean()
18
+ .optional()
19
+ .describe("Set to false to disable the paywall without deleting it."),
20
+ };
21
+ export function registerUpdatePaywall(server, client) {
22
+ server.tool("update-paywall", "Update an existing paywall's price, description, chains, or active status. " +
23
+ "Only provided fields are changed. Requires a PincerPay API key.", inputSchema, async ({ id, amount, description, chains, isActive }) => {
24
+ try {
25
+ client.requireAuth();
26
+ }
27
+ catch (err) {
28
+ return {
29
+ content: [{ type: "text", text: err instanceof Error ? err.message : String(err) }],
30
+ isError: true,
31
+ };
32
+ }
33
+ try {
34
+ const result = await client.updatePaywall(id, { amount, description, chains, isActive });
35
+ return {
36
+ content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
37
+ };
38
+ }
39
+ catch (err) {
40
+ return {
41
+ content: [{ type: "text", text: `Failed to update paywall: ${err instanceof Error ? err.message : String(err)}` }],
42
+ isError: true,
43
+ };
44
+ }
45
+ });
46
+ }
47
+ //# sourceMappingURL=update-paywall.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-paywall.js","sourceRoot":"","sources":["../../src/tools/update-paywall.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,MAAM,WAAW,GAAG;IAClB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;IACzD,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,8BAA8B,CAAC;IAC3C,WAAW,EAAE,CAAC;SACX,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,kBAAkB,CAAC;IAC/B,MAAM,EAAE,CAAC;SACN,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SACjB,QAAQ,EAAE;SACV,QAAQ,CAAC,sBAAsB,CAAC;IACnC,QAAQ,EAAE,CAAC;SACR,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,QAAQ,CAAC,0DAA0D,CAAC;CACxE,CAAC;AAEF,MAAM,UAAU,qBAAqB,CACnC,MAAiB,EACjB,MAAyB;IAEzB,MAAM,CAAC,IAAI,CACT,gBAAgB,EAChB,6EAA6E;QAC3E,iEAAiE,EACnE,WAAW,EACX,KAAK,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE;QACtD,IAAI,CAAC;YACH,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC5F,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;YACzF,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aAC5E,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,6BAA6B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBAC3H,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import type { FacilitatorClient } from "../client.js";
3
+ export declare function registerVerifyPayment(server: McpServer, client: FacilitatorClient): void;
4
+ //# sourceMappingURL=verify-payment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verify-payment.d.ts","sourceRoot":"","sources":["../../src/tools/verify-payment.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAiBtD,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,iBAAiB,QAgD1B"}