Create an agent plugin
Creates a tenant agent plugin for a component, MCP server, or skill provider using the normalized plugin definition contract.
curl --request POST \
--url https://api.revoengine.com/api/v1/agent/plugins \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"id": "<string>",
"name": "<string>"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({id: '<string>', name: '<string>'})
};
fetch('https://api.revoengine.com/api/v1/agent/plugins', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.revoengine.com/api/v1/agent/plugins"
payload = {
"id": "<string>",
"name": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)Authorizations
Bearer JWT token or API Key (sk-*).
Body
Stable plugin id used by the agent runtime.
1Operator-facing plugin name.
1Plugin execution provider kind.
tools, mcp_server, skill, package Optional plugin description.
Canonical English capability metadata used for tool selection. Operator-facing content may remain localized.
Show child attributes
Show child attributes
Optional plugin category used for search, grouping, and operator organization.
Optional resource metadata. Values may use any JSON type. Maximum 16 KiB and 64 top-level keys. Top-level keys starting with "__" are reserved for backend use.
{ "costCenter": "ops" }
Optional upstream identifier used to track the source plugin when this registry entry is a tenant-local clone.
Execution mode expected for the plugin provider.
sync, background Component id executed when this tool plugin runs. Required for tools plugins and forbidden for MCP server plugins.
1Portable SHA-256 digest of the component revision to execute. Omit to follow latest. Forbidden for non-tools plugins.
Legacy local revision number. New cross-instance pins should use componentDigest.
x >= 0Multiple governed tool contracts backed by the same component. Every componentToolset.tools key expands into a separately discoverable executable action; its alias is the exact local tool name when provided. Forbidden for MCP server, skill, and package plugins.
Show child attributes
Show child attributes
Remote MCP server configuration. Required for MCP server plugins and forbidden for tools plugins.
Show child attributes
Show child attributes
Default and per-remote-tool MCP governance/loading configuration. mcpToolset.configs keys are remote manifest tool names, while alias controls the local exposed name. Forbidden for tools, skill, and package plugins.
Show child attributes
Show child attributes
Markdown instructions plus lazy dependency plugin UUIDs. Required for skill plugins; the content guides the model but does not execute dependencies or prove their results. Forbidden for tools, MCP, and package plugins.
Show child attributes
Show child attributes
Product-level Markdown routing plus direct lazy dependency plugin UUIDs. Required for package plugins; packages are not executable and cannot depend on packages. Forbidden for tools, MCP, and skill plugins.
Show child attributes
Show child attributes
Provider source recorded for discovery, auditability, and telemetry.
tenant_plugin, community_plugin Strict structured input schema exposed to discovery and runtime validation for tools plugins. Forbidden for MCP server plugins. Must be an object schema with additionalProperties=false and descriptions on every declared property.
Structured output schema expected from the provider for tools plugins. Forbidden for MCP server plugins.
Approval contract enforced before execution.
Show child attributes
Show child attributes
Declared mutation intent used for governance and approval safety.
read, write, destructive, external Declared reversibility of the plugin side effects.
reversible, operator_reversible, irreversible, unknown Primary runtime scope impacted when the plugin executes.
assistant_thread, agent, tenant, external Concise side-effect declaration recorded in approval, evidence, and audit surfaces.
Normalized side-effect categories used for governance and operator review.
Maximum runtime in milliseconds.
x >= 100030000
Maximum serialized result size in bytes.
x >= 512Whether compact routing metadata should appear in available_plugins before explicit attachment. This does not eagerly load skill content, component tool schemas, MCP manifests, or execute the provider.
Whether the plugin may be attached and used by agents or assistants at runtime.
Response
curl --request POST \
--url https://api.revoengine.com/api/v1/agent/plugins \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"id": "<string>",
"name": "<string>"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({id: '<string>', name: '<string>'})
};
fetch('https://api.revoengine.com/api/v1/agent/plugins', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.revoengine.com/api/v1/agent/plugins"
payload = {
"id": "<string>",
"name": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)
