Salyut

Salyut

Fans out queries to multiple independent free LLMs from different providers and returns their answers side by side, enabling sanity-checking of decisions or getting multiple perspectives during coding sessions.

Category
Visit Server

README

Salyut 🛰️

A council of AI models you can ask for a second opinion — from inside a coding session, a shell, or your household assistant.

Salyut is a small MCP server that fans one question out to several independent free LLMs (different vendors, different training lineages) and returns their answers side by side, each attributed to its model. Different models catch different things, so a quick "ask the panel" is a cheap way to sanity-check a judgment call, break a tie, or get an outside read.

It's named for the Salyut space stations — the place where the crew (here, a panel of models) convenes.

Built with Claude (Opus 4.8). This project — code, tests, and docs — was written collaboratively with Anthropic's Claude.

The panel

Provider Model Lineage In the default roster?
Cerebras gpt-oss-120b OpenAI-lineage, ~0.2s
Z.ai glm-4.7-flash Chinese (Zhipu)
Groq llama-3.3-70b-versatile Meta
Google gemini-flash-latest Google (best-effort — thin free quota)
Mistral mistral-large-latest European ⚠️ opt-in only

All run on free API tiers. Mistral is left out of the default roster on purpose: its free tier trains on submitted data, so it's only ever called when a caller explicitly names it (which the household assistant never does). See the wiki for the reasoning.

How it's used

  • In a coding session — registered as an MCP server, so the assistant can call consult(...) mid-task to get an outside opinion.
  • From a shell — a thin CLI (consult.cli) for scripting and model bake-offs (e.g. A/B-testing a prompt across models).
  • By a household assistant — as one more MCP tool it reaches for only when genuinely unsure.

Because every caller goes through the one server, a single rate-guard keeps any one of them from draining a thin free-tier bucket the next caller needs.

<details><summary><b>What's inside</b></summary>

  • consult/core.py — the providers, the fan-out, and a fail-safe call wrapper (any error becomes an "ERROR: …" string, never a crash).
  • consult/ratelimit.py — the shared rate-guard (per-provider min-interval + daily cap; fails open for unconfigured providers, closed once a cap is hit).
  • consult/server.py — the MCP server (FastMCP, streamable-HTTP at /mcp), exposing consult and listmodels.
  • consult/cli.py — the shell client (talks to the server by default so the shared guard applies; --direct for offline use). </details>

<details><summary><b>Personalize (change these for your setup)</b></summary>

  • API keys — six provider keys via environment (CEREBRAS_API_KEY, ZAI_API_KEY, GROQ_API_KEY, GEMINI_API_KEY, MISTRAL_API_KEY, OPENROUTER_API_KEY). Any you leave unset simply drop out of the roster — no crash. See .env.example.
  • The roster — edit DEFAULT_ROSTER / FULL_ROSTER in consult/core.py. Each model is also overridable by env var (e.g. CONSULT_CEREBRAS_MODEL).
  • Rate limitsGUARD_MIN_INTERVAL / GUARD_DAILY_CAP in consult/core.py, set from each provider's real free-tier limits.
  • Where it listensCONSULT_HOST / CONSULT_PORT (defaults 0.0.0.0:8000).
  • Free-model slugs rotate — if a default starts erroring, re-check the provider's model list. </details>

Setup & usage

Install, configure, deploy, and wire it into your tools — see the wiki. (The README describes what Salyut is; the wiki is the step-by-step manual.)

License

GPL-3.0-or-later — see LICENSE.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured