Sponsored by Deepsite.site

TxtAI Assistant MCP

Created By
rmtech1a year ago
Model Context Protocol (MCP) server implementation for semantic vector search and memory management using TxtAI. This server provides a robust API for storing, retrieving, and managing text-based memories with semantic vector database search capabilities. You can use Claude and Cline AI as well.
Content

TxtAI Assistant MCP

A Model Context Protocol (MCP) server implementation for semantic search and memory management using txtai. This server provides a robust API for storing, retrieving, and managing text-based memories with semantic search capabilities.

About txtai

This project is built on top of txtai, an excellent open-source AI-powered search engine created by NeuML. txtai provides:

  • 🔍 All-in-one semantic search solution
  • 🧠 Neural search with transformers
  • 💡 Zero-shot text classification
  • 🔄 Text extraction and embeddings
  • 🌐 Multi-language support
  • 🚀 High performance and scalability

We extend txtai's capabilities by integrating it with the Model Context Protocol (MCP), enabling AI assistants like Claude and Cline to leverage its powerful semantic search capabilities. Special thanks to the txtai team for creating such a powerful and flexible tool.

Features

  • 🔍 Semantic search across stored memories
  • 💾 Persistent storage with file-based backend
  • 🏷️ Tag-based memory organization and retrieval
  • 📊 Memory statistics and health monitoring
  • 🔄 Automatic data persistence
  • 📝 Comprehensive logging
  • 🔒 Configurable CORS settings
  • 🤖 Integration with Claude and Cline AI

Prerequisites

  • Python 3.8 or higher
  • pip (Python package installer)
  • virtualenv (recommended)

Installation

  1. Clone this repository:
git clone https://github.com/yourusername/txtai-assistant-mcp.git
cd txtai-assistant-mcp
  1. Run the start script:
./scripts/start.sh

The script will:

  • Create a virtual environment
  • Install required dependencies
  • Set up necessary directories
  • Create a configuration file from template
  • Start the server

Configuration

The server can be configured using environment variables in the .env file. A template is provided at .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

Integration with Claude and Cline AI

This TxtAI Assistant can be used as an MCP server with Claude and Cline AI to enhance their capabilities with semantic memory and search functionality.

Configuration for Claude

To use this server with Claude, add it to Claude's MCP configuration file (typically located at ~/Library/Application Support/Claude/claude_desktop_config.json on macOS):

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

Configuration for Cline

To use with Cline, add the server configuration to Cline's MCP settings file (typically located at ~/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": {}
    }
  }
}

Available MCP Tools

Once configured, the following tools become available to Claude and Cline:

  1. store_memory: Store new memory content with metadata and tags
{
  "content": "Memory content to store",
  "metadata": {
    "source": "conversation",
    "timestamp": "2023-01-01T00:00:00Z"
  },
  "tags": ["important", "context"],
  "type": "conversation"
}
  1. retrieve_memory: Retrieve memories based on semantic search
{
  "query": "search query",
  "n_results": 5
}
  1. search_by_tag: Search memories by tags
{
  "tags": ["important", "context"]
}
  1. delete_memory: Delete a specific memory by content hash
{
  "content_hash": "hash_value"
}
  1. get_stats: Get database statistics
{}
  1. check_health: Check database and embedding model health
{}

Usage Examples

In Claude or Cline, you can use these tools through the MCP protocol:

# 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>

The AI will automatically use these tools to maintain context and retrieve relevant information during conversations.

API Endpoints

Store Memory

POST /store

Store a new memory with optional metadata and tags.

Request Body:

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

Search Memories

POST /search

Search memories using semantic search.

Request Body:

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

Search by Tags

POST /search_tags

Search memories by tags.

Request Body:

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

Delete Memory

DELETE /memory/{content_hash}

Delete a specific memory by its content hash.

Get Statistics

GET /stats

Get system statistics including memory counts and tag distribution.

Health Check

GET /health

Check the health status of the server.

Directory Structure

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

Data Storage

Memories and tags are stored in JSON files in the data directory:

  • memories.json: Contains all stored memories
  • tags.json: Contains the tag index

Logging

Logs are stored in the logs directory. The default log file is server.log.

Development

To contribute to this project:

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Submit a pull request

Error Handling

The server implements comprehensive error handling:

  • Invalid requests return appropriate HTTP status codes
  • Errors are logged with stack traces
  • User-friendly error messages are returned in responses

Security Considerations

  • CORS settings are configurable via environment variables
  • File paths are sanitized to prevent directory traversal
  • Input validation is performed on all endpoints

License

This project is licensed under the MIT License - see the LICENSE file for details.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Support

If you encounter any issues or have questions, please file an issue on the GitHub repository.

Recommend Servers
TraeBuild with Free GPT-4.1 & Claude 3.7. Fully MCP-Ready.
Baidu Map百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
ChatWiseThe second fastest AI chatbot™
Playwright McpPlaywright MCP server
MiniMax MCPOfficial MiniMax Model Context Protocol (MCP) server that enables interaction with powerful Text to Speech, image generation and video generation APIs.
TimeA Model Context Protocol server that provides time and timezone conversion capabilities. This server enables LLMs to get current time information and perform timezone conversions using IANA timezone names, with automatic system timezone detection.
WindsurfThe new purpose-built IDE to harness magic
AiimagemultistyleA Model Context Protocol (MCP) server for image generation and manipulation using fal.ai's Stable Diffusion model.
CursorThe AI Code Editor
Howtocook Mcp基于Anduin2017 / HowToCook (程序员在家做饭指南)的mcp server,帮你推荐菜谱、规划膳食,解决“今天吃什么“的世纪难题; Based on Anduin2017/HowToCook (Programmer's Guide to Cooking at Home), MCP Server helps you recommend recipes, plan meals, and solve the century old problem of "what to eat today"
DeepChatYour AI Partner on Desktop
Amap Maps高德地图官方 MCP Server
Context7Context7 MCP Server -- Up-to-date code documentation for LLMs and AI code editors
Zhipu Web SearchZhipu Web Search MCP Server is a search engine specifically designed for large models. It integrates four search engines, allowing users to flexibly compare and switch between them. Building upon the web crawling and ranking capabilities of traditional search engines, it enhances intent recognition capabilities, returning results more suitable for large model processing (such as webpage titles, URLs, summaries, site names, site icons, etc.). This helps AI applications achieve "dynamic knowledge acquisition" and "precise scenario adaptation" capabilities.
BlenderBlenderMCP connects Blender to Claude AI through the Model Context Protocol (MCP), allowing Claude to directly interact with and control Blender. This integration enables prompt assisted 3D modeling, scene creation, and manipulation.
Tavily Mcp
Visual Studio Code - Open Source ("Code - OSS")Visual Studio Code
Jina AI MCP ToolsA Model Context Protocol (MCP) server that integrates with Jina AI Search Foundation APIs.
Serper MCP ServerA Serper MCP Server
MCP AdvisorMCP Advisor & Installation - Use the right MCP server for your needs
EdgeOne Pages MCPAn MCP service designed for deploying HTML content to EdgeOne Pages and obtaining an accessible public URL.