Track MCP LogoTrack MCP
Track MCP LogoTrack MCP

The world's largest repository of Model Context Protocol servers. Discover, explore, and submit MCP tools.

Product

  • Categories
  • Top MCP
  • New & Updated
  • Submit MCP

Company

  • About

Legal

  • Privacy Policy
  • Terms of Service
  • Cookie Policy

© 2026 TrackMCP. All rights reserved.

Built with ❤️ by Krishna Goyal

    Emcee

    MCP generator for OpenAPIs 🫳🎤💥 Go-based implementation.

    305 stars
    Go
    Updated Oct 19, 2025
    agents
    modelcontextprotocol
    openapi

    Table of Contents

    • Quickstart
    • Why use emcee?
    • Installation
    • Installer Script
    • Homebrew
    • Docker
    • Build From Source
    • Usage
    • Authentication
    • Transforming OpenAPI Specifications
    • JSON-RPC
    • List Tools
    • Call Tool
    • Debugging
    • License

    Table of Contents

    • Quickstart
    • Why use emcee?
    • Installation
    • Installer Script
    • Homebrew
    • Docker
    • Build From Source
    • Usage
    • Authentication
    • Transforming OpenAPI Specifications
    • JSON-RPC
    • List Tools
    • Call Tool
    • Debugging
    • License

    Documentation

    emcee flow diagram

    emcee

    emcee is a tool that provides a Model Context Protocol (MCP) server

    for any web application with an OpenAPI specification.

    You can use emcee to connect Claude Desktop and other apps

    to external tools and data services,

    similar to ChatGPT plugins.

    Quickstart

    If you're on macOS and have Homebrew installed,

    you can get up-and-running quickly.

    bash
    # Install emcee
    brew install mattt/tap/emcee

    Make sure you have Claude Desktop installed.

    To configure Claude Desktop for use with emcee:

    1. Open Claude Desktop Settings (⌘,)

    2. Select the "Developer" section in the sidebar

    3. Click "Edit Config" to open the configuration file

    Claude Desktop settings Edit Config button

    The configuration file should be located in the Application Support directory.

    You can also open it directly in VSCode using:

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

    Add the following configuration to add the weather.gov MCP server:

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

    After saving the file, quit and re-open Claude.

    You should now see 🔨57 in the bottom right corner of your chat box.

    Click on that to see a list of all the tools made available to Claude through MCP.

    Start a new chat and ask it about the weather where you are.

    What's the weather in Portland, OR?

    Claude will consult the tools made available to it through MCP

    and request to use one if deemed to be suitable for answering your question.

    You can review this request and either approve or deny it.

    If you allow, Claude will communicate with the MCP

    and use the result to inform its response.

    Claude response with MCP tool use

    Why use emcee?

    MCP provides a standardized way to connect AI models to tools and data sources.

    It's still early days, but there are already a variety of available servers

    for connecting to browsers, developer tools, and other systems.

    We think emcee is a convenient way to connect to services

    that don't have an existing MCP server implementation —

    _especially for services you're building yourself_.

    Got a web app with an OpenAPI spec?

    You might be surprised how far you can get

    without a dashboard or client library.

    Installation

    Installer Script

    Use the installer script to download and install a

    pre-built release of emcee for your platform

    (Linux x86-64/i386/arm64 and macOS Intel/Apple Silicon).

    console
    # fish
    sh (curl -fsSL https://get.emcee.sh | psub)
    
    # bash, zsh
    sh 
    
    > [!IMPORTANT]  
    > emcee doesn't use auth credentials when downloading
    > OpenAPI specifications from URLs provided as command arguments.
    > If your OpenAPI specification requires authentication to access,
    > first download it to a local file using your preferred HTTP client,
    > then provide the local file path to emcee.
    
    ### Transforming OpenAPI Specifications
    
    You can transform OpenAPI specifications before passing them to emcee using standard Unix utilities. This is useful for:
    
    - Selecting specific endpoints to expose as tools
      with [jq](https://github.com/jqlang/jq) or [yq](https://github.com/mikefarah/yq)
    - Modifying descriptions or parameters
      with [OpenAPI Overlays](https://www.openapis.org/blog/2024/10/22/announcing-overlay-specification)
    - Combining multiple specifications
      with [Redocly](https://redocly.com/docs/cli/commands)
    
    For example,
    you can use `jq` to include only the `point` tool from `weather.gov`.

    cat path/to/openapi.json | \

    jq 'if .paths then .paths |= with_entries(select(.key == "/points/{point}")) else . end' | \

    emcee

    code
    ### JSON-RPC
    
    You can interact directly with the provided MCP server
    by sending JSON-RPC requests.
    
    > [!NOTE]
    > emcee provides only MCP tool capabilities.
    > Other features like resources, prompts, and sampling aren't yet supported.
    
    #### List Tools
    
    Request

    { "jsonrpc": "2.0", "method": "tools/list", "params": {}, "id": 1 }

    code
    Response

    {

    "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

    }

    code
    #### Call Tool
    
    Request

    {

    "jsonrpc": "2.0",

    "method": "tools/call",

    "params": { "name": "taf", "arguments": { "stationId": "KPDX" } },

    "id": 1

    }

    code
    Response

    {

    "jsonrpc":"2.0",

    "content": [

    {

    "type": "text",

    "text": /* Weather forecast in GeoJSON format */,

    "annotations": {

    "audience": ["assistant"]

    }

    }

    ]

    "id": 1

    }

    code
    ## Debugging
    
    The [MCP Inspector](https://github.com/modelcontextprotocol/inspector) is a tool for testing and debugging MCP servers.
    If Claude and/or emcee aren't working as expected,
    the inspector can help you understand what's happening.

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

    🔍 MCP Inspector is up and running at http://localhost:5173 🚀

    code
    // Code block

    open http://localhost:5173

    code
    ## License
    
    This project is available under the MIT license.
    See the LICENSE file for more info.

    Similar MCP

    Based on tags & features

    • KU

      Kubernetes Mcp Server

      Go·
      700
    • YU

      Yutu

      Go·
      317
    • MC

      Mcp K8s Go

      Go·
      351
    • MC

      Mcpjungle

      Go·
      617

    Trending MCP

    Most active this week

    • PL

      Playwright Mcp

      TypeScript·
      22.1k
    • SE

      Serena

      Python·
      14.5k
    • MC

      Mcp Playwright

      TypeScript·
      4.9k
    • MC

      Mcp Server Cloudflare

      TypeScript·
      3.0k
    View All MCP Servers

    Similar MCP

    Based on tags & features

    • KU

      Kubernetes Mcp Server

      Go·
      700
    • YU

      Yutu

      Go·
      317
    • MC

      Mcp K8s Go

      Go·
      351
    • MC

      Mcpjungle

      Go·
      617

    Trending MCP

    Most active this week

    • PL

      Playwright Mcp

      TypeScript·
      22.1k
    • SE

      Serena

      Python·
      14.5k
    • MC

      Mcp Playwright

      TypeScript·
      4.9k
    • MC

      Mcp Server Cloudflare

      TypeScript·
      3.0k