记住MCP TS
重要提示: 此MCP服务器仅通过端到端验证 光标2.0其他IDE或MCP主机可能需要额外的布线或配置更改。扩大兼容性的贡献非常受欢迎!
MemorizedMCP TS是Memorized MCP服务器的Bun+TypeScript实现。它提供:
- 具有多层支持的混合内存基础架构(SQLite+Vectra)
- 具有分块、嵌入、FTS支持的搜索和实体提取的文档智能
- 链接实体、关系和上下文元数据的知识图服务
- 完全沙盒化
run_code经验加上用于离散MCP调用的丰富多工具注册表 - 操作工具:迁移、计划作业、备份/恢复、模式生成和分析
关键架构文档:
docs/Architecture.md--总体拓扑和模块布局docs/Data-Model.md--数据库模式、嵌入和KG存储docs/API.md--工具定义、模式和传输契约docs/MCP-Server-Guide.md--深入使用指南(单工具与多工具)
______________________________________________________________________
安装
bun install
cp .env.example .env # customise configuration if required服务器依赖Bun≥1.3.0。确保已配置 TRANSFORMER_MODEL 在本地或通过网络可用,并创建 DATA_ROOT 如果您计划持久化数据,请使用目录。
来自npm(发布后)
npm install memorizedmcp-ts
bunx memorizedmcp-ts --multi-tool # launches the published stdio serverCLI标志:
| 标志 | 描述 |
|---|---|
| `--config | |
| ` | 加载备选方案 .env 引导前的文件 |
--multi-tool | 强制多工具注册(MCP_MULTI_TOOL=true) |
--single-tool | 强制单工具沙盒(MCP_MULTI_TOOL=false) |
--path | 覆盖SQLite+矢量数据的根目录(DATA_ROOT) |
--env KEY=VALUE | 注入任意环境覆盖(可重复) |
--help | 打印CLI使用情况 |
所有选项都映射到自托管模式中使用的相同环境变量,因此您可以在不编辑源代码的情况下在单工具和多工具行为之间切换。
提示: 如果Bun不在您的PATH中,请设置BUN_BINARY=/custom/path/to/bun运行前npx memorizedmcp-ts.
______________________________________________________________________
快速入门
# Requires Bun (>=1.3.0) available on your PATH
# Launch the published MCP server (multi-tool mode)
npx -y memorizedmcp-ts --multi-tool
# or force single-tool sandbox
npx -y memorizedmcp-ts --single-tool
# or pin the storage root alongside other flags
npx -y memorizedmcp-ts --multi-tool --path "$PWD/.memorized"对于本地开发,您仍然可以直接运行源代码:
# Start in watch mode
bun run dev
# Or build + run the bundled output
bun run build
bun run start单工具模式显示 run_code 具有类型安全绑定的工具:
const memory = await services.memory.addMemory({
content: "User prefers dark mode",
layer: "semantic",
importance: 0.8,
});
const context = await services.knowledge.getEntityContext({
entityId: "entity-id",
});通过设置切换多工具模式 MCP_MULTI_TOOL=true (in .env 或过程环境)。服务器将注册中描述的每个工具 docs/MCP-Server-Guide.md.
______________________________________________________________________
光标MCP配置
已发布的软件包与Cursor的安装链接生成器兼容\[光标MCP安装链接\]:
{
"memorizedmcp-ts": {
"command": "npx",
"args": [
"-y",
"memorizedmcp-ts",
"--",
"--multi-tool"
],
"env": {
"LOG_LEVEL": "info",
"TRANSFORMER_MODEL": "Xenova/all-MiniLM-L6-v2",
"DATA_ROOT": "~/.memorizedmcp"
}
}
}通过替换在模式之间切换 --multi-tool 随着 --single-tool,或省略要遵守的标志 .env 默认值。用以下内容覆盖存储 --path 或通过重复提供额外的覆盖 --env KEY=VALUE 论据。
______________________________________________________________________
嵌入模型选择
MCP服务器依赖于句子嵌入模型进行混合搜索。Transformers.js提供了许多兼容的检查点\[Transformers.js文档\].选择最符合您需求的型号:
| 型号 | 许可证 | 尺寸 | 备注 |
|---|---|---|---|
Xenova/all-MiniLM-L6-v2 | Apache 2.0(免费) | 384 | 示例中的默认值。快速、小巧(约80 MB),非常适合Bun/Node环境。 |
Xenova/all-mpnet-base-v2 | Apache 2.0(免费) | 768 | 更高质量的英文嵌入;大小约为3倍,推理速度较慢。 |
Xenova/multilingual-MiniLM-L12-v2 | Apache 2.0(免费) | 384 | 多语言覆盖(50多种语言)的平衡准确性。 |
对于完全托管/更高精度的选项(基于使用情况的定价),您可以将嵌入提供程序交换为拥抱面部推理端点或第三方API(例如OpenAI的 text-embedding-3-large).看 src/services/embedding.ts 对于集成点。
相应地更新环境变量:
TRANSFORMER_MODEL=Xenova/all-mpnet-base-v2______________________________________________________________________
可用脚本
| 脚本 | 描述 |
|---|---|
bun run dev | 通过文件监视执行入口点 |
bun run start | 在中运行已编译的包 dist/ |
bun run build | 捆绑服务器进行分发 |
bun run build:types | 将申报文件发送到 dist/types/ |
bun run lint | 通过Biome进行静态分析 |
bun run format | 自动格式化代码库 |
bun run test | 执行Vitest套件 |
bun run migrate | 应用数据库迁移 |
bun run generate-schemas | 从Zod定义生成JSON模式 |
bun run backup / bun run restore -- | 数据快照+还原助手 |
bun run export:memories / import:memories | JSONL导入/导出实用程序 |
npm run prepare-release | Lint、测试、构建、发出声明、重新生成模式 |
______________________________________________________________________
配置
服务器从以下位置读取配置 .env (通过 dotenv)加上运行时覆盖。重要密钥:
| 变量 | 描述 | 默认值 |
|---|---|---|
LOG_LEVEL | Pino日志级别 | info |
DATA_ROOT | SQLite、备份、vectra索引的根 | ./data |
SQLITE_URL | SQLite数据库的路径 | ./data/sqlite/memorized.db |
TRANSFORMER_MODEL | Transformers.js模型ID | hash (替换为真实模型) |
MCP_MULTI_TOOL | 启用多工具注册表 | false |
MCP_ENABLE_PARENT_WATCHDOG | 如果启动器进程消失,则终止服务器 | true 当 MEMORIZEDMCP_PARENT_PID 提供,否则 false |
MCP_ENABLE_STDIN_SHUTDOWN | 将stdin关闭视为额外的关闭信号 | false (当您的MCP主机保持stdin打开时手动启用) |
SINGLE_TOOL_TIMEOUT_MS | 沙盒超时 run_code | 120000 |
CRON_* | 计划作业的Cron表达式 | 请参阅 .env.example |
参见 docs/Operations.md 用于部署和调度指导。
______________________________________________________________________
发布工作流
按照中的步骤进行操作 docs/MCP-Server-Guide.md 和 CHANGELOG.md,然后运行:
npm run prepare-release
npm publish --access public --tag latest # or beta/rc as appropriate这 prepare-release 该脚本执行linting、测试、绑定、类型发布和模式生成,因此tarball包含运行MCP服务器所需的一切。
______________________________________________________________________
安全和加固检查表
bun run test每次发布前- 查看cron时间表(
CRON_*)沙盒超时(SINGLE_TOOL_TIMEOUT_MS) - 将备份存储在安全存储中,并将文件系统权限限制为
DATA_ROOT - 使用经过审查的
TRANSFORMER_MODEL离线时进行预热嵌入
______________________________________________________________________
兼容性说明
- 经过全面测试 光标2.0 (MCP主机+IDE)
- 其他MCP客户端可能需要修改传输接线或额外的胶水代码(
startMcpServer,工具注册) - 通过GitHub issues报告兼容性问题,以便我们扩大开箱即用的支持
______________________________________________________________________
贡献
- 分叉存储库并创建功能分支
- 跑
bun run lint和bun run test在承诺之前 - 根据需要更新文档(README、MCP指南、CHANGELOG)
- 提交一份PR,描述您是如何测试更改的(包括IDE/MCP主机详细信息)
感谢您使用MemorizedMCP TS!鼓励通过GitHub issues或pull请求提供免费反馈和功能请求。
