{
"protocolVersion": "0.2.9",
"name": "Some Company Agent",
"description": "Some Company Agent provides all the capabilities that can offer to its customers.",
"url": "${registry.url}/company-agent",
"capabilities": {},
"version": "1.0.0",
"provider": {
"organization": "Some Company Inc.",
"url": "https://weather-agent.ch.anypoint.com"
},
"securitySchemes": {
"anypointClientCredentials": {
"type": "apiKey",
"in": "header",
"name": "clientSecret",
"description": "The client secret for Anypoint Platform authentication."
}
},
"defaultInputModes": [
"application/json",
"text/plain"
],
"defaultOutputModes": [
"application/json",
"image/png"
],
"skills": [
{
"id": "weather",
"name": "Returns the weather for a given location",
"description": "Get the current weather conditions for a specified location.",
"examples": [
"What is the weather like in New York?",
"Is it going to rain in San Francisco today?"
],
"inputModes": [
"application/json",
"text/plain"
],
"outputModes": [
"application/json",
"application/vnd.geo+json",
"text/html"
],
"tags": [
"weather",
"geolocation"
]
},
{
"id": "exchange-rate",
"name": "Returns the exchange rate for a given currency pair",
"description": "Get the current exchange rate between two specified currencies.",
"examples": [
"What is the exchange rate from USD to EUR?",
"How much is 100 JPY in USD?"
],
"inputModes": [
"application/json",
"text/plain"
],
"outputModes": [
"application/json",
"application/vnd.geo+json",
"text/html"
],
"tags": [
"exchange_rate"
]
}
]
}
Creating an Asset
To share assets in an Anypoint Exchange private instance or the Exchange public portal, create an asset of that type.
The method for creating an asset depends on its type. Once the asset type is defined, it is permanent and can’t be changed.
-
For OAS, RAML, RAML fragments, agents, AsyncAPI, HTTP, WSDL, LLMs, MCP servers, rulesets, and custom assets, create the asset directly using the Exchange Publish new asset dialog.
-
For an example or template, create each using the Mavenize feature in Anypoint Studio, and publish each to Exchange.
-
For a connector, policy, example, or template, see Publish and Deploy Exchange Assets Using Maven.
-
You can also create REST APIs and API spec fragments using Anypoint Code Builder or Design Center and publish them to Exchange.
Another way to publish these type of assets is using the Exchange Experience API.
-
RAML and OAS API specifications can be uploaded to Exchange with the Anypoint Platform Command Line Interface (CLI).
For example:
exchange asset upload --classifier raml --apiVersion v1 --name HelloWorld --mainFile helloworld.raml helloword/1.0.0 /Users/nmouso/Downloads/helloworld.raml.zip
-
API groups are published to Exchange from Anypoint API Manager.
-
Mule applications are published to Exchange from Anypoint Runtime Fabric and managed in Runtime Fabric, and are not visible in the Exchange user interface.
-
External libraries are published to Exchange from the Exchange Maven Facade API and managed with this API, and are not visible in the Exchange user interface.
Exchange fully supports RAML fragments. Currently, Exchange does not support importing and managing OAS 3.0 components as Exchange dependencies inside a specification.
Create an Agent
Agents are programs that perform tasks autonomously or semiautonomously. AI agents can use the Agent2Agent (A2A) protocol to communicate and collaborate with each other to perform tasks.
Agent schema files must be in JSON format. They define the structure and capabilities of the agent asset. When creating an agent asset, upload the schema file you want to use.
The required objects for an A2A spec are defined in the A2A spec.
If you create an agent using Other as the protocol type, the file must be a JSON file. This card follows the structure of the A2A Spec without required properties.
Example A2A card
-
In Exchange, select Publish new asset.
-
Enter a name for the asset.
-
Select the Agent asset type from the dropdown list.
-
Select a protocol type.
-
Click Choose file to upload a .json file for the agent card.
-
Select a protocol.
-
Select Publish.
Create an API Asset
An API asset specifies an interface completely, including its functions, descriptions, how to handle return codes, and dependencies.
Creating an asset sets the asset type, which cannot be changed. All versions of an asset always have the same type.
To create an API asset:
-
In Exchange, select Publish new asset.
-
Enter a name for the asset.
-
Select the asset type from the drop-down list:
-
REST API - RAML: Provide a RAML API specification file. RAML specifications must be a RAML file (
.raml
). -
REST API - OAS: Provide an OAS API specification file. OAS specifications can be either a YAML (
.yaml
) or JSON (.json
) file. Exchange supports OAS 2.0 and OAS 3.0 specifications. -
SOAP API - WSDL: Provide a WSDL API specification file. SOAP specifications file can be either a WSDL (
.wsdl
) or XML (.xml
) file. -
AsyncAPI: Provide an AsyncAPI specification file in a YAML (
.yaml
) or JSON (.json
) file. -
AsyncAPI with Avro schemas: Provide an Avro fragment in an AVSC (
.avsc
) file. -
API Spec Fragment - RAML: Provide an API Fragment RAML specification file. Fragment specifications must be a RAML file (
.raml
). -
API Spec Fragment - JSON: Provide an API Fragment JSON specification (
.json
) file. -
API Spec Fragment - OpenAPI Specification (OAS): Provide an API Fragment OpenAPI specification file either JSON or YAML.
-
HTTP API: This asset does not require a file. This asset type provides an API endpoint that is defined by API Manager.
-
-
For assets that require a file:
-
Select Choose File to locate the API specification file.
-
Select the main file of the API.
If the file is a ZIP, the selected main file must be in the root directory of the ZIP file. If the file is not a ZIP or if the file is a ZIP file with only one main file, then the main file is selected automatically.
-
-
If you want to edit the GroupId, AssetId, Version, and API version (GAV), click Advanced.
Exchange generates the group ID, asset ID, and version (GAV) for you, and you can change these values as needed. You can change an API’s asset version and version separately. Use the advanced settings to change the asset version.
-
Select an option for Lifecycle state. The default is Stable.
-
Select Publish.
To create a ZIP file and put the items in a folder into the root directory of the ZIP file, use a command like this. Replace myfolder
with the name of your folder and name.zip
with the name for the new ZIP file.
cd myfolder; zip -r name.zip .
Do not use a command such as zip -r name.zip myfolder
, which puts the folder into the root directory of the ZIP file. This causes an error message such as The zip file does not contain a .raml file in the root directory
.
Create an API Group Asset
An API Group is an asset that enables organizations to publish a group of API instances as a single unit, so that developer client applications can access the APIs as a group, using one client ID and, optionally, client secret.
API Groups are created in Anypoint API Manager and published to Exchange.
API Groups have major versions, such as 1.0.0, 2.0.0, or 3.0.0, but no minor or patch versions. Every version of an API Group has one or more API Group instances. Each API Group instance is a group of API instances that all have the same identity provider and the same environment type, either production or sandbox. An API Group instance can contain API instances from multiple business groups.
Creating an API Group requires having the Group Administrator permission, as well as the Asset Administrator permission for each of the APIs in the group. This ensures that a group creator can change the underlying APIs between private and public visibility levels.
If an API Group has any private APIs, you see a warning when publishing the API Group to your public portal. The public portal never shows private content. To ensure that all content in the API Group is published to the public portal, go to each API’s page in Exchange and make the API public, and then publish the API Group.
Warnings are also shown when publishing an API Group to your public portal if all of its API Group instances are private, and when making an API Group instance public if all of its API instances are private.
Create a Custom Asset
A custom asset lets you share information about any aspect of your organization such as announcements, documentation, videos, and sharing files. You can add an optional file to your Custom asset that users can download. The file is stored in Exchange.
Exchange only permits the following file types as the optional file in a custom asset:
Images: .jpg, .jpeg, .png, .gif, .svg
Documents: .docx, .pdf, .pptx, .rtf, .vsdx, .vssx
Compressed files: .zip, .tgz, .jar, .gz, .7z
Text files: .txt, .json, .raml, .yaml, .yml, .md, .csv, .xml, .xsd, .wsdl, .html, .pom, .log, .sql
A file without a file type is not allowed. All file types are case insensitive.
SVG files are limited to 100 KB or less.
MuleSoft recommends deleting all old Custom assets containing files of types that are not permitted. For any Custom asset containing a non-supported file, delete the asset to remove the file.
To create a custom asset:
-
In Exchange, select Publish new asset.
-
Enter a name for the asset.
-
Select the asset type Custom from the drop-down list.
-
To upload a file, click Choose file.
-
To edit the GroupId, AssetId, and Version (GAV), click Advanced.
Exchange generates the group ID, asset ID, and version for you, and you can change these values as needed. Use the advanced settings to change the asset version.
-
Select an option for Lifecycle state. The default is Stable.
-
Select Publish.
Create Custom Policy Definition Asset
Policies enforce regulations to help manage security, control traffic, and improve API adoption. For example, a policy can control authentication, access, and service level agreement (SLA). You can create a policy definition based on your specific business requirements. Develop custom policy definitions and apply them to APIs to extend existing functionality or define new ones.
To publish a custom policy definition:
-
In Exchange, click Publish new asset.
-
Enter a name for the asset.
-
Select the Policy asset type from the drop-down list.
-
Click Choose File to select a JSON schema or YAML file.
-
To edit the GroupId, AssetId, Version, and API version (GAV), click Advanced.
Exchange generates the group ID, asset ID, and version (GAV). You can change these values. You can also change an API asset’s version and API version separately. The advanced settings are most often used to change the asset version.
-
From Lifecycle state, select Stable.
The policy must be in the Stable state to upload the implementation file in a later step.
-
Select Publish.
Pending status appears next to Implementations in the left navigation bar.
To implement the policy so that it is available at runtime, follow the steps in Add Policy Implementation Files to Published Policy Definition.
Create a GraphQL API
A GraphQL API schema is a collection of operations and object types that are composed of fields. A GraphQL API allows a client to fetch only the object types and fields needed instead of fetching a fixed response like in a REST API.
There are two types of schemas that you can upload:
-
GraphQL API schema
-
GraphQL Apollo API schema
A GraphQL API schema designed with Apollo GraphQL specific directives and structure, also known as the schema definition language (SDL).
To create a GraphQL API:
-
In Exchange, select Publish new asset.
-
Enter a name for the asset.
-
From the drop-down list, select the asset type GraphQL API.
-
Select which GraphQL API schema to upload, GraphQL API schema or GraphQL Apollo API schema.
-
To select a file to upload, click Choose file.
-
To edit the advanced settings, GroupId, AssetId, and Version (GAV), click Advanced.
Exchange generates the group ID, asset ID, and version for you, and you can change these values as needed. Use the advanced settings to change the asset version.
-
Select an option for Lifecycle state. The default is Stable.
-
Select Publish.
Create a Large Language Model
To use an OpenAI LLM in your broker, you must have OpenAI LLM access in your organization. Configure the LLM asset using one of these methods:
-
Automatic Publication: Define the LLM directly within the YAML configuration file in Anypoint Code Builder to automatically publish the LLM asset to Exchange.
-
Manual Creation: Manually create the LLM asset in Exchange, and then reference it in the YAML configuration file within Anypoint Code Builder.
It’s possible to have more than one LLM asset in your organization.
-
In Exchange, select Publish new asset.
-
Enter a name for the asset.
-
Select the LLM asset type from the dropdown list.
-
Enter the name of the platform and select it from the list.
-
Select Publish.
Create an MCP Server
MCP servers provide the protocols and specifications for seamless integration between different AI systems and tools.
MCP server schema files are in JSON format. They define the definition of the tools, the data structures they use, and authentication. Upload the schema file to use when creating an MCP server asset.
The minimum required property for an MCP server schema file is transport
over SSE or HTTP. If you declare capabilities
, you must have all four capability flags: tools
, resources
, prompts
, and logging
. If you provide tools
, resources
, or prompts
, each must have name and identifier fields.
This is a sample JSON file with the minimum required transport
property.
{
"transport": {
"kind": "sse",
"ssePath": "/events"
}
}
Example MCP server schema file
{
"protocolVersion": "2025-03-26",
"introspectedAt": "2025-09-11T10:15:30Z",
"connectionStatus": "success",
"transport": {
"kind": "streamableHttp",
"path": "/mcp/path"
},
"provider": {
"organization": "Some company AI",
"url": "https://company.com"
},
"capabilities": {
"tools": true,
"resources": true,
"prompts": true,
"logging": true
},
"logging": {
"level": "info"
},
"tools": [
{
"name": "searchDocuments",
"description": "Searches documents by keyword and returns matched snippets.",
"annotations": {
"title": "Search Documents",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true
},
"inputSchema": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Search query text"
},
"limit": {
"type": "integer",
"description": "Maximum number of results"
}
},
"required": ["query"]
}
},
{
"name": "updateRecord",
"description": "Updates a record by ID.",
"annotations": {
"title": "Update Record",
"destructiveHint": true,
"readOnlyHint": false,
"idempotentHint": false,
"openWorldHint": false
},
"inputSchema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Record identifier"
},
"payload": {
"type": "object",
"description": "Fields to update"
}
},
"required": ["id", "payload"]
}
}
],
"resources": [
{
"name": "Project README",
"uri": "file:///workspace/README.md",
"description": "Primary project documentation.",
"mimeType": "text/markdown",
"size": 2048,
"annotations": {
"audience": ["assistant", "user"],
"priority": 0.9
}
}
],
"prompts": [
{
"name": "summarize",
"description": "Summarize a given text.",
"arguments": [
{
"name": "text",
"description": "Text to summarize",
"required": true
},
{
"name": "tone",
"description": "Desired tone (e.g., concise, friendly)",
"required": false
}
]
}
],
"platform": "nodejs-20"
}
],
"prompts": [
{
"name": "summarize",
"description": "Summarize a given text.",
"arguments": [
{
"name": "text",
"description": "Text to summarize",
"required": true
},
{
"name": "tone",
"description": "Desired tone (e.g., concise, friendly)",
"required": false
}
]
}
],
"platform": "nodejs-20"
}
-
In Exchange, select Publish new asset.
-
Enter a name for the asset.
-
Select the MCP asset type from the dropdown list.
-
Click Choose file to upload a schema file in JSON format.
-
Enter the name of the platform and select it from the list.
-
Select Publish.
Create an RPA Activity Template Asset
Activity templates are reusable code within RPA that standardize the most used activity steps and make them available to other developers in the organization. These templates are .cawl
files that are imported in the RPA Activity library for developers to use as part of their RPA processes.
To create an RPA activity template asset:
-
In Exchange, select Publish new asset.
-
Enter a name for the asset.
-
From the drop-down list, select the asset type RPA Activity Template.
-
To select a
.cawl
file to upload, click Choose file. -
To edit the advanced settings, GroupId, AssetId, and Version (GAV), click Advanced.
Exchange generates the group ID, asset ID, and version for you, and you can change these values as needed. Use the advanced settings to change the asset version.
-
Select an option for Lifecycle state. The default is Stable.
-
Select Publish.
Create an RPA Process Template Asset
Templates for RPA processes are imported into RPA Builder as projects and are customizable before deploying to RPA bots. Process templates are built on common patterns for RPA to build automation faster. These templates are .crpa
files that are exported from RPA Builder to share with other developers.
To create an RPA activity template asset:
-
In Exchange, select Publish new asset.
-
Enter a name for the asset.
-
From the drop-down list, select the asset type RPA Process Template.
-
To select a
.crpa
file to upload, click Choose file. -
To edit the advanced settings, GroupId, AssetId, and Version (GAV), click Advanced.
Exchange generates the group ID, asset ID, and version for you, and you can change these values as needed. Use the advanced settings to change the asset version.
-
Select an option for Lifecycle state. The default is Stable.
-
Select Publish.
Create a Ruleset Asset
Rulesets are a group of rules or guidelines that define an application, for example best practices or industry-specific standards. Add a zip file with multiple YAML files that describe the new ruleset.
To create a ruleset asset:
-
In Exchange, select Publish new asset.
-
Enter a name for the asset.
-
From the drop-down list, select the asset type Ruleset.
-
To upload, click Choose file.
-
To edit the advanced settings, GroupId, AssetId, and Version (GAV), click Advanced.
Exchange generates the group ID, asset ID, and version for you, and you can change these values as needed. Use the advanced settings to change the asset version.
-
Select an option for Lifecycle state. The default is Stable.
-
Select Publish.
Create an AsyncAPI Asset
An AsyncAPI is an AsyncAPI specification file that specifies an event-driven API. You can create AsyncAPIs with Avro schemas. The file type for Avro schemas is AVSC (.avsc).
To create an AsyncAPI:
-
In Exchange, select Publish new asset.
-
Enter a name for the asset.
-
From the drop-down list, select the asset type AsyncAPI.
-
To select a file to upload, click Choose file.
-
To edit the advanced settings, GroupId, AssetId, and Version (GAV), click Advanced.
Exchange generates the group ID, asset ID, and version for you, and you can change these values as needed. Use the advanced settings to change the asset version.
-
Select an option for Lifecycle state. The default is Stable.
-
Select Publish.
Asset Name, Icon, and Description Properties
You can create assets in Anypoint Code Builder, API Designer, or Exchange. After the asset is created, the name, icon, and description properties can only be changed in the Exchange asset details page as described in Editing an Asset.
Properties of Assets Created in Anypoint Code Builder
When an asset is published from Anypoint Code Builder to Exchange, the asset name is that is used in the exchange.json file.
The name, icon, and description properties can only be changed in the Exchange asset details page.
Properties of Assets Created in API Designer
API Designer reads and uses the name of the asset from the RAML specification.
Before the asset is published in Exchange, you can edit the name in API Designer.
After the asset is published in Exchange, the name is used as the asset portal name. Any publication from API Designer to update the version of an asset in Exchange has the name field disabled, and shows the name from Exchange. The name, icon, and description properties can only be changed in the Exchange asset details page.
Create a New Version of an Existing Asset
If you have contributor or admin access to an asset, you can add a new version for an existing asset:
-
In Exchange, open the asset list and select the asset.
-
Click Add version.
-
For API assets, follow the steps for the corresponding API asset type:
-
REST API - RAML: Provide a RAML API specification file. RAML specifications must be a RAML file (.raml).
-
REST API - OAS: Provide an OAS API specification file. OAS specifications can be either a YAML (.yaml) or JSON (.json) file. Exchange supports OAS 2.0 and OAS 3.0 specifications.
-
SOAP API - WSDL: Provide a WSDL API specification file. SOAP specifications file can be either a WSDL (.wsdl) or XML (.xml) file.
-
API Spec Fragment - RAML: Provide an API Fragment RAML specification file. Fragment specifications must be a RAML file (.raml).
-
AsyncAPI: Provide a JSON (.json) or YAML (.yml) file.
-
AsyncAPI spec with Avro schema: Provide an Avro fragment spec. Fragment specification must an AVSC (.avsc) file.
-
HTTP API - This asset does not require a file. This type of asset provides an API endpoint that is defined by API Manager.
-
-
For RAML, API Spec Fragment, OAS, and WSDL assets:
-
Select Choose File to locate the API specification file.
-
Select the main file of the API.
-
-
If you want to select a file to upload, click Choose file.
-
Enter the version for the asset.
-
Select on option for Lifecycle state. The default is Stable.
-
Select Publish.
The new version of the asset has the same name, icon, and description as the previous version. Any changes to these properties apply to all versions of the asset.