@hookline/mcp 0.1.0 → 0.1.1

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.
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- import { errorResult, result, trusted } from './result.js';
2
+ import { errorResult, result, trusted, withStructured } from './result.js';
3
3
  export function registerCreateEndpoint(server, ctx) {
4
4
  server.registerTool('create_endpoint', {
5
5
  title: 'Create a webhook endpoint',
@@ -13,8 +13,13 @@ export function registerCreateEndpoint(server, ctx) {
13
13
  annotations: {
14
14
  readOnlyHint: false,
15
15
  destructiveHint: false,
16
+ openWorldHint: true,
16
17
  title: 'Create a webhook endpoint',
17
18
  },
19
+ outputSchema: {
20
+ id: z.string(),
21
+ slug: z.string(),
22
+ },
18
23
  }, async (args) => {
19
24
  try {
20
25
  const endpoint = await ctx.client.request({
@@ -26,7 +31,7 @@ export function registerCreateEndpoint(server, ctx) {
26
31
  validatorId: args.validatorId,
27
32
  },
28
33
  });
29
- return result(trusted(endpoint));
34
+ return withStructured(result(trusted(endpoint)), endpoint);
30
35
  }
31
36
  catch (err) {
32
37
  return errorResult(err);
@@ -1 +1 @@
1
- {"version":3,"file":"create-endpoint.js","sourceRoot":"","sources":["../../src/tools/create-endpoint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAI3D,MAAM,UAAU,sBAAsB,CACpC,MAAiB,EACjB,GAAgB;IAEhB,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,KAAK,EAAE,2BAA2B;QAClC,WAAW,EACT,6RAA6R;QAC/R,WAAW,EAAE;YACX,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;YAC9B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC;YACnD,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;YACpC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;SAC1C;QACD,WAAW,EAAE;YACX,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,KAAK;YACtB,KAAK,EAAE,2BAA2B;SACnC;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,OAAO,CAAkB;gBACzD,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,eAAe,IAAI,CAAC,WAAW,oBAAoB;gBACzD,IAAI,EAAE;oBACJ,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,YAAY,EAAE,IAAI,CAAC,YAAY;oBAC/B,WAAW,EAAE,IAAI,CAAC,WAAW;iBAC9B;aACF,CAAC,CAAC;YACH,OAAO,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;QACnC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"create-endpoint.js","sourceRoot":"","sources":["../../src/tools/create-endpoint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAI3E,MAAM,UAAU,sBAAsB,CACpC,MAAiB,EACjB,GAAgB;IAEhB,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,KAAK,EAAE,2BAA2B;QAClC,WAAW,EACT,6RAA6R;QAC/R,WAAW,EAAE;YACX,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;YAC9B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC;YACnD,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;YACpC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;SAC1C;QACD,WAAW,EAAE;YACX,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,KAAK;YACtB,aAAa,EAAE,IAAI;YACnB,KAAK,EAAE,2BAA2B;SACnC;QACD,YAAY,EAAE;YACZ,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;YACd,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;SACjB;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,OAAO,CAAkB;gBACzD,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,eAAe,IAAI,CAAC,WAAW,oBAAoB;gBACzD,IAAI,EAAE;oBACJ,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,YAAY,EAAE,IAAI,CAAC,YAAY;oBAC/B,WAAW,EAAE,IAAI,CAAC,WAAW;iBAC9B;aACF,CAAC,CAAC;YACH,OAAO,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QAC7D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- import { errorResult, result, trusted } from './result.js';
2
+ import { errorResult, result, trusted, withStructured } from './result.js';
3
3
  export function registerDiffPayloads(server, ctx) {
4
4
  server.registerTool('diff_payloads', {
5
5
  title: 'Diff two payloads',
@@ -11,7 +11,16 @@ export function registerDiffPayloads(server, ctx) {
11
11
  treatNullAsAbsent: z.boolean().optional(),
12
12
  ignoreFields: z.array(z.string()).optional(),
13
13
  },
14
- annotations: { readOnlyHint: true, title: 'Diff two payloads' },
14
+ annotations: {
15
+ readOnlyHint: true,
16
+ openWorldHint: true,
17
+ title: 'Diff two payloads',
18
+ },
19
+ outputSchema: {
20
+ identical: z.boolean(),
21
+ profileId: z.string(),
22
+ entries: z.array(z.unknown()),
23
+ },
15
24
  }, async (args) => {
16
25
  try {
17
26
  const response = await ctx.client.request({
@@ -25,7 +34,7 @@ export function registerDiffPayloads(server, ctx) {
25
34
  ignoreFields: args.ignoreFields,
26
35
  },
27
36
  });
28
- return result(trusted(response));
37
+ return withStructured(result(trusted(response)), response);
29
38
  }
30
39
  catch (err) {
31
40
  return errorResult(err);
@@ -1 +1 @@
1
- {"version":3,"file":"diff-payloads.js","sourceRoot":"","sources":["../../src/tools/diff-payloads.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAQ3D,MAAM,UAAU,oBAAoB,CAClC,MAAiB,EACjB,GAAgB;IAEhB,MAAM,CAAC,YAAY,CACjB,eAAe,EACf;QACE,KAAK,EAAE,mBAAmB;QAC1B,WAAW,EACT,yIAAyI;QAC3I,WAAW,EAAE;YACX,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE;YACjB,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE;YAClB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAChC,iBAAiB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;YACzC,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;SAC7C;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,mBAAmB,EAAE;KAChE,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,OAAO,CAAe;gBACtD,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE;oBACJ,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,SAAS,EAAE,IAAI,CAAC,SAAS;oBACzB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;oBACzC,YAAY,EAAE,IAAI,CAAC,YAAY;iBAChC;aACF,CAAC,CAAC;YACH,OAAO,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;QACnC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"diff-payloads.js","sourceRoot":"","sources":["../../src/tools/diff-payloads.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAQ3E,MAAM,UAAU,oBAAoB,CAClC,MAAiB,EACjB,GAAgB;IAEhB,MAAM,CAAC,YAAY,CACjB,eAAe,EACf;QACE,KAAK,EAAE,mBAAmB;QAC1B,WAAW,EACT,yIAAyI;QAC3I,WAAW,EAAE;YACX,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE;YACjB,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE;YAClB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAChC,iBAAiB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;YACzC,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;SAC7C;QACD,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,aAAa,EAAE,IAAI;YACnB,KAAK,EAAE,mBAAmB;SAC3B;QACD,YAAY,EAAE;YACZ,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE;YACtB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;YACrB,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;SAC9B;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,OAAO,CAAe;gBACtD,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE;oBACJ,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,SAAS,EAAE,IAAI,CAAC,SAAS;oBACzB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;oBACzC,YAAY,EAAE,IAAI,CAAC,YAAY;iBAChC;aACF,CAAC,CAAC;YACH,OAAO,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QAC7D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- import { errorResult, result, trusted } from './result.js';
2
+ import { errorResult, result, trusted, withStructured } from './result.js';
3
3
  import { trustedMetaOf, untrustedBlocksOf, } from './received-request.js';
4
4
  export function registerGetRequestDetail(server, ctx) {
5
5
  server.registerTool('get_request_detail', {
@@ -11,15 +11,26 @@ export function registerGetRequestDetail(server, ctx) {
11
11
  },
12
12
  annotations: {
13
13
  readOnlyHint: true,
14
+ openWorldHint: true,
14
15
  title: 'Get a received request (returns untrusted content)',
15
16
  },
17
+ outputSchema: {
18
+ id: z.string(),
19
+ endpointId: z.string(),
20
+ method: z.string(),
21
+ status: z.number(),
22
+ receivedAt: z.string(),
23
+ sizeBytes: z.number(),
24
+ bodyTruncated: z.boolean(),
25
+ },
16
26
  }, async (args) => {
17
27
  try {
18
28
  const request = await ctx.client.request({
19
29
  method: 'GET',
20
30
  path: `/webhook-endpoints/${args.endpointId}/requests/${args.requestId}`,
21
31
  });
22
- return result(trusted(trustedMetaOf(request)), ...untrustedBlocksOf(request));
32
+ const meta = trustedMetaOf(request);
33
+ return withStructured(result(trusted(meta), ...untrustedBlocksOf(request)), meta);
23
34
  }
24
35
  catch (err) {
25
36
  return errorResult(err);
@@ -1 +1 @@
1
- {"version":3,"file":"get-request-detail.js","sourceRoot":"","sources":["../../src/tools/get-request-detail.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAEL,aAAa,EACb,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,UAAU,wBAAwB,CACtC,MAAiB,EACjB,GAAgB;IAEhB,MAAM,CAAC,YAAY,CACjB,oBAAoB,EACpB;QACE,KAAK,EAAE,wBAAwB;QAC/B,WAAW,EACT,sNAAsN;QACxN,WAAW,EAAE;YACX,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;YAC7B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;SAC7B;QACD,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,KAAK,EAAE,oDAAoD;SAC5D;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,OAAO,CAAkB;gBACxD,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,sBAAsB,IAAI,CAAC,UAAU,aAAa,IAAI,CAAC,SAAS,EAAE;aACzE,CAAC,CAAC;YACH,OAAO,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC;QAChF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"get-request-detail.js","sourceRoot":"","sources":["../../src/tools/get-request-detail.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC3E,OAAO,EAEL,aAAa,EACb,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,UAAU,wBAAwB,CACtC,MAAiB,EACjB,GAAgB;IAEhB,MAAM,CAAC,YAAY,CACjB,oBAAoB,EACpB;QACE,KAAK,EAAE,wBAAwB;QAC/B,WAAW,EACT,sNAAsN;QACxN,WAAW,EAAE;YACX,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;YAC7B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;SAC7B;QACD,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,aAAa,EAAE,IAAI;YACnB,KAAK,EAAE,oDAAoD;SAC5D;QACD,YAAY,EAAE;YACZ,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;YACd,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;YACtB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;YAClB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;YAClB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;YACtB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;YACrB,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE;SAC3B;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,OAAO,CAAkB;gBACxD,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,sBAAsB,IAAI,CAAC,UAAU,aAAa,IAAI,CAAC,SAAS,EAAE;aACzE,CAAC,CAAC;YACH,MAAM,IAAI,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;YACpC,OAAO,cAAc,CACnB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC,EACpD,IAAI,CACL,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- import { errorResult, result, trusted } from './result.js';
2
+ import { errorResult, result, trusted, withStructured } from './result.js';
3
3
  import { trustedMetaOf, untrustedBlocksOf, } from './received-request.js';
4
4
  export function registerGetRequests(server, ctx) {
5
5
  server.registerTool('get_requests', {
@@ -13,8 +13,13 @@ export function registerGetRequests(server, ctx) {
13
13
  },
14
14
  annotations: {
15
15
  readOnlyHint: true,
16
+ openWorldHint: true,
16
17
  title: 'Get received requests (returns untrusted content)',
17
18
  },
19
+ outputSchema: {
20
+ count: z.number(),
21
+ requests: z.array(z.record(z.unknown())),
22
+ },
18
23
  }, async (args) => {
19
24
  try {
20
25
  const requests = await ctx.client.request({
@@ -31,7 +36,7 @@ export function registerGetRequests(server, ctx) {
31
36
  requests: requests.map(trustedMetaOf),
32
37
  };
33
38
  const blocks = requests.flatMap(untrustedBlocksOf);
34
- return result(trusted(meta), ...blocks);
39
+ return withStructured(result(trusted(meta), ...blocks), meta);
35
40
  }
36
41
  catch (err) {
37
42
  return errorResult(err);
@@ -1 +1 @@
1
- {"version":3,"file":"get-requests.js","sourceRoot":"","sources":["../../src/tools/get-requests.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAEL,aAAa,EACb,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,UAAU,mBAAmB,CACjC,MAAiB,EACjB,GAAgB;IAEhB,MAAM,CAAC,YAAY,CACjB,cAAc,EACd;QACE,KAAK,EAAE,uBAAuB;QAC9B,WAAW,EACT,+NAA+N;QACjO,WAAW,EAAE;YACX,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;YAC7B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;YACjD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;YACrC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;SACtD;QACD,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,KAAK,EAAE,mDAAmD;SAC3D;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,OAAO,CAAoB;gBAC3D,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,sBAAsB,IAAI,CAAC,UAAU,WAAW;gBACtD,KAAK,EAAE;oBACL,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,MAAM,EAAE,IAAI,CAAC,MAAM;iBACpB;aACF,CAAC,CAAC;YACH,MAAM,IAAI,GAAG;gBACX,KAAK,EAAE,QAAQ,CAAC,MAAM;gBACtB,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC;aACtC,CAAC;YACF,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;YACnD,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"get-requests.js","sourceRoot":"","sources":["../../src/tools/get-requests.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC3E,OAAO,EAEL,aAAa,EACb,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,UAAU,mBAAmB,CACjC,MAAiB,EACjB,GAAgB;IAEhB,MAAM,CAAC,YAAY,CACjB,cAAc,EACd;QACE,KAAK,EAAE,uBAAuB;QAC9B,WAAW,EACT,+NAA+N;QACjO,WAAW,EAAE;YACX,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;YAC7B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;YACjD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;YACrC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;SACtD;QACD,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,aAAa,EAAE,IAAI;YACnB,KAAK,EAAE,mDAAmD;SAC3D;QACD,YAAY,EAAE;YACZ,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;YACjB,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;SACzC;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,OAAO,CAAoB;gBAC3D,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,sBAAsB,IAAI,CAAC,UAAU,WAAW;gBACtD,KAAK,EAAE;oBACL,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,MAAM,EAAE,IAAI,CAAC,MAAM;iBACpB;aACF,CAAC,CAAC;YACH,MAAM,IAAI,GAAG;gBACX,KAAK,EAAE,QAAQ,CAAC,MAAM;gBACtB,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC;aACtC,CAAC;YACF,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;YACnD,OAAO,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;QAChE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- import { errorResult, result, trusted } from './result.js';
2
+ import { errorResult, result, trusted, withStructured } from './result.js';
3
3
  export function registerListEndpoints(server, ctx) {
4
4
  server.registerTool('list_endpoints', {
5
5
  title: 'List webhook endpoints',
@@ -8,7 +8,15 @@ export function registerListEndpoints(server, ctx) {
8
8
  workspaceId: z.string().uuid(),
9
9
  limit: z.number().int().min(1).max(100).optional(),
10
10
  },
11
- annotations: { readOnlyHint: true, title: 'List webhook endpoints' },
11
+ annotations: {
12
+ readOnlyHint: true,
13
+ openWorldHint: true,
14
+ title: 'List webhook endpoints',
15
+ },
16
+ outputSchema: {
17
+ count: z.number(),
18
+ endpoints: z.array(z.unknown()),
19
+ },
12
20
  }, async (args) => {
13
21
  try {
14
22
  const endpoints = await ctx.client.request({
@@ -16,7 +24,8 @@ export function registerListEndpoints(server, ctx) {
16
24
  path: `/workspaces/${args.workspaceId}/webhook-endpoints`,
17
25
  });
18
26
  const limited = args.limit === undefined ? endpoints : endpoints.slice(0, args.limit);
19
- return result(trusted({ count: limited.length, endpoints: limited }));
27
+ const payload = { count: limited.length, endpoints: limited };
28
+ return withStructured(result(trusted(payload)), payload);
20
29
  }
21
30
  catch (err) {
22
31
  return errorResult(err);
@@ -1 +1 @@
1
- {"version":3,"file":"list-endpoints.js","sourceRoot":"","sources":["../../src/tools/list-endpoints.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAI3D,MAAM,UAAU,qBAAqB,CACnC,MAAiB,EACjB,GAAgB;IAEhB,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,KAAK,EAAE,wBAAwB;QAC/B,WAAW,EACT,uIAAuI;QACzI,WAAW,EAAE;YACX,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;YAC9B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;SACnD;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,wBAAwB,EAAE;KACrE,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,OAAO,CAAoB;gBAC5D,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,eAAe,IAAI,CAAC,WAAW,oBAAoB;aAC1D,CAAC,CAAC;YACH,MAAM,OAAO,GACX,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YACxE,OAAO,MAAM,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;QACxE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"list-endpoints.js","sourceRoot":"","sources":["../../src/tools/list-endpoints.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAI3E,MAAM,UAAU,qBAAqB,CACnC,MAAiB,EACjB,GAAgB;IAEhB,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,KAAK,EAAE,wBAAwB;QAC/B,WAAW,EACT,uIAAuI;QACzI,WAAW,EAAE;YACX,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;YAC9B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;SACnD;QACD,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,aAAa,EAAE,IAAI;YACnB,KAAK,EAAE,wBAAwB;SAChC;QACD,YAAY,EAAE;YACZ,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;YACjB,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;SAChC;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,OAAO,CAAoB;gBAC5D,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,eAAe,IAAI,CAAC,WAAW,oBAAoB;aAC1D,CAAC,CAAC;YACH,MAAM,OAAO,GACX,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YACxE,MAAM,OAAO,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;YAC9D,OAAO,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAC3D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1,17 +1,27 @@
1
- import { errorResult, result, trusted } from './result.js';
1
+ import { z } from 'zod';
2
+ import { errorResult, result, trusted, withStructured } from './result.js';
2
3
  export function registerListValidators(server, ctx) {
3
4
  server.registerTool('list_validators', {
4
5
  title: 'List validators',
5
6
  description: 'List the validators configured in your account (id, name, profile, version, message type). Use a validator id with validate_payload.',
6
7
  inputSchema: {},
7
- annotations: { readOnlyHint: true, title: 'List validators' },
8
+ annotations: {
9
+ readOnlyHint: true,
10
+ openWorldHint: true,
11
+ title: 'List validators',
12
+ },
13
+ outputSchema: {
14
+ count: z.number(),
15
+ validators: z.array(z.unknown()),
16
+ },
8
17
  }, async () => {
9
18
  try {
10
19
  const validators = await ctx.client.request({
11
20
  method: 'GET',
12
21
  path: '/validators',
13
22
  });
14
- return result(trusted({ count: validators.length, validators }));
23
+ const payload = { count: validators.length, validators };
24
+ return withStructured(result(trusted(payload)), payload);
15
25
  }
16
26
  catch (err) {
17
27
  return errorResult(err);
@@ -1 +1 @@
1
- {"version":3,"file":"list-validators.js","sourceRoot":"","sources":["../../src/tools/list-validators.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAI3D,MAAM,UAAU,sBAAsB,CACpC,MAAiB,EACjB,GAAgB;IAEhB,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,KAAK,EAAE,iBAAiB;QACxB,WAAW,EACT,sIAAsI;QACxI,WAAW,EAAE,EAAE;QACf,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,iBAAiB,EAAE;KAC9D,EACD,KAAK,IAAI,EAAE;QACT,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,OAAO,CAAqB;gBAC9D,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,aAAa;aACpB,CAAC,CAAC;YACH,OAAO,MAAM,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;QACnE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"list-validators.js","sourceRoot":"","sources":["../../src/tools/list-validators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAI3E,MAAM,UAAU,sBAAsB,CACpC,MAAiB,EACjB,GAAgB;IAEhB,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,KAAK,EAAE,iBAAiB;QACxB,WAAW,EACT,sIAAsI;QACxI,WAAW,EAAE,EAAE;QACf,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,aAAa,EAAE,IAAI;YACnB,KAAK,EAAE,iBAAiB;SACzB;QACD,YAAY,EAAE;YACZ,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;YACjB,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;SACjC;KACF,EACD,KAAK,IAAI,EAAE;QACT,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,OAAO,CAAqB;gBAC9D,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,aAAa;aACpB,CAAC,CAAC;YACH,MAAM,OAAO,GAAG,EAAE,KAAK,EAAE,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC;YACzD,OAAO,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAC3D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -10,4 +10,5 @@ export interface McpToolResult {
10
10
  export declare function text(value: string): McpTextContent;
11
11
  export declare function trusted(meta: unknown): McpTextContent;
12
12
  export declare function result(...content: McpTextContent[]): McpToolResult;
13
+ export declare function withStructured(res: McpToolResult, structuredContent: unknown): McpToolResult;
13
14
  export declare function errorResult(err: unknown): McpToolResult;
@@ -15,6 +15,9 @@ function versionHeader() {
15
15
  export function result(...content) {
16
16
  return { content: [versionHeader(), ...content] };
17
17
  }
18
+ export function withStructured(res, structuredContent) {
19
+ return { ...res, structuredContent };
20
+ }
18
21
  export function errorResult(err) {
19
22
  const message = err instanceof HooklineError
20
23
  ? err.toAgentMessage()
@@ -1 +1 @@
1
- {"version":3,"file":"result.js","sourceRoot":"","sources":["../../src/tools/result.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAa7C,MAAM,UAAU,IAAI,CAAC,KAAa;IAChC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,IAAa;IACnC,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,aAAa;IACpB,OAAO,IAAI,CACT,IAAI,CAAC,SAAS,CAAC;QACb,gBAAgB,EAAE,eAAe;QACjC,UAAU,EAAE,sBAAsB;KACnC,CAAC,CACH,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,GAAG,OAAyB;IACjD,OAAO,EAAE,OAAO,EAAE,CAAC,aAAa,EAAE,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,GAAY;IACtC,MAAM,OAAO,GACX,GAAG,YAAY,aAAa;QAC1B,CAAC,CAAC,GAAG,CAAC,cAAc,EAAE;QACtB,CAAC,CAAC,qBAAqB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;IAC9E,OAAO,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AACrD,CAAC"}
1
+ {"version":3,"file":"result.js","sourceRoot":"","sources":["../../src/tools/result.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAa7C,MAAM,UAAU,IAAI,CAAC,KAAa;IAChC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,IAAa;IACnC,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,aAAa;IACpB,OAAO,IAAI,CACT,IAAI,CAAC,SAAS,CAAC;QACb,gBAAgB,EAAE,eAAe;QACjC,UAAU,EAAE,sBAAsB;KACnC,CAAC,CACH,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,GAAG,OAAyB;IACjD,OAAO,EAAE,OAAO,EAAE,CAAC,aAAa,EAAE,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,GAAkB,EAClB,iBAA0B;IAE1B,OAAO,EAAE,GAAG,GAAG,EAAE,iBAAiB,EAAE,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,GAAY;IACtC,MAAM,OAAO,GACX,GAAG,YAAY,aAAa;QAC1B,CAAC,CAAC,GAAG,CAAC,cAAc,EAAE;QACtB,CAAC,CAAC,qBAAqB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;IAC9E,OAAO,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AACrD,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- import { errorResult, result, trusted } from './result.js';
2
+ import { errorResult, result, trusted, withStructured } from './result.js';
3
3
  const CONTENT_TYPES = [
4
4
  'application/json',
5
5
  'text/plain',
@@ -21,8 +21,13 @@ export function registerSetMockResponse(server, ctx) {
21
21
  annotations: {
22
22
  readOnlyHint: false,
23
23
  destructiveHint: false,
24
+ idempotentHint: true,
25
+ openWorldHint: true,
24
26
  title: 'Set the mock response',
25
27
  },
28
+ outputSchema: {
29
+ id: z.string(),
30
+ },
26
31
  }, async (args) => {
27
32
  try {
28
33
  const endpoint = await ctx.client.request({
@@ -35,7 +40,7 @@ export function registerSetMockResponse(server, ctx) {
35
40
  mockDelayMs: args.delayMs,
36
41
  },
37
42
  });
38
- return result(trusted(endpoint));
43
+ return withStructured(result(trusted(endpoint)), endpoint);
39
44
  }
40
45
  catch (err) {
41
46
  return errorResult(err);
@@ -1 +1 @@
1
- {"version":3,"file":"set-mock-response.js","sourceRoot":"","sources":["../../src/tools/set-mock-response.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3D,MAAM,aAAa,GAAG;IACpB,kBAAkB;IAClB,YAAY;IACZ,WAAW;IACX,iBAAiB;IACjB,UAAU;CACF,CAAC;AAIX,MAAM,UAAU,uBAAuB,CACrC,MAAiB,EACjB,GAAgB;IAEhB,MAAM,CAAC,YAAY,CACjB,mBAAmB,EACnB;QACE,KAAK,EAAE,uBAAuB;QAC9B,WAAW,EACT,kPAAkP;QACpP,WAAW,EAAE;YACX,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;YAC7B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;YAC1C,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,QAAQ,EAAE;YAC7C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;YACrC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE;SACvD;QACD,WAAW,EAAE;YACX,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,KAAK;YACtB,KAAK,EAAE,uBAAuB;SAC/B;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,OAAO,CAAkB;gBACzD,MAAM,EAAE,OAAO;gBACf,IAAI,EAAE,sBAAsB,IAAI,CAAC,UAAU,gBAAgB;gBAC3D,IAAI,EAAE;oBACJ,UAAU,EAAE,IAAI,CAAC,MAAM;oBACvB,eAAe,EAAE,IAAI,CAAC,WAAW;oBACjC,QAAQ,EAAE,IAAI,CAAC,IAAI;oBACnB,WAAW,EAAE,IAAI,CAAC,OAAO;iBAC1B;aACF,CAAC,CAAC;YACH,OAAO,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;QACnC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"set-mock-response.js","sourceRoot":"","sources":["../../src/tools/set-mock-response.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE3E,MAAM,aAAa,GAAG;IACpB,kBAAkB;IAClB,YAAY;IACZ,WAAW;IACX,iBAAiB;IACjB,UAAU;CACF,CAAC;AAIX,MAAM,UAAU,uBAAuB,CACrC,MAAiB,EACjB,GAAgB;IAEhB,MAAM,CAAC,YAAY,CACjB,mBAAmB,EACnB;QACE,KAAK,EAAE,uBAAuB;QAC9B,WAAW,EACT,kPAAkP;QACpP,WAAW,EAAE;YACX,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;YAC7B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;YAC1C,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,QAAQ,EAAE;YAC7C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;YACrC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE;SACvD;QACD,WAAW,EAAE;YACX,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,IAAI;YACnB,KAAK,EAAE,uBAAuB;SAC/B;QACD,YAAY,EAAE;YACZ,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;SACf;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,OAAO,CAAkB;gBACzD,MAAM,EAAE,OAAO;gBACf,IAAI,EAAE,sBAAsB,IAAI,CAAC,UAAU,gBAAgB;gBAC3D,IAAI,EAAE;oBACJ,UAAU,EAAE,IAAI,CAAC,MAAM;oBACvB,eAAe,EAAE,IAAI,CAAC,WAAW;oBACjC,QAAQ,EAAE,IAAI,CAAC,IAAI;oBACnB,WAAW,EAAE,IAAI,CAAC,OAAO;iBAC1B;aACF,CAAC,CAAC;YACH,OAAO,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QAC7D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- import { errorResult, result, trusted } from './result.js';
2
+ import { errorResult, result, trusted, withStructured } from './result.js';
3
3
  export function registerValidatePayload(server, ctx) {
4
4
  server.registerTool('validate_payload', {
5
5
  title: 'Validate a payload',
@@ -10,7 +10,19 @@ export function registerValidatePayload(server, ctx) {
10
10
  profileVersion: z.string().optional(),
11
11
  messageType: z.string().optional(),
12
12
  },
13
- annotations: { readOnlyHint: true, title: 'Validate a payload' },
13
+ annotations: {
14
+ readOnlyHint: true,
15
+ openWorldHint: true,
16
+ title: 'Validate a payload',
17
+ },
18
+ outputSchema: {
19
+ profileId: z.string(),
20
+ profileVersion: z.string().nullable(),
21
+ messageType: z.string().nullable(),
22
+ engineVersion: z.string(),
23
+ detection: z.unknown(),
24
+ report: z.unknown(),
25
+ },
14
26
  }, async (args) => {
15
27
  try {
16
28
  const response = await ctx.client.request({
@@ -23,7 +35,7 @@ export function registerValidatePayload(server, ctx) {
23
35
  messageType: args.messageType,
24
36
  },
25
37
  });
26
- return result(trusted(response));
38
+ return withStructured(result(trusted(response)), response);
27
39
  }
28
40
  catch (err) {
29
41
  return errorResult(err);
@@ -1 +1 @@
1
- {"version":3,"file":"validate-payload.js","sourceRoot":"","sources":["../../src/tools/validate-payload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAW3D,MAAM,UAAU,uBAAuB,CACrC,MAAiB,EACjB,GAAgB;IAEhB,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;QACE,KAAK,EAAE,oBAAoB;QAC3B,WAAW,EACT,yLAAyL;QAC3L,WAAW,EAAE;YACX,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;YACpB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAChC,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YACrC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SACnC;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,oBAAoB,EAAE;KACjE,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,OAAO,CAAmB;gBAC1D,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE;oBACJ,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,SAAS,EAAE,IAAI,CAAC,SAAS;oBACzB,cAAc,EAAE,IAAI,CAAC,cAAc;oBACnC,WAAW,EAAE,IAAI,CAAC,WAAW;iBAC9B;aACF,CAAC,CAAC;YACH,OAAO,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;QACnC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"validate-payload.js","sourceRoot":"","sources":["../../src/tools/validate-payload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAW3E,MAAM,UAAU,uBAAuB,CACrC,MAAiB,EACjB,GAAgB;IAEhB,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;QACE,KAAK,EAAE,oBAAoB;QAC3B,WAAW,EACT,yLAAyL;QAC3L,WAAW,EAAE;YACX,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;YACpB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAChC,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YACrC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SACnC;QACD,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,aAAa,EAAE,IAAI;YACnB,KAAK,EAAE,oBAAoB;SAC5B;QACD,YAAY,EAAE;YACZ,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;YACrB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YACrC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAClC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;YACzB,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE;YACtB,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;SACpB;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,OAAO,CAAmB;gBAC1D,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE;oBACJ,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,SAAS,EAAE,IAAI,CAAC,SAAS;oBACzB,cAAc,EAAE,IAAI,CAAC,cAAc;oBACnC,WAAW,EAAE,IAAI,CAAC,WAAW;iBAC9B;aACF,CAAC,CAAC;YACH,OAAO,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QAC7D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- import { errorResult, result, trusted } from './result.js';
2
+ import { errorResult, result, trusted, withStructured } from './result.js';
3
3
  import { trustedMetaOf, untrustedBlocksOf, } from './received-request.js';
4
4
  const POLL_START_MS = 1000;
5
5
  const POLL_MAX_MS = 5000;
@@ -24,8 +24,20 @@ export function registerWaitForRequest(server, ctx) {
24
24
  },
25
25
  annotations: {
26
26
  readOnlyHint: true,
27
+ openWorldHint: true,
27
28
  title: 'Wait for the next request (returns untrusted content)',
28
29
  },
30
+ outputSchema: {
31
+ found: z.boolean().optional(),
32
+ timedOut: z.boolean().optional(),
33
+ endpointId: z.string().optional(),
34
+ id: z.string().optional(),
35
+ method: z.string().optional(),
36
+ status: z.number().optional(),
37
+ receivedAt: z.string().optional(),
38
+ sizeBytes: z.number().optional(),
39
+ bodyTruncated: z.boolean().optional(),
40
+ },
29
41
  }, async (args) => {
30
42
  try {
31
43
  const deadline = Date.now() + args.timeoutSec * 1000;
@@ -40,11 +52,13 @@ export function registerWaitForRequest(server, ctx) {
40
52
  });
41
53
  const newest = rows[0];
42
54
  if (newest && newest.id !== baseline) {
43
- return result(trusted({ found: true, ...trustedMetaOf(newest) }), ...untrustedBlocksOf(newest));
55
+ const found = { found: true, ...trustedMetaOf(newest) };
56
+ return withStructured(result(trusted(found), ...untrustedBlocksOf(newest)), found);
44
57
  }
45
58
  interval = Math.min(interval * 1.5, POLL_MAX_MS);
46
59
  }
47
- return result(trusted({ timedOut: true, endpointId: args.endpointId }));
60
+ const timeout = { timedOut: true, endpointId: args.endpointId };
61
+ return withStructured(result(trusted(timeout)), timeout);
48
62
  }
49
63
  catch (err) {
50
64
  return errorResult(err);
@@ -1 +1 @@
1
- {"version":3,"file":"wait-for-request.js","sourceRoot":"","sources":["../../src/tools/wait-for-request.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wait-for-request.js","sourceRoot":"","sources":["../../src/tools/wait-for-request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC3E,OAAO,EAEL,aAAa,EACb,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,aAAa,GAAG,IAAI,CAAC;AAC3B,MAAM,WAAW,GAAG,IAAI,CAAC;AAEzB,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,KAAK,UAAU,QAAQ,CACrB,GAAgB,EAChB,UAAkB;IAElB,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,OAAO,CAAoB;QACvD,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,sBAAsB,UAAU,WAAW;QACjD,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE;KACpB,CAAC,CAAC;IACH,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,IAAI,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,MAAiB,EACjB,GAAgB;IAEhB,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;QACE,KAAK,EAAE,2BAA2B;QAClC,WAAW,EACT,6OAA6O;QAC/O,WAAW,EAAE;YACX,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;YAC7B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;SAC5C;QACD,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,aAAa,EAAE,IAAI;YACnB,KAAK,EAAE,uDAAuD;SAC/D;QACD,YAAY,EAAE;YACZ,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;YAC7B,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;YAChC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YACjC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YACzB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC7B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC7B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YACjC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAChC,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;SACtC;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACrD,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YACtD,IAAI,QAAQ,GAAG,aAAa,CAAC;YAC7B,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;gBAC7B,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;gBACpE,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,OAAO,CAAoB;oBACvD,MAAM,EAAE,KAAK;oBACb,IAAI,EAAE,sBAAsB,IAAI,CAAC,UAAU,WAAW;oBACtD,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE;iBACpB,CAAC,CAAC;gBACH,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBACvB,IAAI,MAAM,IAAI,MAAM,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;oBACrC,MAAM,KAAK,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;oBACxD,OAAO,cAAc,CACnB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,EACpD,KAAK,CACN,CAAC;gBACJ,CAAC;gBACD,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,GAAG,EAAE,WAAW,CAAC,CAAC;YACnD,CAAC;YACD,MAAM,OAAO,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;YAChE,OAAO,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAC3D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hookline/mcp",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "Hookline MCP server — create test webhook endpoints, read incoming requests, and validate payloads from Claude Code, Cursor, and other MCP agents.",
5
5
  "author": "Viktor Basanko",
6
6
  "license": "MIT",