/ Diretório / Playground / concierge
● Comunidade concierge-hq ⚡ Instantâneo

concierge

por concierge-hq · concierge-hq/concierge

Python SDK for building MCP servers where tools appear only when relevant — progressive disclosure, workflow state, and semantic tool search for 100+ tool APIs.

Concierge is not an end-user MCP; it's a framework for writing MCP servers that don't overwhelm the LLM. Define workflows with ordered steps, each step exposing only the tools it needs. Share state across steps. Semantic search over your tool catalog when you have too many to list.

Por que usar

Principais recursos

Demo ao vivo

Como fica na prática

concierge.replay ▶ pronto
0/0

Instalar

Escolha seu cliente

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "concierge": {
      "command": "uvx",
      "args": [
        "concierge"
      ],
      "_inferred": true
    }
  }
}

Abra Claude Desktop → Settings → Developer → Edit Config. Reinicie após salvar.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "concierge": {
      "command": "uvx",
      "args": [
        "concierge"
      ],
      "_inferred": true
    }
  }
}

Cursor usa o mesmo esquema mcpServers que o Claude Desktop. Config de projeto vence a global.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "concierge": {
      "command": "uvx",
      "args": [
        "concierge"
      ],
      "_inferred": true
    }
  }
}

Clique no ícone MCP Servers na barra lateral do Cline, depois "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "concierge": {
      "command": "uvx",
      "args": [
        "concierge"
      ],
      "_inferred": true
    }
  }
}

Mesmo formato do Claude Desktop. Reinicie o Windsurf para aplicar.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "concierge",
      "command": "uvx",
      "args": [
        "concierge"
      ]
    }
  ]
}

O Continue usa um array de objetos de servidor em vez de um map.

~/.config/zed/settings.json
{
  "context_servers": {
    "concierge": {
      "command": {
        "path": "uvx",
        "args": [
          "concierge"
        ]
      }
    }
  }
}

Adicione em context_servers. Zed recarrega automaticamente ao salvar.

claude mcp add concierge -- uvx concierge

Uma linha só. Verifique com claude mcp list. Remova com claude mcp remove.

Casos de uso

Usos do mundo real: concierge

Wrap a giant REST API (200+ endpoints) as an MCP without blowing the context

👤 Platform engineers exposing internal APIs to LLMs ⏱ ~90 min advanced

Quando usar: Your company's API has 300 endpoints and a naive MCP dumps all of them into the system prompt, wrecking latency and hit rate.

Pré-requisitos
  • Python 3.9+ — pyenv / uv
  • OpenAPI spec or endpoint catalog — Your API gateway / Swagger
Fluxo
  1. Scaffold with concierge-sdk
    Using concierge-sdk, scaffold an MCP server that wraps my OpenAPI spec at ./openapi.yaml. Make it use semantic search rather than listing all tools up front.✓ Copiado
    → Boilerplate code + search handler
  2. Define workflow stages
    Group the endpoints into 3 workflows: 'read operations', 'create operations', 'admin'. Each workflow exposes only its own tools.✓ Copiado
    → Workflow definitions with tool allowlists
  3. Test with Claude
    Connect Claude Desktop to this server and verify that listing tools only shows the search tool + current workflow tools — not all 300.✓ Copiado
    → Claude sees ~10 tools, not 300

Resultado: A large API surface usable by an LLM without collapsing on system prompt length.

Armadilhas
  • Semantic search returns the wrong tool when descriptions are too similar — Write distinctive one-line tool descriptions; test search with held-out queries

Build a guided multi-step workflow (e.g. customer onboarding)

👤 Devs building structured agent flows ⏱ ~60 min advanced

Quando usar: You want the LLM to follow a defined sequence: collect info → validate → create record → notify. Each step has its own tools.

Fluxo
  1. Declare the workflow
    Define a concierge workflow 'customer_onboarding' with steps [collect, validate, create, notify], each with its own tool set.✓ Copiado
    → Workflow config
  2. Share state
    Pass the customer_data dict from step 1 into steps 2, 3, 4 via shared state. Show me how.✓ Copiado
    → State-object code
  3. Handle failure
    If validate fails, return to step 1 with the specific fix needed.✓ Copiado
    → Retry/backtrack logic

Resultado: A robust guided flow that keeps the LLM on-rails.

Armadilhas
  • LLM tries to skip steps — Concierge enforces order at the tool-visibility level — skipping is physically impossible if you wired it right

Ship your first MCP server in 15 minutes

👤 Developers new to MCP ⏱ ~15 min beginner

Quando usar: You want to expose 3-5 functions to Claude and don't want to learn the raw MCP spec.

Fluxo
  1. Install and scaffold
    pip install concierge-sdk. Generate a minimal server exposing two tools: add(a, b) and greet(name). Stdio transport.✓ Copiado
    → Working Python file
  2. Run and connect
    Add to Claude Desktop config and test that both tools are callable.✓ Copiado
    → Tool calls succeed in Claude

Resultado: A working MCP server you wrote end-to-end in an afternoon.

Armadilhas
  • Missing type hints — SDK relies on them for tool schema — Always type your args and return — concierge generates the MCP schema from them

Combinações

Combine com outros MCPs para 10× de alavancagem

concierge + gateway

Serve concierge-built MCP behind a security gateway for PII redaction

Start concierge server on :8001, then add it as an upstream to mcp-gateway with Presidio plugin.✓ Copiado

Ferramentas

O que este MCP expõe

FerramentaEntradasQuando chamarCusto
concierge.workflow(name) name, steps, initial_state Define a named multi-step flow framework only
concierge.tool(workflow, step) step allowlist Attach a function as a tool scoped to one or more steps framework only
concierge.search_tools query: str Auto-exposed when you have too many tools to list eagerly free
concierge.serve() transport: 'stdio'|'http'|'sse' Entry point of your script free

Custo e limites

O que custa rodar

Cota de API
None — you're the author
Tokens por chamada
Depends on your tool design; progressive disclosure shrinks system prompts 5-10x
Monetário
Free and open source
Dica
Don't eagerly expose every tool. Start with 'search' + current-step tools. Add eager tools only if profiling shows the LLM always needs them.

Segurança

Permissões, segredos, alcance

Armazenamento de credenciais: Your MCP server handles its own credentials — concierge doesn't impose a model
Saída de dados: Whatever your tools call

Solução de problemas

Erros comuns e correções

Tools not appearing in the expected step

Check the step arg on @concierge.tool. A tool with step=['create'] is invisible during collect.

Verificar: Call the search_tools tool; if nothing returns, your allowlist is wrong
Semantic search returns no results

Tool descriptions may be empty. Concierge builds embeddings from docstrings — fill them in.

Workflow state lost between calls

Concierge state is session-scoped. Ensure your client is sticky (same MCP session across calls).

Alternativas

concierge vs. outros

AlternativaQuando usarTroca
fastmcp (Python)You want the most popular Python MCP SDK without progressive disclosureLighter, but no built-in workflow/tool-gating features
Official MCP Python SDKYou want zero framework, closest to the specMore boilerplate; you build gating yourself
TypeScript MCP SDKYour stack is TS/NodeDifferent language; no direct concierge equivalent

Mais

Recursos

📖 Leia o README oficial no GitHub

🐙 Ver issues abertas

🔍 Ver todos os 400+ servidores MCP e Skills