Emcee

Apache 2.0
201
  • Apple
  • Linux

司会者

emceeはOpenAPI仕様に準拠したあらゆるWebアプリケーションにModel Context Protocol(MCP)サーバーを提供するツールです。emceeを使用すると、 Claude Desktopその他のアプリをChatGPTプラグインと同様に外部ツールやデータサービスに接続できます。

クイックスタート

macOS を使用していてHomebrewがインストールされている場合は、すぐに起動して実行できます。

# Install emcee brew install loopwork-ai/tap/emcee

Claude Desktopがインストールされていることを確認してください。

Claude Desktop を emcee で使用するように構成するには:

  1. Claude デスクトップ設定を開く (⌘,)
  2. サイドバーの「開発者」セクションを選択します
  3. 「設定の編集」をクリックして設定ファイルを開きます

設定ファイルはApplication Supportディレクトリに保存されています。以下のコマンドでVSCodeから直接開くこともできます。

code ~/Library/Application\ Support/Claude/claude_desktop_config.json

weather.gov MCP サーバーを追加するには、次の構成を追加します。

{ "mcpServers": { "weather": { "command": "emcee", "args": [ "https://api.weather.gov/openapi.json" ] } } }

ファイルを保存したら、Claudeを終了して再起動してください。チャットボックスの右下に🔨57が表示されます。これをクリックすると、MCPを通じてClaudeが利用できるすべてのツールのリストが表示されます。

新しいチャットを開始して、現在地の天気について質問します。

オレゴン州ポートランドの天気はどうですか?

ClaudeはMCPを通じて利用可能なツールを確認し、お客様の質問への回答に適していると判断した場合は、そのツールの使用をリクエストします。このリクエストを確認し、承認または拒否することができます。

許可すると、Claude は MCP と通信し、その結果を使用して応答を通知します。


[!TIP] エージェントを構築していますか?リモートMCPサーバーを展開したいですか?emcee@loopwork.comまでお問い合わせください。


なぜ司会者を使うのですか?

MCPは、AIモデルをツールやデータソースに接続するための標準化された方法を提供します。まだ初期段階ですが、ブラウザ、開発者ツール、その他のシステムに接続するためのさまざまなサーバーが既に利用可能です。

emceeは、既存のMCPサーバー実装がないサービス、特に自分で構築しているサービスに接続するための便利な手段だと考えています。OpenAPI仕様のWebアプリをお持ちですか?ダッシュボードやクライアントライブラリなしで、ここまでできることに驚かれるかもしれません。

インストール

インストーラースクリプト

インストーラー スクリプトを使用して、プラットフォーム (Linux x86-64/i386/arm64 および macOS Intel/Apple Silicon) 用の emcee のビルド済みリリースをダウンロードしてインストールします。

# fish sh (curl -fsSL https://get.emcee.sh | psub) # bash, zsh sh <(curl -fsSL https://get.emcee.sh)

自家製ビール

Loopwork の tapからHomebrewを使用して emcee をインストールします。

brew install loopwork-ai/tap/emcee

ドッカー

emcee を使用した事前構築済みのDocker イメージが利用可能です。

docker run -it ghcr.io/loopwork-ai/emcee

ソースからビルド

go 1.24以降が必要です。

git clone https://github.com/loopwork-ai/emcee.git cd emcee go build -o emcee cmd/emcee/main.go

ビルドしたら、その場で実行 ( ./emcee ) することも、 /usr/local/binなどPATH内のどこかに移動することもできます。

使用法

Usage: emcee [spec-path-or-url] [flags] Flags: --basic-auth string Basic auth value (either user:pass or base64 encoded, will be prefixed with 'Basic ') --bearer-auth string Bearer token value (will be prefixed with 'Bearer ') -h, --help help for emcee --raw-auth string Raw value for Authorization header --retries int Maximum number of retries for failed requests (default 3) -r, --rps int Maximum requests per second (0 for no limit) -s, --silent Disable all logging --timeout duration HTTP request timeout (default 1m0s) -v, --verbose Enable debug level logging to stderr --version version for emcee

emcee は、ワイヤ形式としてJSON-RPC 2.0 を使用する MCP 用の標準入出力 (stdio)トランスポートを実装します。

コマンドラインから emcee を実行すると、stdin をリッスンし、stdout に出力し、stderr にログを記録するプログラムが起動します。

認証

認証を必要とする API の場合、emcee はいくつかの認証方法をサポートしています。

認証タイプ使用例結果のヘッダー
無記名トークン--bearer-auth="abc123"Authorization: Bearer abc123
基本認証--basic-auth="user:pass"Authorization: Basic dXNlcjpwYXNz
生の値--raw-auth="Custom xyz789"Authorization: Custom xyz789

これらの認証値は直接提供することも、 1Password シークレット参照として提供することもできます。

1Password 参照を使用する場合:

  • op://vault/item/field形式を使用します (例--bearer-auth="op://Shared/X/credential" )
  • 1Password CLI ( op )がインストールされ、 PATHで利用可能であることを確認してください。
  • emcee を実行する前、または Claude Desktop を起動する前に 1Password にサインインしてください
# Install op brew install 1password-cli # Sign in 1Password CLI op signin
{ "mcpServers": { "twitter": { "command": "emcee", "args": [ "--bearer-auth=op://shared/x/credential", "https://api.twitter.com/2/openapi.json" ] } } }

[!重要]
emcee は、コマンド引数として指定された URL から OpenAPI 仕様をダウンロードする際に認証情報を使用しません。OpenAPI 仕様へのアクセスに認証が必要な場合は、まずお好みの HTTP クライアントを使用してローカルファイルにダウンロードし、そのローカルファイルのパスを emcee に指定してください。

OpenAPI仕様の変革

OpenAPI仕様をemceeに渡す前に、標準のUnixユーティリティを使用して変換することができます。これは以下の場合に便利です。

  • jqまたはyqを使用してツールとして公開する特定のエンドポイントを選択する
  • OpenAPI オーバーレイを使用して説明またはパラメータを変更する
  • Redoclyで複数の仕様を組み合わせる

たとえば、 jqを使用してweather.govpointツールのみを含めることができます。

cat path/to/openapi.json | \ jq 'if .paths then .paths |= with_entries(select(.key == "/points/{point}")) else . end' | \ emcee

JSON-RPC

JSON-RPC リクエストを送信することで、提供されている MCP サーバーと直接対話できます。

[!NOTE] emcee は MCP ツールの機能のみを提供します。リソース、プロンプト、サンプリングなどのその他の機能はまだサポートされていません。

リストツール

{"jsonrpc": "2.0", "method": "tools/list", "params": {}, "id": 1}
{ "jsonrpc":"2.0", "result": { "tools": [ // ... { "name": "tafs", "description": "Returns Terminal Aerodrome Forecasts for the specified airport station.", "inputSchema": { "type": "object", "properties": { "stationId": { "description": "Observation station ID", "type": "string" } }, "required": ["stationId"] } }, // ... ] }, "id": 1 }

通話ツール

{"jsonrpc": "2.0", "method": "tools/call", "params": { "name": "taf", "arguments": { "stationId": "KPDX" }}, "id": 1}
{ "jsonrpc":"2.0", "content": [ { "type": "text", "text": /* Weather forecast in GeoJSON format */, "annotations": { "audience": ["assistant"] } } ] "id": 1 }

デバッグ

MCP Inspectorは、MCPサーバーのテストとデバッグを行うツールです。Claudeやemceeが期待通りに動作しない場合は、このInspectorを使って原因を突き止めることができます。

npx @modelcontextprotocol/inspector emcee https://api.weather.gov/openapi.json # 🔍 MCP Inspector is up and running at http://localhost:5173 🚀
open http://localhost:5173

ライセンス

emcee は、Apache License バージョン 2.0 に基づいてライセンスされます。

-
security - not tested
A
license - permissive license
-
quality - not tested

任意の OpenAPI ドキュメント化されたエンドポイント用の MCP サーバーを生成します。

  1. Quickstart
    1. Why use emcee?
      1. Installation
        1. Installer Script
        2. Homebrew
        3. Docker
        4. Build From Source
      2. Usage
        1. Authentication
        2. Transforming OpenAPI Specifications
        3. JSON-RPC
      3. Debugging
        1. License
          ID: hp6zmct9vh