opentool 0.0.2
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/LICENSE +21 -0
- package/README.md +208 -0
- package/dist/cli/build.d.ts +8 -0
- package/dist/cli/build.d.ts.map +1 -0
- package/dist/cli/build.js +368 -0
- package/dist/cli/build.js.map +1 -0
- package/dist/cli/dev.d.ts +6 -0
- package/dist/cli/dev.d.ts.map +1 -0
- package/dist/cli/dev.js +167 -0
- package/dist/cli/dev.js.map +1 -0
- package/dist/cli/index.d.ts +5 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +53 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/validate.d.ts +5 -0
- package/dist/cli/validate.d.ts.map +1 -0
- package/dist/cli/validate.js +167 -0
- package/dist/cli/validate.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -0
- package/dist/runtime/index.d.ts +11 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/index.js +206 -0
- package/dist/runtime/index.js.map +1 -0
- package/dist/types/index.d.ts +81 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +20 -0
- package/dist/types/index.js.map +1 -0
- package/package.json +68 -0
package/dist/cli/dev.js
ADDED
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.devCommand = devCommand;
|
|
37
|
+
const fs = __importStar(require("fs"));
|
|
38
|
+
const path = __importStar(require("path"));
|
|
39
|
+
const index_js_1 = require("@modelcontextprotocol/sdk/server/index.js");
|
|
40
|
+
const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js");
|
|
41
|
+
const types_js_1 = require("@modelcontextprotocol/sdk/types.js");
|
|
42
|
+
async function devCommand(options) {
|
|
43
|
+
console.log('š Starting OpenTool MCP server...');
|
|
44
|
+
const toolsDir = path.resolve(options.input);
|
|
45
|
+
try {
|
|
46
|
+
// Validate tools directory exists
|
|
47
|
+
if (!fs.existsSync(toolsDir)) {
|
|
48
|
+
throw new Error(`Tools directory not found: ${toolsDir}`);
|
|
49
|
+
}
|
|
50
|
+
// Load tools
|
|
51
|
+
const tools = await loadTools(toolsDir);
|
|
52
|
+
console.log(`š¦ Loaded ${tools.length} tools:`);
|
|
53
|
+
tools.forEach(tool => {
|
|
54
|
+
const name = tool.metadata?.name || tool.filename;
|
|
55
|
+
const desc = tool.metadata?.description || 'no description';
|
|
56
|
+
console.log(` ā ${name} - ${desc}`);
|
|
57
|
+
});
|
|
58
|
+
// Create MCP server
|
|
59
|
+
const server = createMcpServer(tools);
|
|
60
|
+
console.log(`\nš MCP server running!`);
|
|
61
|
+
console.log(`š” Transport: stdio`);
|
|
62
|
+
console.log(`š Tools directory: ${toolsDir}`);
|
|
63
|
+
console.log(`\nTo test the server:`);
|
|
64
|
+
console.log(` echo '{"jsonrpc": "2.0", "id": 1, "method": "tools/list"}' | node dist/mcp-server.js`);
|
|
65
|
+
console.log(`\nOr use an MCP client to connect via stdio`);
|
|
66
|
+
console.log(`Press Ctrl+C to stop the server`);
|
|
67
|
+
// Handle graceful shutdown
|
|
68
|
+
process.on('SIGINT', () => {
|
|
69
|
+
console.log('\nš Shutting down MCP server...');
|
|
70
|
+
server.close();
|
|
71
|
+
process.exit(0);
|
|
72
|
+
});
|
|
73
|
+
// Start stdio transport
|
|
74
|
+
const transport = new stdio_js_1.StdioServerTransport();
|
|
75
|
+
await server.connect(transport);
|
|
76
|
+
}
|
|
77
|
+
catch (error) {
|
|
78
|
+
console.error('ā MCP server failed:', error);
|
|
79
|
+
process.exit(1);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
function createMcpServer(tools) {
|
|
83
|
+
const server = new index_js_1.Server({
|
|
84
|
+
name: 'opentool-dev',
|
|
85
|
+
version: '1.0.0',
|
|
86
|
+
}, {
|
|
87
|
+
capabilities: {
|
|
88
|
+
tools: {},
|
|
89
|
+
},
|
|
90
|
+
});
|
|
91
|
+
// Register list tools handler
|
|
92
|
+
server.setRequestHandler(types_js_1.ListToolsRequestSchema, async () => ({
|
|
93
|
+
tools: tools.map(tool => ({
|
|
94
|
+
name: tool.metadata?.name || tool.filename,
|
|
95
|
+
description: tool.metadata?.description || `${tool.filename} tool`,
|
|
96
|
+
inputSchema: tool.schema,
|
|
97
|
+
})),
|
|
98
|
+
}));
|
|
99
|
+
// Register call tool handler
|
|
100
|
+
server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
|
|
101
|
+
const tool = tools.find(t => {
|
|
102
|
+
const toolName = t.metadata?.name || t.filename;
|
|
103
|
+
return toolName === request.params.name;
|
|
104
|
+
});
|
|
105
|
+
if (!tool) {
|
|
106
|
+
throw new Error(`Tool ${request.params.name} not found`);
|
|
107
|
+
}
|
|
108
|
+
try {
|
|
109
|
+
const validatedParams = tool.schema.parse(request.params.arguments);
|
|
110
|
+
const result = await tool.handler(validatedParams);
|
|
111
|
+
return {
|
|
112
|
+
content: result.content,
|
|
113
|
+
isError: result.isError || false,
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
catch (error) {
|
|
117
|
+
return {
|
|
118
|
+
content: [{ type: 'text', text: `Error: ${error}` }],
|
|
119
|
+
isError: true,
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
});
|
|
123
|
+
return server;
|
|
124
|
+
}
|
|
125
|
+
async function loadTools(toolsDir) {
|
|
126
|
+
const tools = [];
|
|
127
|
+
const files = fs.readdirSync(toolsDir);
|
|
128
|
+
for (const file of files) {
|
|
129
|
+
if (file.endsWith('.ts') || file.endsWith('.js')) {
|
|
130
|
+
const toolPath = path.join(toolsDir, file);
|
|
131
|
+
try {
|
|
132
|
+
// Clear require cache for hot reloading
|
|
133
|
+
delete require.cache[require.resolve(toolPath)];
|
|
134
|
+
const toolModule = require(toolPath);
|
|
135
|
+
// Check for required exports (schema and TOOL function, metadata is optional)
|
|
136
|
+
if (toolModule.TOOL && toolModule.schema) {
|
|
137
|
+
const baseName = file.replace(/\.(ts|js)$/, '');
|
|
138
|
+
const tool = {
|
|
139
|
+
schema: toolModule.schema,
|
|
140
|
+
metadata: toolModule.metadata || null,
|
|
141
|
+
filename: baseName,
|
|
142
|
+
handler: async (params) => {
|
|
143
|
+
const result = await toolModule.TOOL(params);
|
|
144
|
+
// Handle both string and object returns
|
|
145
|
+
if (typeof result === 'string') {
|
|
146
|
+
return {
|
|
147
|
+
content: [{ type: 'text', text: result }],
|
|
148
|
+
isError: false,
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
return result;
|
|
152
|
+
}
|
|
153
|
+
};
|
|
154
|
+
tools.push(tool);
|
|
155
|
+
}
|
|
156
|
+
else {
|
|
157
|
+
console.warn(` ā ${file} - Invalid tool format. Must export: schema and TOOL function (metadata is optional)`);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
catch (error) {
|
|
161
|
+
console.warn(` ā ${file} - Failed to load: ${error}`);
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
return tools;
|
|
166
|
+
}
|
|
167
|
+
//# sourceMappingURL=dev.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/cli/dev.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAwCA,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4
|
+
if (k2 === undefined) k2 = k;
|
|
5
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
8
|
+
}
|
|
9
|
+
Object.defineProperty(o, k2, desc);
|
|
10
|
+
}) : (function(o, m, k, k2) {
|
|
11
|
+
if (k2 === undefined) k2 = k;
|
|
12
|
+
o[k2] = m[k];
|
|
13
|
+
}));
|
|
14
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
15
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
16
|
+
};
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
const commander_1 = require("commander");
|
|
19
|
+
const build_1 = require("./build");
|
|
20
|
+
const dev_1 = require("./dev");
|
|
21
|
+
const validate_1 = require("./validate");
|
|
22
|
+
commander_1.program
|
|
23
|
+
.name('opentool')
|
|
24
|
+
.description('OpenTool CLI for building and developing serverless MCP tools')
|
|
25
|
+
.version('1.0.0');
|
|
26
|
+
// Dev command (like next dev)
|
|
27
|
+
commander_1.program
|
|
28
|
+
.command('dev')
|
|
29
|
+
.description('Start MCP server with stdio transport')
|
|
30
|
+
.option('-i, --input <dir>', 'Input directory containing tools', 'tools')
|
|
31
|
+
.option('--watch', 'Watch for file changes', false)
|
|
32
|
+
.action(dev_1.devCommand);
|
|
33
|
+
// Build command (like next build)
|
|
34
|
+
commander_1.program
|
|
35
|
+
.command('build')
|
|
36
|
+
.description('Build tools for deployment')
|
|
37
|
+
.option('-i, --input <dir>', 'Input directory containing tools', 'tools')
|
|
38
|
+
.option('-o, --output <dir>', 'Output directory for built tools', 'dist')
|
|
39
|
+
.option('--name <name>', 'Server name', 'opentool-server')
|
|
40
|
+
.option('--version <version>', 'Server version', '1.0.0')
|
|
41
|
+
.action(build_1.buildCommand);
|
|
42
|
+
// Validate command
|
|
43
|
+
commander_1.program
|
|
44
|
+
.command('validate')
|
|
45
|
+
.description('Validate tools in directory')
|
|
46
|
+
.option('-i, --input <dir>', 'Input directory containing tools', 'tools')
|
|
47
|
+
.action(validate_1.validateCommand);
|
|
48
|
+
// Parse arguments
|
|
49
|
+
commander_1.program.parse();
|
|
50
|
+
__exportStar(require("./build"), exports);
|
|
51
|
+
__exportStar(require("./dev"), exports);
|
|
52
|
+
__exportStar(require("./validate"), exports);
|
|
53
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAEA,yCAAoC;AACpC,mCAAuC;AACvC,+BAAmC;AACnC,yCAA6C;AAE7C,mBAAO;KACJ,IAAI,CAAC,UAAU,CAAC;KAChB,WAAW,CAAC,+DAA+D,CAAC;KAC5E,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,8BAA8B;AAC9B,mBAAO;KACJ,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,uCAAuC,CAAC;KACpD,MAAM,CAAC,mBAAmB,EAAE,kCAAkC,EAAE,OAAO,CAAC;KACxE,MAAM,CAAC,SAAS,EAAE,wBAAwB,EAAE,KAAK,CAAC;KAClD,MAAM,CAAC,gBAAU,CAAC,CAAC;AAEtB,kCAAkC;AAClC,mBAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,4BAA4B,CAAC;KACzC,MAAM,CAAC,mBAAmB,EAAE,kCAAkC,EAAE,OAAO,CAAC;KACxE,MAAM,CAAC,oBAAoB,EAAE,kCAAkC,EAAE,MAAM,CAAC;KACxE,MAAM,CAAC,eAAe,EAAE,aAAa,EAAE,iBAAiB,CAAC;KACzD,MAAM,CAAC,qBAAqB,EAAE,gBAAgB,EAAE,OAAO,CAAC;KACxD,MAAM,CAAC,oBAAY,CAAC,CAAC;AAExB,mBAAmB;AACnB,mBAAO;KACJ,OAAO,CAAC,UAAU,CAAC;KACnB,WAAW,CAAC,6BAA6B,CAAC;KAC1C,MAAM,CAAC,mBAAmB,EAAE,kCAAkC,EAAE,OAAO,CAAC;KACxE,MAAM,CAAC,0BAAe,CAAC,CAAC;AAE3B,kBAAkB;AAClB,mBAAO,CAAC,KAAK,EAAE,CAAC;AAEhB,0CAAwB;AACxB,wCAAsB;AACtB,6CAA2B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/cli/validate.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAsB,eAAe,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CA2D7E"}
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.validateCommand = validateCommand;
|
|
37
|
+
const fs = __importStar(require("fs"));
|
|
38
|
+
const path = __importStar(require("path"));
|
|
39
|
+
async function validateCommand(options) {
|
|
40
|
+
console.log('š Validating OpenTool tools...');
|
|
41
|
+
const toolsDir = path.resolve(options.input);
|
|
42
|
+
let hasErrors = false;
|
|
43
|
+
try {
|
|
44
|
+
// Validate tools directory exists
|
|
45
|
+
if (!fs.existsSync(toolsDir)) {
|
|
46
|
+
throw new Error(`Tools directory not found: ${toolsDir}`);
|
|
47
|
+
}
|
|
48
|
+
// Load and validate tools
|
|
49
|
+
const tools = await loadAndValidateTools(toolsDir);
|
|
50
|
+
if (tools.length === 0) {
|
|
51
|
+
console.log('ā ļø No tools found in directory');
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
console.log(`\nš Validation Summary:`);
|
|
55
|
+
console.log(` ā ${tools.length} valid tools found`);
|
|
56
|
+
// Check for duplicate tool names
|
|
57
|
+
const names = tools.map(t => t.metadata?.name || t.filename);
|
|
58
|
+
const duplicates = names.filter((name, index) => names.indexOf(name) !== index);
|
|
59
|
+
if (duplicates.length > 0) {
|
|
60
|
+
console.log(` ā Duplicate tool names: ${duplicates.join(', ')}`);
|
|
61
|
+
hasErrors = true;
|
|
62
|
+
}
|
|
63
|
+
// Validate each tool
|
|
64
|
+
for (const tool of tools) {
|
|
65
|
+
const name = tool.metadata?.name || tool.filename;
|
|
66
|
+
const description = tool.metadata?.description || 'no description';
|
|
67
|
+
console.log(`\nš§ Tool: ${name}`);
|
|
68
|
+
console.log(` Description: ${description}`);
|
|
69
|
+
console.log(` Schema: ${tool.schema._def?.typeName || 'unknown'}`);
|
|
70
|
+
// Check annotations
|
|
71
|
+
if (tool.metadata?.annotations) {
|
|
72
|
+
console.log(` Annotations:`);
|
|
73
|
+
Object.entries(tool.metadata.annotations).forEach(([key, value]) => {
|
|
74
|
+
console.log(` ${key}: ${value}`);
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
if (hasErrors) {
|
|
79
|
+
console.log('\nā Validation failed with errors');
|
|
80
|
+
process.exit(1);
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
console.log('\nā
All tools are valid!');
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
catch (error) {
|
|
87
|
+
console.error('ā Validation failed:', error);
|
|
88
|
+
process.exit(1);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
async function loadAndValidateTools(toolsDir) {
|
|
92
|
+
const tools = [];
|
|
93
|
+
const files = fs.readdirSync(toolsDir);
|
|
94
|
+
for (const file of files) {
|
|
95
|
+
if (file.endsWith('.ts') || file.endsWith('.js')) {
|
|
96
|
+
const toolPath = path.join(toolsDir, file);
|
|
97
|
+
try {
|
|
98
|
+
const toolModule = require(toolPath);
|
|
99
|
+
// Check for required exports (schema and TOOL function, metadata is optional)
|
|
100
|
+
if (toolModule.TOOL && toolModule.schema) {
|
|
101
|
+
const baseName = file.replace(/\.(ts|js)$/, '');
|
|
102
|
+
const tool = {
|
|
103
|
+
schema: toolModule.schema,
|
|
104
|
+
metadata: toolModule.metadata || null,
|
|
105
|
+
filename: baseName,
|
|
106
|
+
handler: async (params) => {
|
|
107
|
+
const result = await toolModule.TOOL(params);
|
|
108
|
+
// Handle both string and object returns
|
|
109
|
+
if (typeof result === 'string') {
|
|
110
|
+
return {
|
|
111
|
+
content: [{ type: 'text', text: result }],
|
|
112
|
+
isError: false,
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
return result;
|
|
116
|
+
}
|
|
117
|
+
};
|
|
118
|
+
if (validateTool(tool, file)) {
|
|
119
|
+
tools.push(tool);
|
|
120
|
+
const name = tool.metadata?.name || tool.filename;
|
|
121
|
+
console.log(` ā ${file} - Valid tool: ${name}`);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
console.log(` ā ${file} - Invalid tool format. Must export: schema and TOOL function (metadata is optional)`);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
catch (error) {
|
|
129
|
+
console.log(` ā ${file} - Failed to load: ${error}`);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
return tools;
|
|
134
|
+
}
|
|
135
|
+
function validateTool(tool, filename) {
|
|
136
|
+
if (!tool || typeof tool !== 'object') {
|
|
137
|
+
console.log(` ā ${filename} - Not an object`);
|
|
138
|
+
return false;
|
|
139
|
+
}
|
|
140
|
+
const t = tool;
|
|
141
|
+
if (!t.schema) {
|
|
142
|
+
console.log(` ā ${filename} - Missing schema`);
|
|
143
|
+
return false;
|
|
144
|
+
}
|
|
145
|
+
// Metadata is optional now
|
|
146
|
+
if (t.metadata !== null && t.metadata !== undefined) {
|
|
147
|
+
if (typeof t.metadata !== 'object') {
|
|
148
|
+
console.log(` ā ${filename} - Invalid metadata (must be object or null)`);
|
|
149
|
+
return false;
|
|
150
|
+
}
|
|
151
|
+
const metadata = t.metadata;
|
|
152
|
+
if (metadata.name !== undefined && typeof metadata.name !== 'string') {
|
|
153
|
+
console.log(` ā ${filename} - Invalid metadata.name (must be string)`);
|
|
154
|
+
return false;
|
|
155
|
+
}
|
|
156
|
+
if (metadata.description !== undefined && typeof metadata.description !== 'string') {
|
|
157
|
+
console.log(` ā ${filename} - Invalid metadata.description (must be string)`);
|
|
158
|
+
return false;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
if (!t.handler || typeof t.handler !== 'function') {
|
|
162
|
+
console.log(` ā ${filename} - Missing or invalid handler function`);
|
|
163
|
+
return false;
|
|
164
|
+
}
|
|
165
|
+
return true;
|
|
166
|
+
}
|
|
167
|
+
//# sourceMappingURL=validate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/cli/validate.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,0CA2DC;AAnED,uCAAyB;AACzB,2CAA6B;AAOtB,KAAK,UAAU,eAAe,CAAC,OAAwB;IAC5D,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;IAE/C,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC7C,IAAI,SAAS,GAAG,KAAK,CAAC;IAEtB,IAAI,CAAC;QACH,kCAAkC;QAClC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,8BAA8B,QAAQ,EAAE,CAAC,CAAC;QAC5D,CAAC;QAED,0BAA0B;QAC1B,MAAM,KAAK,GAAG,MAAM,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QAEnD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;YAC/C,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,MAAM,oBAAoB,CAAC,CAAC;QAErD,iCAAiC;QACjC,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC7D,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC;QAChF,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,6BAA6B,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAClE,SAAS,GAAG,IAAI,CAAC;QACnB,CAAC;QAED,qBAAqB;QACrB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC;YAClD,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE,WAAW,IAAI,gBAAgB,CAAC;YACnE,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC;YAClC,OAAO,CAAC,GAAG,CAAC,mBAAmB,WAAW,EAAE,CAAC,CAAC;YAC9C,OAAO,CAAC,GAAG,CAAC,cAAe,IAAI,CAAC,MAAc,CAAC,IAAI,EAAE,QAAQ,IAAI,SAAS,EAAE,CAAC,CAAC;YAE9E,oBAAoB;YACpB,IAAI,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,CAAC;gBAC/B,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;gBAC/B,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;oBACjE,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,KAAK,KAAK,EAAE,CAAC,CAAC;gBACvC,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;YACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;QAC1C,CAAC;IAEH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;QAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,oBAAoB,CAAC,QAAgB;IAClD,MAAM,KAAK,GAAqB,EAAE,CAAC;IACnC,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAEvC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAC3C,IAAI,CAAC;gBACH,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAErC,8EAA8E;gBAC9E,IAAI,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;oBACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;oBAChD,MAAM,IAAI,GAAmB;wBAC3B,MAAM,EAAE,UAAU,CAAC,MAAM;wBACzB,QAAQ,EAAE,UAAU,CAAC,QAAQ,IAAI,IAAI;wBACrC,QAAQ,EAAE,QAAQ;wBAClB,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;4BACxB,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;4BAC7C,wCAAwC;4BACxC,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;gCAC/B,OAAO;oCACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;oCACzC,OAAO,EAAE,KAAK;iCACf,CAAC;4BACJ,CAAC;4BACD,OAAO,MAAM,CAAC;wBAChB,CAAC;qBACF,CAAC;oBAEF,IAAI,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;wBAC7B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBACjB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC;wBAClD,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,kBAAkB,IAAI,EAAE,CAAC,CAAC;oBACnD,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,sFAAsF,CAAC,CAAC;gBACjH,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,sBAAsB,KAAK,EAAE,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,YAAY,CAAC,IAAa,EAAE,QAAgB;IACnD,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,OAAO,QAAQ,kBAAkB,CAAC,CAAC;QAC/C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,CAAC,GAAG,IAA+B,CAAC;IAE1C,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,OAAO,QAAQ,mBAAmB,CAAC,CAAC;QAChD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,2BAA2B;IAC3B,IAAI,CAAC,CAAC,QAAQ,KAAK,IAAI,IAAI,CAAC,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACpD,IAAI,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,OAAO,QAAQ,8CAA8C,CAAC,CAAC;YAC3E,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,QAAQ,GAAG,CAAC,CAAC,QAAmC,CAAC;QACvD,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrE,OAAO,CAAC,GAAG,CAAC,OAAO,QAAQ,2CAA2C,CAAC,CAAC;YACxE,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,QAAQ,CAAC,WAAW,KAAK,SAAS,IAAI,OAAO,QAAQ,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;YACnF,OAAO,CAAC,GAAG,CAAC,OAAO,QAAQ,kDAAkD,CAAC,CAAC;YAC/E,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,IAAI,CAAC,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,OAAO,QAAQ,wCAAwC,CAAC,CAAC;QACrE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
// Re-export types for convenience
|
|
18
|
+
__exportStar(require("./types"), exports);
|
|
19
|
+
__exportStar(require("./runtime"), exports);
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kCAAkC;AAClC,0CAAwB;AACxB,4CAA0B"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Server } from '@modelcontextprotocol/sdk/server/index.js';
|
|
2
|
+
import { ToolDefinition, LambdaEvent, LambdaResponse } from '../types';
|
|
3
|
+
/**
|
|
4
|
+
* Create Lambda handler for OpenPond tools
|
|
5
|
+
*/
|
|
6
|
+
export declare function createLambdaHandler(tools?: ToolDefinition[]): (_event: LambdaEvent) => Promise<LambdaResponse>;
|
|
7
|
+
/**
|
|
8
|
+
* Create local development server
|
|
9
|
+
*/
|
|
10
|
+
export declare function createDevServer(tools: ToolDefinition[]): Server;
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAEnE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAEvE;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,CAAC,EAAE,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,cAAc,CAAC,CAsE9G;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,MAAM,CA6C/D"}
|