这是一个使用txtai实现的模型上下文协议(MCP)服务器,用于语义搜索和内存管理。该服务器提供了一个强大的API,用于存储、检索和管理具有语义搜索功能的基于文本的记忆。
该项目建立在由NeuML创建的开源AI驱动搜索引擎txtai之上。txtai提供了:
我们通过将其与模型上下文协议(MCP)集成来扩展txtai的功能,使像Claude和Cline这样的AI助手能够利用其强大的语义搜索能力。特别感谢txtai团队创建了这样一个强大且灵活的工具。
git clone https://github.com/yourusername/txtai-assistant-mcp.git
cd txtai-assistant-mcp
./scripts/start.sh
该脚本将执行以下操作:
服务器可以通过.env文件中的环境变量进行配置。提供了一个模板文件.env.template:
# 服务器配置
HOST=0.0.0.0
PORT=8000
# CORS配置
CORS_ORIGINS=*
# 日志配置
LOG_LEVEL=DEBUG
# 内存配置
MAX_MEMORIES=0
此TxtAI助手可以作为MCP服务器与Claude和Cline AI集成,以增强它们的语义记忆和搜索功能。
要将此服务器与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的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": {}
}
}
}
一旦配置完成,Claude和Cline就可以使用以下工具:
store_memory:存储新的记忆内容及其元数据和标签{
"content": "要存储的记忆内容",
"metadata": {
"source": "对话",
"timestamp": "2023-01-01T00:00:00Z"
},
"tags": ["重要", "上下文"],
"type": "对话"
}
retrieve_memory:根据语义搜索检索记忆{
"query": "搜索查询",
"n_results": 5
}
search_by_tag:按标签搜索记忆{
"tags": ["重要", "上下文"]
}
delete_memory:通过内容哈希删除特定记忆{
"content_hash": "哈希值"
}
get_stats:获取数据库统计信息{}
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将自动使用这些工具来维护对话中的上下文并检索相关信息。
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。
要为此项目做出贡献:
服务器实现了全面的错误处理:
本项目采用MIT许可证——详情见LICENSE文件。
欢迎贡献!请随时提交拉取请求。
如果您遇到任何问题或有疑问,请在GitHub仓库中提交问题。