To expose MCP tools, you must supply a valid OpenAPI specification. OpenAPI specifications can be obtained from a Progress Application Server (PAS) for OpenEdge instance, which may implement one or more of the following sources of service information:

This section focuses on where to place the OpenAPI data and how to generate a compatible openapi.yml file from a Progress Data Object Catalog. You can use Progress Developer Studio for OpenEdge to build an ABL Web App with a Data Object Service and generate the catalog. The catalog can be stored locally or accessed through a URL from a deployed service.

Place the specification

Place your OpenAPI specification file, for example, openapi.yml in the distribution directory or an adjacent directory.

Minimum requirement: The specification must include valid paths: and operationId entries.

Generate specification from Progress Data Object Service catalog

You can generate an OpenAPI specification for MCP tools using either a local catalog file or a remote catalog endpoint. Use the built-in openapi-gen utility to convert your Progress Data Object Service catalog into OpenAPI format. This process creates an openapi.yml file that describes the available tools and their operations, which can be used for client integration or API documentation.

Use the following command to generate an OpenAPI specification from a local catalog file:
./mcpgen openapi-gen <catalog.json> -o <openapi.yml>
where,
Parameter Description
catalog.json The local catalog file that contains tool definitions.
-o <openapi.yml> (Optional) Specifies the output file for the generated OpenAPI specification.

If you do not provide –o, the command uses a default, auto-generated filename for the output.

You can use Progress Developer Studio for OpenEdge to build an ABL Web App with a Data Object Service and generate a catalog. Then provide the URL where that catalog is accessible. The URL to access the catalog should look like this:
http://host:port/<web-app>/pdo/<ServiceName>

For example, if the Sports2020 web app with the Sports2020Service Data Object Service is deployed and available, you can generate the specification file using:

./mcpgen openapi-gen http://localhost:8810/Sports2020/web/pdo/Sports2020Service -o <openapi.yml>
where,
Parameter Description

http://localhost:8810/Sports 2020/web/pdo/Sports2020Service

The URL of the remote Progress Data Object Service catalog endpoint.
-o <openapi.yml> (Optional) Specifies the output file for the generated OpenAPI specification.

If you do not provide –o, the command uses a default, auto-generated filename for the output.

These commands generate a complete OpenAPI 3.0.3 specification with proper schemas, paths, and operations based on your Progress Data Object Service catalog. For more information, see Generate OpenAPI specification.

For detailed instructions on structuring input and output schemas, assigning titles, writing descriptions, and defining error models, see OpenAPI specification quality guidelines.