语义搜索内存管理服务器

基于txtai的模型上下文协议(MCP)服务器,提供语义搜索和内存管理功能,适用于AI助手的上下文记忆存储与检索。

  • by rmtech1
  • Python
  • 本地部署
  • 15 星标
  • 更新于
在 GitHub 查看 rmtech1/txtai-assistant-mcp

使用说明

TxtAI助理MCP

用于语义搜索和内存管理的模型上下文协议(MCP)服务器实现 txtai该服务器提供了强大的API,用于存储、检索和管理具有语义搜索功能的基于文本的存储器。

关于txtai

该项目建立在 txtai,一个优秀的开源人工智能搜索引擎,由 NeuML.txtai提供:

  • 🔍 一体化语义搜索解决方案
  • 🧠 基于变压器的神经搜索
  • 💡 零样本文本分类
  • 🔄 文本提取和嵌入
  • 🌐 多语言支持
  • 🚀 高性能和可扩展性

我们通过将txtai与模型上下文协议(MCP)集成来扩展其功能,使Claude和Cline等AI助手能够利用其强大的语义搜索功能。特别感谢txtai团队创建了如此强大而灵活的工具。

特性

  • 🔍 跨存储记忆的语义搜索
  • 💾 基于文件后端的持久存储
  • 🏷️ 基于标签的内存组织和检索
  • 📊 内存统计和健康监控
  • 🔄 自动数据持久化
  • 📝 综合录井
  • 🔒 可配置的CORS设置
  • 🤖 与Claude和Cline AI的集成

先决条件

  • Python 3.8或更高版本
  • pip(Python包安装程序)
  • virtualenv(推荐)

安装

  1. 克隆此存储库:
git clone https://github.com/yourusername/txtai-assistant-mcp.git
cd txtai-assistant-mcp
  1. 运行启动脚本:
./scripts/start.sh

脚本将:

  • 创建虚拟环境
  • 安装所需的依赖项
  • 设置必要的目录
  • 从模板创建配置文件
  • 启动服务器

配置

可以使用中的环境变量配置服务器 .env 文件。模板提供于 .env.template:

# Server Configuration
HOST=0.0.0.0
PORT=8000

# CORS Configuration
CORS_ORIGINS=*

# Logging Configuration
LOG_LEVEL=DEBUG

# Memory Configuration
MAX_MEMORIES=0

与Claude和Cline AI的集成

此TxtAI Assistant可以用作Claude和Cline AI的MCP服务器,以增强其语义记忆和搜索功能。

Claude的配置

要将此服务器与Claude一起使用,请将其添加到Claude的MCP配置文件中(通常位于 ~/Library/Application Support/Claude/claude_desktop_config.json 在 macOS 上:

{
  "mcpServers": {
    "txtai-assistant": {
      "command": "path/to/txtai-assistant-mcp/scripts/start.sh",
      "env": {}
    }
  }
}

Cline配置

要与Cline一起使用,请将服务器配置添加到Cline的MCP设置文件中(通常位于 ~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json):

{
  "mcpServers": {
    "txtai-assistant": {
      "command": "path/to/txtai-assistant-mcp/scripts/start.sh",
      "env": {}
    }
  }
}

可用的MCP工具

配置后,Claude和Cline可以使用以下工具:

  1. store_memory:使用元数据和标签存储新的内存内容
{
  "content": "Memory content to store",
  "metadata": {
    "source": "conversation",
    "timestamp": "2023-01-01T00:00:00Z"
  },
  "tags": ["important", "context"],
  "type": "conversation"
}
  1. retrieve_memory:基于语义搜索检索记忆
{
  "query": "search query",
  "n_results": 5
}
  1. search_by_tag:按标签搜索记忆
{
  "tags": ["important", "context"]
}
  1. delete_memory:按内容哈希删除特定内存
{
  "content_hash": "hash_value"
}
  1. get_stats:获取数据库统计信息
{}
  1. check_health:检查数据库和嵌入模型的运行状况
{}

使用示例

在Claude或Cline中,您可以通过MCP协议使用这些工具:

# Store a memory
<use_mcp_tool>
<server_name>txtai-assistant</server_name>
<tool_name>store_memory</tool_name>
<arguments>
{
  "content": "Important information to remember",
  "tags": ["important"]
}
</arguments>
</use_mcp_tool>

# Retrieve memories
<use_mcp_tool>
<server_name>txtai-assistant</server_name>
<tool_name>retrieve_memory</tool_name>
<arguments>
{
  "query": "what was the important information?",
  "n_results": 5
}
</arguments>
</use_mcp_tool>

人工智能将自动使用这些工具来维护上下文并在对话中检索相关信息。

API终点

存储内存

POST /store

使用可选元数据和标签存储新内存。

请求正文:

{
    "content": "Memory content to store",
    "metadata": {
        "source": "example",
        "timestamp": "2023-01-01T00:00:00Z"
    },
    "tags": ["example", "memory"],
    "type": "general"
}

搜索记忆

POST /search

使用语义搜索搜索记忆。

请求正文:

{
    "query": "search query",
    "n_results": 5,
    "similarity_threshold": 0.7
}

按标签搜索

POST /search_tags

按标签搜索记忆。

请求正文:

{
    "tags": ["example", "memory"]
}

删除内存

DELETE /memory/{content_hash}

按内容哈希删除特定内存。

获取统计信息

GET /stats

获取系统统计信息,包括内存计数和标签分布。

健康检查

GET /health

检查服务器的运行状况。

目录结构

txtai-assistant-mcp/
├── server/
│   ├── main.py           # Main server implementation
│   └── requirements.txt  # Python dependencies
├── scripts/
│   └── start.sh         # Server startup script
├── data/                # Data storage directory
├── logs/                # Log files directory
├── .env.template        # Environment configuration template
└── README.md           # This file

数据存储

内存和标签存储在JSON文件中 data 目录:

  • memories.json:包含所有存储的记忆
  • tags.json:包含标签索引

日志记录

日志存储在 logs 目录。默认日志文件为 server.log.

发展

为该项目做出贡献:

  1. 分叉存储库
  2. 创建要素分支
  3. 进行更改
  4. 提交拉取请求

错误处理

服务器实现了全面的错误处理:

  • 无效请求返回适当的HTTP状态代码
  • 错误记录在堆栈跟踪中
  • 响应中返回用户友好的错误消息

安全考虑

  • CORS设置可通过环境变量进行配置
  • 对文件路径进行清理,以防止目录遍历
  • 对所有端点执行输入验证

许可证

此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。

贡献

欢迎投稿!请随时提交拉取请求。

支持

如果您遇到任何问题或有疑问,请在GitHub存储库上提交问题。