@mappies/miniwat-mcp-core 0.3.0 → 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.
package/dist/index.cjs ADDED
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/index.ts
21
+ var index_exports = {};
22
+ __export(index_exports, {
23
+ ToolDispatcher: () => ToolDispatcher
24
+ });
25
+ module.exports = __toCommonJS(index_exports);
26
+
27
+ // src/entities/toolDispatcher.ts
28
+ var import_miniwat_api_core = require("@mappies/miniwat-api-core");
29
+ var ToolDispatcher = class {
30
+ constructor(mcp) {
31
+ this.mcp = mcp;
32
+ this.tools = [];
33
+ }
34
+ async init() {
35
+ if (this.tools.length !== 0) return;
36
+ this.tools = [];
37
+ if (this.mcp === void 0) return;
38
+ for (let server of Object.keys(this.mcp.mcpServers)) {
39
+ let service = this.mcp.mcpServers[server];
40
+ const pck = await import(service.package);
41
+ for (let t of service.tools) {
42
+ let definition = pck[t.import];
43
+ let tool = new import_miniwat_api_core.Tool({
44
+ name: definition.name,
45
+ description: definition.description,
46
+ schema: definition.inputSchema,
47
+ func: pck[definition.name],
48
+ getInputText: pck[`${definition.name}InputText`]
49
+ });
50
+ this.tools.push(tool);
51
+ }
52
+ }
53
+ }
54
+ async list() {
55
+ await this.init();
56
+ return this.tools;
57
+ }
58
+ async get(name) {
59
+ await this.init();
60
+ return this.tools.find((tool) => tool.name === name);
61
+ }
62
+ async getInputText(name, input) {
63
+ const tool = await this.get(name);
64
+ return tool?.getInputText?.(input) || "";
65
+ }
66
+ async execute(name, input) {
67
+ const tool = await this.get(name);
68
+ if (!tool) {
69
+ throw new Error(`Tool ${name} could not be found.`);
70
+ }
71
+ if (!tool.func) {
72
+ throw new Error(`Tool ${name} does not have a function.`);
73
+ }
74
+ try {
75
+ let result = await tool.func(input);
76
+ return result;
77
+ } catch (e) {
78
+ throw new Error(`Failed to run ${name} tool: ${e?.message}`);
79
+ }
80
+ }
81
+ };
82
+ // Annotate the CommonJS export names for ESM import in node:
83
+ 0 && (module.exports = {
84
+ ToolDispatcher
85
+ });
86
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index.ts","../src/entities/toolDispatcher.ts"],"sourcesContent":["export { ToolDispatcher } from './entities/toolDispatcher';\nexport { McpConfig, McpServer, McpToolImport } from './interfaces/mcpConfig';","import { Tool } from \"@mappies/miniwat-api-core\";\nimport { McpConfig } from \"../interfaces/mcpConfig\";\n\nexport class ToolDispatcher\n{\n private tools:Tool[]\n \n constructor(private mcp?:McpConfig)\n {\n this.tools = []\n }\n\n async init()\n {\n if(this.tools.length !== 0) return;\n\n this.tools = [];\n\n if(this.mcp === undefined) return;\n\n for(let server of Object.keys(this.mcp.mcpServers))\n {\n let service = this.mcp.mcpServers[server]\n \n const pck = await import(service.package);\n for(let t of service.tools)\n {\n let definition = pck[t.import];\n let tool = new Tool({ \n name: definition.name, \n description: definition.description, \n schema: definition.inputSchema, \n func: pck[definition.name],\n getInputText: pck[`${definition.name}InputText`]\n })\n \n this.tools.push(tool)\n }\n }\n }\n\n async list(): Promise<Tool[]>\n {\n await this.init()\n return this.tools;\n }\n\n async get(name:string): Promise<Tool|undefined>\n {\n await this.init()\n return this.tools.find(tool => tool.name === name);\n }\n\n async getInputText(name:string, input?:object): Promise<string>\n {\n const tool = await this.get(name);\n\n return tool?.getInputText?.(input) || '';\n }\n\n async execute(name:string, input?:object): Promise<string>\n {\n const tool = await this.get(name);\n \n if(!tool)\n {\n throw new Error(`Tool ${name} could not be found.`);\n }\n\n if(!tool.func)\n {\n throw new Error(`Tool ${name} does not have a function.`);\n }\n\n try\n {\n let result = await tool.func(input);\n return result;\n }\n catch(e:any)\n {\n throw new Error(`Failed to run ${name} tool: ${e?.message}`);\n }\n }\n}"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,8BAAqB;AAGd,IAAM,iBAAN,MACP;AAAA,EAGI,YAAoB,KACpB;AADoB;AAEhB,SAAK,QAAQ,CAAC;AAAA,EAClB;AAAA,EAEA,MAAM,OACN;AACI,QAAG,KAAK,MAAM,WAAW,EAAG;AAE5B,SAAK,QAAQ,CAAC;AAEd,QAAG,KAAK,QAAQ,OAAW;AAE3B,aAAQ,UAAU,OAAO,KAAK,KAAK,IAAI,UAAU,GACjD;AACI,UAAI,UAAU,KAAK,IAAI,WAAW,MAAM;AAExC,YAAM,MAAM,MAAM,OAAO,QAAQ;AACjC,eAAQ,KAAK,QAAQ,OACrB;AACI,YAAI,aAAa,IAAI,EAAE,MAAM;AAC7B,YAAI,OAAO,IAAI,6BAAK;AAAA,UACI,MAAM,WAAW;AAAA,UACjB,aAAa,WAAW;AAAA,UACxB,QAAQ,WAAW;AAAA,UACnB,MAAM,IAAI,WAAW,IAAI;AAAA,UACzB,cAAc,IAAI,GAAG,WAAW,IAAI,WAAW;AAAA,QACnD,CAAC;AAErB,aAAK,MAAM,KAAK,IAAI;AAAA,MACxB;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,MAAM,OACN;AACI,UAAM,KAAK,KAAK;AAChB,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,MAAM,IAAI,MACV;AACI,UAAM,KAAK,KAAK;AAChB,WAAO,KAAK,MAAM,KAAK,UAAQ,KAAK,SAAS,IAAI;AAAA,EACrD;AAAA,EAEA,MAAM,aAAa,MAAa,OAChC;AACI,UAAM,OAAO,MAAM,KAAK,IAAI,IAAI;AAEhC,WAAO,MAAM,eAAe,KAAK,KAAK;AAAA,EAC1C;AAAA,EAEA,MAAM,QAAQ,MAAa,OAC3B;AACI,UAAM,OAAO,MAAM,KAAK,IAAI,IAAI;AAEhC,QAAG,CAAC,MACJ;AACI,YAAM,IAAI,MAAM,QAAQ,IAAI,sBAAsB;AAAA,IACtD;AAEA,QAAG,CAAC,KAAK,MACT;AACI,YAAM,IAAI,MAAM,QAAQ,IAAI,4BAA4B;AAAA,IAC5D;AAEA,QACA;AACI,UAAI,SAAS,MAAM,KAAK,KAAK,KAAK;AAClC,aAAO;AAAA,IACX,SACM,GACN;AACI,YAAM,IAAI,MAAM,iBAAiB,IAAI,UAAU,GAAG,OAAO,EAAE;AAAA,IAC/D;AAAA,EACJ;AACJ;","names":[]}
@@ -0,0 +1,25 @@
1
+ import { Tool } from '@mappies/miniwat-api-core';
2
+
3
+ interface McpConfig {
4
+ mcpServers: Record<string, McpServer>;
5
+ }
6
+ interface McpServer {
7
+ package: string;
8
+ tools: McpToolImport[];
9
+ }
10
+ interface McpToolImport {
11
+ import: string;
12
+ }
13
+
14
+ declare class ToolDispatcher {
15
+ private mcp?;
16
+ private tools;
17
+ constructor(mcp?: McpConfig | undefined);
18
+ init(): Promise<void>;
19
+ list(): Promise<Tool[]>;
20
+ get(name: string): Promise<Tool | undefined>;
21
+ getInputText(name: string, input?: object): Promise<string>;
22
+ execute(name: string, input?: object): Promise<string>;
23
+ }
24
+
25
+ export { type McpConfig, type McpServer, type McpToolImport, ToolDispatcher };
@@ -0,0 +1,25 @@
1
+ import { Tool } from '@mappies/miniwat-api-core';
2
+
3
+ interface McpConfig {
4
+ mcpServers: Record<string, McpServer>;
5
+ }
6
+ interface McpServer {
7
+ package: string;
8
+ tools: McpToolImport[];
9
+ }
10
+ interface McpToolImport {
11
+ import: string;
12
+ }
13
+
14
+ declare class ToolDispatcher {
15
+ private mcp?;
16
+ private tools;
17
+ constructor(mcp?: McpConfig | undefined);
18
+ init(): Promise<void>;
19
+ list(): Promise<Tool[]>;
20
+ get(name: string): Promise<Tool | undefined>;
21
+ getInputText(name: string, input?: object): Promise<string>;
22
+ execute(name: string, input?: object): Promise<string>;
23
+ }
24
+
25
+ export { type McpConfig, type McpServer, type McpToolImport, ToolDispatcher };
package/dist/index.js ADDED
@@ -0,0 +1,59 @@
1
+ // src/entities/toolDispatcher.ts
2
+ import { Tool } from "@mappies/miniwat-api-core";
3
+ var ToolDispatcher = class {
4
+ constructor(mcp) {
5
+ this.mcp = mcp;
6
+ this.tools = [];
7
+ }
8
+ async init() {
9
+ if (this.tools.length !== 0) return;
10
+ this.tools = [];
11
+ if (this.mcp === void 0) return;
12
+ for (let server of Object.keys(this.mcp.mcpServers)) {
13
+ let service = this.mcp.mcpServers[server];
14
+ const pck = await import(service.package);
15
+ for (let t of service.tools) {
16
+ let definition = pck[t.import];
17
+ let tool = new Tool({
18
+ name: definition.name,
19
+ description: definition.description,
20
+ schema: definition.inputSchema,
21
+ func: pck[definition.name],
22
+ getInputText: pck[`${definition.name}InputText`]
23
+ });
24
+ this.tools.push(tool);
25
+ }
26
+ }
27
+ }
28
+ async list() {
29
+ await this.init();
30
+ return this.tools;
31
+ }
32
+ async get(name) {
33
+ await this.init();
34
+ return this.tools.find((tool) => tool.name === name);
35
+ }
36
+ async getInputText(name, input) {
37
+ const tool = await this.get(name);
38
+ return tool?.getInputText?.(input) || "";
39
+ }
40
+ async execute(name, input) {
41
+ const tool = await this.get(name);
42
+ if (!tool) {
43
+ throw new Error(`Tool ${name} could not be found.`);
44
+ }
45
+ if (!tool.func) {
46
+ throw new Error(`Tool ${name} does not have a function.`);
47
+ }
48
+ try {
49
+ let result = await tool.func(input);
50
+ return result;
51
+ } catch (e) {
52
+ throw new Error(`Failed to run ${name} tool: ${e?.message}`);
53
+ }
54
+ }
55
+ };
56
+ export {
57
+ ToolDispatcher
58
+ };
59
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/entities/toolDispatcher.ts"],"sourcesContent":["import { Tool } from \"@mappies/miniwat-api-core\";\nimport { McpConfig } from \"../interfaces/mcpConfig\";\n\nexport class ToolDispatcher\n{\n private tools:Tool[]\n \n constructor(private mcp?:McpConfig)\n {\n this.tools = []\n }\n\n async init()\n {\n if(this.tools.length !== 0) return;\n\n this.tools = [];\n\n if(this.mcp === undefined) return;\n\n for(let server of Object.keys(this.mcp.mcpServers))\n {\n let service = this.mcp.mcpServers[server]\n \n const pck = await import(service.package);\n for(let t of service.tools)\n {\n let definition = pck[t.import];\n let tool = new Tool({ \n name: definition.name, \n description: definition.description, \n schema: definition.inputSchema, \n func: pck[definition.name],\n getInputText: pck[`${definition.name}InputText`]\n })\n \n this.tools.push(tool)\n }\n }\n }\n\n async list(): Promise<Tool[]>\n {\n await this.init()\n return this.tools;\n }\n\n async get(name:string): Promise<Tool|undefined>\n {\n await this.init()\n return this.tools.find(tool => tool.name === name);\n }\n\n async getInputText(name:string, input?:object): Promise<string>\n {\n const tool = await this.get(name);\n\n return tool?.getInputText?.(input) || '';\n }\n\n async execute(name:string, input?:object): Promise<string>\n {\n const tool = await this.get(name);\n \n if(!tool)\n {\n throw new Error(`Tool ${name} could not be found.`);\n }\n\n if(!tool.func)\n {\n throw new Error(`Tool ${name} does not have a function.`);\n }\n\n try\n {\n let result = await tool.func(input);\n return result;\n }\n catch(e:any)\n {\n throw new Error(`Failed to run ${name} tool: ${e?.message}`);\n }\n }\n}"],"mappings":";AAAA,SAAS,YAAY;AAGd,IAAM,iBAAN,MACP;AAAA,EAGI,YAAoB,KACpB;AADoB;AAEhB,SAAK,QAAQ,CAAC;AAAA,EAClB;AAAA,EAEA,MAAM,OACN;AACI,QAAG,KAAK,MAAM,WAAW,EAAG;AAE5B,SAAK,QAAQ,CAAC;AAEd,QAAG,KAAK,QAAQ,OAAW;AAE3B,aAAQ,UAAU,OAAO,KAAK,KAAK,IAAI,UAAU,GACjD;AACI,UAAI,UAAU,KAAK,IAAI,WAAW,MAAM;AAExC,YAAM,MAAM,MAAM,OAAO,QAAQ;AACjC,eAAQ,KAAK,QAAQ,OACrB;AACI,YAAI,aAAa,IAAI,EAAE,MAAM;AAC7B,YAAI,OAAO,IAAI,KAAK;AAAA,UACI,MAAM,WAAW;AAAA,UACjB,aAAa,WAAW;AAAA,UACxB,QAAQ,WAAW;AAAA,UACnB,MAAM,IAAI,WAAW,IAAI;AAAA,UACzB,cAAc,IAAI,GAAG,WAAW,IAAI,WAAW;AAAA,QACnD,CAAC;AAErB,aAAK,MAAM,KAAK,IAAI;AAAA,MACxB;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,MAAM,OACN;AACI,UAAM,KAAK,KAAK;AAChB,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,MAAM,IAAI,MACV;AACI,UAAM,KAAK,KAAK;AAChB,WAAO,KAAK,MAAM,KAAK,UAAQ,KAAK,SAAS,IAAI;AAAA,EACrD;AAAA,EAEA,MAAM,aAAa,MAAa,OAChC;AACI,UAAM,OAAO,MAAM,KAAK,IAAI,IAAI;AAEhC,WAAO,MAAM,eAAe,KAAK,KAAK;AAAA,EAC1C;AAAA,EAEA,MAAM,QAAQ,MAAa,OAC3B;AACI,UAAM,OAAO,MAAM,KAAK,IAAI,IAAI;AAEhC,QAAG,CAAC,MACJ;AACI,YAAM,IAAI,MAAM,QAAQ,IAAI,sBAAsB;AAAA,IACtD;AAEA,QAAG,CAAC,KAAK,MACT;AACI,YAAM,IAAI,MAAM,QAAQ,IAAI,4BAA4B;AAAA,IAC5D;AAEA,QACA;AACI,UAAI,SAAS,MAAM,KAAK,KAAK,KAAK;AAClC,aAAO;AAAA,IACX,SACM,GACN;AACI,YAAM,IAAI,MAAM,iBAAiB,IAAI,UAAU,GAAG,OAAO,EAAE;AAAA,IAC/D;AAAA,EACJ;AACJ;","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mappies/miniwat-mcp-core",
3
- "version": "0.3.0",
3
+ "version": "0.4.0",
4
4
  "description": "Shared entities and executor for Miniwat MCP",
5
5
  "homepage": "https://gitlab.com/mappies/miniwat-mcp-core#readme",
6
6
  "bugs": {