使用说明
@ideadesign媒体/内存mcp
MCP代理的SQLite支持内存。提供CLI和编程API。
亮点(v2)
- 单个全局存储空间;没有所有者隔离,也没有类型。
- 最小模式:subject、content、date_created、date_updated、expires_at(嵌入仅限于内部)。
- 可选FTS5索引,以实现更好的搜索;转而采用
LIKE当不可用时。 - 当提供密钥时,通过OpenAI在内部自动生成嵌入;否则依赖于文本搜索。MCP客户端从不接受嵌入,也不向其返回嵌入。
安装/运行
快速运行(无需安装):
npx -y @ideadesignmedia/memory-mcp --db=/abs/path/memory.db --topk=6
在本地安装(依赖于开发)并运行:
npm i -D @ideadesignmedia/memory-mcp
npx memory-mcp --db=/abs/path/memory.db --topk=6
其他生态系统等效物:
- pnpm:
pnpm dlx @ideadesignmedia/memory-mcp --db=... --topk=6 - 纱线(经典):
yarn dlx @ideadesignmedia/memory-mcp --db=... --topk=6
CLI使用情况
您可以直接调用它(如果全局安装)或通过如上所示的npx调用它。
可选标志:
--embed-key=sk-...提供嵌入API密钥(与MEMORY_EMBEDDING_KEY).--embed-model=text-embedding-3-small覆盖嵌入模型(与MEMORY_EMBED_MODEL).
Codex配置示例
使用npx,因此不需要全局安装。增添 ~/.codex/config.toml:
[mcp_servers.memory]
command = "npx"
args = ["-y", "@ideadesignmedia/memory-mcp", "--db=/abs/path/memory.db", "--topk=6"]
程序化API
import { MemoryStore, runStdioServer } from "@ideadesignmedia/memory-mcp";
const store = new MemoryStore("./memory.db");
// All store methods are async
const id = await store.insert({
ownerId: "user-123",
type: "preference",
subject: "favorite color",
content: "blue",
});
// Run as an MCP server over stdio
await runStdioServer({
dbPath: "./memory.db",
defaultTopK: 6,
embeddingApiKey: process.env.MEMORY_EMBEDDING_KEY, // optional
});
工具(v2)
-
内存创建
- 创建一个记忆
subject,content。可选包括ttlDays(计算expires_at). - 答复:
{ ok: true }关于成功,或{ ok: false, error: string }失败。
- 创建一个记忆
-
内存搜索
- 按文本全局搜索,可选
k(语义排名在可用时在内部使用)。 - 响应项目:
{ id, subject, content }.
- 按文本全局搜索,可选
-
内存更新
- 通过以下方式更新内存字段
id:subject,content,ttlDays(重新计算expires_at),或expiresAt. - 答复:
{ ok: true }关于成功,或{ ok: false, error: string }失败。
- 通过以下方式更新内存字段
-
内存删除
- 通过以下方式删除内存
id. - 答复:
{ ok: true }关于成功,或{ ok: false, error: string }失败。
- 通过以下方式删除内存
-
记忆得到
- 通过以下方式获取单个内存
id. - 响应项:
{ id, subject, content, dateCreated, dateUpdated }.
- 通过以下方式获取单个内存
嵌入
嵌入是可选的——没有密钥,服务器依赖于文本搜索。嵌入仅限于内部;它们永远不会被客户接受或退还给客户。
集 MEMORY_EMBEDDING_KEY (或通行证 --embed-key=... 以在记忆/导入内存时自动创建嵌入,并嵌入召回查询。默认模型为 text-embedding-3-small;用以下命令覆盖它 MEMORY_EMBED_MODEL 或 --embed-model。若要在使用编程API时禁用内置生成器,请传递 embeddingProvider: null 到 createMemoryMcpServer。要以编程方式指定密钥,请传递 embeddingApiKey: "sk-...".
限制和验证(v2)
- 内存创建:
subject最多160个字符;content最多2000;可选的ttlDays. - 内存搜索:可选
query最多1000;k高达20。 - 内存更新:接受部分字段;
ttlDays重新计算expires_at.