Token导航 LogoToken导航

MCP Server · 数据服务

Memory MCP Rs

高性能的Rust实现的知识图谱内存服务器,支持SQLite后端、全文搜索和自动去重,适用于需要持久化存储和高效查询的场景。

未说明官方级别未说明来源级核验工具 0
知识图谱高性能RustClaude全文搜索

快速开始

公开资料没有提供安装命令,按仓库或官方文档接入。
作者 / 组织
ssoj13
提供方
ssoj13

工具数量

0

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

2

仓库热度

收录来源

1 个

MCP World

选型结论

Memory MCP Rs 属于数据服务类 MCP Server,公开资料标注 0 个工具,通过传输方式未标注接入,适配 Claude,没有现成的安装命令;接入前先确认权限范围。

分类

数据服务

传输方式

未说明

认证方式

无需认证

部署方式

公开资料未说明

安装与配置

公开目录没有给出安装命令,需要按仓库 README安装;下面按同类条目的通用流程说明。

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    先确认运行方式

    公开资料没有标注传输方式,先看仓库 README,确认是本地进程还是远程地址。

  2. 2

    获取服务

    公开目录没有给出安装命令,按仓库 README里的步骤安装或获取服务。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 0 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

公开资料仍需确认:安装命令

详细介绍

内存MCP服务器(Rust+SQLite)

MCP内存服务器的高性能Rust实现——持久克劳德内存的知识图。

原始项目

特性

  • SQLite后端: 快速、可靠、符合ACID标准的存储
  • 全文搜索: FTS5用于跨名称、类型和观察值进行高效搜索
  • 自动重复数据删除: SQLite约束可防止重复的实体和关系
  • 级联删除: 外键约束会自动清理孤立关系
  • 异步I/O: 基于东京的非阻塞操作
  • 索引查询: O(log n)查找而不是O(n)扫描
  • 符合MCP标准: 通过rmcp SDK完全支持MCP协议
  • 类型安全: Rust的类型系统可以防止常见的bug

安装

cd rust/memory-mcp-rs
cargo build --release

二进制文件将位于 target/release/memory-mcp-rs (或 .exe 在Windows上)。

运输方式

服务器支持两种传输模式:

stdio模式(默认)

  • 使用案例: 本地MCP客户端(克劳德桌面、克劳德代码、Codex)
  • 协议: 标准输入/标准输出上的JSON-RPC
  • 登录中: 默认情况下为静音(防止MCP握手问题),可选文件日志记录 --log
  • 命令: memory-mcp-rs 或 memory-mcp-rs --log server.log

HTTP流模式

  • 使用案例: 远程访问、web应用程序、调试、测试
  • 协议: HTTP与服务器发送事件(SSE)
  • 终点:

- /mcp -MCP协议端点 - /health -健康检查(返回“OK”)

  • 登录中: 始终启用stderr,可选文件日志记录 --log
  • 命令: memory-mcp-rs --stream --port 8000

用法

搜索语义(FTS)

  • 搜索使用SQLite FTS5,但每个术语都会被屏蔽:不支持FTS运算符(or/near/\*)。
  • 行为:查询中的所有单词都以逻辑和方式组合。短语只作为一组单词工作。
  • 原因:避免语法错误和用户查询中的注册表。

CLI选项

Usage: memory-mcp-rs [OPTIONS]

Options:
      --db-path     Database file path (default: system data dir or MEMORY_FILE_PATH env)
  -s, --stream               Enable streamable HTTP mode (default: stdio)
  -p, --port 
          HTTP port for stream mode [default: 8000]
  -b, --bind           Bind address for stream mode [default: 127.0.0.1]
  -l, --log []         Enable file logging [default: memory-mcp-rs.log]
  -h, --help                 Print help
  -V, --version              Print version

stdio模式示例

# Default path: %LOCALAPPDATA%/mcp-memory/knowledge_graph.db (Windows)
# or ~/.local/share/mcp-memory/knowledge_graph.db (Linux/Mac)
memory-mcp-rs

# Custom database path (CLI flag)
memory-mcp-rs --db-path /path/to/graph.db

# Custom database path (environment variable)
MEMORY_FILE_PATH=/path/to/graph.db memory-mcp-rs

# With file logging (for debugging)
memory-mcp-rs --log debug.log

HTTP流模式示例

# Start HTTP server on default port 8000
memory-mcp-rs --stream

# Custom port and bind address
memory-mcp-rs --stream --port 9000 --bind 0.0.0.0

# With logging to both console and file
memory-mcp-rs --stream --log server.log

# Health check
curl http://localhost:8000/health
# Returns: OK

使用克劳德桌面

stdio模式 -添加到MCP配置:

视窗 (%APPDATA%\Claude\claude_desktop_config.json):

{
  "mcpServers": {
    "memory": {
      "command": "C:\\path\\to\\memory-mcp-rs.exe"
    }
  }
}

macOS/Linux (~/.config/claude/claude_desktop_config.json):

{
  "mcpServers": {
    "memory": {
      "command": "/path/to/memory-mcp-rs"
    }
  }
}

使用克劳德代码

stdio模式 -添加到 .claude/mcp.json:

{
  "mcpServers": {
    "memory": {
      "command": "memory-mcp-rs",
      "args": []
    }
  }
}

HTTP流模式 -单独启动服务器,然后配置:

# Terminal 1: Start HTTP server
memory-mcp-rs --stream --port 8000

# Terminal 2: Add to .claude/mcp.json
{
  "mcpServers": {
    "memory-http": {
      "url": "http://localhost:8000/mcp"
    }
  }
}

与Codex合作

stdio模式 -添加到Codex MCP配置:

{
  "mcpServers": {
    "memory": {
      "command": "memory-mcp-rs"
    }
  }
}

HTTP流模式 -单独启动服务器:

# Terminal 1: Start HTTP server
memory-mcp-rs --stream --port 8000 --log server.log

# Terminal 2: Configure Codex to use http://localhost:8000/mcp

MCP工具

工具说明
create_entities在知识图中创建新实体
create_relations在实体之间创建关系
add_observations向实体添加观察结果
delete_entities删除实体(级联删除关系)
delete_observations删除具体观察结果
delete_relations删除特定关系
read_graph阅读整个知识图谱
search_nodes跨实体的全文搜索
open_nodes按名称打开特定节点

建筑

src/
├── main.rs       # MCP server + tool routing + dual-mode transport
├── logging.rs    # Transport-aware logging (stdio vs HTTP)
├── graph.rs      # Data structures (Entity, Relation, KnowledgeGraph)
├── manager.rs    # Async manager wrapping storage
└── storage.rs    # SQLite implementation

SQLite架构

-- Entities
CREATE TABLE entities (
    name TEXT PRIMARY KEY,
    entity_type TEXT NOT NULL,
    observations TEXT NOT NULL  -- JSON array
);

-- Relations with cascade delete
CREATE TABLE relations (
    from_entity TEXT NOT NULL,
    to_entity TEXT NOT NULL,
    relation_type TEXT NOT NULL,
    FOREIGN KEY(from_entity) REFERENCES entities(name) ON DELETE CASCADE,
    FOREIGN KEY(to_entity) REFERENCES entities(name) ON DELETE CASCADE
);

-- FTS5 for full-text search
CREATE VIRTUAL TABLE entities_fts USING fts5(
    name, entity_type, observations,
    content=entities
);

演出

操作JSONLSQLite
搜索O(n)O(对数n) 使用FTS5
插入O(n)O(对数n)
删除O(n)O(对数n)
级联删除手动自动

测试

# Run all tests (integration + HTTP transport)
cargo test

# Run only integration tests
cargo test --test integration

# Run only HTTP transport tests
cargo test --test http_transport

测试覆盖范围:

  • 23个集成测试(SQLite、CRUD、FTS5、验证)
  • 4个HTTP传输测试(健康检查、端点、日志记录)
  • 所有测试都使用临时数据库并自动清理

示例用法

use memory_mcp_rs::{graph::Entity, manager::KnowledgeGraphManager};

#[tokio::main]
async fn main() -> anyhow::Result {
    let manager = KnowledgeGraphManager::new("graph.db".into())?;

    // Create entity
    manager.create_entities(vec![
        Entity {
            name: "Alice".to_string(),
            entity_type: "person".to_string(),
            observations: vec!["Works at Acme".to_string()],
        }
    ]).await?;

    // Search
    let results = manager.search_nodes(Some("Acme".to_string())).await?;
    println!("Found {} entities", results.entities.len());

    Ok(())
}

与TypeScript版本的差异

架构更改

AspectTypeScript(原始)Rust(此端口)
代码组织单片式(index.ts,~470 LOC)模块化(4个模块,~1200 LOC)
存储后端JSONL文本文件SQLite二进制数据库
数据模型内存数组带约束的关系表
文件结构单文件+测试graph.rs, storage.rs, manager.rs, main.rs

性能改进

操作TypeScriptRust改进
搜索O(n)线性 .filter()O(log n)SQL LIKE +索引快10-100倍
插入O(n)完整文件重写O(log n)SQL INSERT快10-100倍
删除O(n)+手动过滤器O(log n)+CASCADE快10-100倍
去重手册 .some() 检查自动(UNIQUE 约束)零开销
级联删除手动环路滤波自动(FOREIGN KEY CASCADE)零开销

数据完整性

特性TypeScriptRust
ACID事务❌ 否✅ SQLite酸
外键验证❌ 手册✅ 自动
唯一约束❌ 手册✅ 数据库级别
故障恢复❌ 文件损坏✅ WAL日志
并发访问❌ 文件锁定问题✅ WAL模式(并发读取)

类型安全和记忆

AspectTypeScriptRust
类型检查运行时(Zod模式)编译时(Rust类型)
内存安全垃圾回收器所有权+借用检查器
零安全undefined 检查Option / Result
错误处理例外情况Result + anyhow

并发模型

特性TypeScriptRust
异步运行时单线程事件循环Tokio多线程
I/O模型非阻塞(Node.js)非阻塞(async/await)
文件锁定操作系统级别(fs模块)SQLite连接池

测试

AspectTypeScriptRust
框架Vitest(2个测试文件)Cargo测试(11个集成测试)
覆盖基本CRUD完整CRUD+边缘情况+持久性
隔离共享测试文件每个测试的临时数据库

什么没有改变

  • ✅ MCP协议:相同的9个工具,具有相同的界面
  • ✅ API兼容性:替代TypeScript版本
  • ✅ 图形语义学:相同的实体/关系/观察模型
  • ✅ 工具名称:完全相同(create_entities, search_nodes等等)

迁移说明

Rust版本以SQLite格式存储数据,因此您不能直接从TypeScript JSONL文件迁移。如果您需要迁移:

  1. 使用以下命令从TypeScript版本导出图形 read_graph
  2. 使用导入到Rust版本 create_entities + create_relations

何时使用哪个版本

在以下情况下使用TypeScript版本:

  • 你需要快速原型制作
  • 文件大小\1000个实体
  • 需要ACID事务
  • 需要并发读取权限
  • 想要编译时类型安全

许可证

麻省理工学院

工具与能力

工具数量

0

资源数量

0

提示词数量

0

能力标签

知识图谱Rust本地部署SQLite存储全文搜索Rust实现高性能

支持客户端

Claude

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

用自然语言查库

不用手写 SQL,直接问数据,让模型组织查询语句。

数据巡检

定期拉指标、做对比,把异常项整理成一段说明。

打通业务数据

把数据库、数仓和接口接进同一个上下文,减少导出再上传。

选择建议

值得选的地方

  • 只提供 0 个工具,职责集中,接入后不容易误操作。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • 公开资料没有可直接复制的安装命令,第一次接入要自己找入口。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在数据服务场景里让模型直接调用外部能力的人。
  • 已经在用 Claude 的用户,接入路径最短。
  • 愿意照着官方文档一步步配环境的人。

不太适合

  • 希望一条命令就装好、不想看文档的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
Memory MCP Rs

MCP World · 本页

0未说明未标注1 个2026-05-17
Memory 9d25f64e

MCP World

9未说明未标注1 个2026-05-17
Prisma MCP Server

MCP World

0stdio有3 个2026-05-17
Astr Bot

MCP World

0stdio有1 个2026-05-17
Getzep MCP

MCP World

9stdio有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

Memory MCP Rs 怎么安装?

公开目录没有给出可以直接复制的安装命令,需要按仓库 README里的步骤安装;装好后写进客户端的 MCP 配置再重启。

Memory MCP Rs 怎么在 Claude Desktop、Cursor 里配置?

它是传输方式未标注,客户端配置里要写启动命令和参数,运行环境是 未标注;保存后完全退出客户端再打开,配置才会生效。

Memory MCP Rs 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

Memory MCP Rs 需要 API Key 吗?

公开资料标注为无需认证,装好就能连;如果实际调用时报鉴权错误,按官方文档补上凭据。

Memory MCP Rs 支持哪些客户端?

公开资料标注支持 Claude;其他客户端只要能配置 MCP Server,也能用同样的命令或地址接入。

来源信息

继续浏览同类 MCP