// LLM ROUTER

ONE DISPATCH.
FOUR ADAPTERS.

The problem is not “yet another playground.” The problem is every blueprint inventing its own provider client. MVS is the routing layer: mvs.router.dispatch() reads active config (primary + optional fallback), hits OpenRouter / Ollama / MiniMax / DeepSeek, normalises output (fences, <think>, sycophantic preambles). External: POST /api/v1/chat with X-MVS-App-Token. Internal: shared.ai_helpers.dispatch API(..., via_mvs=True) hits localhost /api/v1/dispatch and falls back direct if MVS is down. Dashboard: live monitor, today’s totals, top apps. Test UI with provider override, PRL load, saved labels. Per-app hashed tokens. Costs to the call log and ai_operations_log. FMR provisions models here. EBD/EBI score via the MVS client. OpenRouter adapter is on purpose.

WebTool+admin 4 adapters Token API Fallback
Open MVS How it works
4
Adapters
2
Primary+fallback
Token
X-MVS-App-Token
strip
<think>
// HOW IT WORKS

Five steps from a prompt to a normalised completion

If MiniMax 402s, fallback config is the next hop — not a silent empty string dressed as success.

01
Pick active config
Singleton primary + fallback.
02
Call dispatch or /chat
Python or token HTTP. Localhost dispatch has no token.
03
Adapter
OpenRouter, Ollama, MiniMax, or DeepSeek.
04
Normalise
Strip fences and think blocks.
05
Log
call log + ai_operations_log. Test UI history is per-user.
Open MVS
// MONITOR

Who called the router today — CSS mock

Not OpenRouter usage dashboard screenshots.

meltuc.tech/mvs/app — CSS mock, not a product screenshot
Todayn requests
Top appscallers
Configprimary/fallback
// TEST

A prompt with a provider override

PRL library load + saved run label. Not ChatGPT.

meltuc.tech/mvs/app/test — CSS mock, not a product screenshot
Overrideenabled providers
PRLload prompt
Labelsaved run
// TOKENS

Per-app hashed bearers

Public landing never prints a live token.

meltuc.tech/mvs/app · tokens — CSS mock, not a product screenshot
HeaderX-MVS-App-Token
StoreSHA-256
Chat/api/v1/chat
// vs FMR / OMR

Router vs scavenger vs OpenRouter catalog

FMR finds. OMR tracks :free chain. MVS serves.

// WHAT IT REFUSES

No public unauthenticated chat. No raw think leaks in the contract.

Will not be the A3 image generator. Will not hide adapter failures as empty 200s if the caller asked via_mvs.

// WHO THIS IS FOR

Blueprints and tokenised scripts

Platform inference spine. Humans use the test UI; apps use dispatch().

// FEATURES

Route, fall back, log

No invented fifth vendor.

🚦
dispatch()
One call, four adapters.
⚙️
Active config
Primary + fallback.
🔁
Auto fallback
Retriable errors.
🧹
Normalise
Think/fence strip.
📡
Token API
/api/v1/chat.
🏠
Local dispatch
via_mvs helper.
📟
Monitor
Today + top apps.
🧪
Test UI
Override + PRL.
💵
Cost logs
call log + ai_operations_log.
// GET STARTED

Open the router. Do not fork another client.

Login for /mvs/app. This page is not a free playground.

Open MVS

Requires a MelTuc account. Create one free.

// SAID SLOWLY

What stays true over time

Model vault — providers, models, tokens, and unified chat/dispatch. Platform default usually MiniMax when active. Health stays cheap. If this page disagrees with the signed-in app, trust the app — the product contract and tests enforce that rule.