An open API service indexing awesome lists of open source software.

https://github.com/m4stanuj/mast-llm-router

Task-aware MCP LLM fallback router: 13 provider routes, 10 chains, semantic cache, auto fallback, $0/month.
https://github.com/m4stanuj/mast-llm-router

ai-agents claude-code codex cursor fallback-router free-tier gemini groq llm-router local-first m4st mcp openrouter python windsurf

Last synced: 26 days ago
JSON representation

Task-aware MCP LLM fallback router: 13 provider routes, 10 chains, semantic cache, auto fallback, $0/month.

Awesome Lists containing this project

README

          

# πŸš€ MAST LLM Router β€” Intelligent LLM Request Distribution Engine

[![CI](https://github.com/m4stanuj/mast-llm-router/actions/workflows/ci.yml/badge.svg)](https://github.com/m4stanuj/mast-llm-router/actions)
[![Python](https://img.shields.io/badge/python-3.10%2B-blue)](https://www.python.org/)
[![MCP](https://img.shields.io/badge/MCP-compatible-green)](https://modelcontextprotocol.io)
[![License](https://img.shields.io/badge/license-MIT-brightgreen)](LICENSE)
[![Cost](https://img.shields.io/badge/monthly%20cost-%240-success)](/#)
[![Providers](https://img.shields.io/badge/providers-13-orange)](/#)
[![PRESENTATION](https://img.shields.io/badge/view-Presentation-blueviolet)](PRESENTATION.md)
[![SOCIAL](https://img.shields.io/badge/social-kit-ff69b4)](SOCIAL.md)
[![Download](https://img.shields.io/badge/download-zip-success)](mast-llm-router.zip)
[![Stars](https://img.shields.io/github/stars/m4stanuj/mast-llm-router?style=social)](https://github.com/m4stanuj/mast-llm-router)

> **πŸ† Task-aware LLM fallback router β€” 13 provider routes Β· 10 chains Β· 6 fallbacks Β· $0/month**
> Works with Claude Code, Cursor, Windsurf, Continue.dev, Codex CLI, and any MCP-compatible client.

---

```ascii
╔══════════════════════════════════════════════════════════════╗
β•‘ β•‘
β•‘ Every AI pipeline breaks when a provider hits a rate β•‘
β•‘ limit. This one doesn't. β•‘
β•‘ β•‘
β•‘ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β•‘
β•‘ β”‚ Task │──▢│ Chain │──▢│ Fallback │──▢│ Response β”‚ β•‘
β•‘ β”‚ Detect β”‚ β”‚ Select β”‚ β”‚ Loop x6 β”‚ β”‚ β”‚ β•‘
β•‘ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β•‘
β•‘ β•‘
β•‘ πŸ”„ One fails β†’ Next takes over β†’ resilient by design β•‘
β•‘ πŸ’° 13 provider routes Β· free-tier APIs Β· $0/month β•‘
β•‘ 🧠 Semantic caching Β· Auto key detection Β· MCP native β•‘
β•‘ β•‘
β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•
```

---

## πŸ“Š At a Glance

| Metric | Value |
|--------|-------|
| **Provider Routes** | 13 (Groq, Cerebras, Gemini, DeepSeek, OpenRouter, SambaNova, Together, NVIDIA NIM, Mistral, xAI/Grok, HuggingFace, Kimi K2, Nemotron) |
| **Task Chains** | 10 (speed, reason, code, vision, research, write, agent, pentest, hinglish, vision_reason) |
| **Fallback Depth** | 6 models per chain β€” auto-failover on 429/503/empty response |
| **Reliability Strategy** | Best-first chain routing with automatic fallback across provider routes |
| **Cache Strategy** | Fuzzy semantic matching at 0.82 threshold with a 500-entry LRU cache |
| **Monthly Cost** | **$0.00** (100% free-tier APIs) |
| **Protocol** | MCP (Model Context Protocol) β€” stdio + HTTP |
| **Clients** | Claude Code, Cursor, Windsurf, Continue.dev, Codex CLI, Antigravity |

---

## 🎯 What is this?

`mast-llm-router` is a **task-aware intelligent fallback router** for LLM requests that:

- **Detects** what kind of task you're doing from your prompt keywords
- **Routes** to the optimal model chain for that specific task
- **Auto-falls** to the next provider if one hits rate limits, errors out, or returns garbage
- **Caches** semantically similar prompts to eliminate redundant API calls
- **Detects** API keys automatically from their prefix β€” just paste and go
- **Costs** exactly nothing β€” runs entirely on free-tier quotas

Built as part of [M4ST](https://github.com/m4stanuj) β€” a personal AI OS running on an RTX 2060 Super in Bareilly, India.

---

## M4ST Ecosystem

| Repo | Role |
|------|------|
| [MAST](https://github.com/m4stanuj/MAST) | Flagship AI operator stack |
| [mast-llm-router](https://github.com/m4stanuj/mast-llm-router) | This repo: task-aware LLM fallback router |
| [semantic-cache-engine](https://github.com/m4stanuj/semantic-cache-engine) | Standalone semantic cache module |
| [openwork](https://github.com/m4stanuj/openwork) | Universal MCP workspace/config layer |
| [m4stclaw-legacy-archive](https://github.com/m4stanuj/m4stclaw-legacy-archive) | Historical archive and lineage |

---

## 🎬 Quick Demo

```
User: "Write a Python script to scrape Hacker News"
Router: Detected task β†’ code
Chain: kimi-k2 β†’ qwen3-coder β†’ mimo-pro β†’ nvidia-deepseek β†’ deepseek β†’ sambanova
Result: Response from kimi-k2 in 1.2s (cache miss)

User: "yeh kya hai samjhao"
Router: Detected task β†’ hinglish
Chain: sarvam β†’ gemini-flash β†’ groq-llama β†’ cerebras β†’ openrouter β†’ mistral
Result: Response in Hindi-English mix

User: "Explain quantum computing in simple terms"
Router: Detected task β†’ reason
Chain: deepseek-r1 β†’ nemotron β†’ gemini-pro β†’ openrouter β†’ together β†’ mistral
Result: Response from deepseek-r1 in 3.4s (cached from similar query)
```

---

## 🧠 Algorithm: How It Works

### Step 1: Task Detection
```
Input: "Write a Python web scraper"
β”‚
β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Keyword Scan β”‚
β”‚ β”‚
β”‚ "Python" β†’ πŸ“ code
β”‚ "scraper" β†’ πŸ“ code
β”‚ "write" β†’ πŸ“ code
β””β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜
β”‚
β”Œβ”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”
β”‚ Chain: CODE β”‚
β”‚ Confidence 94%β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
```

### Step 2: Fallback Loop
```
Chain: CODE
β”‚
β”Œβ”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Provider 1 │── 429 Rate Limited ──┐
β”‚ Kimi K2 β”‚ β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Provider 2 │── 503 Error ─▢ Fallback β”‚
β”‚ Qwen3 Coder │── ──────────▢ Loop auto- β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ selects next β”‚
β”‚
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
β”‚ Provider 3 β”‚β—€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
β”‚ Mimo Pro │── βœ… Success 1.2s
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
β”‚
β”Œβ”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”
β”‚ Response sent β”‚
β”‚ to MCP Client β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
```

### Step 3: Semantic Cache
```
Prompt ──▢ Embedding ──▢ Fuzzy Match (>0.82) ──▢ Cache Hit? ──▢ Return cached
β”‚
Miss ──▢ Call API ──▢ Store
```

---

## ✨ Feature Highlights

- Task-aware chain selection for code, reasoning, research, writing, agents, vision, pentest, and Hinglish flows
- Automatic fallback when a provider rate-limits, errors, or returns an empty response
- SMART_KEY detection so mixed API keys can be pasted without manual provider mapping
- Semantic cache for repeated or similar prompts, tuned with a 0.82 fuzzy-match threshold

---

## Feature Matrix

| Feature | Detail |
|---|---|
| **13 provider routes** | Groq, Cerebras, Gemini, OpenRouter, SambaNova, DeepSeek, Together, NVIDIA NIM, Mistral, xAI/Grok, HuggingFace, Kimi K2, Nemotron |
| **10 task chains** | speed, reason, code, vision, research, write, agent, pentest, hinglish, vision_reason |
| **6 models per chain** | Best-first, auto-falls to next on failure |
| **SMART_KEY detection** | Paste any API key β€” provider auto-detected by prefix |
| **Semantic cache** | Fuzzy match at 0.82 threshold, 500 entry LRU |
| **Thread-safe cooldowns** | Per-key 429/auth cooldown, not per-provider |
| **Both transports** | stdio (local) + HTTP (remote) |
| **$0/month** | 100% free-tier APIs |

---

## Task Chains

```
speed β†’ groq β†’ cerebras β†’ gemini-flash β†’ openrouter β†’ sambanova β†’ deepseek
reason β†’ deepseek-r1 β†’ nemotron β†’ gemini-pro β†’ openrouter β†’ together β†’ mistral
code β†’ kimi-k2 β†’ qwen3-coder β†’ mimo-pro β†’ nvidia β†’ deepseek β†’ sambanova
vision β†’ gemini-vision β†’ openrouter-vision β†’ together-vision β†’ ...
research β†’ perplexity β†’ gemini-pro β†’ deepseek-r1 β†’ openrouter β†’ ...
write β†’ gemini-pro β†’ mistral β†’ together β†’ openrouter β†’ groq β†’ cerebras
agent β†’ deepseek-r1 β†’ gemini-pro β†’ openrouter β†’ together β†’ groq β†’ ...
pentest β†’ nvidia-deepseek β†’ nemotron β†’ deepseek-r1 β†’ glm β†’ mistral β†’ ...
hinglish β†’ sarvam β†’ gemini-flash β†’ groq β†’ cerebras β†’ openrouter β†’ mistral
vision_reason β†’ gemini-vision β†’ openrouter-vision β†’ together-vision β†’ ...
```

---

## MCP Tools Exposed

| Tool | Description |
|---|---|
| `llm_chat` | Single-turn prompt β†’ best model |
| `llm_chat_multi_turn` | Full conversation history support |
| `llm_detect_task` | Preview which chain will handle your prompt |
| `llm_router_status` | Provider health, key counts, cooldowns |
| `llm_list_providers` | All providers + chains in JSON |
| `llm_cache_control` | Cache stats or clear |

---

## Installation

### 1. Clone

```bash
git clone https://github.com/m4stanuj/mast-llm-router.git
cd mast-llm-router
```

### 2. Install dependencies

```bash
pip install -r requirements.txt
```

### 3. Configure keys

```bash
cp .env.example .env
# Edit .env β€” paste your free-tier API keys
```

> **SMART_KEY tip:** Just paste any key into `SMART_KEY_1`, `SMART_KEY_2`, etc.
> The router detects the provider automatically from the key prefix.

### 4. Test it

```bash
python src/server.py --help
```

---

## Client Setup

### Claude Code

Add to `~/.claude/claude_desktop_config.json` (or via `claude mcp add`):

```json
{
"mcpServers": {
"mast-router": {
"command": "python",
"args": ["/absolute/path/to/mast-llm-router/src/server.py"]
}
}
}
```

Or one-liner:
```bash
claude mcp add mast-router python /absolute/path/to/mast-llm-router/src/server.py
```

### Cursor / Windsurf

Settings β†’ MCP β†’ Add Server:

```json
{
"name": "mast-router",
"type": "stdio",
"command": "python",
"args": ["/absolute/path/to/mast-llm-router/src/server.py"]
}
```

### Continue.dev

In `.continue/config.json`:

```json
{
"mcpServers": [
{
"name": "mast-router",
"command": "python",
"args": ["/absolute/path/to/mast-llm-router/src/server.py"]
}
]
}
```

### Codex CLI

```bash
codex --mcp-server "python /absolute/path/to/mast-llm-router/src/server.py"
```

### HTTP Mode (Antigravity, Magnus, remote clients)

```bash
python src/server.py --http --port 8000
```

Then point your client to: `http://localhost:8000/mcp`

---

## Environment Variables

| Variable | Description |
|---|---|
| `SMART_KEY_1` … `SMART_KEY_30` | Auto-detected keys (recommended) |
| `GROQ_API_KEY` | Groq (+ `_1` through `_20` for rotation) |
| `CEREBRAS_API_KEY` | Cerebras |
| `GEMINI_API_KEY` | Google Gemini |
| `OPENROUTER_API_KEY` | OpenRouter |
| `NVIDIA_API_KEY` | NVIDIA NIM |
| `SAMBANOVA_API_KEY` | SambaNova |
| `DEEPSEEK_API_KEY` | DeepSeek |
| `TOGETHER_API_KEY` | Together AI |
| `MISTRAL_API_KEY` | Mistral |
| `GROKAI_API_KEY` | xAI / Grok |
| `HUGGINGFACE_API_KEY` | HuggingFace |

---

## How Key Detection Works

```
gsk_... β†’ Groq
csk-... β†’ Cerebras
AIza... β†’ Gemini
sk-or-... β†’ OpenRouter
nvapi-... β†’ NVIDIA NIM
sk-... β†’ DeepSeek / Together / Mistral (length-based split)
xai-... β†’ Grok
hf_... β†’ HuggingFace
```

---

## Architecture

```
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ MCP Client β”‚
β”‚ (Claude Code / Cursor / Codex / Antigravity / …) β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
β”‚ stdio / HTTP
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ server.py (FastMCP) β”‚
β”‚ llm_chat β”‚ multi_turn β”‚ detect_task β”‚ status … β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
β”‚
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ llm_fallback.py (Core Router) β”‚
β”‚ β”‚
β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
β”‚ β”‚ Task Detect β”‚ β”‚ Cache β”‚ β”‚ Key Manager β”‚ β”‚
β”‚ β”‚ (keyword) β”‚ β”‚ (fuzzy) β”‚ β”‚ (cooldown) β”‚ β”‚
β”‚ β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
β”‚ β”‚ β”‚
β”‚ β”Œβ”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
β”‚ β”‚ Task Chain Selector β”‚ β”‚
β”‚ β”‚ speed/reason/code/vision/pentest/hinglish… β”‚ β”‚
β”‚ β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
β”‚ β”‚ β”‚
β”‚ β”Œβ”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
β”‚ β”‚ Fallback Loop (6 models) β”‚ β”‚
β”‚ β”‚ Provider 1 β†’ fail β†’ Provider 2 β†’ … β”‚ β”‚
β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
```

---

## Free Tier Limits (as of 2026)

| Provider | Free RPM | Free TPD |
|---|---|---|
| Groq | 30 | 14,400 |
| Cerebras | 30 | ~1M |
| Gemini Flash | 15 | 1M |
| NVIDIA NIM | 40 | β€” |
| SambaNova | 10 | β€” |
| OpenRouter (free models) | varies | varies |
| DeepSeek | 50 | β€” |

---

## Project Structure

```
mast-llm-router/
β”œβ”€β”€ src/
β”‚ β”œβ”€β”€ server.py # MCP server (FastMCP)
β”‚ └── llm_fallback.py # Core router logic
β”œβ”€β”€ config/
β”‚ β”œβ”€β”€ claude_code.json # Claude Code config
β”‚ └── cursor_windsurf.json
β”œβ”€β”€ .env.example # Key template
β”œβ”€β”€ .gitignore
β”œβ”€β”€ requirements.txt
└── README.md
```

---

## Part of M4ST Ecosystem

```
M4ST OS
β”œβ”€β”€ llm_fallback.py ← this repo
β”œβ”€β”€ mcp_servers/ 86 MCP tools
β”œβ”€β”€ OpenWork MCP-based AI workspace
β”œβ”€β”€ CAI Pentest agent layer
└── voice / memory / browser automation
```

---

## πŸ“‚ Project Resources

| Resource | Description |
|----------|-------------|
| [πŸ“– PRESENTATION.md](./PRESENTATION.md) | Full slide deck β€” algorithm walkthrough, benchmarks, use cases |
| [πŸ“± SOCIAL.md](./SOCIAL.md) | Social media kit β€” tweets, LinkedIn posts, hashtags, captions |
| [🎬 DEMO_STORYBOARD.md](./DEMO_STORYBOARD.md) | GIF/video storyboard β€” task detection, fallback, cache hit |
| [πŸ€– AGENTS.md](./AGENTS.md) | Guide for AI agents using this MCP server |
| [πŸ“‹ CHANGELOG.md](./CHANGELOG.md) | Version history and roadmap |
| [πŸ“¦ mast-llm-router.zip](./mast-llm-router.zip) | Downloadable ZIP archive |
| [πŸ”— GitHub Release](https://github.com/m4stanuj/mast-llm-router/releases) | Latest release with assets |

## πŸ† Why MAST LLM Router?

```
βœ… 13 provider routes β†’ Redundancy across free-tier LLM APIs
βœ… 10 task chains β†’ Optimal model for every use case
βœ… 6 fallbacks β†’ Best-first recovery when providers fail
βœ… $0/month β†’ Free tiers only
βœ… SMART_KEY β†’ Paste any key, auto-detected
βœ… Semantic cache β†’ Repeated/similar prompts can return instantly
βœ… MCP native β†’ Works with every major AI coding tool
βœ… Open source β†’ MIT license, fork and build
```

## ⭐ Star History

[![Star History Chart](https://api.star-history.com/svg?repos=m4stanuj/mast-llm-router&type=Date)](https://star-history.com/#m4stanuj/mast-llm-router&Date)

## πŸ“’ Share

```markdown
**Twitter/X:**
🧡 I built a $0/month LLM router with 13 provider routes and auto-fallback.
6 models per chain. Semantic cache. MCP native.
github.com/m4stanuj/mast-llm-router
#LLM #AI #OpenSource #MCP #Python

**LinkedIn:**
πŸ—οΈ MAST LLM Router β€” task-aware fallback router for 13 LLM provider routes.
100% free-tier. Zero config. Full code on GitHub.
https://github.com/m4stanuj/mast-llm-router
```

## License

MIT β€” use it, fork it, build on it.

---

*Built by [@m4stanuj](https://github.com/m4stanuj) | [LinkedIn](https://linkedin.com/in/mast-anuj) | RTX 2060 Super | Bareilly, India*
*Zero VC money. Zero monthly cost. Full control.*

## πŸ”– Hashtags

```
#LLM #AI #OpenSource #MCP #Python #MachineLearning #DeveloperTools
#AIAgents #LLMRouter #FreeAPI #ArtificialIntelligence #PythonDev
#ModelContextProtocol #LLMFallback #MultiProvider #AIIndex
```