cas-parser-node-mcp 1.1.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 (157) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +208 -0
  3. package/compat.d.mts +56 -0
  4. package/compat.d.mts.map +1 -0
  5. package/compat.d.ts +56 -0
  6. package/compat.d.ts.map +1 -0
  7. package/compat.js +385 -0
  8. package/compat.js.map +1 -0
  9. package/compat.mjs +376 -0
  10. package/compat.mjs.map +1 -0
  11. package/dynamic-tools.d.mts +12 -0
  12. package/dynamic-tools.d.mts.map +1 -0
  13. package/dynamic-tools.d.ts +12 -0
  14. package/dynamic-tools.d.ts.map +1 -0
  15. package/dynamic-tools.js +135 -0
  16. package/dynamic-tools.js.map +1 -0
  17. package/dynamic-tools.mjs +132 -0
  18. package/dynamic-tools.mjs.map +1 -0
  19. package/filtering.d.mts +2 -0
  20. package/filtering.d.mts.map +1 -0
  21. package/filtering.d.ts +2 -0
  22. package/filtering.d.ts.map +1 -0
  23. package/filtering.js +20 -0
  24. package/filtering.js.map +1 -0
  25. package/filtering.mjs +13 -0
  26. package/filtering.mjs.map +1 -0
  27. package/headers.d.mts +4 -0
  28. package/headers.d.mts.map +1 -0
  29. package/headers.d.ts +4 -0
  30. package/headers.d.ts.map +1 -0
  31. package/headers.js +10 -0
  32. package/headers.js.map +1 -0
  33. package/headers.mjs +6 -0
  34. package/headers.mjs.map +1 -0
  35. package/http.d.mts +6 -0
  36. package/http.d.mts.map +1 -0
  37. package/http.d.ts +6 -0
  38. package/http.d.ts.map +1 -0
  39. package/http.js +93 -0
  40. package/http.js.map +1 -0
  41. package/http.mjs +85 -0
  42. package/http.mjs.map +1 -0
  43. package/index.d.mts +3 -0
  44. package/index.d.mts.map +1 -0
  45. package/index.d.ts +3 -0
  46. package/index.d.ts.map +1 -0
  47. package/index.js +91 -0
  48. package/index.js.map +1 -0
  49. package/index.mjs +89 -0
  50. package/index.mjs.map +1 -0
  51. package/options.d.mts +17 -0
  52. package/options.d.mts.map +1 -0
  53. package/options.d.ts +17 -0
  54. package/options.d.ts.map +1 -0
  55. package/options.js +314 -0
  56. package/options.js.map +1 -0
  57. package/options.mjs +308 -0
  58. package/options.mjs.map +1 -0
  59. package/package.json +163 -0
  60. package/server.d.mts +48 -0
  61. package/server.d.mts.map +1 -0
  62. package/server.d.ts +48 -0
  63. package/server.d.ts.map +1 -0
  64. package/server.js +129 -0
  65. package/server.js.map +1 -0
  66. package/server.mjs +115 -0
  67. package/server.mjs.map +1 -0
  68. package/src/compat.ts +481 -0
  69. package/src/dynamic-tools.ts +159 -0
  70. package/src/filtering.ts +14 -0
  71. package/src/headers.ts +11 -0
  72. package/src/http.ts +99 -0
  73. package/src/index.ts +108 -0
  74. package/src/options.ts +341 -0
  75. package/src/server.ts +165 -0
  76. package/src/stdio.ts +14 -0
  77. package/src/tools/cas-generator/generate-cas-cas-generator.ts +67 -0
  78. package/src/tools/cas-parser/cams-kfintech-cas-parser.ts +47 -0
  79. package/src/tools/cas-parser/cdsl-cas-parser.ts +47 -0
  80. package/src/tools/cas-parser/nsdl-cas-parser.ts +47 -0
  81. package/src/tools/cas-parser/smart-parse-cas-parser.ts +47 -0
  82. package/src/tools/index.ts +79 -0
  83. package/src/tools/types.ts +103 -0
  84. package/src/tools.ts +1 -0
  85. package/src/tsconfig.json +11 -0
  86. package/stdio.d.mts +4 -0
  87. package/stdio.d.mts.map +1 -0
  88. package/stdio.d.ts +4 -0
  89. package/stdio.d.ts.map +1 -0
  90. package/stdio.js +14 -0
  91. package/stdio.js.map +1 -0
  92. package/stdio.mjs +10 -0
  93. package/stdio.mjs.map +1 -0
  94. package/tools/cas-generator/generate-cas-cas-generator.d.mts +45 -0
  95. package/tools/cas-generator/generate-cas-cas-generator.d.mts.map +1 -0
  96. package/tools/cas-generator/generate-cas-cas-generator.d.ts +45 -0
  97. package/tools/cas-generator/generate-cas-cas-generator.d.ts.map +1 -0
  98. package/tools/cas-generator/generate-cas-cas-generator.js +62 -0
  99. package/tools/cas-generator/generate-cas-cas-generator.js.map +1 -0
  100. package/tools/cas-generator/generate-cas-cas-generator.mjs +58 -0
  101. package/tools/cas-generator/generate-cas-cas-generator.mjs.map +1 -0
  102. package/tools/cas-parser/cams-kfintech-cas-parser.d.mts +45 -0
  103. package/tools/cas-parser/cams-kfintech-cas-parser.d.mts.map +1 -0
  104. package/tools/cas-parser/cams-kfintech-cas-parser.d.ts +45 -0
  105. package/tools/cas-parser/cams-kfintech-cas-parser.d.ts.map +1 -0
  106. package/tools/cas-parser/cams-kfintech-cas-parser.js +43 -0
  107. package/tools/cas-parser/cams-kfintech-cas-parser.js.map +1 -0
  108. package/tools/cas-parser/cams-kfintech-cas-parser.mjs +39 -0
  109. package/tools/cas-parser/cams-kfintech-cas-parser.mjs.map +1 -0
  110. package/tools/cas-parser/cdsl-cas-parser.d.mts +45 -0
  111. package/tools/cas-parser/cdsl-cas-parser.d.mts.map +1 -0
  112. package/tools/cas-parser/cdsl-cas-parser.d.ts +45 -0
  113. package/tools/cas-parser/cdsl-cas-parser.d.ts.map +1 -0
  114. package/tools/cas-parser/cdsl-cas-parser.js +43 -0
  115. package/tools/cas-parser/cdsl-cas-parser.js.map +1 -0
  116. package/tools/cas-parser/cdsl-cas-parser.mjs +39 -0
  117. package/tools/cas-parser/cdsl-cas-parser.mjs.map +1 -0
  118. package/tools/cas-parser/nsdl-cas-parser.d.mts +45 -0
  119. package/tools/cas-parser/nsdl-cas-parser.d.mts.map +1 -0
  120. package/tools/cas-parser/nsdl-cas-parser.d.ts +45 -0
  121. package/tools/cas-parser/nsdl-cas-parser.d.ts.map +1 -0
  122. package/tools/cas-parser/nsdl-cas-parser.js +43 -0
  123. package/tools/cas-parser/nsdl-cas-parser.js.map +1 -0
  124. package/tools/cas-parser/nsdl-cas-parser.mjs +39 -0
  125. package/tools/cas-parser/nsdl-cas-parser.mjs.map +1 -0
  126. package/tools/cas-parser/smart-parse-cas-parser.d.mts +45 -0
  127. package/tools/cas-parser/smart-parse-cas-parser.d.mts.map +1 -0
  128. package/tools/cas-parser/smart-parse-cas-parser.d.ts +45 -0
  129. package/tools/cas-parser/smart-parse-cas-parser.d.ts.map +1 -0
  130. package/tools/cas-parser/smart-parse-cas-parser.js +43 -0
  131. package/tools/cas-parser/smart-parse-cas-parser.js.map +1 -0
  132. package/tools/cas-parser/smart-parse-cas-parser.mjs +39 -0
  133. package/tools/cas-parser/smart-parse-cas-parser.mjs.map +1 -0
  134. package/tools/index.d.mts +10 -0
  135. package/tools/index.d.mts.map +1 -0
  136. package/tools/index.d.ts +10 -0
  137. package/tools/index.d.ts.map +1 -0
  138. package/tools/index.js +63 -0
  139. package/tools/index.js.map +1 -0
  140. package/tools/index.mjs +56 -0
  141. package/tools/index.mjs.map +1 -0
  142. package/tools/types.d.mts +51 -0
  143. package/tools/types.d.mts.map +1 -0
  144. package/tools/types.d.ts +51 -0
  145. package/tools/types.d.ts.map +1 -0
  146. package/tools/types.js +46 -0
  147. package/tools/types.js.map +1 -0
  148. package/tools/types.mjs +42 -0
  149. package/tools/types.mjs.map +1 -0
  150. package/tools.d.mts +2 -0
  151. package/tools.d.mts.map +1 -0
  152. package/tools.d.ts +2 -0
  153. package/tools.d.ts.map +1 -0
  154. package/tools.js +18 -0
  155. package/tools.js.map +1 -0
  156. package/tools.mjs +2 -0
  157. package/tools.mjs.map +1 -0
@@ -0,0 +1,45 @@
1
+ import { Metadata } from 'cas-parser-node-mcp/tools/types';
2
+ import { Tool } from '@modelcontextprotocol/sdk/types.js';
3
+ import CasParser from 'cas-parser-node';
4
+ export declare const metadata: Metadata;
5
+ export declare const tool: Tool;
6
+ export declare const handler: (client: CasParser, args: Record<string, unknown> | undefined) => Promise<import("cas-parser-node-mcp/tools/types").ToolCallResult>;
7
+ declare const _default: {
8
+ metadata: Metadata;
9
+ tool: {
10
+ [x: string]: unknown;
11
+ name: string;
12
+ inputSchema: {
13
+ [x: string]: unknown;
14
+ type: "object";
15
+ properties?: {
16
+ [x: string]: unknown;
17
+ } | undefined;
18
+ required?: string[] | undefined;
19
+ };
20
+ title?: string | undefined;
21
+ description?: string | undefined;
22
+ outputSchema?: {
23
+ [x: string]: unknown;
24
+ type: "object";
25
+ properties?: {
26
+ [x: string]: unknown;
27
+ } | undefined;
28
+ required?: string[] | undefined;
29
+ } | undefined;
30
+ annotations?: {
31
+ [x: string]: unknown;
32
+ title?: string | undefined;
33
+ readOnlyHint?: boolean | undefined;
34
+ destructiveHint?: boolean | undefined;
35
+ idempotentHint?: boolean | undefined;
36
+ openWorldHint?: boolean | undefined;
37
+ } | undefined;
38
+ _meta?: {
39
+ [x: string]: unknown;
40
+ } | undefined;
41
+ };
42
+ handler: (client: CasParser, args: Record<string, unknown> | undefined) => Promise<import("cas-parser-node-mcp/tools/types").ToolCallResult>;
43
+ };
44
+ export default _default;
45
+ //# sourceMappingURL=nsdl-cas-parser.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nsdl-cas-parser.d.mts","sourceRoot":"","sources":["../../src/tools/cas-parser/nsdl-cas-parser.ts"],"names":[],"mappings":"OAEO,EAAE,QAAQ,EAAuB,MAAM,iCAAiC;OAExE,EAAE,IAAI,EAAE,MAAM,oCAAoC;OAClD,SAAS,MAAM,iBAAiB;AAEvC,eAAO,MAAM,QAAQ,EAAE,QAOtB,CAAC;AAEF,eAAO,MAAM,IAAI,EAAE,IAuBlB,CAAC;AAEF,eAAO,MAAM,OAAO,GAAU,QAAQ,SAAS,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,sEAGzF,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAHoC,SAAS,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS;;AAK1F,wBAA2C"}
@@ -0,0 +1,45 @@
1
+ import { Metadata } from 'cas-parser-node-mcp/tools/types';
2
+ import { Tool } from '@modelcontextprotocol/sdk/types.js';
3
+ import CasParser from 'cas-parser-node';
4
+ export declare const metadata: Metadata;
5
+ export declare const tool: Tool;
6
+ export declare const handler: (client: CasParser, args: Record<string, unknown> | undefined) => Promise<import("cas-parser-node-mcp/tools/types").ToolCallResult>;
7
+ declare const _default: {
8
+ metadata: Metadata;
9
+ tool: {
10
+ [x: string]: unknown;
11
+ name: string;
12
+ inputSchema: {
13
+ [x: string]: unknown;
14
+ type: "object";
15
+ properties?: {
16
+ [x: string]: unknown;
17
+ } | undefined;
18
+ required?: string[] | undefined;
19
+ };
20
+ title?: string | undefined;
21
+ description?: string | undefined;
22
+ outputSchema?: {
23
+ [x: string]: unknown;
24
+ type: "object";
25
+ properties?: {
26
+ [x: string]: unknown;
27
+ } | undefined;
28
+ required?: string[] | undefined;
29
+ } | undefined;
30
+ annotations?: {
31
+ [x: string]: unknown;
32
+ title?: string | undefined;
33
+ readOnlyHint?: boolean | undefined;
34
+ destructiveHint?: boolean | undefined;
35
+ idempotentHint?: boolean | undefined;
36
+ openWorldHint?: boolean | undefined;
37
+ } | undefined;
38
+ _meta?: {
39
+ [x: string]: unknown;
40
+ } | undefined;
41
+ };
42
+ handler: (client: CasParser, args: Record<string, unknown> | undefined) => Promise<import("cas-parser-node-mcp/tools/types").ToolCallResult>;
43
+ };
44
+ export default _default;
45
+ //# sourceMappingURL=nsdl-cas-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nsdl-cas-parser.d.ts","sourceRoot":"","sources":["../../src/tools/cas-parser/nsdl-cas-parser.ts"],"names":[],"mappings":"OAEO,EAAE,QAAQ,EAAuB,MAAM,iCAAiC;OAExE,EAAE,IAAI,EAAE,MAAM,oCAAoC;OAClD,SAAS,MAAM,iBAAiB;AAEvC,eAAO,MAAM,QAAQ,EAAE,QAOtB,CAAC;AAEF,eAAO,MAAM,IAAI,EAAE,IAuBlB,CAAC;AAEF,eAAO,MAAM,OAAO,GAAU,QAAQ,SAAS,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,sEAGzF,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAHoC,SAAS,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS;;AAK1F,wBAA2C"}
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.handler = exports.tool = exports.metadata = void 0;
5
+ const types_1 = require("cas-parser-node-mcp/tools/types");
6
+ exports.metadata = {
7
+ resource: 'CAS Parser',
8
+ operation: 'write',
9
+ tags: [],
10
+ httpMethod: 'post',
11
+ httpPath: '/v4/nsdl/parse',
12
+ operationId: 'nsdlParse',
13
+ };
14
+ exports.tool = {
15
+ name: 'nsdl_cas_parser',
16
+ description: 'This endpoint specifically parses NSDL CAS (Consolidated Account Statement) PDF files and returns data in a unified format.\nUse this endpoint when you know the PDF is from NSDL.\n',
17
+ inputSchema: {
18
+ type: 'object',
19
+ properties: {
20
+ password: {
21
+ type: 'string',
22
+ description: 'Password for the PDF file (if required)',
23
+ },
24
+ pdf_file: {
25
+ type: 'string',
26
+ description: 'Base64 encoded CAS PDF file',
27
+ },
28
+ pdf_url: {
29
+ type: 'string',
30
+ description: 'URL to the CAS PDF file',
31
+ },
32
+ },
33
+ required: [],
34
+ },
35
+ annotations: {},
36
+ };
37
+ const handler = async (client, args) => {
38
+ const body = args;
39
+ return (0, types_1.asTextContentResult)(await client.casParser.nsdl(body));
40
+ };
41
+ exports.handler = handler;
42
+ exports.default = { metadata: exports.metadata, tool: exports.tool, handler: exports.handler };
43
+ //# sourceMappingURL=nsdl-cas-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nsdl-cas-parser.js","sourceRoot":"","sources":["../../src/tools/cas-parser/nsdl-cas-parser.ts"],"names":[],"mappings":";AAAA,sFAAsF;;;AAEtF,2DAAgF;AAKnE,QAAA,QAAQ,GAAa;IAChC,QAAQ,EAAE,YAAY;IACtB,SAAS,EAAE,OAAO;IAClB,IAAI,EAAE,EAAE;IACR,UAAU,EAAE,MAAM;IAClB,QAAQ,EAAE,gBAAgB;IAC1B,WAAW,EAAE,WAAW;CACzB,CAAC;AAEW,QAAA,IAAI,GAAS;IACxB,IAAI,EAAE,iBAAiB;IACvB,WAAW,EACT,sLAAsL;IACxL,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,yCAAyC;aACvD;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,6BAA6B;aAC3C;YACD,OAAO,EAAE;gBACP,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,yBAAyB;aACvC;SACF;QACD,QAAQ,EAAE,EAAE;KACb;IACD,WAAW,EAAE,EAAE;CAChB,CAAC;AAEK,MAAM,OAAO,GAAG,KAAK,EAAE,MAAiB,EAAE,IAAyC,EAAE,EAAE;IAC5F,MAAM,IAAI,GAAG,IAAW,CAAC;IACzB,OAAO,IAAA,2BAAmB,EAAC,MAAM,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAChE,CAAC,CAAC;AAHW,QAAA,OAAO,WAGlB;AAEF,kBAAe,EAAE,QAAQ,EAAR,gBAAQ,EAAE,IAAI,EAAJ,YAAI,EAAE,OAAO,EAAP,eAAO,EAAE,CAAC"}
@@ -0,0 +1,39 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+ import { asTextContentResult } from 'cas-parser-node-mcp/tools/types';
3
+ export const metadata = {
4
+ resource: 'CAS Parser',
5
+ operation: 'write',
6
+ tags: [],
7
+ httpMethod: 'post',
8
+ httpPath: '/v4/nsdl/parse',
9
+ operationId: 'nsdlParse',
10
+ };
11
+ export const tool = {
12
+ name: 'nsdl_cas_parser',
13
+ description: 'This endpoint specifically parses NSDL CAS (Consolidated Account Statement) PDF files and returns data in a unified format.\nUse this endpoint when you know the PDF is from NSDL.\n',
14
+ inputSchema: {
15
+ type: 'object',
16
+ properties: {
17
+ password: {
18
+ type: 'string',
19
+ description: 'Password for the PDF file (if required)',
20
+ },
21
+ pdf_file: {
22
+ type: 'string',
23
+ description: 'Base64 encoded CAS PDF file',
24
+ },
25
+ pdf_url: {
26
+ type: 'string',
27
+ description: 'URL to the CAS PDF file',
28
+ },
29
+ },
30
+ required: [],
31
+ },
32
+ annotations: {},
33
+ };
34
+ export const handler = async (client, args) => {
35
+ const body = args;
36
+ return asTextContentResult(await client.casParser.nsdl(body));
37
+ };
38
+ export default { metadata, tool, handler };
39
+ //# sourceMappingURL=nsdl-cas-parser.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nsdl-cas-parser.mjs","sourceRoot":"","sources":["../../src/tools/cas-parser/nsdl-cas-parser.ts"],"names":[],"mappings":"AAAA,sFAAsF;OAE/E,EAAY,mBAAmB,EAAE,MAAM,iCAAiC;AAK/E,MAAM,CAAC,MAAM,QAAQ,GAAa;IAChC,QAAQ,EAAE,YAAY;IACtB,SAAS,EAAE,OAAO;IAClB,IAAI,EAAE,EAAE;IACR,UAAU,EAAE,MAAM;IAClB,QAAQ,EAAE,gBAAgB;IAC1B,WAAW,EAAE,WAAW;CACzB,CAAC;AAEF,MAAM,CAAC,MAAM,IAAI,GAAS;IACxB,IAAI,EAAE,iBAAiB;IACvB,WAAW,EACT,sLAAsL;IACxL,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,yCAAyC;aACvD;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,6BAA6B;aAC3C;YACD,OAAO,EAAE;gBACP,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,yBAAyB;aACvC;SACF;QACD,QAAQ,EAAE,EAAE;KACb;IACD,WAAW,EAAE,EAAE;CAChB,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,EAAE,MAAiB,EAAE,IAAyC,EAAE,EAAE;IAC5F,MAAM,IAAI,GAAG,IAAW,CAAC;IACzB,OAAO,mBAAmB,CAAC,MAAM,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAChE,CAAC,CAAC;AAEF,eAAe,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC"}
@@ -0,0 +1,45 @@
1
+ import { Metadata } from 'cas-parser-node-mcp/tools/types';
2
+ import { Tool } from '@modelcontextprotocol/sdk/types.js';
3
+ import CasParser from 'cas-parser-node';
4
+ export declare const metadata: Metadata;
5
+ export declare const tool: Tool;
6
+ export declare const handler: (client: CasParser, args: Record<string, unknown> | undefined) => Promise<import("cas-parser-node-mcp/tools/types").ToolCallResult>;
7
+ declare const _default: {
8
+ metadata: Metadata;
9
+ tool: {
10
+ [x: string]: unknown;
11
+ name: string;
12
+ inputSchema: {
13
+ [x: string]: unknown;
14
+ type: "object";
15
+ properties?: {
16
+ [x: string]: unknown;
17
+ } | undefined;
18
+ required?: string[] | undefined;
19
+ };
20
+ title?: string | undefined;
21
+ description?: string | undefined;
22
+ outputSchema?: {
23
+ [x: string]: unknown;
24
+ type: "object";
25
+ properties?: {
26
+ [x: string]: unknown;
27
+ } | undefined;
28
+ required?: string[] | undefined;
29
+ } | undefined;
30
+ annotations?: {
31
+ [x: string]: unknown;
32
+ title?: string | undefined;
33
+ readOnlyHint?: boolean | undefined;
34
+ destructiveHint?: boolean | undefined;
35
+ idempotentHint?: boolean | undefined;
36
+ openWorldHint?: boolean | undefined;
37
+ } | undefined;
38
+ _meta?: {
39
+ [x: string]: unknown;
40
+ } | undefined;
41
+ };
42
+ handler: (client: CasParser, args: Record<string, unknown> | undefined) => Promise<import("cas-parser-node-mcp/tools/types").ToolCallResult>;
43
+ };
44
+ export default _default;
45
+ //# sourceMappingURL=smart-parse-cas-parser.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"smart-parse-cas-parser.d.mts","sourceRoot":"","sources":["../../src/tools/cas-parser/smart-parse-cas-parser.ts"],"names":[],"mappings":"OAEO,EAAE,QAAQ,EAAuB,MAAM,iCAAiC;OAExE,EAAE,IAAI,EAAE,MAAM,oCAAoC;OAClD,SAAS,MAAM,iBAAiB;AAEvC,eAAO,MAAM,QAAQ,EAAE,QAOtB,CAAC;AAEF,eAAO,MAAM,IAAI,EAAE,IAuBlB,CAAC;AAEF,eAAO,MAAM,OAAO,GAAU,QAAQ,SAAS,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,sEAGzF,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAHoC,SAAS,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS;;AAK1F,wBAA2C"}
@@ -0,0 +1,45 @@
1
+ import { Metadata } from 'cas-parser-node-mcp/tools/types';
2
+ import { Tool } from '@modelcontextprotocol/sdk/types.js';
3
+ import CasParser from 'cas-parser-node';
4
+ export declare const metadata: Metadata;
5
+ export declare const tool: Tool;
6
+ export declare const handler: (client: CasParser, args: Record<string, unknown> | undefined) => Promise<import("cas-parser-node-mcp/tools/types").ToolCallResult>;
7
+ declare const _default: {
8
+ metadata: Metadata;
9
+ tool: {
10
+ [x: string]: unknown;
11
+ name: string;
12
+ inputSchema: {
13
+ [x: string]: unknown;
14
+ type: "object";
15
+ properties?: {
16
+ [x: string]: unknown;
17
+ } | undefined;
18
+ required?: string[] | undefined;
19
+ };
20
+ title?: string | undefined;
21
+ description?: string | undefined;
22
+ outputSchema?: {
23
+ [x: string]: unknown;
24
+ type: "object";
25
+ properties?: {
26
+ [x: string]: unknown;
27
+ } | undefined;
28
+ required?: string[] | undefined;
29
+ } | undefined;
30
+ annotations?: {
31
+ [x: string]: unknown;
32
+ title?: string | undefined;
33
+ readOnlyHint?: boolean | undefined;
34
+ destructiveHint?: boolean | undefined;
35
+ idempotentHint?: boolean | undefined;
36
+ openWorldHint?: boolean | undefined;
37
+ } | undefined;
38
+ _meta?: {
39
+ [x: string]: unknown;
40
+ } | undefined;
41
+ };
42
+ handler: (client: CasParser, args: Record<string, unknown> | undefined) => Promise<import("cas-parser-node-mcp/tools/types").ToolCallResult>;
43
+ };
44
+ export default _default;
45
+ //# sourceMappingURL=smart-parse-cas-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"smart-parse-cas-parser.d.ts","sourceRoot":"","sources":["../../src/tools/cas-parser/smart-parse-cas-parser.ts"],"names":[],"mappings":"OAEO,EAAE,QAAQ,EAAuB,MAAM,iCAAiC;OAExE,EAAE,IAAI,EAAE,MAAM,oCAAoC;OAClD,SAAS,MAAM,iBAAiB;AAEvC,eAAO,MAAM,QAAQ,EAAE,QAOtB,CAAC;AAEF,eAAO,MAAM,IAAI,EAAE,IAuBlB,CAAC;AAEF,eAAO,MAAM,OAAO,GAAU,QAAQ,SAAS,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,sEAGzF,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAHoC,SAAS,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS;;AAK1F,wBAA2C"}
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.handler = exports.tool = exports.metadata = void 0;
5
+ const types_1 = require("cas-parser-node-mcp/tools/types");
6
+ exports.metadata = {
7
+ resource: 'CAS Parser',
8
+ operation: 'write',
9
+ tags: [],
10
+ httpMethod: 'post',
11
+ httpPath: '/v4/smart/parse',
12
+ operationId: 'smartParse',
13
+ };
14
+ exports.tool = {
15
+ name: 'smart_parse_cas_parser',
16
+ description: 'This endpoint parses CAS (Consolidated Account Statement) PDF files from NSDL, CDSL, or CAMS/KFintech and returns data in a unified format.\nIt auto-detects the CAS type and transforms the data into a consistent structure regardless of the source.\n',
17
+ inputSchema: {
18
+ type: 'object',
19
+ properties: {
20
+ password: {
21
+ type: 'string',
22
+ description: 'Password for the PDF file (if required)',
23
+ },
24
+ pdf_file: {
25
+ type: 'string',
26
+ description: 'Base64 encoded CAS PDF file',
27
+ },
28
+ pdf_url: {
29
+ type: 'string',
30
+ description: 'URL to the CAS PDF file',
31
+ },
32
+ },
33
+ required: [],
34
+ },
35
+ annotations: {},
36
+ };
37
+ const handler = async (client, args) => {
38
+ const body = args;
39
+ return (0, types_1.asTextContentResult)(await client.casParser.smartParse(body));
40
+ };
41
+ exports.handler = handler;
42
+ exports.default = { metadata: exports.metadata, tool: exports.tool, handler: exports.handler };
43
+ //# sourceMappingURL=smart-parse-cas-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"smart-parse-cas-parser.js","sourceRoot":"","sources":["../../src/tools/cas-parser/smart-parse-cas-parser.ts"],"names":[],"mappings":";AAAA,sFAAsF;;;AAEtF,2DAAgF;AAKnE,QAAA,QAAQ,GAAa;IAChC,QAAQ,EAAE,YAAY;IACtB,SAAS,EAAE,OAAO;IAClB,IAAI,EAAE,EAAE;IACR,UAAU,EAAE,MAAM;IAClB,QAAQ,EAAE,iBAAiB;IAC3B,WAAW,EAAE,YAAY;CAC1B,CAAC;AAEW,QAAA,IAAI,GAAS;IACxB,IAAI,EAAE,wBAAwB;IAC9B,WAAW,EACT,2PAA2P;IAC7P,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,yCAAyC;aACvD;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,6BAA6B;aAC3C;YACD,OAAO,EAAE;gBACP,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,yBAAyB;aACvC;SACF;QACD,QAAQ,EAAE,EAAE;KACb;IACD,WAAW,EAAE,EAAE;CAChB,CAAC;AAEK,MAAM,OAAO,GAAG,KAAK,EAAE,MAAiB,EAAE,IAAyC,EAAE,EAAE;IAC5F,MAAM,IAAI,GAAG,IAAW,CAAC;IACzB,OAAO,IAAA,2BAAmB,EAAC,MAAM,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;AACtE,CAAC,CAAC;AAHW,QAAA,OAAO,WAGlB;AAEF,kBAAe,EAAE,QAAQ,EAAR,gBAAQ,EAAE,IAAI,EAAJ,YAAI,EAAE,OAAO,EAAP,eAAO,EAAE,CAAC"}
@@ -0,0 +1,39 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+ import { asTextContentResult } from 'cas-parser-node-mcp/tools/types';
3
+ export const metadata = {
4
+ resource: 'CAS Parser',
5
+ operation: 'write',
6
+ tags: [],
7
+ httpMethod: 'post',
8
+ httpPath: '/v4/smart/parse',
9
+ operationId: 'smartParse',
10
+ };
11
+ export const tool = {
12
+ name: 'smart_parse_cas_parser',
13
+ description: 'This endpoint parses CAS (Consolidated Account Statement) PDF files from NSDL, CDSL, or CAMS/KFintech and returns data in a unified format.\nIt auto-detects the CAS type and transforms the data into a consistent structure regardless of the source.\n',
14
+ inputSchema: {
15
+ type: 'object',
16
+ properties: {
17
+ password: {
18
+ type: 'string',
19
+ description: 'Password for the PDF file (if required)',
20
+ },
21
+ pdf_file: {
22
+ type: 'string',
23
+ description: 'Base64 encoded CAS PDF file',
24
+ },
25
+ pdf_url: {
26
+ type: 'string',
27
+ description: 'URL to the CAS PDF file',
28
+ },
29
+ },
30
+ required: [],
31
+ },
32
+ annotations: {},
33
+ };
34
+ export const handler = async (client, args) => {
35
+ const body = args;
36
+ return asTextContentResult(await client.casParser.smartParse(body));
37
+ };
38
+ export default { metadata, tool, handler };
39
+ //# sourceMappingURL=smart-parse-cas-parser.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"smart-parse-cas-parser.mjs","sourceRoot":"","sources":["../../src/tools/cas-parser/smart-parse-cas-parser.ts"],"names":[],"mappings":"AAAA,sFAAsF;OAE/E,EAAY,mBAAmB,EAAE,MAAM,iCAAiC;AAK/E,MAAM,CAAC,MAAM,QAAQ,GAAa;IAChC,QAAQ,EAAE,YAAY;IACtB,SAAS,EAAE,OAAO;IAClB,IAAI,EAAE,EAAE;IACR,UAAU,EAAE,MAAM;IAClB,QAAQ,EAAE,iBAAiB;IAC3B,WAAW,EAAE,YAAY;CAC1B,CAAC;AAEF,MAAM,CAAC,MAAM,IAAI,GAAS;IACxB,IAAI,EAAE,wBAAwB;IAC9B,WAAW,EACT,2PAA2P;IAC7P,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,yCAAyC;aACvD;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,6BAA6B;aAC3C;YACD,OAAO,EAAE;gBACP,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,yBAAyB;aACvC;SACF;QACD,QAAQ,EAAE,EAAE;KACb;IACD,WAAW,EAAE,EAAE;CAChB,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,EAAE,MAAiB,EAAE,IAAyC,EAAE,EAAE;IAC5F,MAAM,IAAI,GAAG,IAAW,CAAC;IACzB,OAAO,mBAAmB,CAAC,MAAM,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;AACtE,CAAC,CAAC;AAEF,eAAe,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { Metadata, Endpoint, HandlerFunction } from "./types.mjs";
2
+ export { Metadata, Endpoint, HandlerFunction };
3
+ export declare const endpoints: Endpoint[];
4
+ export type Filter = {
5
+ type: 'resource' | 'operation' | 'tag' | 'tool';
6
+ op: 'include' | 'exclude';
7
+ value: string;
8
+ };
9
+ export declare function query(filters: Filter[], endpoints: Endpoint[]): Endpoint[];
10
+ //# sourceMappingURL=index.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../src/tools/index.ts"],"names":[],"mappings":"OAEO,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE;AAE9C,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC;AAQ/C,eAAO,MAAM,SAAS,EAAE,QAAQ,EAAO,CAAC;AAYxC,MAAM,MAAM,MAAM,GAAG;IACnB,IAAI,EAAE,UAAU,GAAG,WAAW,GAAG,KAAK,GAAG,MAAM,CAAC;IAChD,EAAE,EAAE,SAAS,GAAG,SAAS,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,QAAQ,EAAE,CA4B1E"}
@@ -0,0 +1,10 @@
1
+ import { Metadata, Endpoint, HandlerFunction } from "./types.js";
2
+ export { Metadata, Endpoint, HandlerFunction };
3
+ export declare const endpoints: Endpoint[];
4
+ export type Filter = {
5
+ type: 'resource' | 'operation' | 'tag' | 'tool';
6
+ op: 'include' | 'exclude';
7
+ value: string;
8
+ };
9
+ export declare function query(filters: Filter[], endpoints: Endpoint[]): Endpoint[];
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/tools/index.ts"],"names":[],"mappings":"OAEO,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE;AAE9C,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC;AAQ/C,eAAO,MAAM,SAAS,EAAE,QAAQ,EAAO,CAAC;AAYxC,MAAM,MAAM,MAAM,GAAG;IACnB,IAAI,EAAE,UAAU,GAAG,WAAW,GAAG,KAAK,GAAG,MAAM,CAAC;IAChD,EAAE,EAAE,SAAS,GAAG,SAAS,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,QAAQ,EAAE,CA4B1E"}
package/tools/index.js ADDED
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
3
+ var __importDefault = (this && this.__importDefault) || function (mod) {
4
+ return (mod && mod.__esModule) ? mod : { "default": mod };
5
+ };
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.endpoints = void 0;
8
+ exports.query = query;
9
+ const cams_kfintech_cas_parser_1 = __importDefault(require("./cas-parser/cams-kfintech-cas-parser.js"));
10
+ const cdsl_cas_parser_1 = __importDefault(require("./cas-parser/cdsl-cas-parser.js"));
11
+ const nsdl_cas_parser_1 = __importDefault(require("./cas-parser/nsdl-cas-parser.js"));
12
+ const smart_parse_cas_parser_1 = __importDefault(require("./cas-parser/smart-parse-cas-parser.js"));
13
+ const generate_cas_cas_generator_1 = __importDefault(require("./cas-generator/generate-cas-cas-generator.js"));
14
+ exports.endpoints = [];
15
+ function addEndpoint(endpoint) {
16
+ exports.endpoints.push(endpoint);
17
+ }
18
+ addEndpoint(cams_kfintech_cas_parser_1.default);
19
+ addEndpoint(cdsl_cas_parser_1.default);
20
+ addEndpoint(nsdl_cas_parser_1.default);
21
+ addEndpoint(smart_parse_cas_parser_1.default);
22
+ addEndpoint(generate_cas_cas_generator_1.default);
23
+ function query(filters, endpoints) {
24
+ const allExcludes = filters.length > 0 && filters.every((filter) => filter.op === 'exclude');
25
+ const unmatchedFilters = new Set(filters);
26
+ const filtered = endpoints.filter((endpoint) => {
27
+ let included = false || allExcludes;
28
+ for (const filter of filters) {
29
+ if (match(filter, endpoint)) {
30
+ unmatchedFilters.delete(filter);
31
+ included = filter.op === 'include';
32
+ }
33
+ }
34
+ return included;
35
+ });
36
+ // Check if any filters didn't match
37
+ const unmatched = Array.from(unmatchedFilters).filter((f) => f.type === 'tool' || f.type === 'resource');
38
+ if (unmatched.length > 0) {
39
+ throw new Error(`The following filters did not match any endpoints: ${unmatched
40
+ .map((f) => `${f.type}=${f.value}`)
41
+ .join(', ')}`);
42
+ }
43
+ return filtered;
44
+ }
45
+ function match({ type, value }, endpoint) {
46
+ switch (type) {
47
+ case 'resource': {
48
+ const regexStr = '^' + normalizeResource(value).replace(/\*/g, '.*') + '$';
49
+ const regex = new RegExp(regexStr);
50
+ return regex.test(normalizeResource(endpoint.metadata.resource));
51
+ }
52
+ case 'operation':
53
+ return endpoint.metadata.operation === value;
54
+ case 'tag':
55
+ return endpoint.metadata.tags.includes(value);
56
+ case 'tool':
57
+ return endpoint.tool.name === value;
58
+ }
59
+ }
60
+ function normalizeResource(resource) {
61
+ return resource.toLowerCase().replace(/[^a-z.*\-_]*/g, '');
62
+ }
63
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/tools/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+ import cams_kfintech_cas_parser from "./cas-parser/cams-kfintech-cas-parser.mjs";
3
+ import cdsl_cas_parser from "./cas-parser/cdsl-cas-parser.mjs";
4
+ import nsdl_cas_parser from "./cas-parser/nsdl-cas-parser.mjs";
5
+ import smart_parse_cas_parser from "./cas-parser/smart-parse-cas-parser.mjs";
6
+ import generate_cas_cas_generator from "./cas-generator/generate-cas-cas-generator.mjs";
7
+ export const endpoints = [];
8
+ function addEndpoint(endpoint) {
9
+ endpoints.push(endpoint);
10
+ }
11
+ addEndpoint(cams_kfintech_cas_parser);
12
+ addEndpoint(cdsl_cas_parser);
13
+ addEndpoint(nsdl_cas_parser);
14
+ addEndpoint(smart_parse_cas_parser);
15
+ addEndpoint(generate_cas_cas_generator);
16
+ export function query(filters, endpoints) {
17
+ const allExcludes = filters.length > 0 && filters.every((filter) => filter.op === 'exclude');
18
+ const unmatchedFilters = new Set(filters);
19
+ const filtered = endpoints.filter((endpoint) => {
20
+ let included = false || allExcludes;
21
+ for (const filter of filters) {
22
+ if (match(filter, endpoint)) {
23
+ unmatchedFilters.delete(filter);
24
+ included = filter.op === 'include';
25
+ }
26
+ }
27
+ return included;
28
+ });
29
+ // Check if any filters didn't match
30
+ const unmatched = Array.from(unmatchedFilters).filter((f) => f.type === 'tool' || f.type === 'resource');
31
+ if (unmatched.length > 0) {
32
+ throw new Error(`The following filters did not match any endpoints: ${unmatched
33
+ .map((f) => `${f.type}=${f.value}`)
34
+ .join(', ')}`);
35
+ }
36
+ return filtered;
37
+ }
38
+ function match({ type, value }, endpoint) {
39
+ switch (type) {
40
+ case 'resource': {
41
+ const regexStr = '^' + normalizeResource(value).replace(/\*/g, '.*') + '$';
42
+ const regex = new RegExp(regexStr);
43
+ return regex.test(normalizeResource(endpoint.metadata.resource));
44
+ }
45
+ case 'operation':
46
+ return endpoint.metadata.operation === value;
47
+ case 'tag':
48
+ return endpoint.metadata.tags.includes(value);
49
+ case 'tool':
50
+ return endpoint.tool.name === value;
51
+ }
52
+ }
53
+ function normalizeResource(resource) {
54
+ return resource.toLowerCase().replace(/[^a-z.*\-_]*/g, '');
55
+ }
56
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../src/tools/index.ts"],"names":[],"mappings":"AAAA,sFAAsF;OAM/E,wBAAwB;OACxB,eAAe;OACf,eAAe;OACf,sBAAsB;OACtB,0BAA0B;AAEjC,MAAM,CAAC,MAAM,SAAS,GAAe,EAAE,CAAC;AAExC,SAAS,WAAW,CAAC,QAAkB;IACrC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC3B,CAAC;AAED,WAAW,CAAC,wBAAwB,CAAC,CAAC;AACtC,WAAW,CAAC,eAAe,CAAC,CAAC;AAC7B,WAAW,CAAC,eAAe,CAAC,CAAC;AAC7B,WAAW,CAAC,sBAAsB,CAAC,CAAC;AACpC,WAAW,CAAC,0BAA0B,CAAC,CAAC;AAQxC,MAAM,UAAU,KAAK,CAAC,OAAiB,EAAE,SAAqB;IAC5D,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;IAC7F,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;IAE1C,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,QAAkB,EAAE,EAAE;QACvD,IAAI,QAAQ,GAAG,KAAK,IAAI,WAAW,CAAC;QAEpC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC;gBAC5B,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAChC,QAAQ,GAAG,MAAM,CAAC,EAAE,KAAK,SAAS,CAAC;YACrC,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,oCAAoC;IACpC,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;IACzG,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CACb,sDAAsD,SAAS;aAC5D,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;aAClC,IAAI,CAAC,IAAI,CAAC,EAAE,CAChB,CAAC;IACJ,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,EAAU,EAAE,QAAkB;IACxD,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,MAAM,QAAQ,GAAG,GAAG,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC;YAC3E,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC;YACnC,OAAO,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;QACnE,CAAC;QACD,KAAK,WAAW;YACd,OAAO,QAAQ,CAAC,QAAQ,CAAC,SAAS,KAAK,KAAK,CAAC;QAC/C,KAAK,KAAK;YACR,OAAO,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAChD,KAAK,MAAM;YACT,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC;IACxC,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,QAAgB;IACzC,OAAO,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;AAC7D,CAAC"}
@@ -0,0 +1,51 @@
1
+ import CasParser from 'cas-parser-node';
2
+ import { Tool } from '@modelcontextprotocol/sdk/types.js';
3
+ type TextContentBlock = {
4
+ type: 'text';
5
+ text: string;
6
+ };
7
+ type ImageContentBlock = {
8
+ type: 'image';
9
+ data: string;
10
+ mimeType: string;
11
+ };
12
+ type AudioContentBlock = {
13
+ type: 'audio';
14
+ data: string;
15
+ mimeType: string;
16
+ };
17
+ type ResourceContentBlock = {
18
+ type: 'resource';
19
+ resource: {
20
+ uri: string;
21
+ mimeType: string;
22
+ text: string;
23
+ } | {
24
+ uri: string;
25
+ mimeType: string;
26
+ blob: string;
27
+ };
28
+ };
29
+ export type ContentBlock = TextContentBlock | ImageContentBlock | AudioContentBlock | ResourceContentBlock;
30
+ export type ToolCallResult = {
31
+ content: ContentBlock[];
32
+ isError?: boolean;
33
+ };
34
+ export type HandlerFunction = (client: CasParser, args: Record<string, unknown> | undefined) => Promise<ToolCallResult>;
35
+ export declare function asTextContentResult(result: unknown): ToolCallResult;
36
+ export declare function asBinaryContentResult(response: Response): Promise<ToolCallResult>;
37
+ export type Metadata = {
38
+ resource: string;
39
+ operation: 'read' | 'write';
40
+ tags: string[];
41
+ httpMethod?: string;
42
+ httpPath?: string;
43
+ operationId?: string;
44
+ };
45
+ export type Endpoint = {
46
+ metadata: Metadata;
47
+ tool: Tool;
48
+ handler: HandlerFunction;
49
+ };
50
+ export {};
51
+ //# sourceMappingURL=types.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.mts","sourceRoot":"","sources":["../src/tools/types.ts"],"names":[],"mappings":"OAEO,SAAS,MAAM,iBAAiB;OAChC,EAAE,IAAI,EAAE,MAAM,oCAAoC;AAEzD,KAAK,gBAAgB,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,KAAK,iBAAiB,GAAG;IACvB,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,KAAK,iBAAiB,GAAG;IACvB,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,KAAK,oBAAoB,GAAG;IAC1B,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EACJ;QACE,GAAG,EAAE,MAAM,CAAC;QACZ,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;KACd,GACD;QACE,GAAG,EAAE,MAAM,CAAC;QACZ,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACP,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,oBAAoB,CAAC;AAE3G,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,CAC5B,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,KACtC,OAAO,CAAC,cAAc,CAAC,CAAC;AAE7B,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,OAAO,GAAG,cAAc,CASnE;AAED,wBAAsB,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,cAAc,CAAC,CA2BvF;AAED,MAAM,MAAM,QAAQ,GAAG;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;IAC5B,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,QAAQ,EAAE,QAAQ,CAAC;IACnB,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,eAAe,CAAC;CAC1B,CAAC"}