Amharic Dataset MCP
Allows collecting authentic Amharic data from Facebook groups.
Provides integration with Google Gemini for text analysis and quality assessment of Amharic text.
Supports using Hugging Face transformer models (e.g., Qwen) for additional Amharic text analysis.
Enables storing and retrieving Amharic datasets in MySQL databases.
Enables storing and retrieving Amharic datasets in PostgreSQL databases.
Enables storing and retrieving Amharic datasets in SQLite databases.
Allows collecting authentic Amharic data from Telegram channels.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Amharic Dataset MCPcollect and score quality of recent BBC Amharic articles"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Amharic Dataset MCP Tools
๐ช๐น Production-ready MCP (Model Context Protocol) tools for authentic Amharic dataset collection, enhancement, and quality scoring.
๐ Features
๐ฐ Authentic Data Collection
Ethiopian news sources: BBC Amharic, VOA Amharic, Ethiopian Reporter
Social media integration: Facebook groups, Telegram channels
Literature sources: Ethiopian books, religious texts, educational materials
Smart Amharic detection: Unicode-based authentic text filtering
๐ฎ RAG-Based Enhancement
Context-aware corrections: Uses high-quality Amharic knowledge base
Vector similarity search: FAISS-powered intelligent matching
Grammar pattern fixes: Natural expression improvements
Cultural authenticity: Ethiopian context validation
โก Multi-Dimensional Quality Scoring
Grammar quality: Pattern-based validation (30% weight)
Amharic purity: Unicode character analysis (25% weight)
Cultural authenticity: Ethiopian keyword density (20% weight)
Conversation naturalness: Question-answer patterns (15% weight)
Vocabulary richness: Word diversity metrics (10% weight)
๐๏ธ Database Integration
Multi-database support: SQLite, PostgreSQL, MySQL
Structured storage: Metadata, quality scores, timestamps
Fast retrieval: Indexed searches for training data
Batch processing: Scalable dataset operations
Related MCP server: Gemini MCP Server
๐ฆ Installation
# Clone repository
git clone https://github.com/Yosef-Ali/amharic-dataset-mcp.git
cd amharic-dataset-mcp
# Install package
pip install -e .
# Install with development tools
pip install -e ".[dev]"
# Install with GPU support
pip install -e ".[gpu]"
# For Gemini integration
pip install google-generativeai
# For Qwen models
pip install transformers torch
# Complete installation with all AI models
pip install -e ".[dev,gpu]" google-generativeai transformers torch๐ง Quick Start
1. Start MCP Server
# Start the Amharic dataset MCP server
amharic-dataset-server --port 30012. Integration with AI Models
Claude Code
{
"mcpServers": {
"amharic-dataset": {
"command": "amharic-dataset-server",
"args": ["--port", "3001"]
}
}
}Google Gemini Pro
import google.generativeai as genai
from amharic_dataset_mcp import AmharicDatasetPipeline
# Configure Gemini
genai.configure(api_key="your-gemini-api-key")
model = genai.GenerativeModel('gemini-pro')
# Use with Amharic MCP tools
pipeline = AmharicDatasetPipeline()
amharic_data = pipeline.collect_authentic_data(sources=["bbc_amharic"], max_items=100)
# Enhance with Gemini for translation/analysis
for item in amharic_data:
prompt = f"Analyze this Amharic text quality: {item['text']}"
response = model.generate_content(prompt)
item['gemini_analysis'] = response.textAlibaba Qwen Models
from transformers import AutoTokenizer, AutoModelForCausalLM
from amharic_dataset_mcp import AmharicQualityScorer
# Load Qwen model
tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen2.5-7B-Instruct")
model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen2.5-7B-Instruct")
# Quality scoring with Qwen
scorer = AmharicQualityScorer()
amharic_text = "แฅแแฐแแ แ แฐแญแญ? แฐแ
แ แแแฃ แฅแแแ แฅแแญ แญแแตแแแข"
# Get quality score from MCP
quality_result = scorer.calculate_overall_quality_score(amharic_text)
# Use Qwen for additional analysis
prompt = f"Rate the naturalness of this Amharic conversation: {amharic_text}"
inputs = tokenizer(prompt, return_tensors="pt")
outputs = model.generate(**inputs, max_new_tokens=150)
qwen_analysis = tokenizer.decode(outputs[0], skip_special_tokens=True)
print(f"MCP Score: {quality_result['overall_score']:.3f}")
print(f"Qwen Analysis: {qwen_analysis}")Multi-Model Ensemble
from amharic_dataset_mcp import AmharicDatasetPipeline
import google.generativeai as genai
from transformers import pipeline
# Initialize models
genai.configure(api_key="your-key")
gemini = genai.GenerativeModel('gemini-pro')
qwen_pipe = pipeline("text-generation", model="Qwen/Qwen2.5-3B-Instruct")
# Amharic pipeline
amharic_pipeline = AmharicDatasetPipeline()
async def multi_model_quality_check(text):
"""Use multiple models for comprehensive Amharic quality assessment"""
# 1. MCP Quality Scoring
mcp_score = amharic_pipeline.quality_scorer.calculate_overall_quality_score(text)
# 2. Gemini Analysis
gemini_prompt = f"Rate this Amharic text authenticity (1-10): {text}"
gemini_response = gemini.generate_content(gemini_prompt)
# 3. Qwen Analysis
qwen_prompt = f"Analyze Amharic grammar: {text}"
qwen_response = qwen_pipe(qwen_prompt, max_new_tokens=100)
return {
"text": text,
"mcp_score": mcp_score['overall_score'],
"mcp_category": mcp_score['quality_category'],
"gemini_analysis": gemini_response.text,
"qwen_analysis": qwen_response[0]['generated_text'],
"ensemble_recommendation": "high_quality" if mcp_score['overall_score'] > 0.8 else "needs_review"
}
# Example usage
result = await multi_model_quality_check("แจแขแตแฎแตแซ แแแแตแต แ แฒแต แแแฒ แ แแฃแข")3. Available MCP Tools
# Collect authentic Amharic data
await mcp_client.call_tool("collect_amharic_data", {
"sources": ["bbc_amharic", "voa_amharic"],
"max_items": 1000,
"quality_threshold": 0.7
})
# Enhance data quality with RAG
await mcp_client.call_tool("enhance_amharic_quality", {
"texts": ["แจแขแตแฎแตแซ แแแแตแต แ แฒแต แแแฒ แ แแฃ"],
"context_category": "news"
})
# Score quality automatically
await mcp_client.call_tool("score_amharic_quality", {
"text": "แฅแแฐแแ แ แฐแญแญ? แฐแ
แ แแแฃ แฅแแแ แฅแแญ แญแแตแแแข",
"detailed_analysis": true
})
# Store in database
await mcp_client.call_tool("store_amharic_data", {
"data": [...],
"database_url": "sqlite:///amharic_dataset.db"
})๐ฏ Use Cases
For Language Model Training
Collect authentic datasets from Ethiopian sources
Enhance quality with context-aware corrections
Filter high-quality examples automatically
Scale to millions of training examples
For Ethiopian NLP Research
EthioNLP integration: Compatible with community tools
Research datasets: Structured, quality-scored collections
Cultural validation: Authentic Ethiopian context
Multi-dialect support: Various Ethiopian language patterns
For Production Deployment
Scalable architecture: Handle thousands of requests
Database persistence: Long-term storage and retrieval
Quality monitoring: Automated scoring and filtering
API integration: REST endpoints for external services
๐งช Testing
# Run all tests
pytest
# Run with coverage
pytest --cov=src/amharic_dataset_mcp
# Run specific test category
pytest tests/test_quality_scoring.py
pytest tests/test_rag_enhancement.py
pytest tests/test_data_collection.py๐ Performance Metrics
Based on production testing:
Collection Speed: ~500 items/minute from Ethiopian news sites
Enhancement Accuracy: 95%+ native speaker approval rate
Quality Filtering: 85% retention rate for high-quality data
Database Throughput: 1000+ items/second storage and retrieval
Memory Usage: <512MB for 100K item knowledge base
๐ Advanced Features
Custom Quality Patterns
# Add custom grammar patterns
await mcp_client.call_tool("add_quality_pattern", {
"category": "cooking_verbs",
"good_patterns": ["แแฅแฐแ", "แแฅแ แต"],
"bad_patterns": ["แแแฐแ", "แแแแต"],
"weight": 0.3
})RAG Knowledge Base Extension
# Extend knowledge base with domain-specific examples
await mcp_client.call_tool("extend_knowledge_base", {
"category": "medical",
"examples": [
{
"text": "แแชแ แแดแต แแฐแ
? แแฐ แแตแแณแ แแณแแแข",
"quality_score": 1.0,
"explanation": "Uses แแชแ (Amharic) instead of แถแญแฐแญ (borrowed)"
}
]
})Batch Processing
# Process large datasets efficiently
await mcp_client.call_tool("batch_process_dataset", {
"input_file": "raw_amharic_data.jsonl",
"output_file": "processed_amharic_data.jsonl",
"batch_size": 100,
"quality_threshold": 0.6
})๐ค Contributing
We welcome contributions from the Ethiopian AI and NLP community!
Fork the repository
Create feature branch:
git checkout -b feature/amazing-featureMake changes and add tests
Run quality checks:
pre-commit run --all-filesSubmit pull request
๐ License
MIT License - see LICENSE file for details.
๐ Acknowledgments
EthioNLP Community for Ethiopian language research
BBC Amharic and VOA Amharic for authentic content sources
Ethiopian diaspora for cultural validation and feedback
Anthropic for MCP protocol and Claude integration
Google for Gemini Pro model capabilities
Alibaba for Qwen model series
Hugging Face for transformers infrastructure
๐ Support
Issues: GitHub Issues
Discussions: GitHub Discussions
Documentation: Full Documentation
๐ช๐น Built for the Ethiopian AI community with โค๏ธ
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Yosef-Ali/amharic-dataset-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server