spoken-il-arabic-mcp
v1.2.0
Published
MCP Server for Arabic Palestinian conjugation and dictionary lookup
Maintainers
Readme
Spoken IL Arabic MCP Server
An MCP (Model Context Protocol) server that provides access to Arabic Palestinian conjugation and dictionary lookup through the roadtorecovery.org.il/Spokenarabic API.
Features
- 🔍 Search Arabic Roots: Find roots by Hebrew meaning, Arabic transliteration, or root patterns
- 📚 Full Conjugations: Get complete conjugation tables with all verb forms
- 🔄 Similar Roots: Discover related roots by pattern, meaning, or phonetic similarity
- 🎨 HTML Formatting: Built-in beautiful HTML page generation for Arabic roots with RTL support
- 🌐 Hebrew/Arabic Support: Proper handling of bidirectional text and UTF-8 encoding
- ⚡ Fast & Reliable: Built with TypeScript for robust error handling
Prerequisites
- Node.js ≥ 18.0.0
- npm (included with Node.js)
- AI Client supporting MCP (such as Claude Desktop)
Installation
npm install -g spoken-il-arabic-mcpUsage with Claude Desktop
Add to your Claude Desktop configuration:
{
"mcpServers": {
"spoken-arabic": {
"command": "spoken-il-arabic-mcp"
}
}
}HTML Formatting Feature
This MCP server includes built-in HTML formatting capabilities that automatically generate beautifully styled Arabic root pages. When used with AI clients like Claude Desktop, the server can produce:
- 🎯 Complete Root Pages: Hebrew/Arabic roots with full conjugation tables
- 📊 Verb Forms: All 6 verb forms (poel/paul in male/female/plural)
- 🌐 RTL Support: Proper right-to-left Arabic text rendering
- 📱 Responsive Design: Works on desktop and mobile devices
- 🎨 Clean Styling: Professional layout with subtle purple accents
Simply ask your AI client to "create an HTML page for [Hebrew word]" and the server will handle the complete workflow from search to formatted output.
Available Tools
1. search_arabic_roots
Search for Arabic roots by various criteria.
Parameters:
search_term(string, required): The term to search forsearch_type(string, optional): "auto", "hebrew", or "arabic" (default: "auto")limit(number, optional): Maximum results (default: 10, max: 100)
Example:
{
"search_term": "ללכת",
"search_type": "hebrew",
"limit": 5
}2. get_root_conjugation
Get complete conjugation data for a specific root.
Parameters:
root_id(string, required): Exact root ID from search resultsinclude_audio(boolean, optional): Include audio info (default: true)include_examples(boolean, optional): Include example sentences (default: true)include_negation(boolean, optional): Include negation forms (default: false)
Example:
{
"root_id": "ללכת - רוח, פעל 1",
"include_examples": true
}3. get_similar_roots
Find roots similar to a reference root.
Parameters:
root_id(string, required): Reference root IDsimilarity_type(string, required): "pattern", "meaning", or "phonetic"limit(number, optional): Maximum results (default: 10, max: 50)
Example:
{
"root_id": "ללכת - רוח, פעל 1",
"similarity_type": "pattern",
"limit": 10
}API Details
Data Source
- API:
https://amir-325409.oa.r.appspot.com - Source: roadtorecovery.org.il/Spokenarabic
- Coverage: 2,930+ Hebrew roots, 4,336+ Arabic transliterations
Root ID Format
Root IDs must match exactly as returned by the search API:
- Hebrew format:
"ללכת - רוח, פעל 1" - Arabic format:
"ra7","roo7"
Example Interactions
Searching for Roots
User: "Find Arabic roots related to walking"
Claude uses: search_arabic_roots("ללכת", "hebrew", 5)
Result: ["ללכת - רוח, פעל 1", "ללכת - משא, פעל 1", ...]Getting Conjugations
User: "Show me conjugations for the root ללכת - רוח, פעל 1"
Claude uses: get_root_conjugation("ללכת - רוח, פעל 1")
Result: Complete conjugation table with all persons and tensesFinding Similar Roots
User: "Find roots with similar patterns to ללכת - רוח, פעל 1"
Claude uses: get_similar_roots("ללכת - רוח, פعל 1", "pattern")
Result: Roots with similar structure and patternsDevelopment
Prerequisites
- Node.js ≥ 18.0.0
- TypeScript ≥ 5.0.0
Setup
git clone https://github.com/avi-the-coach/spoken-il-arabic-mcp.git
cd spoken-il-arabic-mcp
npm install
npm run buildScripts
npm run build: Compile TypeScript to JavaScriptnpm run dev: Run in development mode with auto-reloadnpm start: Run the compiled server
Project Structure
src/
├── index.ts # Entry point
├── server.ts # MCP server implementation
├── api/
│ └── client.ts # API client for roadtorecovery
├── tools/
│ ├── search.ts # Search functionality
│ ├── conjugate.ts # Conjugation retrieval
│ └── similar.ts # Similar roots finding
├── types/
│ └── api.ts # TypeScript interfaces
└── utils/
├── formatter.ts # Text processing utilities
├── htmlFormatter.ts # HTML page generation
└── validator.ts # Input validationError Handling
The server includes comprehensive error handling for:
- Invalid input parameters
- Network connectivity issues
- API response errors
- Rate limiting and timeouts
- Hebrew/Arabic encoding problems
Contributing
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgments
- API Source: roadtorecovery.org.il/Spokenarabic - Arabic Palestinian dialect resources
- Research & Development: Claude (Anthropic) in collaboration with Avi Bechar
- Language Data: Arabic Palestinian dialect conjugation database
Support
For issues and feature requests, please use the GitHub Issues page.
Made with ❤️ for Arabic language learners
