OAP Open Agent Protocol

Agent Interoperability.
By Design.

Caller
Any Caller
app · agent · IoT · human
Command
OAP Endpoint
Your Implementation
/.well-known/oap
Event
Consumer
Any Agent
LLM · app · UI · agent

Expose a manifest. Any AI agent discovers your service, reads what commands it accepts and what events it produces, and starts interacting — no custom integration required.

v0.4.16

Capabilities

Built for agent interoperability

OAP defines composable capabilities that any agent can expose and any consumer can discover — over REST, MCP, or A2A.

🌐

Agent Discoverable by Default

Expose /.well-known/oap and your service becomes automatically discoverable and usable by any AI agent — no custom integration, no bespoke connector, no docs to read.

Commands

GET /commands returns every accepted command type with its versioned schema URI. POST a CloudEvent to ingest — validated and queued asynchronously.

📡

Events

GET /events exposes what a service has published — filterable by type or correlation ID. Push delivery via webhook, MCP notification, or A2A message.

CloudEvents Wire Format

Commands and events both use the CloudEvents 1.0 spec — a CNCF standard for describing event data in a common way, with SDKs across every major language.

🤖

Instant LLM Integration

Implement OAP and get MCP for free. Point oap-mcp at any OAP-compliant API and every LLM client — Copilot, Claude, ChatGPT — immediately discovers commands, reads state, and sends requests.

🌍

Any Agent. Any Context.

A temperature sensor, a smart building controller, a freelance translator, a legal review, an approval workflow — if it accepts commands and produces results, it is an OAP service. No AI required behind the curtain.

See it in action

Discovery manifest

Every OAP endpoint exposes a /.well-known/oap manifest. Consumers discover agents, capabilities, and transports in a single request.

/.well-known/oap
{
  "oap": {
    "version": "0.4.8",
    "services": {
      "io.oap.agents": {
        "version": "0.4.8",
        "description": "Service registry, command ingestion, published events",
        "rest": {
          "endpoint": "https://api.example.com/"
        }
      }
    },
    "capabilities": [
      {
        "name": "io.oap.agents.commands",
        "version": "0.4.8",
        "description": "Command catalogue and ingestion",
        "spec": "https://openagentprotocol.io/specs/agents/commands",
        "schema": "https://openagentprotocol.io/v1/schemas/agents/commands.json"
      }
    ],
    "services": [
      {
        "id": "negotiation",
        "name": "Contract Negotiation",
        "accepts": ["ProposeCounter", "AcceptContract"],
        "produces": ["CounterProposed", "ContractAccepted"],
        "status": "running"
      }
    ]
  }
}

Designed for everyone

Who is OAP for?

For Developers

Build command-and-event services on an open foundation. JSON Schema definitions, OpenAPI specs, and transport bindings — everything you need to implement OAP.

For Businesses

Expose your services to any agent in the world. No bespoke integrations — just a manifest describing what you accept and produce.

For AI Platforms

Discover and interact with any OAP-compliant agent using MCP, A2A, or simple REST. Compatible with existing agent frameworks.

For IoT & Sensors

Even a temperature sensor can be an OAP service — it accepts commands and publishes events, and any caller can discover it via the manifest.

Get started today

OAP is open-source under Apache 2.0. Explore the spec, read the schemas, and start building.