The Connected System AI Interfaces tab summarizes system-level connectivity hints for OpenAPI and MCP — bootstrap URLs, tool prefixes, and contract compilation entry points. Authoritative AI contracts (capabilities, filterable fields, operations) live on each Business Entity.
Prerequisites
- Business Entities with
exposed,capabilities[], andopenapi/mcpoperation blocks - OpenAPI and MCP contracts read at overview level
- Configure Enterprise MCP for publish outcome
Where it lives
| Layer | Manifest | UI tab |
|---|---|---|
| System OpenAPI hints | <systemKey>-system.json → openapi |
AI Interfaces (system) |
| System MCP hints | <systemKey>-system.json → mcp |
AI Interfaces (system) |
| Entity AI contract | <datasourceKey>.json → exposed, capabilities, openapi.operations, mcp |
Business Entity AI Contract (?tab=exposure) |
| Published Enterprise MCP | Online config after upload | Same governed keys as REST |
Manifest section key in Builder API: system.aiInterfaces (maps to system openapi / mcp paths). Per-entity exposure uses datasource.exposedAttributes and related sections.
Builder MCP
| Manifest section | system.aiInterfaces |
| UI tab | AI Interfaces (?tab=openapi) |
| Help topics | section, connectedSystemUi, goldenExamples |
| Repair hooks | expose on Business Entities |
System hints bootstrap discovery; entity AI contract is authoritative for publish.
How to set
- Set system OpenAPI hints when onboarding needs a default spec URL or wizard discovery — not as a substitute for entity
externalSpec:
{
"openapi": {
"specUrl": "https://api.example.com/openapi.json",
"autoDiscoverEntities": true
}
}
- Set system MCP hints when the Connected System exposes a vendor MCP server for bootstrap tooling:
{
"mcp": {
"serverUrl": "https://mcp.example.com",
"toolPrefix": "example_crm"
}
}
- Configure each Business Entity AI contract — filterable fields, capability descriptions, and operation bindings:
{
"capabilities": [
{
"key": "read",
"description": "List and retrieve customer records scoped by ABAC"
}
],
"exposed": {
"filterable": ["country", "ownerId"],
"schema": ["externalId", "name", "country"]
},
"openapi": {
"enabled": true,
"operations": {
"list": {
"operationId": "listCustomers",
"method": "GET",
"path": "/customers"
}
}
}
}
- Expose and upload:
aifabrix repair <systemKey> --expose
aifabrix validate <systemKey>
aifabrix upload <systemKey> --probe
aifabrix show <systemKey> --online
- Certify before Role Assistant use — operations, trust, and governance pillars.
Defaults and examples
| Guideline | Reason |
|---|---|
Entity externalSpec is authoritative |
System openapi.specUrl is connectivity/bootstrap only |
| One capability description per enabled key | Trust pillar and agent discovery |
| Deduplicated Enterprise MCP tools | One governed tool per business capability |
| Re-upload after exposure edits | Online contract drift breaks agents |
Builder API: read system.aiInterfaces or entity exposure sections with help topic connectedSystemUi for tab URLs after upload.
Validate
aifabrix validate <systemKey>
aifabrix verify-trust <systemKey>
aifabrix verify-operations <systemKey>
Compare show --online MCP/OpenAPI output to manifest exposed.filterable and capabilities.
Common mistakes
| Mistake | Fix |
|---|---|
| Only system OpenAPI, no entity contract | Add exposed + capabilities on each Business Entity |
Raw vendor field names in exposed.schema |
Use normalized metadata keys from fieldMappings |
| MCP tools before upload | upload --probe then verify online |
| Missing capability descriptions | Add description on every capabilities[] entry |