@synth-coder/memhub 0.1.2 → 0.1.4

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/README.md CHANGED
@@ -186,7 +186,7 @@ memhub/
186
186
  - [x] Quality gate (lint/typecheck/test/coverage)
187
187
  - [ ] Integration tests
188
188
  - [ ] Performance improvements
189
- - [x] npm release (`@synth-coder/memhub@0.1.2`)
189
+ - [x] npm release (`@synth-coder/memhub@0.1.3`)
190
190
 
191
191
  ---
192
192
 
package/README.zh-CN.md CHANGED
@@ -184,7 +184,7 @@ memhub/
184
184
  - [x] 质量门禁(lint/typecheck/test/coverage)
185
185
  - [ ] 集成测试
186
186
  - [ ] 性能优化
187
- - [x] npm 发布(`@synth-coder/memhub@0.1.2`)
187
+ - [x] npm 发布(`@synth-coder/memhub@0.1.3`)
188
188
 
189
189
  ---
190
190
 
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * MCP (Model Context Protocol) specific types and constants
3
- * Defines the protocol structures for stdio-based communication
3
+ * Tool definitions and business-level types (protocol types provided by SDK)
4
4
  */
5
5
  import type { Memory } from './types.js';
6
6
  /** Current MCP protocol version */
@@ -10,74 +10,6 @@ export declare const SERVER_INFO: {
10
10
  readonly name: "memhub";
11
11
  readonly version: "0.1.0";
12
12
  };
13
- /** JSON-RPC request ID */
14
- export type RequestId = string | number;
15
- /** Base JSON-RPC request structure */
16
- export interface JsonRpcRequest<T = unknown> {
17
- jsonrpc: '2.0';
18
- id?: RequestId;
19
- method: string;
20
- params?: T;
21
- }
22
- /** Base JSON-RPC response structure */
23
- export interface JsonRpcResponse<T = unknown> {
24
- jsonrpc: '2.0';
25
- id: RequestId | null;
26
- result?: T;
27
- error?: JsonRpcError;
28
- }
29
- /** JSON-RPC error structure */
30
- export interface JsonRpcError {
31
- code: number;
32
- message: string;
33
- data?: unknown;
34
- }
35
- /** JSON-RPC notification (no response expected) */
36
- export interface JsonRpcNotification<T = unknown> {
37
- jsonrpc: '2.0';
38
- method: string;
39
- params?: T;
40
- }
41
- /** Initialize request parameters */
42
- export interface InitializeParams {
43
- protocolVersion: string;
44
- capabilities: ClientCapabilities;
45
- clientInfo: Implementation;
46
- }
47
- /** Initialize result */
48
- export interface InitializeResult {
49
- protocolVersion: string;
50
- capabilities: ServerCapabilities;
51
- serverInfo: Implementation;
52
- }
53
- /** Implementation information */
54
- export interface Implementation {
55
- name: string;
56
- version: string;
57
- }
58
- /** Client capabilities */
59
- export interface ClientCapabilities {
60
- readonly experimental?: Record<string, unknown>;
61
- readonly roots?: {
62
- listChanged?: boolean;
63
- };
64
- readonly sampling?: Record<string, unknown>;
65
- }
66
- /** Server capabilities */
67
- export interface ServerCapabilities {
68
- readonly experimental?: Record<string, unknown>;
69
- readonly logging?: Record<string, unknown>;
70
- readonly prompts?: {
71
- listChanged?: boolean;
72
- };
73
- readonly resources?: {
74
- subscribe?: boolean;
75
- listChanged?: boolean;
76
- };
77
- readonly tools?: {
78
- listChanged?: boolean;
79
- };
80
- }
81
13
  /** Tool definition for tool/list */
82
14
  export interface Tool {
83
15
  name: string;
@@ -91,54 +23,12 @@ export interface ToolInputSchema {
91
23
  required?: string[];
92
24
  additionalProperties?: boolean;
93
25
  }
94
- /** Tool call request */
95
- export interface ToolCallRequest {
96
- name: string;
97
- arguments?: Record<string, unknown>;
98
- }
99
- /** Tool call result */
100
- export interface ToolCallResult {
101
- content: ToolContent[];
102
- isError?: boolean;
103
- }
104
- /** Tool content types */
105
- export type ToolContent = TextContent | ImageContent;
106
- /** Text content */
107
- export interface TextContent {
108
- type: 'text';
109
- text: string;
110
- }
111
- /** Image content */
112
- export interface ImageContent {
113
- type: 'image';
114
- data: string;
115
- mimeType: string;
116
- }
117
26
  /** All available tool names */
118
27
  export declare const TOOL_NAMES: readonly ["memory_load", "memory_update"];
119
28
  /** Tool name type */
120
29
  export type ToolName = (typeof TOOL_NAMES)[number];
121
30
  /** Tool definitions for MCP server */
122
31
  export declare const TOOL_DEFINITIONS: readonly Tool[];
123
- /** All MCP method names */
124
- export declare const MCP_METHODS: {
125
- readonly INITIALIZE: "initialize";
126
- readonly INITIALIZED: "notifications/initialized";
127
- readonly SHUTDOWN: "shutdown";
128
- readonly EXIT: "exit";
129
- readonly TOOLS_LIST: "tools/list";
130
- readonly TOOLS_CALL: "tools/call";
131
- readonly LOGGING_MESSAGE: "notifications/message";
132
- readonly PROGRESS: "notifications/progress";
133
- };
134
- /** Standard JSON-RPC error codes */
135
- export declare const JSONRPC_ERROR_CODES: {
136
- readonly PARSE_ERROR: -32700;
137
- readonly INVALID_REQUEST: -32600;
138
- readonly METHOD_NOT_FOUND: -32601;
139
- readonly INVALID_PARAMS: -32602;
140
- readonly INTERNAL_ERROR: -32603;
141
- };
142
32
  /** MemHub custom error codes */
143
33
  export declare const MEMHUB_ERROR_CODES: {
144
34
  readonly NOT_FOUND: -32001;
@@ -146,7 +36,7 @@ export declare const MEMHUB_ERROR_CODES: {
146
36
  readonly VALIDATION_ERROR: -32003;
147
37
  readonly DUPLICATE_ERROR: -32004;
148
38
  };
149
- /** Combined error codes */
39
+ /** Combined error codes (includes JSON-RPC standard codes) */
150
40
  export declare const ERROR_CODES: {
151
41
  readonly NOT_FOUND: -32001;
152
42
  readonly STORAGE_ERROR: -32002;
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../../src/contracts/mcp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../../src/contracts/mcp.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAMzC,mCAAmC;AACnC,eAAO,MAAM,oBAAoB,eAAe,CAAC;AAEjD,yBAAyB;AACzB,eAAO,MAAM,WAAW;;;CAGd,CAAC;AAMX,oCAAoC;AACpC,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,eAAe,CAAC;CAC9B;AAED,sCAAsC;AACtC,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAMD,+BAA+B;AAC/B,eAAO,MAAM,UAAU,2CAA4C,CAAC;AAEpE,qBAAqB;AACrB,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;AAEnD,sCAAsC;AACtC,eAAO,MAAM,gBAAgB,EAAE,SAAS,IAAI,EAmDlC,CAAC;AAMX,gCAAgC;AAChC,eAAO,MAAM,kBAAkB;;;;;CAKrB,CAAC;AAEX,8DAA8D;AAC9D,eAAO,MAAM,WAAW;;;;;;;;;;CAOd,CAAC;AAMX,0DAA0D;AAC1D,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,QAAQ,IAAI,CAAC,SAAS,aAAa,GAChE;IAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAClC,CAAC,SAAS,eAAe,GACvB;IACE,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB,GACD,KAAK,CAAC;AAEZ,yDAAyD;AACzD,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,QAAQ,IAAI,CAAC,SAAS,aAAa,GAC/D;IACE,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;CACvB,GACD,CAAC,SAAS,eAAe,GACvB;IACE,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC3B,SAAS,CAAC,EAAE,UAAU,GAAG,YAAY,GAAG,WAAW,GAAG,MAAM,GAAG,cAAc,CAAC;IAC9E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GACD,KAAK,CAAC"}
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * MCP (Model Context Protocol) specific types and constants
3
- * Defines the protocol structures for stdio-based communication
3
+ * Tool definitions and business-level types (protocol types provided by SDK)
4
4
  */
5
5
  // ============================================================================
6
6
  // MCP Protocol Version
@@ -69,34 +69,8 @@ export const TOOL_DEFINITIONS = [
69
69
  },
70
70
  ];
71
71
  // ============================================================================
72
- // MCP Methods
72
+ // Error Codes (MemHub Custom)
73
73
  // ============================================================================
74
- /** All MCP method names */
75
- export const MCP_METHODS = {
76
- // Lifecycle
77
- INITIALIZE: 'initialize',
78
- INITIALIZED: 'notifications/initialized',
79
- SHUTDOWN: 'shutdown',
80
- EXIT: 'exit',
81
- // Tools
82
- TOOLS_LIST: 'tools/list',
83
- TOOLS_CALL: 'tools/call',
84
- // Logging
85
- LOGGING_MESSAGE: 'notifications/message',
86
- // Progress
87
- PROGRESS: 'notifications/progress',
88
- };
89
- // ============================================================================
90
- // Error Codes (Standard MCP + Custom)
91
- // ============================================================================
92
- /** Standard JSON-RPC error codes */
93
- export const JSONRPC_ERROR_CODES = {
94
- PARSE_ERROR: -32700,
95
- INVALID_REQUEST: -32600,
96
- METHOD_NOT_FOUND: -32601,
97
- INVALID_PARAMS: -32602,
98
- INTERNAL_ERROR: -32603,
99
- };
100
74
  /** MemHub custom error codes */
101
75
  export const MEMHUB_ERROR_CODES = {
102
76
  NOT_FOUND: -32001,
@@ -104,9 +78,13 @@ export const MEMHUB_ERROR_CODES = {
104
78
  VALIDATION_ERROR: -32003,
105
79
  DUPLICATE_ERROR: -32004,
106
80
  };
107
- /** Combined error codes */
81
+ /** Combined error codes (includes JSON-RPC standard codes) */
108
82
  export const ERROR_CODES = {
109
- ...JSONRPC_ERROR_CODES,
83
+ PARSE_ERROR: -32700,
84
+ INVALID_REQUEST: -32600,
85
+ METHOD_NOT_FOUND: -32601,
86
+ INVALID_PARAMS: -32602,
87
+ INTERNAL_ERROR: -32603,
110
88
  ...MEMHUB_ERROR_CODES,
111
89
  };
112
90
  //# sourceMappingURL=mcp.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../../src/contracts/mcp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../../src/contracts/mcp.ts"],"names":[],"mappings":"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"}
@@ -1,81 +1,11 @@
1
1
  #!/usr/bin/env node
2
2
  /**
3
3
  * MCP Server - Model Context Protocol server implementation
4
- * Communicates via stdio
4
+ * Uses @modelcontextprotocol/sdk for protocol handling
5
5
  */
6
+ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
6
7
  /**
7
- * MCP Server implementation
8
+ * Create McpServer instance using SDK
8
9
  */
9
- export declare class McpServer {
10
- private readonly memoryService;
11
- constructor();
12
- /**
13
- * Starts the MCP server and begins listening for requests on stdin
14
- */
15
- start(): void;
16
- /**
17
- * Handles an incoming JSON-RPC message
18
- *
19
- * @param message - The JSON-RPC message string
20
- */
21
- private handleMessage;
22
- /**
23
- * Handles a specific method call
24
- *
25
- * @param method - The method name
26
- * @param params - The method parameters
27
- * @returns The method result
28
- */
29
- private handleMethod;
30
- /**
31
- * Handles the initialize method
32
- *
33
- * @param params - Initialize parameters
34
- * @returns Initialize result
35
- */
36
- private handleInitialize;
37
- /**
38
- * Handles tool calls
39
- *
40
- * @param request - Tool call request
41
- * @returns Tool call result
42
- */
43
- private handleToolCall;
44
- /**
45
- * Handles errors and sends appropriate error response
46
- *
47
- * @param id - Request ID
48
- * @param error - The error that occurred
49
- */
50
- private handleError;
51
- /**
52
- * Sends a JSON-RPC response
53
- *
54
- * @param id - Request ID
55
- * @param result - Response result
56
- */
57
- private sendResponse;
58
- /**
59
- * Sends a JSON-RPC error
60
- *
61
- * @param id - Request ID
62
- * @param code - Error code
63
- * @param message - Error message
64
- * @param data - Additional error data
65
- */
66
- private sendError;
67
- /**
68
- * Sends a message to stdout
69
- *
70
- * @param message - The message to send
71
- */
72
- private sendMessage;
73
- /**
74
- * Logs a message
75
- *
76
- * @param level - Log level
77
- * @param message - Log message
78
- */
79
- private log;
80
- }
10
+ export declare function createMcpServer(): Server;
81
11
  //# sourceMappingURL=mcp-server.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../../../src/server/mcp-server.ts"],"names":[],"mappings":";AACA;;;GAGG;AAyCH;;GAEG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;;IAO9C;;OAEG;IACH,KAAK,IAAI,IAAI;IAqCb;;;;OAIG;YACW,aAAa;IAgC3B;;;;;;OAMG;YACW,YAAY;IAkC1B;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB;IAgBxB;;;;;OAKG;YACW,cAAc;IAoD5B;;;;;OAKG;IACH,OAAO,CAAC,WAAW;IAkBnB;;;;;OAKG;IACH,OAAO,CAAC,YAAY;IASpB;;;;;;;OAOG;IACH,OAAO,CAAC,SAAS;IAqBjB;;;;OAIG;IACH,OAAO,CAAC,WAAW;IAKnB;;;;;OAKG;IACH,OAAO,CAAC,GAAG;CAQZ"}
1
+ {"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../../../src/server/mcp-server.ts"],"names":[],"mappings":";AACA;;;GAGG;AAKH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AA0BnE;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAyFxC"}
@@ -1,156 +1,58 @@
1
1
  #!/usr/bin/env node
2
2
  /**
3
3
  * MCP Server - Model Context Protocol server implementation
4
- * Communicates via stdio
4
+ * Uses @modelcontextprotocol/sdk for protocol handling
5
5
  */
6
6
  import { readFileSync } from 'fs';
7
7
  import { join, dirname } from 'path';
8
8
  import { fileURLToPath } from 'url';
9
- import { MCP_PROTOCOL_VERSION, SERVER_INFO, TOOL_DEFINITIONS, MCP_METHODS, ERROR_CODES, } from '../contracts/mcp.js';
10
- import { ErrorCode } from '../contracts/types.js';
9
+ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
10
+ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
11
+ import { CallToolRequestSchema, ListToolsRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
11
12
  import { MemoryService, ServiceError } from '../services/memory-service.js';
12
13
  import { MemoryLoadInputSchema, MemoryUpdateInputV2Schema, } from '../contracts/schemas.js';
14
+ import { TOOL_DEFINITIONS, SERVER_INFO } from '../contracts/mcp.js';
15
+ import { ErrorCode } from '../contracts/types.js';
13
16
  // Get package version
14
17
  const __filename = fileURLToPath(import.meta.url);
15
18
  const __dirname = dirname(__filename);
16
- const packageJson = JSON.parse(readFileSync(join(__dirname, '../../package.json'), 'utf-8'));
19
+ // npm package runtime: dist/src/server -> package root
20
+ const packageJsonPath = join(__dirname, '../../../package.json');
21
+ const packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf-8'));
17
22
  /**
18
- * MCP Server implementation
23
+ * Create McpServer instance using SDK
19
24
  */
20
- export class McpServer {
21
- memoryService;
22
- constructor() {
23
- const storagePath = process.env.MEMHUB_STORAGE_PATH || './memories';
24
- this.memoryService = new MemoryService({ storagePath });
25
- }
26
- /**
27
- * Starts the MCP server and begins listening for requests on stdin
28
- */
29
- start() {
30
- this.log('info', 'MemHub MCP Server starting...');
31
- process.stdin.setEncoding('utf-8');
32
- let buffer = '';
33
- process.stdin.on('data', (chunk) => {
34
- buffer += chunk;
35
- // Process complete lines (JSON-RPC messages)
36
- const lines = buffer.split('\n');
37
- buffer = lines.pop() || ''; // Keep incomplete line in buffer
38
- for (const line of lines) {
39
- if (line.trim()) {
40
- void this.handleMessage(line.trim());
41
- }
42
- }
43
- });
44
- process.stdin.on('end', () => {
45
- this.log('info', 'Stdin closed, shutting down...');
46
- process.exit(0);
47
- });
48
- process.on('SIGINT', () => {
49
- this.log('info', 'Received SIGINT, shutting down...');
50
- process.exit(0);
51
- });
52
- process.on('SIGTERM', () => {
53
- this.log('info', 'Received SIGTERM, shutting down...');
54
- process.exit(0);
55
- });
56
- }
57
- /**
58
- * Handles an incoming JSON-RPC message
59
- *
60
- * @param message - The JSON-RPC message string
61
- */
62
- async handleMessage(message) {
63
- let request = null;
64
- try {
65
- request = JSON.parse(message);
66
- }
67
- catch {
68
- this.sendError(null, ERROR_CODES.PARSE_ERROR, 'Parse error: Invalid JSON');
69
- return;
70
- }
71
- // Validate JSON-RPC request
72
- if (request.jsonrpc !== '2.0' || !request.method) {
73
- this.sendError(request.id ?? null, ERROR_CODES.INVALID_REQUEST, 'Invalid Request');
74
- return;
75
- }
76
- try {
77
- const result = await this.handleMethod(request.method, request.params);
78
- // Send response (only for requests with id, not notifications)
79
- if (request.id !== undefined) {
80
- this.sendResponse(request.id, result);
81
- }
82
- }
83
- catch (error) {
84
- this.handleError(request.id ?? null, error);
85
- }
86
- }
87
- /**
88
- * Handles a specific method call
89
- *
90
- * @param method - The method name
91
- * @param params - The method parameters
92
- * @returns The method result
93
- */
94
- async handleMethod(method, params) {
95
- switch (method) {
96
- case MCP_METHODS.INITIALIZE:
97
- return this.handleInitialize(params);
98
- case MCP_METHODS.INITIALIZED:
99
- // Notification, no response needed
100
- this.log('info', 'Client initialized');
101
- return null;
102
- case MCP_METHODS.SHUTDOWN:
103
- return null;
104
- case MCP_METHODS.EXIT:
105
- process.exit(0);
106
- return null;
107
- case MCP_METHODS.TOOLS_LIST:
108
- return { tools: TOOL_DEFINITIONS };
109
- case MCP_METHODS.TOOLS_CALL:
110
- return this.handleToolCall(params);
111
- default:
112
- throw new ServiceError(`Method not found: ${method}`, ErrorCode.METHOD_NOT_FOUND);
113
- }
114
- }
115
- /**
116
- * Handles the initialize method
117
- *
118
- * @param params - Initialize parameters
119
- * @returns Initialize result
120
- */
121
- handleInitialize(params) {
122
- this.log('info', `Client initializing: ${params.clientInfo.name} v${params.clientInfo.version}`);
123
- return {
124
- protocolVersion: MCP_PROTOCOL_VERSION,
125
- capabilities: {
126
- tools: { listChanged: false },
127
- logging: {},
128
- },
129
- serverInfo: {
130
- name: SERVER_INFO.name,
131
- version: packageJson.version || SERVER_INFO.version,
132
- },
133
- };
134
- }
135
- /**
136
- * Handles tool calls
137
- *
138
- * @param request - Tool call request
139
- * @returns Tool call result
140
- */
141
- async handleToolCall(request) {
142
- const { name, arguments: args } = request;
25
+ export function createMcpServer() {
26
+ const storagePath = process.env.MEMHUB_STORAGE_PATH || './memories';
27
+ const memoryService = new MemoryService({ storagePath });
28
+ // Create server using SDK
29
+ const server = new Server({
30
+ name: SERVER_INFO.name,
31
+ version: packageJson.version || SERVER_INFO.version,
32
+ }, {
33
+ capabilities: {
34
+ tools: { listChanged: false },
35
+ logging: {},
36
+ },
37
+ });
38
+ // Handle tools/list request
39
+ server.setRequestHandler(ListToolsRequestSchema, async () => {
40
+ return { tools: TOOL_DEFINITIONS };
41
+ });
42
+ // Handle tools/call request
43
+ server.setRequestHandler(CallToolRequestSchema, async (request) => {
44
+ const { name, arguments: args } = request.params;
143
45
  try {
144
46
  let result;
145
47
  switch (name) {
146
48
  case 'memory_load': {
147
49
  const input = MemoryLoadInputSchema.parse(args ?? {});
148
- result = await this.memoryService.memoryLoad(input);
50
+ result = await memoryService.memoryLoad(input);
149
51
  break;
150
52
  }
151
53
  case 'memory_update': {
152
54
  const input = MemoryUpdateInputV2Schema.parse(args ?? {});
153
- result = await this.memoryService.memoryUpdate(input);
55
+ result = await memoryService.memoryUpdate(input);
154
56
  break;
155
57
  }
156
58
  default:
@@ -177,88 +79,34 @@ export class McpServer {
177
79
  isError: true,
178
80
  };
179
81
  }
180
- // Re-throw for generic error handling
82
+ if (error instanceof Error && error.name === 'ZodError') {
83
+ return {
84
+ content: [
85
+ {
86
+ type: 'text',
87
+ text: JSON.stringify({ error: `Invalid parameters: ${error.message}` }, null, 2),
88
+ },
89
+ ],
90
+ isError: true,
91
+ };
92
+ }
93
+ // Re-throw for SDK error handling
181
94
  throw error;
182
95
  }
183
- }
184
- /**
185
- * Handles errors and sends appropriate error response
186
- *
187
- * @param id - Request ID
188
- * @param error - The error that occurred
189
- */
190
- handleError(id, error) {
191
- if (error instanceof ServiceError) {
192
- this.sendError(id, error.code, error.message, error.data);
193
- }
194
- else if (error instanceof Error && error.name === 'ZodError') {
195
- this.sendError(id, ERROR_CODES.INVALID_PARAMS, `Invalid parameters: ${error.message}`);
196
- }
197
- else {
198
- this.sendError(id, ERROR_CODES.INTERNAL_ERROR, `Internal error: ${error instanceof Error ? error.message : 'Unknown error'}`);
199
- }
200
- }
201
- /**
202
- * Sends a JSON-RPC response
203
- *
204
- * @param id - Request ID
205
- * @param result - Response result
206
- */
207
- sendResponse(id, result) {
208
- const response = {
209
- jsonrpc: '2.0',
210
- id,
211
- result,
212
- };
213
- this.sendMessage(response);
214
- }
215
- /**
216
- * Sends a JSON-RPC error
217
- *
218
- * @param id - Request ID
219
- * @param code - Error code
220
- * @param message - Error message
221
- * @param data - Additional error data
222
- */
223
- sendError(id, code, message, data) {
224
- const error = {
225
- code,
226
- message,
227
- data,
228
- };
229
- const response = {
230
- jsonrpc: '2.0',
231
- id: id ?? null,
232
- error,
233
- };
234
- this.sendMessage(response);
235
- }
236
- /**
237
- * Sends a message to stdout
238
- *
239
- * @param message - The message to send
240
- */
241
- sendMessage(message) {
242
- const json = JSON.stringify(message);
243
- process.stdout.write(json + '\n');
244
- }
245
- /**
246
- * Logs a message
247
- *
248
- * @param level - Log level
249
- * @param message - Log message
250
- */
251
- log(level, message) {
252
- const logLevel = process.env.MEMHUB_LOG_LEVEL || 'info';
253
- const levels = { debug: 0, info: 1, warn: 2, error: 3 };
254
- if (levels[level] >= levels[logLevel]) {
255
- console.error(`[${level.toUpperCase()}] ${message}`);
256
- }
257
- }
96
+ });
97
+ return server;
258
98
  }
259
- // Start server if this file is run directly
260
- if (import.meta.url === `file://${process.argv[1]}`) {
261
- const server = new McpServer();
262
- server.start();
99
+ /**
100
+ * Start the MCP server
101
+ */
102
+ async function main() {
103
+ const server = createMcpServer();
104
+ const transport = new StdioServerTransport();
105
+ await server.connect(transport);
106
+ console.error('MemHub MCP Server running on stdio');
263
107
  }
108
+ main().catch((error) => {
109
+ console.error('Fatal error:', error);
110
+ process.exit(1);
111
+ });
264
112
  //# sourceMappingURL=mcp-server.js.map