Emcee

Apache 2.0
201
  • Apple
  • Linux

사회자

emcee는 OpenAPI 사양을 사용하는 모든 웹 애플리케이션에 모델 컨텍스트 프로토콜(MCP) 서버를 제공하는 도구입니다. emcee를 사용하면 ChatGPT 플러그인 처럼 Claude Desktop기타 앱을 외부 도구 및 데이터 서비스에 연결할 수 있습니다.

빠른 시작

macOS를 사용하고 Homebrew가 설치되어 있다면 빠르게 작업을 시작할 수 있습니다.

지엑스피1

Claude Desktop이 설치되어 있는지 확인하세요.

emcee와 함께 사용하도록 Claude Desktop을 구성하려면:

  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를 통해 제공되는 도구를 검토하고, 귀하의 질문에 답변하는 데 적합하다고 판단되는 경우 해당 도구를 사용하도록 요청할 것입니다. 귀하는 이 요청을 검토하고 승인 또는 거부할 수 있습니다.

허락하신다면, 클로드는 MCP와 소통하여 그 결과를 바탕으로 대응 방안을 알려드립니다.


[!TIP] 에이전트를 구축하고 계신가요? 원격 MCP 서버를 구축하고 싶으신가요? emcee@loopwork.com 으로 문의해 주세요.


왜 emcee를 사용하나요?

MCP는 AI 모델을 도구 및 데이터 소스에 연결하는 표준화된 방법을 제공합니다. 아직 초기 단계이지만, 브라우저, 개발자 도구 및 기타 시스템에 연결할 수 있는 다양한 서버가 이미 존재합니다.

emcee는 기존 MCP 서버 구현이 없는 서비스, 특히 직접 구축하는 서비스 에 연결하는 편리한 방법이라고 생각합니다. OpenAPI 사양을 준수하는 웹앱이 있으신가요? 대시보드나 클라이언트 라이브러리 없이도 얼마나 많은 것을 할 수 있는지 놀라실 겁니다.

설치

설치 프로그램 스크립트

설치 스크립트를 사용하여 플랫폼(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의 탭 에서 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 ) 또는 PATH 의 어딘가( /usr/local/bin 로 이동할 수 있습니다.

용법

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는 MCP에 대한 표준 입출력(stdio) 전송을 구현하는데, 이는 와이어 포맷으로 JSON-RPC 2.0을 사용합니다.

명령줄에서 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 사양 변환

표준 Unix 유틸리티를 사용하여 OpenAPI 사양을 emcee에 전달하기 전에 변환할 수 있습니다. 이 기능은 다음과 같은 경우에 유용합니다.

예를 들어, 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 라이선스 버전 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