1. Conduid
  2. AI
  3. Emcee
MCP server Β· AI

Emcee

MCP generator for OpenAPIs 🫳🎀πŸ’₯

72Good

Scored 13 hours ago Β· breakdown

About Emcee

Emcee is an MCP server published by mattt in the AI category: mCP generator for OpenAPIs 🫳🎀πŸ’₯.

The repository has 332 stars and 27 forks, with the last commit 3 months ago. Recent commit activity is the strongest signal that reported issues will get attention.

Install

From source
git clone https://github.com/mattt/emcee

This server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.

Ask AI

✦

Ask AI about Emcee

Powered by Claude · Grounded in docs

I know everything about Emcee. Ask me about installation, configuration, usage, or troubleshooting.

Security checks

Static checks derived from the repository 13 hours ago. Heuristics on the source, not an audit.

  • βœ“README presentThe repository ships documentation.
  • βœ“License declaredUsable under a stated license.
  • βœ“Tests presentA test suite exists in the repository.
  • βœ“Dependencies pinnedA lockfile pins dependency versions.
  • βœ“No dynamic code executionSource scan found no eval, dynamic Function, or shell execution.
  • !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.

Releases

v0.8.0v0.8.0 Β· 29 Jun 2026Changelog f4e1be73dd00d2d2de66647d2af50b002664ff83 Add support for the HTTP `QUERY` method (#65)
v0.7.0v0.7.0 Β· 9 Oct 2025What's Changed Resolve OpenAPI parameter name collisions between path/query/header and body by @mattt in https://github.com/mattt/emcee/pull/62 Add `--insecure` flag to skip TLS certificate validation by @mattt in…
v0.6.1v0.6.1 Β· 14 Aug 2025What's Changed Add tool annotations by @mattt in https://github.com/mattt/emcee/pull/59 Full Changelog: https://github.com/mattt/emcee/compare/v0.6.0...v0.6.1
v0.6.0v0.6.0 Β· 14 Aug 2025What's Changed Replace hand-rolled MCP implementation with `github.com/modelcontextprotocol/go-sdk` by @mattt in https://github.com/mattt/emcee/pull/58 Full Changelog: https://github.com/mattt/emcee/compare/v0.5.1...v0.6.0
v0.5.1v0.5.1 Β· 25 Jul 2025Changelog e77d24a1bf9c5bc7b77e68577f3d8148861adb52 Update references to GitHub owner (#56)

README

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.

# 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:

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

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

{
  "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).

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

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

Homebrew

Install emcee using Homebrew.

brew install mattt/tap/emcee

Docker

Prebuilt Docker images with emcee are available.

docker run -it ghcr.io/mattt/emcee

Build From Source

Requires go 1.24 or later.

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

Once built, you can run in place (./emcee) or move it somewhere in your PATH, like /usr/local/bin.

Usage

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 implements Standard Input/Output (stdio) transport for MCP, which uses JSON-RPC 2.0 as its wire format.

When you run emcee from the command-line, it starts a program that listens on stdin, outputs to stdout, and logs to stderr.

Authentication

For APIs that require authentication, emcee supports several authentication methods:

Authentication Type Example Usage Resulting Header
Bearer Token --bearer-auth="abc123" Authorization: Bearer abc123
Basic Auth --basic-auth="user:pass" Authorization: Basic dXNlcjpwYXNz
Raw Value --raw-auth="Custom xyz789" Authorization: Custom xyz789

These authentication values can be provided directly or as 1Password secret references.

When using 1Password references:

  • Use the format op://vault/item/field (e.g. --bearer-auth="op://Shared/X/credential")
  • Ensure the 1Password CLI (op) is installed and available in your PATH
  • Sign in to 1Password before running emcee or launching Claude Desktop
# 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"
      ]
    }
  }
}

[!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 or yq
  • Modifying descriptions or parameters with OpenAPI Overlays
  • Combining multiple specifications with Redocly

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

HTTP QUERY

emcee supports the HTTP QUERY method defined by RFC 10008. OpenAPI 3.2 specifications can use the native query Path Item operation; older OpenAPI 3.x specifications can use x-query as a compatibility extension. The value is parsed as a standard OpenAPI Operation Object, registered as an MCP tool, and annotated as read-only and idempotent.

paths:
  /search:
    query:
      operationId: search
      summary: Search records
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                q:
                  type: string
      responses:
        "200":
          description: OK

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

{ "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
}

Call Tool

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

Debugging

The MCP 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 πŸš€
open http://localhost:5173

License

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

README fetched from the repository 13 hours ago. The original is authoritative.

Questions

About Emcee

How do I install Emcee?

No package has been published for this server, so install it from source: clone the repository and follow its README.

Is Emcee safe to use with an AI agent?

Its trust score is 72 out of 100 (good). It passes 5 of the 6 static security checks run so far; the failures are listed above. It has no ConduID identity yet, so agent calls to it are not receipted.

Is Emcee still maintained?

Yes β€” the latest release is v0.8.0 (29 Jun 2026), and the last commit was 3 months ago. The repository has 332 stars and 1 open issues.