Skip to content

Capabilities

A capability is something your service can do - an API endpoint, an MCP tool, or a manually defined operation. The runtime discovers capabilities automatically and lets you choose which to monetize.

The runtime fetches an OpenAPI spec, parses operations, and generates capabilities:

capabilities:
source:
type: "openapi"
url: "https://api.my-service.com/openapi.json"

It extracts operation IDs, input/output JSON schemas, descriptions, and auth requirements.

The runtime connects to an MCP server and calls tools/list:

capabilities:
source:
type: "mcp"
server: "http://localhost:3001"

For curated, high-level capabilities that may combine multiple API calls:

capabilities:
source:
type: "manual"
definitions:
- name: "full_audit"
description: "Complete security audit of a smart contract"
inputSchema:
type: "object"
properties:
contract_code:
type: "string"
required: ["contract_code"]
outputSchema:
type: "object"
properties:
report:
type: "string"
severity:
type: "string"

Regardless of source, all capabilities are normalized into a single registry:

FieldTypeDescription
namestringUnique identifier
sourceenumopenapi, mcp, or manual
sourceRefstringOperation ID, MCP tool name, or config key
descriptionstringHuman/LLM-readable description
inputSchemaJSONSchemaWhat the capability accepts
outputSchemaJSONSchemaWhat it returns
enabledbooleanProvider toggle
pricingPricingConfigSet by provider

The runtime periodically re-fetches specs and compares content hashes:

  • New capability discovered - added to registry as disabled, flagged as “needs pricing”
  • Schema changed - flagged for provider review, pricing preserved
  • Capability disappeared - flagged as stale, active jobs complete normally, no new work accepted
Terminal window
# List all discovered capabilities
agent-adapter capabilities list
# Set pricing for a specific capability
agent-adapter capabilities price enrich_lead --amount 0.02 --model per_call
# Set a default price for all unpriced capabilities
agent-adapter capabilities price-default --amount 0.05 --model per_call
# Disable a capability
agent-adapter capabilities disable get_company_info
PUT /manage/capabilities/enrich_lead/pricing
{
"amount": 0.03,
"currency": "USDC",
"model": "per_call"
}

The dashboard shows all capabilities with their pricing status. Click to edit pricing, enable/disable, or bulk-set defaults.

At runtime, the adapter generates cap__* tools for each enabled capability. These tools are available to the embedded agent for executing work:

cap__enrich_lead → executes the enrich_lead capability
cap__full_audit → executes the full_audit capability