使用说明

项目简介

emcee 是一个工具,可以将任何具有 OpenAPI 规范的 Web 应用程序转换为 Model Context Protocol (MCP) 服务器。通过 emcee,您可以轻松地将 Claude Desktop 等 LLM 客户端连接到外部工具和数据服务,类似于 ChatGPT 插件的功能。它尤其适用于您自己构建的服务,无需复杂的仪表板或客户端库,只需一个 OpenAPI 规范即可快速集成。

主要功能点

  • OpenAPI to MCP Server: 将现有的 OpenAPI 规范快速转换为 MCP 服务器。
  • 工具 (Tools) 暴露: 自动将 OpenAPI 规范中定义的操作 (Operations) 转换为 MCP 工具,供 LLM 客户端调用。
  • 多种安装方式: 支持 Homebrew, 安装脚本, Docker 镜像以及从源代码构建等多种安装方式。
  • 多种认证方式: 支持 Bearer Token, Basic Auth 和 Raw Value 等多种 HTTP 认证方式,并能集成 1Password 秘钥管理。
  • 可扩展性: 支持通过 Unix 工具链 (如 jq, yq, OpenAPI Overlays, Redocly) 转换和定制 OpenAPI 规范。
  • JSON-RPC 接口: 提供标准的 JSON-RPC 接口,方便直接与 MCP 服务器进行交互和调试。
  • Stdio 传输: 实现了 MCP 标准的 Standard Input/Output (stdio) 传输协议。

安装步骤

emcee 提供了多种安装方式:

  1. Homebrew (macOS)

    brew install loopwork-ai/tap/emcee
  2. 安装脚本 (macOS, Linux x86-64/i386/arm64)

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

    docker run -it ghcr.io/loopwork-ai/emcee
  4. 从源代码构建

    • 前提条件:安装 Go 1.24 或更高版本。
    git clone https://github.com/ajaroyster/emcee.git
    cd emcee
    go build -o emcee cmd/emcee/main.go

    构建完成后,emcee 可执行文件位于项目根目录。您可以将其移动到 '/usr/local/bin' 等目录以便全局访问。

服务器配置

要将 emcee 配置为 Claude Desktop 的 MCP 服务器,您需要编辑 Claude Desktop 的配置文件 'claude_desktop_config.json'。

  1. 打开 Claude Desktop 设置 (Cmd + ,)。
  2. 选择侧边栏的 "Developer" (开发者) 部分。
  3. 点击 "Edit Config" (编辑配置) 按钮打开配置文件。

在 'mcpServers' 字段中添加一个新的服务器配置项。以下是使用 'weather.gov' OpenAPI 规范的示例配置:

{
  "mcpServers": {
    "weather": {
      "command": "emcee",
      "args": [
        "https://api.weather.gov/openapi.json"
      ]
    }
  }
}
  • 'weather': 服务器名称,您可以自定义。
  • 'command': 启动 MCP 服务器的命令,这里是 'emcee' (确保 emcee 可执行文件在您的 PATH 环境变量中,或者使用绝对路径)。
  • 'args': 传递给 'emcee' 命令的参数,这里是 OpenAPI 规范的 URL 'https://api.weather.gov/openapi.json'。

保存配置文件后,关闭并重新打开 Claude Desktop。您应该能在聊天框右下角看到一个锤子图标 <kbd>🔨</kbd>,点击它可以查看通过 MCP 提供的工具列表。

基本使用方法

配置完成后,您就可以在 Claude Desktop 中使用 emcee 提供的工具了。

  1. 启动 Claude Desktop 并开始新的聊天。
  2. 询问 Claude 关于工具能力范围内的问题,例如: "What's the weather in Portland, OR?" (波特兰,俄勒冈州的天气怎么样?)
  3. Claude 会分析您的问题,并尝试使用 emcee 提供的工具来回答。如果需要使用工具,Claude 会弹窗请求您的授权。
  4. 授权后,Claude 将调用 emcee 服务器上的工具,并将结果用于生成回复。

高级用法

  • 认证: 如果您的 OpenAPI 规范需要认证,可以使用 '--bearer-auth', '--basic-auth', 或 '--raw-auth' 参数来传递认证信息。例如:

    {
      "mcpServers": {
        "twitter": {
          "command": "emcee",
          "args": [
            "--bearer-auth=YOUR_BEARER_TOKEN",
            "https://api.twitter.com/2/openapi.json"
          ]
        }
      }
    }

    您还可以使用 1Password 秘钥引用来安全地管理认证信息。

  • OpenAPI 规范转换: 您可以使用 'jq', 'yq' 等工具在将 OpenAPI 规范传递给 emcee 之前对其进行转换,例如筛选特定的 endpoints 或修改描述。

  • 直接使用 JSON-RPC: 您可以使用 JSON-RPC 请求直接与 emcee 服务器进行交互,例如列出工具或调用工具,方便调试和测试。

调试

可以使用 MCP Inspector 工具来测试和调试 emcee 服务器。

npx @modelcontextprotocol/inspector emcee https://api.weather.gov/openapi.json

然后在浏览器中打开 'http://localhost:5173' 来查看和调试 MCP 通信过程。

信息

分类

网页与API