Yourmemory / server-card.json
sm6342's picture
add parameter descriptions, output schemas and annotations
c18045b
Raw
History Blame Contribute Delete
5.9 kB
{
"name": "yourmemory",
"title": "YourMemory",
"description": "Persistent memory for AI agents with Ebbinghaus decay, hybrid BM25 + vector retrieval, and entity graph. MCP compatible. Works with Claude, Cursor, Cline, Windsurf.",
"version": "1.4.25",
"tools": [
{
"name": "recall_memory",
"description": "Recall relevant memories using hybrid BM25 + vector retrieval with entity graph expansion. Returns top-k memories ranked by relevance, with graph-expanded neighbours included.",
"annotations": {
"readOnlyHint": true,
"openWorldHint": false
},
"inputSchema": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "The search query to find relevant memories. Use keywords from the current task or conversation."
},
"user_id": {
"type": "string",
"description": "Unique identifier for the user whose memories to search."
},
"top_k": {
"type": "number",
"description": "Number of top memories to return. Defaults to 5.",
"default": 5
},
"current_path": {
"type": "string",
"description": "Optional file or directory path for spatial memory boost. Memories tagged with this path score higher."
}
},
"required": ["query", "user_id"]
},
"outputSchema": {
"type": "object",
"properties": {
"memoriesFound": { "type": "number", "description": "Total number of memories returned." },
"context": { "type": "string", "description": "Concatenated memory content ready to inject into context." },
"memories": {
"type": "array",
"description": "List of memory objects ranked by relevance.",
"items": {
"type": "object",
"properties": {
"id": { "type": "string" },
"content": { "type": "string" },
"category": { "type": "string" },
"similarity": { "type": "number" },
"score": { "type": "number" },
"strength": { "type": "number" }
}
}
}
}
}
},
{
"name": "store_memory",
"description": "Store a new memory. Automatically deduplicates, embeds, and indexes with BM25 and entity graph edges. Skips exact duplicates and bumps recall count instead.",
"annotations": {
"readOnlyHint": false,
"openWorldHint": false
},
"inputSchema": {
"type": "object",
"properties": {
"content": {
"type": "string",
"description": "The memory content to store. Write as a single factual sentence: 'Sachit prefers Python' or 'The project uses DuckDB'."
},
"user_id": {
"type": "string",
"description": "Unique identifier for the user this memory belongs to."
},
"importance": {
"type": "number",
"description": "Importance score from 0.0 to 1.0. Controls decay rate — higher importance = slower decay. Use 0.9 for core facts, 0.7 for preferences, 0.5 for regular facts, 0.2 for transient context.",
"minimum": 0.0,
"maximum": 1.0,
"default": 0.7
},
"category": {
"type": "string",
"description": "Memory category controlling decay half-life. Options: 'fact' (~24 days), 'strategy' (~38 days), 'assumption' (~19 days), 'failure' (~11 days).",
"enum": ["fact", "strategy", "assumption", "failure"],
"default": "fact"
},
"visibility": {
"type": "string",
"description": "Visibility scope. 'shared' means all agents can read it. 'private' means only the storing agent can read it.",
"enum": ["shared", "private"],
"default": "shared"
}
},
"required": ["content", "user_id"]
},
"outputSchema": {
"type": "object",
"properties": {
"memory_id": { "type": "string", "description": "Unique ID of the stored memory." },
"status": { "type": "string", "description": "Result status: 'stored', 'duplicate_bumped', or 'merged'." },
"content": { "type": "string", "description": "The stored memory content." }
}
}
},
{
"name": "update_memory",
"description": "Update an existing memory by ID. Re-embeds the new content, replaces the old memory, and logs the change to the audit trail.",
"annotations": {
"readOnlyHint": false,
"openWorldHint": false
},
"inputSchema": {
"type": "object",
"properties": {
"memory_id": {
"type": "string",
"description": "The unique ID of the memory to update. Obtain this from a prior recall_memory call."
},
"new_content": {
"type": "string",
"description": "The updated memory content. Write as a single factual sentence replacing the old content."
},
"importance": {
"type": "number",
"description": "Updated importance score from 0.0 to 1.0.",
"minimum": 0.0,
"maximum": 1.0,
"default": 0.7
}
},
"required": ["memory_id", "new_content"]
},
"outputSchema": {
"type": "object",
"properties": {
"memory_id": { "type": "string", "description": "ID of the updated memory." },
"status": { "type": "string", "description": "Result status: 'updated'." },
"content": { "type": "string", "description": "The new memory content after update." }
}
}
}
]
}