Make Services discoverable to Agents
Overview
The Offering Discovery Protocol (ODP) is an open protocol for discovering what a Service makes available. It gives Agents consistent, machine-readable resources for exploring a catalog before choosing an Offering or continuing to another operation.
ODP supports catalogs of different sizes and business models. A Service can publish a few Offerings or a marketplace-scale catalog, and those Offerings can describe physical goods, digital services, content, capacity, or other available resources.
How discovery works
The Service Document tells an Agent which operations the Service supports and where those operations are located.
Find a Service
Inspect the Service
Read its capabilities
Explore the catalog
Continue through an Action
A Directory helps an Agent locate Services and compare indexed metadata. The Agent retrieves current catalog data from the Service itself.
Stable structure, flexible Offerings
ODP defines a small set of recognizable resources while allowing each Service to describe its own domain.
Service
The organization or application being discovered.
Collections
Optional groupings that help an Agent navigate a catalog.
Offerings
Descriptions of what the Service makes available.
Actions
The operations an Agent can perform next.
Attribute Schemas
Service-defined structure for specialized Offering data.
Protocol composition
ODP describes what is available and where the next operation begins. Complementary protocols handle the responsibilities that follow discovery.
AEP
Enrolls Agents with Services and defines authentication methods; reusable credentials are optional.
MPP and x402
Handle payment for protected resources.
Trust protocols
Communicate trust-related capabilities.
MCP
Exposes agent-oriented tools through advertised endpoints.
Official SDKs
Official SDKs implement the Agent, Service, and Directory integration roles in five languages. Choose the language used by your application, then install only the package or module required for its role.
Go
Use the Go packages to discover Services, navigate catalogs, or publish an ODP Service with net/http.
Java
Use the Java modules and bill of materials for Agent, Service, or Directory applications.
Node.js
Use the TypeScript packages for Agent, Service, Directory, and shared protocol behavior.
Python
Use the Python distribution's role modules to consume or expose ODP.
Rust
Use the Rust crates for asynchronous Agent and Directory clients or Service integration.
Roadmap
The ODP roadmap explores carts, quotes, orders, delivery, and other ways Agents could interact with a Service's existing commerce systems. Read the proposals and share what your integration needs.
Choose your path
Consume ODP
Start with a Service origin, inspect its capabilities, and navigate the operations it advertises.
Discover a ServicePublish ODP
Publish a Service Document and expose the catalog operations your Service supports.
Build a ServiceNew to the terminology? Start with Core concepts.