Skip to content

Interfaces

An interface is a named, typed connection point an entity exposes — an API a service serves, a package a library publishes, a CLI it ships. Modeling interfaces explicitly makes an entity discoverable: consumers know how to reach it, dependency maps can be drawn, and AI agents can retrieve the exact connectivity details they need to generate a client or an integration.

Kind Covers
API HTTP, gRPC, GraphQL, and WebSocket APIs.
CLI Command-line interfaces.
UI Web and native user interfaces.
MCP Model Context Protocol endpoints.
Data share Data feeds, queues, topics, and exported tables.
Package Published library packages (npm, NuGet, Maven, PyPI).

Each kind has its own set of fields describing how to connect — protocol, URL, and auth for an API; registry and coordinates for a package.

Interfaces describe connectivity, not implementation

Section titled “Interfaces describe connectivity, not implementation”

An interface answers “how does a consumer reach this?” — not “how is it built?”. Keep interface fields focused on the connection: endpoints, protocols, package coordinates, authentication. Implementation detail belongs in the entity’s documentation, not on its interfaces.

For API interfaces, Componecat can import a specification instead of you typing the shape by hand. It supports OpenAPI, gRPC reflection, and GraphQL introspection. Imported specs are stored on the interface and rendered inline in the catalog, so anyone (or any agent) browsing the entity sees the live contract.

Add interfaces from an entity’s page, in a componecat.yaml descriptor, or through the APIs:

interfaces:
- kind: api
name: Payment API
protocol: grpc
url: grpc://payments.internal:443