The Problem
Standard MCP servers expose every tool at once. For a server with 50 tools, the LLM receives all 50 tool definitions on every single turn, even if only 3 are relevant right now. This causes:- Wasted tokens: 80%+ of the context window is irrelevant tool schemas
- Poor tool selection: the LLM frequently picks the wrong tool
- No guardrails: nothing prevents calling
checkoutbeforeadd_to_cart - No state: the server has no awareness of previous tool executions or state changes between calls
What Concierge Does
Concierge is a production MCP framework that wraps your tools with structure. It’s a drop-in replacement for FastMCP that adds four capabilities:Progressive Tool Disclosure
Instead of dumping all tools at once, Concierge shows only the tools relevant to the current stage:Staged Workflows
Define stages (groups of tools) and transitions (allowed paths between stages). The LLM can only move forward through your defined flow:Code-Based Execution
Instead of calling tools one-by-one (each consuming context), the agent writes a Python script that calls multiple tools in sequence. One LLM turn does the work of many:- Without Code Mode (5 LLM turns)
- With Code Mode (1 LLM turn)
Code mode runs in a sandboxed environment:no imports, no
eval, no file access. Only your registered tools are available.Persistent State
Per-session key-value storage that persists across stage transitions:How It Compares
| Feature | Plain MCP | Concierge |
|---|---|---|
| Tool exposure | All at once | Progressive per-stage |
| Ordering | None | Enforced transitions |
| Session state | None | Built-in key-value store |
| Context usage | High | Minimal (code mode) |
| Reliability | LLM-dependent | Deterministic flows |
| Migration effort | N/A | One-line import swap |
One-Line Migration
Get Started
Install Concierge and build your first staged workflow →