返回市场
文本AI助手MCP

文本AI助手MCP

作者:rmtech114 星标更新:2025-04-23

项目介绍

TxtAI Assistant MCP

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

关于txtai

该项目建立在由NeuML创建的开源AI驱动搜索引擎txtai之上。txtai提供了:

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

我们通过将其与模型上下文协议(MCP)集成来扩展txtai的功能,使像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

# 服务器配置
HOST=0.0.0.0
PORT=8000

# CORS配置
CORS_ORIGINS=*

# 日志配置
LOG_LEVEL=DEBUG

# 内存配置
MAX_MEMORIES=0

与Claude和Cline AI的集成

此TxtAI助手可以作为MCP服务器与Claude和Cline AI集成,以增强它们的语义记忆和搜索功能。

对于Claude的配置

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

{
  "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": "要存储的记忆内容",
  "metadata": {
    "source": "对话",
    "timestamp": "2023-01-01T00:00:00Z"
  },
  "tags": ["重要", "上下文"],
  "type": "对话"
}
  1. retrieve_memory:根据语义搜索检索记忆
{
  "query": "搜索查询",
  "n_results": 5
}
  1. search_by_tag:按标签搜索记忆
{
  "tags": ["重要", "上下文"]
}
  1. delete_memory:通过内容哈希删除特定记忆
{
  "content_hash": "哈希值"
}
  1. get_stats:获取数据库统计信息
{}
  1. check_health:检查数据库和嵌入模型的健康状况
{}

使用示例

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

# 存储一个记忆
<use_mcp_tool>
<server_name>txtai-assistant</server_name>
<tool_name>store_memory</tool_name>
<arguments>
{
  "content": "需要记住的重要信息",
  "tags": ["重要"]
}
</arguments>
</use_mcp_tool>

# 检索记忆
<use_mcp_tool>
<server_name>txtai-assistant</server_name>
<tool_name>retrieve_memory</tool_name>
<arguments>
{
  "query": "重要的信息是什么?",
  "n_results": 5
}
</arguments>
</use_mcp_tool>

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

API端点

存储记忆

POST /store

存储一个新的记忆,包括可选的元数据和标签。

请求正文:

{
    "content": "要存储的记忆内容",
    "metadata": {
        "source": "示例",
        "timestamp": "2023-01-01T00:00:00Z"
    },
    "tags": ["示例", "记忆"],
    "type": "通用"
}

搜索记忆

POST /search

使用语义搜索搜索记忆。

请求正文:

{
    "query": "搜索查询",
    "n_results": 5,
    "similarity_threshold": 0.7
}

按标签搜索

POST /search_tags

按标签搜索记忆。

请求正文:

{
    "tags": ["示例", "记忆"]
}

删除记忆

DELETE /memory/{content_hash}

通过内容哈希删除特定记忆。

获取统计信息

GET /stats

获取系统统计信息,包括记忆数量和标签分布。

健康检查

GET /health

检查服务器的健康状态。

目录结构

txtai-assistant-mcp/
├── server/
│   ├── main.py           # 主服务器实现
│   └── requirements.txt  # Python依赖项
├── scripts/
│   └── start.sh         # 服务器启动脚本
├── data/                # 数据存储目录
├── logs/                # 日志文件目录
├── .env.template        # 环境配置模板
└── README.md           # 此文件

数据存储

记忆和标签存储在data目录下的JSON文件中:

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

日志记录

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

开发

要为此项目做出贡献:

  1. 分叉仓库
  2. 创建一个特性分支
  3. 进行更改
  4. 提交拉取请求

错误处理

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

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

安全考虑

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

许可证

本项目采用MIT许可证——详情见LICENSE文件。

贡献

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

支持

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