Skip to content

Clients & capabilities (MCP)

client nodes with resource and capability, including an MCP client.

View the source on GitHub · Open in the app

System view
System view
// client-mcp: a minimal sample exercising the full client MVP feature set
// (Phase 1–5 of #823): client kind, delivers, handles re-export, resource
// for client-side storage, [external] services, and an MCP-style server.
//
// Scenario:
// Customer (human) → MobileApp + ClaudeDesktop (clients we ship)
// PartnerAgent (ai) → OrderMcp (third-party AI agent)
//
// MobileApp talks to a BFF (MobileBff) which re-exports OrderService's
// Order domain. ClaudeDesktop talks to OrderMcp, an MCP server that
// adapts OrderService for AI tool-use.
system OrderPlatform {
label "Order Platform"
description "Order management exposed to mobile apps, desktop AI clients, and partner AI agents."
user Customer [human] {
label "Customer"
role "End user placing and tracking orders"
}
user PartnerAgent [ai] {
label "Partner Agent"
role "Third-party AI agent that calls our MCP endpoint"
}
client MobileApp [mobile] {
label "Mobile App"
description "iOS / Android native app"
handles Order
resource localStorage "preferences"
resource indexedDB "outbox"
resource keychain "auth-token"
capability notification
capability camera {
label "QR scanning"
description "Scan QR codes printed on physical receipts"
}
capability geolocation {
description "Continuous tracking while a delivery is in progress"
}
}
client ClaudeDesktop [desktop] {
label "Claude Desktop"
description "Local desktop client wired to the MCP server via stdio"
handles Order
resource opfs "drafts"
resource file "claude-desktop.config"
capability clipboard
}
service MobileBff {
label "Mobile BFF"
description "Edge-side API gateway tailored for the mobile app"
delivers MobileApp
handles Order
}
service OrderService {
label "Order Service"
description "Source of truth for orders"
domain Order {
label "Order"
description "Order placement, query, and cancellation"
usecase PlaceOrder {
label "Place an order"
resource OrderTable [external] { label "Order table" }
}
usecase CancelOrder {
label "Cancel an order"
resource OrderTable [external] { label "Order table" }
}
usecase QueryOrder {
label "Query order status"
resource OrderTable [external] { label "Order table" }
}
}
}
service OrderMcp [external] {
label "Order MCP"
description "MCP server that exposes OrderService to AI agents"
handles Order
}
Customer -> MobileApp "uses the app"
Customer -> ClaudeDesktop "uses the desktop client"
PartnerAgent -> OrderMcp "tool-use over MCP"
MobileApp -> MobileBff "HTTPS"
ClaudeDesktop -> OrderMcp "stdio / MCP"
MobileBff -> OrderService "internal RPC"
OrderMcp -> OrderService "internal RPC"
}

© 2026 Hiroki Kondo · Licensed under Apache-2.0