set_short_term_memory
Store session-specific data with configurable expiration time to maintain context during AI interactions.
Instructions
Store data in short-term memory for a session
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | Memory key | |
| sessionId | Yes | Session identifier | |
| ttlMinutes | No | Time to live in minutes (default: 30) | |
| value | Yes | Memory value (any JSON-serializable data) |
Implementation Reference
- src/handlers/ToolHandlers.ts:193-208 (handler)MCP tool handler case for 'set_short_term_memory': validates input parameters and delegates storage to MemoryStore.case "set_short_term_memory": { const { sessionId, key, value, ttlMinutes = 30 } = request.params.arguments as any; // Validate inputs ValidationUtils.validateSessionId(sessionId); ValidationUtils.validateMemoryKey(key); ValidationUtils.validateTTLMinutes(ttlMinutes); memoryStore.setShortTermMemory(sessionId, key, value, ttlMinutes); return { content: [{ type: "text", text: `Stored short-term memory for session ${sessionId}: ${key}` }] }; }
- src/handlers/ToolHandlers.ts:22-47 (schema)Tool specification including name, description, and input schema for 'set_short_term_memory' returned in ListTools.{ name: "set_short_term_memory", description: "Store data in short-term memory for a session", inputSchema: { type: "object", properties: { sessionId: { type: "string", description: "Session identifier" }, key: { type: "string", description: "Memory key" }, value: { description: "Memory value (any JSON-serializable data)" }, ttlMinutes: { type: "number", description: "Time to live in minutes (default: 30)", default: 30 } }, required: ["sessionId", "key", "value"] } },
- src/store/MemoryStore.ts:86-102 (helper)Core implementation of short-term memory storage with TTL expiration handling in MemoryStore class.setShortTermMemory(sessionId: string, key: string, value: any, ttlMinutes?: number): void { const ttl = ttlMinutes || this.config.defaultTTLMinutes || 30; const expiresAt = Date.now() + (ttl * 60 * 1000); const existing = this.shortTermMemory.get(sessionId); if (existing && existing.expiresAt > Date.now()) { existing.data[key] = value; existing.expiresAt = expiresAt; } else { this.shortTermMemory.set(sessionId, { sessionId, data: { [key]: value }, timestamp: Date.now(), expiresAt }); } }