#!/usr/bin/env node
/**
* @copyright 2025 Chris Bunting <cbuntingde@gmail.com>
* @license MIT
*
* Memory MCP Server - Implements three types of memory for vertical agents:
* - Short-term memory: retains details within a session
* - Long-term memory: stores demographics, contact details, and preferences
* - Episodic memory: connects past experiences with present conversations
*/
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { MemoryStore } from "./store/MemoryStore.js";
import { setupResourceHandlers } from "./handlers/ResourceHandlers.js";
import { setupToolHandlers } from "./handlers/ToolHandlers.js";
import { setupPromptHandlers } from "./handlers/PromptHandlers.js";
import { createServerConfig } from "./config/ServerConfig.js";
// Create server configuration
const config = createServerConfig();
// Initialize memory store
const memoryStore = new MemoryStore(config.memoryStore);
// Create MCP server
const server = new Server(
{
name: config.name,
version: config.version,
},
{
capabilities: {
resources: {},
tools: {},
prompts: {},
},
}
);
// Set up handlers
setupResourceHandlers(server, memoryStore);
setupToolHandlers(server, memoryStore);
setupPromptHandlers(server, memoryStore);
// Start the server
async function main() {
const transport = new StdioServerTransport();
await server.connect(transport);
console.error("Memory MCP Server running on stdio");
}
main().catch((error) => {
console.error("Server error:", error);
process.exit(1);
});