mcp-text-classifier
Text Classification (Model2Vec)
Documentation
Text Classification MCP Server (Model2Vec)
A powerful Model Context Protocol (MCP) server that provides comprehensive text classification tools using fast static embeddings from Model2Vec (Minish Lab).
๐ ๏ธ Complete MCP Tools & Resources
This server provides 6 essential tools, 2 resources, and 1 prompt template for text classification:
๐ท๏ธ Classification Tools
- `classify_text` - Classify single text with confidence scores
- `batch_classify` - Classify multiple texts simultaneously
๐ Category Management Tools
- `add_custom_category` - Add individual custom categories
- `batch_add_custom_categories` - Add multiple categories at once
- `list_categories` - View all available categories
- `remove_categories` - Remove unwanted categories
๐ Resources
- `categories://list` - Access category list programmatically
- `model://info` - Get model and system information
๐ฌ Prompt Templates
- `classification_prompt` - Ready-to-use classification prompt template
๐ Key Features
- Zero-install: Just `uv run` โ dependencies are declared inline (PEP 723)
- Multiple Transports: Supports stdio (local), HTTP/SSE, and Streamable HTTP
- Fast Classification: Uses efficient static embeddings from Model2Vec
- 10 Default Categories: Technology, business, health, sports, entertainment, politics, science, education, travel, food
- Custom Categories: Add your own categories with descriptions
- Batch Processing: Classify multiple texts at once
- Resource Endpoints: Access category lists and model information
- Prompt Templates: Built-in prompts for classification tasks
๐ Installation
Prerequisites
- Python 3.10+
- `uv` package manager
Quick Setup
No separate install step needed โ dependencies are declared inline in the script (PEP 723) and resolved automatically by `uv`.
๐โโ๏ธ Running the Server
Stdio Transport (Default)
uv run text_classifier_server.pyHTTP/SSE Transport
# SSE on default port 8000
uv run text_classifier_server.py --http
# SSE on custom port
uv run text_classifier_server.py --http 9000Streamable HTTP Transport
uv run text_classifier_server.py --streamable-http๐ง Configuration
For Claude Desktop
Stdio Transport (Local)
Add to `~/Library/Application Support/Claude/claude_desktop_config.json`:
{
"mcpServers": {
"text-classifier": {
"command": "uv",
"args": ["run", "/path/to/text_classifier_server.py"]
}
}
}HTTP Transport (Remote)
Start the server with `uv run text_classifier_server.py --http`, then add:
{
"mcpServers": {
"text-classifier": {
"url": "http://localhost:8000/sse"
}
}
}For Claude Code
claude mcp add text-classifier -- uv run /Users/olivier/DEV/mcp-text-classifier/text_classifier_server.py๐ ๏ธ Available Tools
classify_text
Classify a single text into predefined categories with confidence scores.
Parameters:
- `text` (string): The text to classify
- `top_k` (int, optional): Number of top categories to return (default: 3)
Returns: JSON with predictions, confidence scores, and category descriptions
Example:
classify_text("Apple announced new AI features", top_k=3)batch_classify
Classify multiple texts simultaneously for efficient processing.
Parameters:
- `texts` (list): List of texts to classify
- `top_k` (int, optional): Number of top categories per text (default: 1)
Returns: JSON with batch classification results
Example:
batch_classify(["Tech news", "Sports update", "Business report"], top_k=2)add_custom_category
Add a new custom category for classification.
Parameters:
- `category_name` (string): Name of the new category
- `description` (string): Description to generate the category embedding
Returns: JSON with operation result
Example:
add_custom_category("automotive", "Cars, vehicles, transportation, automotive industry")batch_add_custom_categories
Add multiple custom categories in a single operation for efficiency.
Parameters:
- `categories_data` (list): List of dictionaries with 'name' and 'description' keys
Returns: JSON with batch operation results
Example:
batch_add_custom_categories([
{"name": "automotive", "description": "Cars, vehicles, transportation"},
{"name": "music", "description": "Music, songs, artists, albums, concerts"}
])list_categories
List all available categories and their descriptions.
Parameters: None
Returns: JSON with all categories and their descriptions
remove_categories
Remove one or multiple categories from the classification system.
Parameters:
- `category_names` (list): List of category names to remove
Returns: JSON with removal results for each category
Example:
remove_categories(["automotive", "custom_category"])๐ Available Resources
- `categories://list`: Get list of available categories with metadata
- `model://info`: Get information about the loaded Model2Vec model and system status
๐ฌ Available Prompts
- `classification_prompt`: Template for text classification tasks with context and instructions
Parameters:
- `text` (string): The text to classify
Returns: Formatted prompt for classification with available categories listed
๐งช Testing
Test with MCP Inspector
npx @modelcontextprotocol/inspector uv run text_classifier_server.py๐ Troubleshooting
Model download fails
# Manual model download
uv run python -c "from model2vec import StaticModel; StaticModel.from_pretrained('minishlab/potion-base-8M')"๐ Technical Details
- Model: `minishlab/potion-base-8M` from Model2Vec
- Similarity: Cosine similarity between text and category embeddings
- Performance: ~30MB model, fast inference with static embeddings
- Protocol: MCP specification 2024-11-05
- Transports: stdio, HTTP+SSE, Streamable HTTP
๐ค Contributing
1. Fork the repository
2. Create a feature branch
3. Add tests for new functionality
4. Submit a pull request
๐ License
MIT License - see LICENSE file for details.
๐ Acknowledgments
- Model2Vec by Minish Lab for fast static embeddings
- Anthropic for the Model Context Protocol specification
- FastMCP for the excellent Python MCP framework
Need help? Check the troubleshooting section or open an issue in the repository.
Frequently asked questions
What is mcp-text-classifier?
mcp-text-classifier is Text Classification (Model2Vec)
How do I install mcp-text-classifier?
Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.
Is mcp-text-classifier open source?
Yes โ it is hosted on GitHub at https://github.com/baobab-tech/mcp-text-classifier and has 4 stars.
Related MCP tools
Cognee is the open-source AI memory platform for agents. Give your AI agents persistent long-term memory across sessions with a self-hosted knowledge graph engine.
Automate browser based workflows with AI
Hindsight: Agent Memory That Learns
A privacy-first app that strips AI watermarks from content you own.
Agent framework and applications built upon Qwen>=3.0, featuring Function Calling, MCP, Code Interpreter, RAG, Chrome extension, etc.
The power of Claude Code / GeminiCLI / CodexCLI + [Gemini / OpenAI / OpenRouter / Azure / Grok / Ollama / Custom Model / All Of The Above] working as one.
Run your own MCP server? See who uses it and what to fix.
Measure it with TrackMCP