Token导航 LogoToken导航TokenDH.com
MCP sqlite memory bank logo
数据服务stdio官方级别未说明来源级核验

MCP sqlite memory bank

MCP Server

一个动态的、支持代理和LLM的SQLite内存数据库,专为模型上下文协议(MCP)服务器和现代AI代理平台设计,提供强大的API用于创建、探索和管理SQLite表和知识图谱。

工具数

40

提示词数

0

GitHub Stars

2

资源数

0
SQLitePythonClaude搜索Claude DesktopClaudeCursorVS Code

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

robertmeisner

提供方

robertmeisner

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install uvx

详细介绍

mcpsqlite_memory_bank

PyPI CI License: MIT

概述

mcpsqlite_memory_bank 是一个动态的、对代理和LLM友好的SQLite内存库,专为模型上下文协议(MCP)服务器和现代AI代理平台设计。

该项目提供了一个强大的、可发现的API,用于创建、探索和管理SQLite表和知识图。它使Claude、Anthropic、Github Copilot、Claude Desktop、VS Code、Cursor和其他LLM驱动的工具能够以安全、明确和可扩展的方式与结构化数据进行交互。

关键用例:

  • 构建和查询用于语义搜索和推理的知识图
  • 为LLM代理存储、检索和组织笔记或结构化数据
  • 为数据库管理和探索启用自然语言工作流
  • 具有语义搜索功能的智能内容发现
  • 通过标准化的MCP资源和提示访问内存内容
  • 与FastMCP、Claude Desktop和其他代理平台集成,实现无缝工具发现

为什么选择mcp_sqlite_memory_bank?

  • 完全符合MCP: 资源、提示和40多种有组织的工具
  • 语义搜索: 基于人工智能的相似性匹配的自然语言内容发现
  • 显式、可发现的API 用于LLM和具有增强分类功能的代理
  • 安全、参数化的查询和模式管理
  • 专为可扩展性和开源协作而设计

______________________________________________________________________

快速开始

在2分钟内开始在IDE中使用SQLite内存库:

1.安装并运行

# Install uvx if you don't have it
pip install uvx

# Run SQLite Memory Bank
uvx mcp-sqlite-memory-bank

2.配置IDE

VS代码/光标: 增添 .vscode/mcp.json:

{
  "servers": {
    "SQLite_Memory": {
      "type": "stdio",
      "command": "uvx",
      "args": ["--refresh", "mcp-sqlite-memory-bank"],
      "env": {
        "DB_PATH": "${workspaceFolder}/.vscode/project_memory.sqlite"
      }
    }
  }
}

克劳德桌面: 增添 claude_desktop_config.json:

{
  "mcpServers": {
    "sqlite_memory": {
      "command": "uvx",
      "args": ["--refresh", "mcp-sqlite-memory-bank"],
      "env": {
        "DB_PATH": "/path/to/your/memory.db"
      }
    }
  }
}

3.测试它

重新启动IDE并尝试询问AI助手:

创建一个名为“notes”的表,其中包含列“id”(整数、主键)和“content”(文本)。然后添加一个注释,上面写着“Hello SQLite Memory Bank!”

✅ 你应该看到AI使用SQLite内存库工具创建表格并添加注释!

______________________________________________________________________

特性

  • 动态表管理: 在运行时创建、列出、描述、重命名和删除表
  • 高级CRUD操作: 插入、读取、更新、删除,具有智能批处理和更改跟踪功能
  • 安全SQL: 运行具有全面输入验证的参数化SELECT查询
  • 语义搜索引擎: 使用句子变换器进行自然语言搜索以实现智能内容发现
  • 零设置搜索: 自动嵌入生成 auto_semantic_searchauto_smart_search
  • 批处理操作套件: 高效的批量创建、更新和删除操作,部分成功处理
  • 高级优化: 重复检测、存储体优化和智能归档
  • LLM辅助分析: 基于人工智能的重复检测、优化策略和归档策略
  • 发现与情报: 人工智能引导的探索、关系发现和预构建的工作流模板
  • 三维可视化: 令人惊叹的Three.js/WGBL知识图,支持实时照明和VR
  • 交互式仪表板: 具有企业级功能的专业D3.js可视化
  • MCP资源: 通过标准化的MCP资源URI访问内存内容
  • MCP提示: 用于常见内存分析工作流的内置智能提示
  • 工具分类: 组织工具发现,并提供详细的使用示例,以增强LLM集成
  • 知识图谱工具: 内置对节点/边缘模式和沉浸式3D属性图的支持
  • 代理/LLM集成: 显式、基于工具的API,便于发现和自动化
  • 企业规模: 具备全面优化和分析能力的生产就绪
  • 开源: 麻省理工学院获得许可,经过全面测试,可供社区使用

______________________________________________________________________

MCP合规性和增强集成

SQLite Memory Bank v1.6.4+提供了完全符合模型上下文协议(MCP)的高级功能,以增强LLM和代理集成:

🔧 MCP工具(40+可用)

按逻辑类别组织,便于发现:

  • 模式管理 (6个工具):表格创建、修改和检查
  • 数据操作 (11个工具):带验证和高级批处理的CRUD操作
  • 搜索与发现 (6个工具):内容搜索、探索和智能发现
  • 语义搜索 (5个工具):人工智能驱动的自然语言内容发现
  • 优化和分析 (8个工具):内存库优化、重复检测和洞察
  • 可视化和知识图 (4个工具):交互式可视化和3D知识图

📄 MCP资源(5个可用)

通过标准化URI实时访问内存内容:

  • memory://tables/list -所有可用表格列表
  • memory://tables/{table_name}/schema -表架构信息
  • memory://tables/{table_name}/data -表数据内容
  • memory://search/{query} -搜索结果作为资源
  • memory://analytics/overview -内存库概述分析

💡 MCP提示(4个可用)

常见内存分析工作流的智能提示:

  • analyze-memory-content -分析记忆库内容并提供见解
  • search-and-summarize -搜索并创建摘要提示
  • technical-decision-analysis -从记忆中分析技术决策
  • memory-bank-context -为AI对话提供内存库上下文

🎯 增强的可发现性

  • 工具分类: list_tool_categories() 用于有组织的工具发现
  • 使用示例: get_tools_by_category() 每个工具都有详细的示例
  • 语义搜索: 用于智能内容发现的自然语言查询
  • LLM友好API: 明确、描述性的工具名称和全面的文档

______________________________________________________________________

工具和API参考

所有工具都是为LLM、代理和开发人员明确、可发现的使用而设计的。每个函数都可以作为直接的Python导入和MCP工具使用。

🔍 工具发现: 使用 list_tool_categories() 查看所有已组织的工具类别,或 get_tools_by_category(category) 有关特定工具组和使用示例的详细信息。

架构管理工具(6个工具)

工具说明必需参数可选参数
create_table使用自定义架构创建新表table_name (str), columns (列表\[字典\])
drop_table删除表格table_name (str)
rename_table重命名现有表old_name (str), new_name (str)
list_tables列出所有表
describe_table获取架构详细信息table_name (str)
list_all_columns列出所有表的所有列

数据操作工具(11个工具)

工具说明必需参数可选参数
create_row将行插入表中table_name (str), data (字典)
read_rows从表中读取行table_name (str)where 字典 limit (int)
update_rows更新现有行table_name (str), data 字典 where (字典)
delete_rows从表中删除行table_name (str), where (字典)
run_select_query运行安全的SELECT查询table_name (str)columns (list\[str\]), where 字典 limit (int)
upsert_memory智能更新或创建具有更改跟踪功能的内存记录table_name (str), data 字典 match_columns (list\[str\])
batch_create_memories高效地创建多个内存记录table_name (str), data_list (列表\[字典\])match_columns (list\[str\]), use_upsert (bool)
batch_delete_memories高效删除多个内存记录table_name (str), where_conditions (列表\[字典\])match_all (bool)
find_duplicates查找重复和接近重复的内容table_name (str), content_columns (列表\[str\])similarity_threshold (浮动), sample_size (int)
archive_old_memories存档旧记忆以减少活动存储table_name (str)archive_days (int), archive_table_suffix (str), delete_after_archive (bool)
optimize_memory_bank全面的存储体优化table_name (str)optimization_strategy (str), dry_run (bool)

搜索和发现工具(6个工具)

工具说明必需参数可选参数
search_content跨表内容的全文搜索query (str)tables (list\[str\]), limit (int)
explore_tables探索和发现表结构pattern (str), include_row_counts (bool)
intelligent_discoveryAI引导的记忆库探索discovery_goal (str), focus_area (str), depth (str), agent_id (str)
discovery_templates预构建的勘探工作流程template_type (str), customize_for (str)
discover_relationships查找数据中的隐藏连接table_name (str), relationship_types (list\[str\]), similarity_threshold (浮动)
generate_knowledge_graph创建交互式HTML知识图output_path (str), include_temporal (布尔), min_connections (int), open_in_browser (bool)

语义搜索工具(5个工具)

工具说明必需参数可选参数
add_embeddings生成用于语义搜索的向量嵌入table_name (str), text_columns (列表\[str\])embedding_column (str), model_name (str)
semantic_search基于向量相似度的自然语言搜索query (str)tables (list\[str\]), similarity_threshold (浮动), limit (int)
find_related按相似性查找与特定行相关的内容table_name (str), row_id (int)similarity_threshold (浮动), limit (int)
smart_search混合关键字+语义搜索query (str)tables (list\[str\]), semantic_weight (浮动), text_weight (浮动)
embedding_stats获取语义搜索准备情况的统计数据table_name (str)embedding_column (str)

优化和分析工具(8个工具)

工具说明必需参数可选参数
analyze_memory_patterns全面的内容分布分析focus_tables (list\[str\]), include_semantic (bool)
get_content_health_score总体健康评分及建议tables (list\[str\]), detailed_analysis (bool)
intelligent_duplicate_analysisLLM辅助语义重复检测table_name (str), content_columns (列表\[str\])analysis_depth (str)
intelligent_optimization_strategy基于人工智能的优化规划table_name (str)optimization_goals (列表\[str\])
smart_archiving_policy基于人工智能的留存策略table_name (str)business_context (str), retention_requirements 字典
auto_semantic_search自动嵌入的零设置语义搜索query (str)tables (list\[str\]), similarity_threshold (浮动), limit (int), model_name (str)
auto_smart_search具有自动嵌入功能的零设置混合搜索query (str)tables (list\[str\]), semantic_weight (浮动), text_weight (浮动), limit (int), model_name (str)
list_tool_categories列出所有可用的工具类别

可视化和知识图工具(4个工具)

工具说明必需参数可选参数
create_3d_knowledge_graph使用Three.js创建令人惊叹的3D知识图output_path (str), table_name (str), include_semantic_links (布尔), color_scheme (str), camera_position (str), animation_enabled (布尔), export_formats (列表\[str\])
create_interactive_d3_graph专业D3.js交互式知识图谱output_path (str), include_semantic_links (布尔), filter_tables (list\[str\]), layout_algorithm (str), color_scheme (str), export_formats (列表\[str\])
create_advanced_d3_dashboard具有多种可视化功能的Enterprise D3.js仪表板output_path (str), dashboard_type (str), include_metrics (布尔), real_time_updates (布尔), custom_widgets (列表\[str\])
export_graph_data以专业格式导出图形数据output_path (str), format (str), include_metadata (布尔), compress_output (bool)

\[1.6.4\]-3D可视化和综合功能(2025-06-29)

当前版本:最先进的SQLite内存库版本,包含40多个MCP工具、3D可视化、LLM辅助优化和企业级功能。

🚀 最近的主要功能

  • 3D知识图:具有实时照明的沉浸式Three.js/WGBL可视化
  • 批量操作:高效的批量处理,智能防复制
  • LLM辅助工具:人工智能驱动的优化策略和重复分析
  • 高级发现:智能探索与关系检测
  • 增强活力:通过新旧价值比较进行详细的变更跟踪
  • 零设置搜索:用于即时语义搜索的自动嵌入生成
  • 企业优化:通过归档实现全面的内存库优化

有关详细更改,请参阅 更改日志.md.

🚀 批处理操作和高级内存管理

SQLite Memory Bank v1.6.4+提供强大的批处理操作和智能优化,以实现高效的内存管理:

智能内存更新和更改跟踪

  • 增强 upsert_memory:智能更新或创建,具有详细的变更跟踪功能
  • 字段级别更改:查看新旧值比较的确切变化
  • 防止重复:使用匹配列查找现有记录
  • 透明度:完全了解现场修改以进行调试

高效的批处理

  • batch_create_memories:在单个操作中创建多条记录
  • 智能模式与快速模式:在追加销售逻辑(防止重复)或快速插入之间进行选择
  • 部分成功处理:即使某些记录失败,也会继续处理
  • 详细反馈:返回已创建、已更新和失败记录的计数

灵活批量删除

  • batch_delete_memories:删除条件复杂的多条记录
  • 灵活匹配:支持OR逻辑(match_any)和and逻辑(match_all)
  • 条件列表:根据多个不同标准删除
  • 安全操作:删除前验证条件

高级优化套件

  • find_duplicates:通过语义分析检测精确和近乎重复的内容
  • optimize_memory_bank:通过重复数据消除和归档进行全面优化
  • archive_old_memories:具有可配置保留策略的智能归档
  • 模拟运行支持:在应用更改之前分析优化

LLM辅助优化

  • intelligent_duplicate_analysis:AI驱动的语义重复检测
  • intelligent_optimization_strategy:基于数据模式的定制优化规划
  • smart_archiving_policy:人工智能生成的保留策略与业务需求相一致

发现与关系智能

  • intelligent_discovery:人工智能引导的探索,以目标为导向的工作流程
  • discovery_templates:为常见场景预先构建的探索模式
  • discover_relationships:自动检测隐藏的数据连接
  • 零设置搜索: auto_semantic_searchauto_smart_search 具有自动嵌入生成功能

使用示例

# Enhanced upsert with change tracking
upsert_result = upsert_memory('technical_decisions', {
    'decision_name': 'API Design',
    'chosen_approach': 'REST APIs with GraphQL',
    'rationale': 'Better performance and flexibility'
}, match_columns=['decision_name'])
# Returns: {"updated_fields": {"chosen_approach": {"old": "REST APIs", "new": "REST APIs with GraphQL"}}}

# Batch create with duplicate prevention
batch_create_memories('project_insights', [
    {'category': 'performance', 'insight': 'Database indexing strategies'},
    {'category': 'security', 'insight': 'Input validation patterns'},
    {'category': 'architecture', 'insight': 'Microservice communication patterns'}
], match_columns=['category', 'insight'], use_upsert=True)

# Intelligent duplicate detection
find_duplicates('project_knowledge', ['title', 'content'], 
               similarity_threshold=0.85)

# AI-powered optimization strategy
intelligent_optimization_strategy('user_data', 
                                optimization_goals=['performance', 'storage'])

# Zero-setup semantic search
auto_smart_search('machine learning algorithms and AI patterns',
                 semantic_weight=0.7, text_weight=0.3)

🎨 高级可视化和知识图

SQLite内存库包括强大的可视化功能,用于探索和呈现您的数据:

3D知识图

  • Three.js/WGBL渲染:硬件加速的实时照明3D图形
  • 交互式相机控制:动态观察、平移、缩放,动画流畅
  • 多个主题:专业、充满活力、霓虹和宇宙色彩方案
  • 导出功能:屏幕截图、3D模型格式(GLTF、OBJ)
  • VR就绪:WebXR支持沉浸式观看体验

交互式D3.js可视化

  • 专业知识图谱:企业级交互式可视化
  • 多种布局算法:强制、分层、圆形布局
  • 实时过滤:具有搜索功能的动态节点/边缘过滤
  • 语义关系:AI驱动的智能边缘连接
  • 导出套件:用于演示文稿的PNG、SVG、JSON导出

企业仪表板

  • 多控件仪表板:力图、时间线、指标、热图
  • 实时更新:通过WebSocket实现实时数据刷新功能
  • 跨小部件筛选:交互式深入分析和数据探索
  • 专业造型:企业级UI/UX设计
  • 移动响应:针对台式机、平板电脑和移动设备进行了优化

使用示例

# Create stunning 3D knowledge graph
create_3d_knowledge_graph(
    color_scheme="cosmic",
    animation_enabled=True,
    include_semantic_links=True
)

# Professional interactive D3.js graph
create_interactive_d3_graph(
    layout_algorithm="force",
    color_scheme="professional",
    export_formats=["png", "svg"]
)

# Enterprise dashboard with multiple visualizations
create_advanced_d3_dashboard(
    dashboard_type="enterprise",
    include_metrics=True,
    real_time_updates=True
)

______________________________________________________________________

运输方式

标准模式(默认)

  • 用例:MCP客户端(VS Code、Claude Desktop等)
  • 协议:通过标准输入/标准输出的JSON-RPC
  • 命令: uvx mcp-sqlite-memory-bank
  • 益处:与AI助手和IDE直接集成

HTTP模式(开发)

  • 用例:开发、测试、web API
  • 协议:HTTP REST API
  • 命令: python -m mcp_sqlite_memory_bank.server main --port 8000
  • 益处:Web浏览器访问、卷曲测试、API集成

______________________________________________________________________

安装和运输选项

要求:

  • Python 3.8或更高版本(pyproject.toml中指定的必需包)
  • FastAPI,Uvicorn(用于服务器模式)
  • 支持的操作系统:Windows、macOS、Linux

选项1:从PyPI安装(推荐)

pip install mcp_sqlite_memory_bank

选项2:从源代码克隆和安装(适用于贡献者)

git clone https://github.com/robertmeisner/mcp_sqlite_memory_bank.git
cd mcp_sqlite_memory_bank
pip install -e .

选项3:通过NPX风格的命令运行

python -m pip install --user pipx
pipx run mcp_sqlite_memory_bank

选项4:通过UVX运行(建议MCP客户端使用)

# Run directly with latest version (recommended)
uvx mcp-sqlite-memory-bank

# Force refresh to get latest updates
uvx --refresh mcp-sqlite-memory-bank

______________________________________________________________________

运行命令

Stdio传输(默认值-适用于VS Code、Claude Desktop等MCP客户端):

uvx mcp-sqlite-memory-bank

HTTP传输(仅限开发/测试):

python -m mcp_sqlite_memory_bank.server main --host 127.0.0.1 --port 8000

______________________________________________________________________

设置和配置

数据库位置

默认行为(v1.2.5+):

  • 用户特定数据库: ~/.mcp_sqlite_memory/memory.db
  • 按用户隔离:每个用户都有自己的数据库
  • 跨项目持续:数据在会话之间保留

自定义数据库路径: 您可以通过配置自定义数据库位置 DB_PATH 环境变量:

  • 项目特定: DB_PATH=./project_memory.db
  • 共享团队数据库: DB_PATH=/shared/team_memory.db
  • 临时数据库: DB_PATH=/tmp/session_memory.db

环境变量:

  • DB_PATH:SQLite数据库文件的路径(默认值: ~/.mcp_sqlite_memory/memory.db)

示例 .env:

# Use project-specific database
DB_PATH=./project_memory.db

# Or use a specific location
DB_PATH=/path/to/my/memory.db

迁移说明: 如果您使用的是v1.2.4或更早版本,则您的数据存储在 ./test.db 在当前工作目录中。要迁移数据,请执行以下操作:

  1. 找到你的旧 test.db 文件
  2. 将其复制到新的默认位置: ~/.mcp_sqlite_memory/memory.db
  3. 或设置 DB_PATH 指向您现有的数据库

______________________________________________________________________

与编辑和代理平台集成

VS代码集成

手动配置

选项1:使用默认用户数据库(推荐)

{
  "servers": {
    "SQLite_Memory": {
      "type": "stdio",
      "command": "uvx",
      "args": ["--refresh", "mcp-sqlite-memory-bank"]
    }
  }
}

选项2:项目特定数据库

{
  "servers": {
    "SQLite_Memory": {
      "type": "stdio",
      "command": "uvx", 
      "args": ["--refresh", "mcp-sqlite-memory-bank"],
      "env": {
        "DB_PATH": "${workspaceFolder}/.mcp_memory.db"
      }
    }
  }
}

选项3:自定义数据库位置

{
  "servers": {
    "SQLite_Memory": {
      "type": "stdio",
      "command": "uvx",
      "args": ["--refresh", "mcp-sqlite-memory-bank"],
      "env": {
        "DB_PATH": "/path/to/your/custom/memory.db"
      }
    }
  }
}

光标集成

游标使用与VS代码相同的配置。增添 .vscode/mcp.json:

选项1:使用默认用户数据库(推荐)

{
  "servers": {
    "SQLite_Memory": {
      "type": "stdio",
      "command": "uvx",
      "args": ["--refresh", "mcp-sqlite-memory-bank"]
    }
  }
}

选项2:项目特定数据库

{
  "servers": {
    "SQLite_Memory": {
      "type": "stdio",
      "command": "uvx", 
      "args": ["--refresh", "mcp-sqlite-memory-bank"],
      "env": {
        "DB_PATH": "${workspaceFolder}/.mcp_memory.db"
      }
    }
  }
}

选项3:自定义数据库位置

{
  "servers": {
    "SQLite_Memory": {
      "type": "stdio",
      "command": "uvx",
      "args": ["--refresh", "mcp-sqlite-memory-bank"],
      "env": {
        "DB_PATH": "/path/to/your/custom/memory.db"
      }
    }
  }
}

Claude桌面集成

添加到您的 claude_desktop_config.json:

{
  "mcpServers": {
    "sqlite_memory": {
      "command": "uvx",
      "args": ["--refresh", "mcp-sqlite-memory-bank"],
      "env": {
        "DB_PATH": "/path/to/your/memory.db"
      }
    }
  }
}
  • 在VS Code、Cursor或Claude Desktop中打开您的项目。MCP服务器将由Copilot Chat、Cursor、Claude或任何兼容的代理自动发现。
  • 使用自然语言创建表格、存储笔记或构建知识图。

______________________________________________________________________

运行服务器

MCP标准模式(推荐)

用于VS Code、Claude Desktop和其他MCP客户端:

# Run with uvx (automatically gets latest version)
uvx mcp-sqlite-memory-bank

# Force refresh to latest version
uvx --refresh mcp-sqlite-memory-bank

开发/测试模式

HTTP服务器模式(用于开发和测试):

python -m mcp_sqlite_memory_bank.server main --port 8000

直接Python模块:

python -m mcp_sqlite_memory_bank.server

______________________________________________________________________

资源

服务器将所有工具作为MCP资源公开,并支持知识图模式(节点、边、属性)。

代理和复制品使用:

- Agent和Copilot使用场景(自然语言提示→ 工具映射) - 可访问性和安全说明

- 为LLM代理实现持久内存 - 内存管理的模式设计和最佳实践

代理提示示例:

创建一个名为“tasks”的表,其中包含列“id”(整数、主键)和“description”(文本)

这将触发 create_table 该工具具有适当的参数。有关更多代理提示示例,请参阅API文档。

______________________________________________________________________

使用示例

快速入门:基本表格

from mcp_sqlite_memory_bank import create_table, create_row, read_rows

create_table(
    "notes",
    [
        {"name": "id", "type": "INTEGER PRIMARY KEY AUTOINCREMENT"},
        {"name": "content", "type": "TEXT"}
    ]
)
create_row("notes", {"content": "Hello, memory bank!"})
rows = read_rows("notes")
print(rows)

知识图(节点和边)

# Basic implementation example for creating knowledge graphs
from mcp_sqlite_memory_bank import create_table, create_row, read_rows

create_table("nodes", [
    {"name": "id", "type": "INTEGER PRIMARY KEY AUTOINCREMENT"},
    {"name": "label", "type": "TEXT"}
])
create_table("edges", [
    {"name": "id", "type": "INTEGER PRIMARY KEY AUTOINCREMENT"},
    {"name": "source", "type": "INTEGER"},
    {"name": "target", "type": "INTEGER"},
    {"name": "type", "type": "TEXT"}
])
n1 = create_row("nodes", {"label": "Person"})
n2 = create_row("nodes", {"label": "Company"})
create_row("edges", {"source": n1["id"], "target": n2["id"], "type": "works_at"})
print(read_rows("nodes"))
print(read_rows("edges"))

LLM代理内存实现

以下是一个Python应用程序如何实现内存模式的示例,但请记住,LLM将通过MCP工具和自然语言与这些功能进行交互:

# Initialize memory schema
def initialize_agent_memory():
    tables = list_tables()
    
    # Create tables if they don't exist yet
    if 'user_preferences' not in tables['tables']:
        create_table('user_preferences', [
            {"name": "id", "type": "INTEGER PRIMARY KEY AUTOINCREMENT"},
            {"name": "preference_type", "type": "TEXT NOT NULL"},
            {"name": "preference_value", "type": "TEXT NOT NULL"},
            {"name": "context", "type": "TEXT"}
        ])

# Store a user preference
def remember_preference(pref_type, pref_value, context=None):
    # Check if this preference already exists
    existing = read_rows('user_preferences', {'preference_type': pref_type})
    
    if existing['rows']:
        # Update existing preference
        update_rows('user_preferences', 
                    {'preference_value': pref_value, 'context': context}, 
                    {'id': existing['rows'][0]['id']})
    else:
        # Create new preference
        create_row('user_preferences', {
            'preference_type': pref_type,
            'preference_value': pref_value,
            'context': context
        })

# Retrieve user preferences
preferences = read_rows('user_preferences')
print(f"Remembered {len(preferences['rows'])} user preferences")

LLM将使用自然语言命令完成相同的任务,例如:

Create a table called 'user_preferences' with columns for id (auto-incrementing primary key), 
preference_type (required text), preference_value (required text), and context (optional text).

Add a row to user_preferences with preference_type="code_style" and preference_value="tabs" and context="User prefers tabs over spaces"

Find all rows in the user_preferences table

有关完整的代理内存实现示例,请参阅 examples/agent_memory.example.py 和详细 内存使用说明.

______________________________________________________________________

MCP资源和提示使用

使用MCP资源

MCP资源通过标准化的URI提供对内存内容的实时访问:

# Access resource via MCP client
resource_uri = "memory://tables/list"
tables_resource = await client.read_resource(resource_uri)

# Get table schema
schema_uri = "memory://tables/user_preferences/schema"
schema_resource = await client.read_resource(schema_uri)

# Access table data
data_uri = "memory://tables/user_preferences/data"
data_resource = await client.read_resource(data_uri)

# Search as resource
search_uri = "memory://search/user preferences coding style"
search_resource = await client.read_resource(search_uri)

# Analytics overview
analytics_uri = "memory://analytics/overview"
analytics_resource = await client.read_resource(analytics_uri)

使用MCP提示

MCP Prompts提供智能分析工作流程:

# Analyze memory content
analysis_prompt = await client.get_prompt("analyze-memory-content", {
    "focus_area": "technical_decisions"
})

# Search and summarize
summary_prompt = await client.get_prompt("search-and-summarize", {
    "query": "database performance optimization",
    "max_results": 10
})

# Technical decision analysis
decision_analysis = await client.get_prompt("technical-decision-analysis", {
    "decision_category": "architecture"
})

# Get memory context for conversations
context_prompt = await client.get_prompt("memory-bank-context", {
    "conversation_topic": "API design patterns"
})

语义搜索示例

# 🌟 ZERO-SETUP SEMANTIC SEARCH (RECOMMENDED)
# Automatic semantic search - handles embedding generation automatically
results = auto_semantic_search("machine learning algorithms", 
                               similarity_threshold=0.4, 
                               limit=5)

# 🌟 ZERO-SETUP HYBRID SEARCH (RECOMMENDED)
# Automatic hybrid search - combines semantic + keyword automatically
hybrid_results = auto_smart_search("API design patterns",
                                  semantic_weight=0.7,
                                  text_weight=0.3)

# Advanced: Manual embedding setup (for power users)
add_embeddings("technical_decisions", ["decision_name", "rationale"])

# Advanced: Manual semantic search (requires pre-setup)
results = semantic_search("machine learning algorithms", 
                         similarity_threshold=0.4, 
                         limit=5)

# Find related content from specific text
related = find_related("technical_decisions", 
                      row_id=123, 
                      similarity_threshold=0.5)

# Check semantic search readiness
stats = embedding_stats("technical_decisions")

发现和情报示例

# 🧠 AI-GUIDED EXPLORATION (RECOMMENDED)
# Intelligent discovery with goal-oriented workflows
intelligent_discovery(
    discovery_goal="understand_content",
    depth="moderate",
    focus_area="technical_decisions"
)

# Pre-built exploration templates
discovery_templates("first_time_exploration")

# Automatic relationship discovery
discover_relationships(
    table_name="users",
    relationship_types=["foreign_keys", "semantic_similarity", "temporal_patterns"]
)

# LLM-assisted duplicate analysis
intelligent_duplicate_analysis(
    table_name="project_knowledge",
    content_columns=["title", "content"],
    analysis_depth="semantic"
)

# AI-powered optimization strategy
intelligent_optimization_strategy(
    table_name="user_data",
    optimization_goals=["performance", "storage"]
)

# Smart archiving policy generation
smart_archiving_policy(
    table_name="project_logs",
    business_context="Development project logs",
    retention_requirements={"legal_hold": "2_years", "active_period": "6_months"}
)

工具组织发现

# Discover tool categories
categories = list_tool_categories()
# Returns: {"schema_management": 6, "data_operations": 11, "optimization": 8, ...}

# Get detailed tool information by category
schema_tools = get_tools_by_category("schema_management")
# Returns detailed info with usage examples for each tool

______________________________________________________________________

故障排除

常见MCP连接问题

服务器未启动/连接超时:

# Force refresh uvx cache and try again
uvx --refresh mcp-sqlite-memory-bank

# Check if the command works directly
uvx mcp-sqlite-memory-bank --help

VS代码:“服务器在响应初始化请求之前退出”:

  1. 检查中的MCP配置 .vscode/mcp.json
  2. 确保 uvx 已安装并位于您的PATH中
  3. 尝试重新启动VS代码或从命令面板运行“MCP:重新启动服务器”

IDE中未显示的工具:

  1. 验证服务器是否正在运行: uvx mcp-sqlite-memory-bank 应该没有错误地启动
  2. 检查一下 "type": "stdio" 在MCP配置中设置
  3. 重新启动IDE或重新加载MCP配置

数据库权限错误:

  • 确保目录为 DB_PATH 存在并且可写
  • 检查SQLite数据库文件的文件权限
  • 在中使用绝对路径 DB_PATH 避免路径解析问题

找不到包/版本已过时:

# Clear uvx cache completely
uvx cache remove mcp-sqlite-memory-bank
uvx mcp-sqlite-memory-bank

语义搜索和高级功能问题

语义搜索不起作用/“缺少依赖项”错误:

  • 汽车工具(auto_semantic_search, auto_smart_search)自动处理依赖关系
  • 如果手动工具失败,则可能缺少依赖关系: pip install sentence-transformers torch numpy
  • 检查嵌入生成: embedding_stats('table_name') 验证语义准备情况

3D知识图未渲染:

  • 确保输出目录存在并且可写
  • 检查浏览器JavaScript控制台是否存在WebGL错误
  • 需要现代浏览器(Chrome 80+、Firefox 75+、Safari 14+)
  • 应启用硬件加速以获得最佳性能

批处理操作超时:

  • 使用较小的批量 batch_create_memories (推荐100-500条记录)
  • 启用 dry_run=True 为了 optimize_memory_bank 申请前进行测试
  • 检查可用内存以进行大型重复检测操作

LLM辅助工具不起作用:

  • 这些工具要求您的客户端具有MCP采样功能
  • 确保您的IDE/客户端支持高级MCP功能
  • 检查人工智能分析功能的网络连接

发现工具返回空结果:

  • 确保表格有足够的数据进行模式分析
  • 检查一下 intelligent_discovery 具有适当的权限
  • 验证关系发现是否包含具有实际连接的数据

______________________________________________________________________

运行测试

如果您正在使用 src/ 布局,设置Python路径,以便测试可以导入包:

在Windows(PowerShell)上:

$env:PYTHONPATH = 'src'
pytest

在Linux/macOS上:

PYTHONPATH=src pytest

或者,使用:

pytest --import-mode=importlib

______________________________________________________________________

开发设置

为了确保代码质量和一致的风格,本项目使用 flake8pre-commit 钩子。

安装开发依赖项:

pip install -r requirements.txt

启用预提交挂钩(推荐):

pre-commit install

这将自动运行 flake8 在每次提交之前对暂存文件进行处理。要手动检查所有文件,请执行以下操作:

pre-commit run --all-files

如果您看到lint错误,请在提交之前修复它们。您可以在 .flake8 文件。

支持与联系

  • --Bug报告和功能请求
  • --问答和社区支持

______________________________________________________________________

贡献

欢迎提出请求、问题和建议!看 贡献.md 作为指导方针。

docs/api.md API完整参考和 示例/run_server.py 以服务器为例。

______________________________________________________________________

许可证

麻省理工学院

______________________________________________________________________

LLM代理内存实现

SQLite内存库为在LLM代理中实现持久内存提供了强大的基础,使它们能够在对话会话中维护上下文,并提供更连贯、更个性化的帮助。

LLM代理的内存管理

LLM代理可以利用SQLite内存库来存储和检索:

  1. 用户首选项和上下文

- 编码风格偏好 - 项目专用术语 - 重复任务和工作流

  1. 技术知识

- 项目架构 - 设计决策和理由 - 文档片段

  1. 对话历史

- 之前的互动 - 未完成的任务 - 后续事项

内存架构示例

当LLM使用SQLite内存库时,它们通过MCP工具而不是直接的Python代码与之交互。以下是LLM如何通过自然语言命令创建内存模式:

Create a table called 'project_structure' with columns:
- id (integer, auto-incrementing primary key)
- category (required text)
- title (required text)
- content (required text)
- timestamp (text with default current timestamp)

Create a table called 'technical_decisions' with columns:
- id (integer, auto-incrementing primary key)
- decision_name (required text)
- chosen_approach (required text)
- alternatives (text)
- rationale (required text)
- timestamp (text with default current timestamp)

在幕后,这些自然语言请求会调用相应的MCP工具(如 create_table),LLM不需要直接编写Python代码。

下面显示的Python实现是开发人员在以编程方式与SQLite内存库集成时使用的:

# Initialize memory tables (run once at the start of each session)
def initialize_memory():
    # Check if tables exist
    tables = list_tables()
    
    # Create project structure table if needed
    if 'project_structure' not in tables['tables']:
        create_table('project_structure', [
            {"name": "id", "type": "INTEGER PRIMARY KEY AUTOINCREMENT"},
            {"name": "category", "type": "TEXT NOT NULL"},
            {"name": "title", "type": "TEXT NOT NULL"},
            {"name": "content", "type": "TEXT NOT NULL"},
            {"name": "timestamp", "type": "TEXT DEFAULT CURRENT_TIMESTAMP"}
        ])
    
    # Create technical decisions table if needed
    if 'technical_decisions' not in tables['tables']:
        create_table('technical_decisions', [
            {"name": "id", "type": "INTEGER PRIMARY KEY AUTOINCREMENT"},
            {"name": "decision_name", "type": "TEXT NOT NULL"},
            {"name": "chosen_approach", "type": "TEXT NOT NULL"},
            {"name": "alternatives", "type": "TEXT"},
            {"name": "rationale", "type": "TEXT NOT NULL"},
            {"name": "timestamp", "type": "TEXT DEFAULT CURRENT_TIMESTAMP"}
        ])

存储和检索代理内存

LLM可以通过映射到MCP工具的自然语言命令存储和检索内存:

Store in project_structure where category is "architecture" and title is "API Design":
Content: "The project uses a RESTful API design with explicit endpoint naming."

Find all entries in project_structure where category is "architecture"

对于以编程方式集成的开发人员来说,实现可能是这样的:

# Store project information
def remember_project_structure(category, title, content):
    # Check if this information already exists
    existing = read_rows('project_structure', {
        'category': category,
        'title': title
    })
    
    if existing:
        # Update existing record
        update_rows('project_structure', 
                    {'content': content}, 
                    {'id': existing[0]['id']})
        return existing[0]['id']
    else:
        # Create new record
        result = create_row('project_structure', {
            'category': category,
            'title': title,
            'content': content
        })
        return result['id']

# Retrieve relevant project information
def recall_project_structure(category=None):
    if category:
        return read_rows('project_structure', {'category': category})
    else:
        return read_rows('project_structure')

代理内存的最佳实践

  1. 初始化内存表 每节课开始时
  2. 写作前检查 避免重复信息
  3. 使用特定查询 仅检索相关上下文
  4. 更新现有记录 而不是创建重复项
  5. 验证关键信息 已正确保存

有关详细的实施指南,请参阅 内存使用说明.

______________________________________________________________________

高级功能

注: 以下功能都计划在未来的版本中使用,目前尚未实现。

长期作业进度报告(计划)

对于可能需要大量时间的操作,SQLite内存库将提供进度更新:

# Example of a planned feature - not yet implemented
result = run_complex_query('large_table', complex_filter, 
                          with_progress=True, timeout=30)

进度通知将发送给客户端,包括完成百分比和估计剩余时间。

内存快照(计划中)

创建数据库状态的时间点快照:

# Example of planned feature - not yet implemented
# Create a named snapshot
create_memory_snapshot('before_major_update')

# Later restore to that point
restore_memory_snapshot('before_major_update')

# List all available snapshots
list_memory_snapshots()

内存联合(计划功能)

连接多个存储体以实现分布式存储:

# Example of planned feature - not yet implemented
# Register external memory bank
register_external_memory('project_knowledge', 'http://other-server:8000/mcp')

# Query across federated memory
federated_results = query_federated_memory('technical_decisions', 
                                          ['local', 'project_knowledge'])

安全考虑

访问控制

默认情况下,SQLite内存库以对数据库的完全读/写访问权限运行。对于安全敏感部署:

  • 将Docker与特定目录的只读挂载一起使用
  • 为访问级别配置环境变量:

- SQLITE_MEMORY_ACCESS=read_only 只读模式(计划) - SQLITE_MEMORY_ACCESS=schema_only 防止数据修改(计划中) - SQLITE_MEMORY_ALLOWED_TABLES 限制对特定表的访问(计划中)

加密(计划功能)

对于敏感数据,启用加密:

# Coming soon - not yet implemented
python -m mcp_sqlite_memory_bank --encrypt --password-file /path/to/key

性能优化(计划)

对于大型数据集,将添加以下功能:

  • 启用WAL模式 DB_WAL_MODE=1
  • 使用设置适当的缓存大小 DB_CACHE_SIZE=10000
  • 使用 create_index 优化频繁查询的工具
  • 考虑 DB_MEMORY_TEMP=1 用于内存中的临时表

扩展SQLite内存库

计划在未来的版本中提供以下扩展功能:

自定义架构验证器(计划功能)

创建模式验证器以确保数据一致性:

# Example of planned feature - not yet implemented
from mcp_sqlite_memory_bank import register_schema_validator

def validate_user_schema(columns):
    required_fields = ['username', 'email']
    for field in required_fields:
        if not any(col['name'] == field for col in columns):
            return False, f"Missing required field: {field}"
    return True, "Schema valid"

register_schema_validator('users', validate_user_schema)

自定义数据处理器(计划功能)

注册处理器以在读/写时转换数据:

# Example of planned feature - not yet implemented
from mcp_sqlite_memory_bank import register_data_processor

def process_pii_data(row, operation):
    if operation == 'write' and 'email' in row:
        # Hash or encrypt PII data
        row['email'] = hash_email(row['email'])
    return row

register_data_processor('users', process_pii_data)

______________________________________________________________________

目录标签

目录标签

SQLitePythonClaude搜索本地部署内存数据库知识图谱语义搜索LLM集成

支持客户端

Claude DesktopClaudeCursorVS Code

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

session

工具数量(toolCount,工具数)

40

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiosession部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

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

来源信息

继续浏览同类 MCP