Skip to main content
Glama

Memory MCP Server

by inchan
errors.ts3.6 kB
/** * 표준 에러 코드 */ /* eslint-disable no-unused-vars */ export enum ErrorCode { // 파일 시스템 관련 FILE_NOT_FOUND = 'FILE_NOT_FOUND', FILE_READ_ERROR = 'FILE_READ_ERROR', FILE_WRITE_ERROR = 'FILE_WRITE_ERROR', INVALID_FILE_PATH = 'INVALID_FILE_PATH', // 스키마 검증 관련 INVALID_FRONT_MATTER = 'INVALID_FRONT_MATTER', INVALID_UID = 'INVALID_UID', SCHEMA_VALIDATION_ERROR = 'SCHEMA_VALIDATION_ERROR', // 인덱스 관련 INDEX_BUILD_ERROR = 'INDEX_BUILD_ERROR', INDEX_QUERY_ERROR = 'INDEX_QUERY_ERROR', INDEX_CORRUPTED = 'INDEX_CORRUPTED', // MCP 프로토콜 관련 MCP_PROTOCOL_ERROR = 'MCP_PROTOCOL_ERROR', MCP_TOOL_ERROR = 'MCP_TOOL_ERROR', MCP_INVALID_REQUEST = 'MCP_INVALID_REQUEST', // 설정 관련 CONFIG_ERROR = 'CONFIG_ERROR', VAULT_PATH_ERROR = 'VAULT_PATH_ERROR', // 일반적인 에러 INTERNAL_ERROR = 'INTERNAL_ERROR', TIMEOUT_ERROR = 'TIMEOUT_ERROR', NETWORK_ERROR = 'NETWORK_ERROR', } /* eslint-enable no-unused-vars */ /** * 기본 Memory MCP 에러 클래스 */ export class MemoryMcpError extends Error { public readonly code: ErrorCode; public readonly metadata?: Record<string, unknown>; constructor( code: ErrorCode, message: string, metadata?: Record<string, unknown> ) { super(message); this.name = 'MemoryMcpError'; this.code = code; if (metadata) { this.metadata = metadata; } // Error 클래스 상속을 위한 설정 Object.setPrototypeOf(this, MemoryMcpError.prototype); } toJSON(): Record<string, unknown> { return { name: this.name, code: this.code, message: this.message, metadata: this.metadata, stack: this.stack, }; } } /** * 파일 시스템 관련 에러 */ export class FileSystemError extends MemoryMcpError { constructor( code: ErrorCode, message: string, filePath?: string, metadata?: Record<string, unknown> ) { super(code, message, { ...metadata, filePath }); this.name = 'FileSystemError'; } } /** * 스키마 검증 에러 */ export class ValidationError extends MemoryMcpError { constructor( message: string, validationErrors?: unknown, metadata?: Record<string, unknown> ) { super(ErrorCode.SCHEMA_VALIDATION_ERROR, message, { ...metadata, validationErrors, }); this.name = 'ValidationError'; } } /** * 인덱스 관련 에러 */ export class IndexError extends MemoryMcpError { constructor( code: ErrorCode, message: string, metadata?: Record<string, unknown> ) { super(code, message, metadata); this.name = 'IndexError'; } } /** * MCP 프로토콜 에러 */ export class McpProtocolError extends MemoryMcpError { constructor( code: ErrorCode, message: string, metadata?: Record<string, unknown> ) { super(code, message, metadata); this.name = 'McpProtocolError'; } } /** * 에러 생성 헬퍼 함수들 */ export const createFileNotFoundError = (filePath: string): FileSystemError => new FileSystemError( ErrorCode.FILE_NOT_FOUND, `파일을 찾을 수 없습니다: ${filePath}`, filePath ); export const createValidationError = ( field: string, value: unknown ): ValidationError => new ValidationError(`유효하지 않은 ${field}: ${String(value)}`); export const createIndexError = ( operation: string, details?: string ): IndexError => new IndexError( ErrorCode.INDEX_BUILD_ERROR, `인덱스 ${operation} 실패${details ? `: ${details}` : ''}`, { operation, details } );

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/inchan/memory-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server