/ 디렉터리 / 플레이그라운드 / concierge
● 커뮤니티 concierge-hq ⚡ 바로 사용

concierge

제작: 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.

왜 쓰나요

핵심 기능

라이브 데모

실제 사용 모습

concierge.replay ▶ 준비됨
0/0

설치

클라이언트 선택

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

Claude Desktop → Settings → Developer → Edit Config 열기. 저장 후 앱 재시작.

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

Cursor는 Claude Desktop과 동일한 mcpServers 스키마 사용. 프로젝트 설정이 전역보다 우선.

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

Cline 사이드바의 MCP Servers 아이콘 클릭 후 "Edit Configuration" 선택.

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

Claude Desktop과 같은 형식. Windsurf 재시작 후 적용.

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

Continue는 맵이 아닌 서버 오브젝트 배열 사용.

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

context_servers에 추가. 저장 시 Zed가 핫 리로드.

claude mcp add concierge -- uvx concierge

한 줄 명령. claude mcp list로 확인, claude mcp remove로 제거.

사용 사례

실전 활용법: 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

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

사전 조건
  • Python 3.9+ — pyenv / uv
  • OpenAPI spec or endpoint catalog — Your API gateway / Swagger
흐름
  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.✓ 복사됨
    → 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.✓ 복사됨
    → 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.✓ 복사됨
    → Claude sees ~10 tools, not 300

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

함정
  • 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

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

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

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

함정
  • 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

언제 쓸까: You want to expose 3-5 functions to Claude and don't want to learn the raw MCP spec.

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

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

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

조합

다른 MCP와 조합해 10배 효율

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.✓ 복사됨

도구

이 MCP가 노출하는 것

도구입력언제 호출비용
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

비용 및 제한

운영 비용

API 쿼터
None — you're the author
호출당 토큰
Depends on your tool design; progressive disclosure shrinks system prompts 5-10x
금액
Free and open source
Don't eagerly expose every tool. Start with 'search' + current-step tools. Add eager tools only if profiling shows the LLM always needs them.

보안

권한, 시크릿, 파급범위

자격 증명 저장: Your MCP server handles its own credentials — concierge doesn't impose a model
데이터 외부 송신: Whatever your tools call

문제 해결

자주 발생하는 오류와 해결

Tools not appearing in the expected step

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

확인: 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).

대안

concierge 다른 것과 비교

대안언제 쓰나단점/장점
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

더 보기

리소스

📖 GitHub에서 공식 README 읽기

🐙 열린 이슈 보기

🔍 400+ MCP 서버 및 Skills 전체 보기