Adding capabilities to a Product
Capabilities are Flows and Agents that you attach to a Product. You can also attach an external agent that uses the Agent-to-Agent (A2A) protocol. Each Capability represents a function that you can expose through one or more Surfaces. Add the Capability to the Product, then connect it to the Surfaces where you want to expose it.
Before you begin
Complete these tasks before you add a Capability:
- Create a Product.
- To reuse a resource, create the Flow or Agent first.
- For an external agent, get its name and A2A endpoint URL. If the agent requires authentication, have its credentials ready. For more information, see Connecting external agents.
Add a Capability
To add a Capability, follow these steps:
- On the Products page, open the Product that you want to update.
- In Product capabilities, click Add Capability.
- Choose New Agent, New Flow, External A2A, or Use Existing.
- Complete the fields for the option that you chose:
- If you chose New Agent, choose an agent type. Enter the Agent Name and the Capability Name, and then click Create & Add.
- If you chose New Flow, click Continue to Flow Editor and build the Flow. Runtype adds the Flow as a Capability when you create it.
- If you chose External A2A, enter the Agent name, the A2A endpoint URL, and the Capability name. You can also enter an Agent card URL and choose an Authentication method. Click Connect & Add.
- If you chose Use Existing, choose Agents or Flows, select the resource, and enter the Capability Name. Click Add Capability.
- For External A2A or Use Existing, click Save. A New Agent or New Flow Capability is saved when you create it.
The Capability name is the name that callers use. It’s the tool name on an MCP Surface, and an API Surface builds the Capability’s endpoint from it. A name can have up to 100 characters. Use a stable, lowercase name with underscores, for example search_products. On an MCP Surface, Runtype replaces each character that isn’t a letter, number, hyphen, or underscore with an underscore, and it shortens the tool name to 64 characters. The optional description becomes the tool description that MCP clients see. If you rename a Capability later, existing callers must switch to the new name.
The Capability appears in Product capabilities after you add it. It doesn’t connect to existing Surfaces automatically.
To confirm that a saved Capability runs, open its More actions menu in List view and select Test.
Connect a Capability to a Surface
To connect a Capability in Visual view, follow these steps:
- On the Product page, select Visual view.
- Drag a connection from the Capability node to the Surface node.
- Click Save to persist the connection.
Each enabled Capability that you connect to an API Surface gets its own endpoint. On an MCP Surface, it appears as a tool. On an A2A Surface, it appears as a skill on the Agent Card.
On a Chat or A2A Surface, you can choose how requests reach the connected Capabilities. For more information, see Surface orchestration modes.
Edit or disable a Capability
To edit a Capability, follow these steps:
- On the Product page, select List view.
- In Product capabilities, open the Capability’s More actions menu.
- Select Edit.
- Change the Name or the Description, or turn the Enabled switch on or off.
- Click Save.
When you turn off Enabled, the Capability stops being available on every Surface that exposes it. Turn the switch back on to restore it.
Remove a Capability
To remove a Capability from a Product, follow these steps:
- On the Product page, select List view.
- In Product capabilities, open the Capability’s More actions menu.
- Select Delete.
- Confirm the deletion.
Removing a Capability also removes its connections from the Product’s Surfaces. It doesn’t delete the linked Flow or Agent, so you can attach that resource to another Product.
Reuse a Flow or Agent
A Flow or Agent can be a Capability in more than one Product. Each Product stores its own Capability name and description. Changes to the Flow or Agent apply to every Product that uses it. When you change a Flow’s steps, Runtype updates the input schema of every Capability that uses that Flow.
Add a Capability with the API
To add a Capability from code, send a request to the Runtype API. The following example adds an existing Agent to a Product:
Replace the following:
YOUR_PRODUCT_ID: the ID of the ProductYOUR_API_KEY: your Runtype API keyYOUR_AGENT_ID: the ID of the Agent to add
To add a Flow, send flowId instead of agentId. The response includes the Capability’s id.
The following example connects that Capability to a Surface:
Replace YOUR_SURFACE_ID with the ID of the Surface and YOUR_CAPABILITY_ID with the id from the previous response. To change how the Capability appears on this Surface only, you can also send exposedName, exposedDescription, and, for an API Surface, endpointSlug. These fields don’t change the Capability itself.
To remove a Capability, send DELETE /v1/products/YOUR_PRODUCT_ID/capabilities/YOUR_CAPABILITY_ID. The Runtype MCP server has matching tools: add_product_capability, add_surface_item, and remove_product_capability. For all fields, see the Products API reference.
Troubleshooting
The following errors can occur when you add a Capability:
- This agent is already added as a capability on this product: a Product can include each Agent once. To expose one Agent under different names, connect it to Surfaces with different exposed names.
- This capability is already added to this surface: the Capability is already connected to that Surface.
- Flow not found or Agent not found: the Flow or Agent was deleted, or it belongs to another organization.
Next steps
Use these pages to continue:
- Surface orchestration modes: route messages between connected Capabilities
- Connecting external agents: configure an External A2A Capability
- Scoping API keys to capabilities: limit which Capabilities an API key can call
- What are Surfaces?: choose how you expose a Product
- Product views: switch between Visual view and List view