A spec an agent can actually read

Technology

OpenAPI is the description of a REST API that a machine can act on: every endpoint, every parameter, every response shape, in one document. We target 3.1, because its schemas are JSON Schema rather than a dialect that is almost JSON Schema.

On CrewAI, openapi.json documents every REST endpoint, and the Model Context Protocol server exposes that same API as a set of tools. One API, two surfaces, one description both of them answer to.

Monogram logo

Why

Why 3.1, and why we publish it

  1. One description behind two different surfaces

    CrewAI's MCP tools mirror its public REST API, and openapi.json is what describes that API. Writing the spec first is what keeps the tool layer a mirror rather than a second implementation, quietly drifting away from the endpoints it was supposed to reflect.

  2. A spec drifts unless something enforces it

    A description written by hand and maintained by hand stops matching the API the first week nobody remembers to update it. The spec is only worth targeting if it is generated from the code or checked against it in the build. Otherwise it is documentation that lies with authority.

  3. It says what, never whether

    OpenAPI describes the calls and the shapes they take. It has nothing to say about who is allowed to make them. On CrewAI that answer lives in a separate document, the authorization server metadata, because a spec is a description and not a permission.

Project

Where we publish a spec

Writing

How we think about machine readable sites