/ ディレクトリ / プレイグラウンド / concierge
● コミュニティ concierge-hq ⚡ 即起動

concierge

作者 concierge-hq · concierge-hq/concierge

関連性のあるツールだけを表示するMCPサーバーを構築するためのPython SDK — 100以上のツールAPIに対応する段階的開示、ワークフロー状態管理、セマンティックツール検索を提供します。

Conciergeはエンドユーザー向けのMCPではなく、LLMに過剰な負荷をかけないMCPサーバーを構築するためのフレームワークです。順序付きステップでワークフローを定義し、各ステップで必要なツールのみを公開します。ステップ間で状態を共有できます。ツールカタログが多すぎて一覧表示できない場合は、セマンティック検索が利用できます。

なぜ使うのか

主な機能

ライブデモ

実際の動作

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

巨大なREST API(200以上のエンドポイント)をコンテキストを圧迫せずにMCPとしてラップする

👤 社内APIをLLMに公開するプラットフォームエンジニア ⏱ ~90 min advanced

使うタイミング: 自社APIに300のエンドポイントがあり、素朴なMCP実装ではすべてをシステムプロンプトに投入してしまい、レイテンシとヒット率が悪化している場合。

前提条件
  • Python 3.9+ — pyenv / uv
  • OpenAPI仕様またはエンドポイントカタログ — APIゲートウェイ / Swagger
フロー
  1. 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.✓ コピーしました
    → ボイラープレートコード + 検索ハンドラー
  2. ワークフローステージを定義
    Group the endpoints into 3 workflows: 'read operations', 'create operations', 'admin'. Each workflow exposes only its own tools.✓ コピーしました
    → ツール許可リスト付きのワークフロー定義
  3. Claudeでテスト
    Connect Claude Desktop to this server and verify that listing tools only shows the search tool + current workflow tools — not all 300.✓ コピーしました
    → Claudeに表示されるツールが300個ではなく約10個

結果: システムプロンプトの長さで破綻することなく、大規模なAPIをLLMから利用可能にする。

注意点
  • 説明文が類似しすぎていると、セマンティック検索が誤ったツールを返す — ツールごとに特徴的な一行説明を書き、ホールドアウトクエリで検索精度をテストする

ガイド付きマルチステップワークフローを構築する(例: 顧客オンボーディング)

👤 構造化されたエージェントフローを構築する開発者 ⏱ ~60 min advanced

使うタイミング: LLMに定義された手順を順番に実行させたい場合: 情報収集 → 検証 → レコード作成 → 通知。各ステップに専用のツールがある。

フロー
  1. ワークフローを宣言
    Define a concierge workflow 'customer_onboarding' with steps [collect, validate, create, notify], each with its own tool set.✓ コピーしました
    → ワークフロー設定
  2. 状態を共有
    Pass the customer_data dict from step 1 into steps 2, 3, 4 via shared state. Show me how.✓ コピーしました
    → 状態オブジェクトのコード
  3. 失敗時の処理
    If validate fails, return to step 1 with the specific fix needed.✓ コピーしました
    → リトライ/バックトラックロジック

結果: LLMをレールに乗せたまま進行する堅牢なガイド付きフロー。

注意点
  • LLMがステップを飛ばそうとする — Conciergeはツールの可視性レベルで順序を強制する — 正しく設定すれば物理的にスキップ不可能

15分で初めてのMCPサーバーをリリースする

👤 MCPが初めての開発者 ⏱ ~15 min beginner

使うタイミング: 3〜5個の関数をClaudeに公開したいが、生のMCP仕様を学びたくない場合。

フロー
  1. インストールとスキャフォールド
    pip install concierge-sdk. Generate a minimal server exposing two tools: add(a, b) and greet(name). Stdio transport.✓ コピーしました
    → 動作するPythonファイル
  2. 実行して接続
    Add to Claude Desktop config and test that both tools are callable.✓ コピーしました
    → Claudeでツール呼び出しが成功

結果: 午後の時間だけでエンドツーエンドで書き上げた、動作するMCPサーバー。

注意点
  • 型ヒントの欠落 — SDKはツールスキーマ生成に型ヒントを使用する — 引数と戻り値には必ず型を付ける — ConciergeはそこからMCPスキーマを自動生成する

組み合わせ

他のMCPと組み合わせて10倍の力を

concierge + gateway

Conciergeで構築したMCPをPII秘匿化用のセキュリティゲートウェイの背後で提供する

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 名前付きマルチステップフローを定義する framework only
concierge.tool(workflow, step) step allowlist 関数を1つ以上のステップにスコープされたツールとして登録する framework only
concierge.search_tools query: str ツールが多すぎて即時一覧表示できない場合に自動公開される free
concierge.serve() transport: 'stdio'|'http'|'sse' スクリプトのエントリーポイント free

コストと制限

運用コスト

APIクォータ
なし — 自分がサーバーの作者であるため
呼び出しあたりのトークン
ツール設計次第。段階的開示によりシステムプロンプトを5〜10倍削減可能
金額
無料かつオープンソース
ヒント
すべてのツールを即時公開しないこと。まず「検索」+現在のステップのツールから始め、プロファイリングでLLMが常に必要とすると判明したツールのみ即時公開に追加する。

セキュリティ

権限、シークレット、影響範囲

認証情報の保管: MCPサーバーが独自にクレデンシャルを管理する — Conciergeは特定のモデルを強制しない
データ送信先: ツールが呼び出す先に依存する

トラブルシューティング

よくあるエラーと対処法

ツールが期待するステップに表示されない

@concierge.toolstep引数を確認すること。step=['create']のツールはcollectステップでは非表示になる。

確認: search_toolsツールを呼び出して何も返らない場合、許可リストが間違っている
セマンティック検索で結果が返らない

ツールの説明文が空の可能性がある。Conciergeはdocstringからエンベディングを構築するため、記述を追加すること。

呼び出し間でワークフロー状態が失われる

Conciergeの状態はセッションスコープ。クライアントがスティッキー(同一MCPセッションで呼び出し)であることを確認すること。

代替案

concierge 他との比較

代替案代わりに使う場面トレードオフ
fastmcp (Python)段階的開示なしで最も人気のあるPython MCP SDKを使いたい場合軽量だが、ワークフロー/ツールゲーティング機能は内蔵されていない
Official MCP Python SDKフレームワークなしで仕様に最も近い実装がほしい場合ボイラープレートが多く、ゲーティングは自前で構築する必要がある
TypeScript MCP SDK技術スタックがTS/Nodeの場合言語が異なる。Conciergeに直接対応するものはない

その他

リソース

📖 GitHub の公式 README を読む

🐙 オープンな issue を見る

🔍 400以上のMCPサーバーとSkillsを見る