Mcp Rag Context

Mcp Rag Context

🚀 RAG上下文MCP服务器

RAG上下文MCP服务器是一个轻量级的模型上下文协议(MCP)服务器,它利用本地向量存储和数据库提供持久内存和上下文管理功能。该服务器使AI助手能够通过语义搜索和索引检索高效地存储和检索上下文信息。

🚀 快速开始

本服务器提供了一个轻量级的解决方案,用于管理AI助手的上下文信息。它结合了本地向量存储和数据库,为AI助手提供持久的内存和上下文管理功能。

✨ 主要特性

  • 本地向量存储:使用Vectra进行高效的向量相似度搜索。
  • 持久内存:采用SQLite数据库实现可靠的数据持久化。
  • 语义搜索:使用Xenova/all-MiniLM-L6-v2模型进行自动文本嵌入。
  • 混合检索:将语义搜索与索引数据库查询相结合。
  • 简单API:仅提供两个工具——setContextgetContext
  • 轻量级:依赖项极少,可完全在本地运行。
  • 隐私优先:所有数据均存储在本地,无需调用外部API。

📦 安装指南

使用npm

npm install -g @rag-context/mcp-server

使用npx(无需安装)

npx @rag-context/mcp-server

📚 详细文档

配置

针对Claude桌面版

将以下内容添加到Claude桌面版的配置文件中:

  • macOS~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"rag-context": {
"command": "npx",
"args": ["@rag-context/mcp-server"],
"env": {
"RAG_CONTEXT_DATA_DIR": "/path/to/your/data/directory"
}
}
}
}

针对Cursor

在Cursor设置中添加MCP服务器:

env RAG_CONTEXT_DATA_DIR=/path/to/your/data/directory npx @rag-context/mcp-server

环境变量

  • RAG_CONTEXT_DATA_DIR:数据库和向量索引的存储目录(默认:~/.rag-context-mcp

使用方法

服务器提供了两个主要工具:

setContext

使用自动向量化功能将信息存储到内存中:

{
"tool": "setContext",
"arguments": {
"key": "user_preferences",
"content": "The user prefers dark mode and uses VS Code as their primary editor",
"metadata": {
"category": "preferences",
"timestamp": "2024-01-15"
}
}
}

getContext

使用语义搜索检索相关上下文:

{
"tool": "getContext",
"arguments": {
"query": "What are the user's editor preferences?",
"limit": 5,
"threshold": 0.7
}
}

AI助手的系统提示

为了有效使用此MCP服务器,请在AI助手的系统提示中添加以下内容:

## 内存和上下文管理

你可以通过RAG上下文MCP服务器访问持久内存系统。这使你能够在不同对话中存储和检索信息。

### 何时存储上下文
在以下情况下存储信息:
- 用户分享偏好、设置或个人信息时
- 讨论重要的项目细节或配置时
- 做出关键决策或达成协议时
- 创建有用的代码片段或解决方案时
- 了解用户的工作流程、工具或环境时

### 如何存储上下文
使用`setContext`工具时,请提供:
- 一个具有描述性且唯一的键(例如,"project_setup_nextjs"、"user_pref_editor")
- 清晰、简洁的内容,以捕捉关键信息
- 相关的元数据(类别、项目、日期等)

示例:
```json
{
"key": "project_api_structure",
"content": "The project uses a REST API with /api/v1 prefix. Authentication is handled via JWT tokens in the Authorization header. Main endpoints: /users, /posts, /comments",
"metadata": {
"project": "blog-platform",
"type": "architecture",
"date": "2024-01-15"
}
}

何时检索上下文

在以下情况下检索上下文:

  • 开始关于之前讨论过的主题的新对话时
  • 用户提及过去的讨论或决策时
  • 需要回忆特定的技术细节或偏好时
  • 基于之前的工作或解决方案进行拓展时

如何检索上下文

使用getContext工具时,请提供:

  • 一个自然语言查询,描述你要查找的内容
  • 适当的限制(通常为3 - 5个结果)
  • 阈值设置为0.7,以平衡精度和召回率

示例:

{
"query": "API authentication setup for the blog project",
"limit": 3,
"threshold": 0.7
}

最佳实践

  1. 有选择性:存储重要且可重复使用的信息,而非每一个细节。
  2. 使用清晰的键:使键具有描述性且易于搜索。
  3. 添加元数据:包括项目名称、类别和日期。
  4. 更新现有信息:使用相同的键更新信息,而非创建重复项。
  5. 自然查询:像向同事提问一样编写查询语句。

请记住:此内存可在所有对话中持久保存,通过记住重要的上下文和用户偏好,使你随着时间的推移更有帮助。


### 架构
服务器采用混合方法以实现最佳性能:
1. **SQLite数据库**:存储带有元数据的实际内容,提供快速的基于键的查找功能。
2. **向量索引**:使用嵌入技术实现语义搜索。
3. **本地嵌入**:使用Xenova/transformers进行隐私保护的本地文本嵌入。

### 数据存储
所有数据均存储在指定的数据目录中:

/ ├── memories.db # SQLite数据库 └── vectors.index # Vectra向量索引


### 开发
#### 从源代码构建
```bash
# 克隆仓库
git clone https://github.com/yourusername/rag-context-mcp.git
cd rag-context-mcp

# 安装依赖项
npm install

# 构建项目
npm run build

# 在开发模式下运行
npm run dev

运行测试

npm test

隐私和安全

  • 所有数据均存储在本地机器上。
  • 无需调用外部API进行嵌入(使用本地模型)。
  • 无遥测或数据收集。
  • 你可以通过RAG_CONTEXT_DATA_DIR控制数据的存储位置。

故障排除

常见问题

  1. “VectorStore未初始化”错误
    • 确保数据目录存在且具有写入权限。
    • 检查RAG_CONTEXT_DATA_DIR路径是否有效。
  2. 首次启动缓慢
    • 嵌入模型在首次使用时会被下载(约30MB)。
    • 后续启动将快得多。
  3. 高内存使用
    • 嵌入模型需要约200MB的RAM。
    • 考虑限制存储的上下文数量。

贡献

欢迎贡献代码!请随时提交拉取请求。

📄 许可证

本项目采用MIT许可证,详情请参阅LICENSE文件。

致谢

本项目受Anthropic的MCP内存服务器示例启发,但进行了以下改进:

  • 本地向量存储,以实现更好的检索效果。
  • 使用SQLite实现可靠的持久化。
  • 具备混合搜索功能。
  • 采用注重隐私的设计。
  • 0 关注
  • 0 收藏,11 浏览
  • system 提出于 2025-09-20 13:57

相似服务问题