@nahisaho/katashiro-mcp-server 0.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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;GAWG"}
package/dist/cli.js ADDED
@@ -0,0 +1,54 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * KATASHIRO MCP Server CLI
4
+ *
5
+ * Entry point for running the MCP server via STDIO transport
6
+ *
7
+ * Usage:
8
+ * npx @nahisaho/katashiro-mcp-server
9
+ * katashiro-mcp-server
10
+ *
11
+ * @module @nahisaho/katashiro-mcp-server
12
+ * @task TSK-062
13
+ */
14
+ import { KatashiroMCPServer } from './server/mcp-server.js';
15
+ import { StdioTransport } from './transport/stdio-transport.js';
16
+ import { MCPProtocolHandler } from './protocol/protocol-handler.js';
17
+ /**
18
+ * Main entry point
19
+ */
20
+ async function main() {
21
+ // Create server instance
22
+ const server = new KatashiroMCPServer();
23
+ // Create protocol handler
24
+ const protocolHandler = new MCPProtocolHandler(server);
25
+ // Create STDIO transport
26
+ const transport = new StdioTransport();
27
+ // Set up message handling
28
+ transport.onMessage(async (message) => {
29
+ return protocolHandler.handleMessage(message);
30
+ });
31
+ // Set up error handling
32
+ transport.onError((error) => {
33
+ console.error('[KATASHIRO MCP] Transport error:', error.message);
34
+ });
35
+ // Handle process signals
36
+ process.on('SIGINT', () => {
37
+ transport.stop();
38
+ process.exit(0);
39
+ });
40
+ process.on('SIGTERM', () => {
41
+ transport.stop();
42
+ process.exit(0);
43
+ });
44
+ // Start the transport
45
+ transport.start();
46
+ // Log startup (to stderr, not stdout which is used for JSON-RPC)
47
+ console.error(`[KATASHIRO MCP] Server started: ${server.getName()} v${server.getServerInfo().version}`);
48
+ }
49
+ // Run main
50
+ main().catch((error) => {
51
+ console.error('[KATASHIRO MCP] Fatal error:', error);
52
+ process.exit(1);
53
+ });
54
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,YAAY,EACV,OAAO,EACP,SAAS,EACT,WAAW,EACX,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,UAAU,GACX,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,cAAc,EACd,mBAAmB,EACnB,eAAe,EACf,YAAY,EACZ,cAAc,EACd,cAAc,GACf,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC/E,YAAY,EACV,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,GACd,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,YAAY,EACV,WAAW,EACX,mBAAmB,EACnB,WAAW,EACX,cAAc,GACf,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,YAAY,EACV,cAAc,EACd,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,YAAY,EACV,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,iCAAiC,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt-registry.d.ts","sourceRoot":"","sources":["../../src/prompts/prompt-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAEhE;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;;;GAIG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,OAAO,CAA4C;IAE3D;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC;IAYvD;;;;;OAKG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,gBAAgB,GAAG,IAAI,EAAE,KAAK,CAAC;IAQzD;;;;OAIG;IACH,IAAI,IAAI,MAAM,CAAC,gBAAgB,EAAE,EAAE,KAAK,CAAC;IAQzC;;;;;;OAMG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;IAkBzE;;;;;;OAMG;IACH,QAAQ,CACN,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,MAAM,CAAC,gBAAgB,EAAE,KAAK,CAAC;IAqClC;;;;;OAKG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC;IAQhD;;;;;OAKG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B;;OAEG;IACH,KAAK,IAAI,IAAI;CAGd"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/protocol/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,uBAAuB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol-handler.d.ts","sourceRoot":"","sources":["../../src/protocol/protocol-handler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource-manager.d.ts","sourceRoot":"","sources":["../../src/resources/resource-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAEhE;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,eAAe,CAAC,CAAC;AAE7D;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,eAAe,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;AAE1E;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,SAAS,CAA8C;IAC/D,OAAO,CAAC,aAAa,CAA6D;IAClF,OAAO,CAAC,mBAAmB,CAAK;IAEhC;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,GAAG,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC;IAY3D;;;;;OAKG;IACH,IAAI,CAAC,OAAO,GAAE,WAAgB,GAAG,MAAM,CAAC,kBAAkB,EAAE,EAAE,KAAK,CAAC;IAcpE;;;;;OAKG;IACG,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;IAuBhE;;;;;;OAMG;IACH,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;IAmB7E;;;;;OAKG;IACH,WAAW,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC;IAc3D;;;;;;OAMG;IACG,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAyBxE;;;;OAIG;IACH,aAAa,IAAI,MAAM,CAAC,gBAAgB,EAAE,EAAE,KAAK,CAAC;IAwBlD;;;;;OAKG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC;IAS/C;;OAEG;IACH,KAAK,IAAI,IAAI;CAId"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../../src/server/mcp-server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-registry.d.ts","sourceRoot":"","sources":["../../src/tools/tool-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAEhE;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,UAAU,CAAC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,CACxB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC1B,OAAO,CAAC,mBAAmB,CAAC,CAAC;AAElC;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ,CAAC;QACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACpC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC;IACF,OAAO,EAAE,WAAW,CAAC;CACtB;AAED;;;;GAIG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,CAA0C;IAEvD;;;;;OAKG;IACH,QAAQ,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC;IAYnD;;;;;OAKG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,cAAc,GAAG,IAAI,EAAE,KAAK,CAAC;IAQvD;;;;OAIG;IACH,IAAI,IAAI,MAAM,CAAC,cAAc,EAAE,EAAE,KAAK,CAAC;IAQvC;;;;;;OAMG;IACG,OAAO,CACX,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;IAc9C;;;;;OAKG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC;IAQhD;;;;;OAKG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B;;OAEG;IACH,KAAK,IAAI,IAAI;CAGd"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/transport/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,sBAAsB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stdio-transport.d.ts","sourceRoot":"","sources":["../../src/transport/stdio-transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAEjD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,KAAK,CAAC;IACf,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,KAAK,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,KAAK,CAAC;IACf,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,YAAY,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;;CAMnB,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,CAC3B,OAAO,EAAE,cAAc,GAAG,mBAAmB,KAC1C,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC;AAErC;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,cAAc,GAAG,WAAW,GAAG,QAAQ,CAAC;AAErE;;;;;GAKG;AACH,qBAAa,cAAc;IAOvB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAPzB,OAAO,CAAC,KAAK,CAAkC;IAC/C,OAAO,CAAC,QAAQ,CAAmC;IACnD,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,YAAY,CAAyC;gBAG1C,KAAK,GAAE,QAAwB,EAC/B,MAAM,GAAE,QAAyB;IAGpD;;OAEG;IACH,QAAQ,IAAI,cAAc;IAI1B;;OAEG;IACH,SAAS,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAIxC;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI;IAI9C;;OAEG;IACH,KAAK,IAAI,IAAI;IA2Bb;;OAEG;IACH,IAAI,IAAI,IAAI;IAQZ;;OAEG;IACH,IAAI,CAAC,OAAO,EAAE,eAAe,GAAG,mBAAmB,GAAG,IAAI;IAS1D;;OAEG;YACW,UAAU;IA0BxB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAmB7B;;OAEG;IACH,OAAO,CAAC,SAAS;CAkBlB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,EAAE,EAAE,MAAM,GAAG,MAAM,EACnB,MAAM,EAAE,OAAO,GACd,eAAe,CAMjB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,EAAE,EAAE,MAAM,GAAG,MAAM,EACnB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,OAAO,GACb,eAAe,CAUjB"}
package/package.json ADDED
@@ -0,0 +1,40 @@
1
+ {
2
+ "name": "@nahisaho/katashiro-mcp-server",
3
+ "version": "0.1.0",
4
+ "description": "KATASHIRO MCP Server - Model Context Protocol server for AI-powered research",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "bin": {
9
+ "katashiro-mcp": "./dist/cli.js"
10
+ },
11
+ "scripts": {
12
+ "build": "tsc",
13
+ "clean": "rm -rf dist",
14
+ "test": "vitest run"
15
+ },
16
+ "dependencies": {
17
+ "@modelcontextprotocol/sdk": "^1.0.0",
18
+ "zod": "^3.23.0",
19
+ "@nahisaho/katashiro-core": "*",
20
+ "@nahisaho/katashiro-collector": "*",
21
+ "@nahisaho/katashiro-analyzer": "*",
22
+ "@nahisaho/katashiro-generator": "*",
23
+ "@nahisaho/katashiro-knowledge": "*",
24
+ "@nahisaho/katashiro-feedback": "*"
25
+ },
26
+ "author": "nahisaho",
27
+ "license": "MIT",
28
+ "repository": {
29
+ "type": "git",
30
+ "url": "https://github.com/nahisaho/katashiro.git",
31
+ "directory": "packages/mcp-server"
32
+ },
33
+ "publishConfig": {
34
+ "access": "public"
35
+ },
36
+ "homepage": "https://github.com/nahisaho/katashiro#readme",
37
+ "bugs": {
38
+ "url": "https://github.com/nahisaho/katashiro/issues"
39
+ }
40
+ }
package/src/cli.ts ADDED
@@ -0,0 +1,64 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * KATASHIRO MCP Server CLI
4
+ *
5
+ * Entry point for running the MCP server via STDIO transport
6
+ *
7
+ * Usage:
8
+ * npx @nahisaho/katashiro-mcp-server
9
+ * katashiro-mcp-server
10
+ *
11
+ * @module @nahisaho/katashiro-mcp-server
12
+ * @task TSK-062
13
+ */
14
+
15
+ import { KatashiroMCPServer } from './server/mcp-server.js';
16
+ import { StdioTransport } from './transport/stdio-transport.js';
17
+ import { MCPProtocolHandler } from './protocol/protocol-handler.js';
18
+
19
+ /**
20
+ * Main entry point
21
+ */
22
+ async function main(): Promise<void> {
23
+ // Create server instance
24
+ const server = new KatashiroMCPServer();
25
+
26
+ // Create protocol handler
27
+ const protocolHandler = new MCPProtocolHandler(server);
28
+
29
+ // Create STDIO transport
30
+ const transport = new StdioTransport();
31
+
32
+ // Set up message handling
33
+ transport.onMessage(async (message) => {
34
+ return protocolHandler.handleMessage(message);
35
+ });
36
+
37
+ // Set up error handling
38
+ transport.onError((error) => {
39
+ console.error('[KATASHIRO MCP] Transport error:', error.message);
40
+ });
41
+
42
+ // Handle process signals
43
+ process.on('SIGINT', () => {
44
+ transport.stop();
45
+ process.exit(0);
46
+ });
47
+
48
+ process.on('SIGTERM', () => {
49
+ transport.stop();
50
+ process.exit(0);
51
+ });
52
+
53
+ // Start the transport
54
+ transport.start();
55
+
56
+ // Log startup (to stderr, not stdout which is used for JSON-RPC)
57
+ console.error(`[KATASHIRO MCP] Server started: ${server.getName()} v${server.getServerInfo().version}`);
58
+ }
59
+
60
+ // Run main
61
+ main().catch((error) => {
62
+ console.error('[KATASHIRO MCP] Fatal error:', error);
63
+ process.exit(1);
64
+ });
package/src/index.ts ADDED
@@ -0,0 +1,77 @@
1
+ /**
2
+ * @nahisaho/katashiro-mcp-server
3
+ * MCP (Model Context Protocol) サーバー実装
4
+ *
5
+ * Official MCP Specification: https://modelcontextprotocol.io
6
+ *
7
+ * @design DES-KATASHIRO-001 §2.4 MCP Server
8
+ */
9
+
10
+ // Server
11
+ export { KatashiroMCPServer } from './server/mcp-server.js';
12
+ export type {
13
+ MCPTool,
14
+ MCPPrompt,
15
+ MCPResource,
16
+ ToolResult,
17
+ PromptResult,
18
+ ServerCapabilities,
19
+ ServerInfo,
20
+ } from './server/mcp-server.js';
21
+
22
+ // Transport
23
+ export {
24
+ StdioTransport,
25
+ createSuccessResponse,
26
+ createErrorResponse,
27
+ JsonRpcErrorCode,
28
+ } from './transport/index.js';
29
+ export type {
30
+ JsonRpcRequest,
31
+ JsonRpcNotification,
32
+ JsonRpcResponse,
33
+ JsonRpcError,
34
+ MessageHandler,
35
+ TransportState,
36
+ } from './transport/index.js';
37
+
38
+ // Protocol
39
+ export { MCPProtocolHandler, MCP_PROTOCOL_VERSION } from './protocol/index.js';
40
+ export type {
41
+ InitializeParams,
42
+ InitializeResult,
43
+ ToolsListResult,
44
+ ToolsCallParams,
45
+ ResourcesListResult,
46
+ ResourcesReadParams,
47
+ PromptsListResult,
48
+ PromptsGetParams,
49
+ ProtocolState,
50
+ } from './protocol/index.js';
51
+
52
+ // Tools (legacy, for backward compatibility)
53
+ export { ToolRegistry } from './tools/tool-registry.js';
54
+ export type {
55
+ ToolContent,
56
+ ToolExecutionResult,
57
+ ToolHandler,
58
+ RegisteredTool,
59
+ } from './tools/tool-registry.js';
60
+
61
+ // Prompts (legacy, for backward compatibility)
62
+ export { PromptRegistry } from './prompts/prompt-registry.js';
63
+ export type {
64
+ PromptArgument,
65
+ RegisteredPrompt,
66
+ ValidationResult,
67
+ } from './prompts/prompt-registry.js';
68
+
69
+ // Resources (legacy, for backward compatibility)
70
+ export { ResourceManager } from './resources/resource-manager.js';
71
+ export type {
72
+ ResourceContent,
73
+ ContentProvider,
74
+ ResourceDefinition,
75
+ ResourceTemplate,
76
+ SubscriptionCallback,
77
+ } from './resources/resource-manager.js';
@@ -0,0 +1,195 @@
1
+ /**
2
+ * PromptRegistry - プロンプト登録・管理
3
+ *
4
+ * MCPプロンプトの登録と実行を管理
5
+ *
6
+ * @module @nahisaho/katashiro-mcp-server
7
+ * @task TSK-062
8
+ */
9
+
10
+ import { ok, err, type Result } from '@nahisaho/katashiro-core';
11
+
12
+ /**
13
+ * Prompt argument definition
14
+ */
15
+ export interface PromptArgument {
16
+ name: string;
17
+ description: string;
18
+ required?: boolean;
19
+ }
20
+
21
+ /**
22
+ * Registered prompt
23
+ */
24
+ export interface RegisteredPrompt {
25
+ name: string;
26
+ description: string;
27
+ template: string;
28
+ arguments?: PromptArgument[];
29
+ }
30
+
31
+ /**
32
+ * Validation result
33
+ */
34
+ export interface ValidationResult {
35
+ valid: boolean;
36
+ missing: string[];
37
+ extra: string[];
38
+ }
39
+
40
+ /**
41
+ * PromptRegistry
42
+ *
43
+ * Manages MCP prompt registration and rendering
44
+ */
45
+ export class PromptRegistry {
46
+ private prompts: Map<string, RegisteredPrompt> = new Map();
47
+
48
+ /**
49
+ * Register a prompt
50
+ *
51
+ * @param prompt - Prompt to register
52
+ * @returns Result
53
+ */
54
+ register(prompt: RegisteredPrompt): Result<void, Error> {
55
+ try {
56
+ if (this.prompts.has(prompt.name)) {
57
+ return err(new Error(`Prompt already registered: ${prompt.name}`));
58
+ }
59
+ this.prompts.set(prompt.name, prompt);
60
+ return ok(undefined);
61
+ } catch (error) {
62
+ return err(error instanceof Error ? error : new Error(String(error)));
63
+ }
64
+ }
65
+
66
+ /**
67
+ * Get a registered prompt
68
+ *
69
+ * @param name - Prompt name
70
+ * @returns Prompt or null
71
+ */
72
+ get(name: string): Result<RegisteredPrompt | null, Error> {
73
+ try {
74
+ return ok(this.prompts.get(name) ?? null);
75
+ } catch (error) {
76
+ return err(error instanceof Error ? error : new Error(String(error)));
77
+ }
78
+ }
79
+
80
+ /**
81
+ * List all registered prompts
82
+ *
83
+ * @returns Array of prompts
84
+ */
85
+ list(): Result<RegisteredPrompt[], Error> {
86
+ try {
87
+ return ok(Array.from(this.prompts.values()));
88
+ } catch (error) {
89
+ return err(error instanceof Error ? error : new Error(String(error)));
90
+ }
91
+ }
92
+
93
+ /**
94
+ * Render a prompt with arguments
95
+ *
96
+ * @param name - Prompt name
97
+ * @param args - Arguments to fill in
98
+ * @returns Rendered template
99
+ */
100
+ render(name: string, args: Record<string, string>): Result<string, Error> {
101
+ try {
102
+ const prompt = this.prompts.get(name);
103
+ if (!prompt) {
104
+ return err(new Error(`Unknown prompt: ${name}`));
105
+ }
106
+
107
+ let rendered = prompt.template;
108
+ for (const [key, value] of Object.entries(args)) {
109
+ rendered = rendered.replace(new RegExp(`\\{\\{${key}\\}\\}`, 'g'), value);
110
+ }
111
+
112
+ return ok(rendered);
113
+ } catch (error) {
114
+ return err(error instanceof Error ? error : new Error(String(error)));
115
+ }
116
+ }
117
+
118
+ /**
119
+ * Validate arguments for a prompt
120
+ *
121
+ * @param name - Prompt name
122
+ * @param args - Arguments to validate
123
+ * @returns Validation result
124
+ */
125
+ validate(
126
+ name: string,
127
+ args: Record<string, unknown>
128
+ ): Result<ValidationResult, Error> {
129
+ try {
130
+ const prompt = this.prompts.get(name);
131
+ if (!prompt) {
132
+ return err(new Error(`Unknown prompt: ${name}`));
133
+ }
134
+
135
+ const missing: string[] = [];
136
+ const extra: string[] = [];
137
+
138
+ // Check for missing required arguments
139
+ if (prompt.arguments) {
140
+ for (const arg of prompt.arguments) {
141
+ if (arg.required && !(arg.name in args)) {
142
+ missing.push(arg.name);
143
+ }
144
+ }
145
+
146
+ // Check for extra arguments
147
+ const validNames = new Set(prompt.arguments.map((a) => a.name));
148
+ for (const key of Object.keys(args)) {
149
+ if (!validNames.has(key)) {
150
+ extra.push(key);
151
+ }
152
+ }
153
+ }
154
+
155
+ return ok({
156
+ valid: missing.length === 0,
157
+ missing,
158
+ extra,
159
+ });
160
+ } catch (error) {
161
+ return err(error instanceof Error ? error : new Error(String(error)));
162
+ }
163
+ }
164
+
165
+ /**
166
+ * Unregister a prompt
167
+ *
168
+ * @param name - Prompt name
169
+ * @returns Whether unregistered
170
+ */
171
+ unregister(name: string): Result<boolean, Error> {
172
+ try {
173
+ return ok(this.prompts.delete(name));
174
+ } catch (error) {
175
+ return err(error instanceof Error ? error : new Error(String(error)));
176
+ }
177
+ }
178
+
179
+ /**
180
+ * Check if prompt exists
181
+ *
182
+ * @param name - Prompt name
183
+ * @returns Whether exists
184
+ */
185
+ has(name: string): boolean {
186
+ return this.prompts.has(name);
187
+ }
188
+
189
+ /**
190
+ * Clear all prompts
191
+ */
192
+ clear(): void {
193
+ this.prompts.clear();
194
+ }
195
+ }
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Protocol module exports
3
+ */
4
+
5
+ export * from './protocol-handler.js';