java-sdk/mcp/docs/mcp-sequence-diagram.puml
2024-12-09 23:31:23 +01:00

105 lines
2.6 KiB
Text

@startuml MCP Sequence Diagram
participant McpClient
participant McpSyncClient
participant McpAsyncClient
participant DefaultMcpTransport
participant StdioServerTransport
== Initialization ==
McpClient -> McpSyncClient: new McpSyncClient(transport)
activate McpSyncClient
McpSyncClient -> McpAsyncClient: new McpAsyncClient(transport)
activate McpAsyncClient
McpAsyncClient -> DefaultMcpTransport: start()
activate DefaultMcpTransport
DefaultMcpTransport --> McpAsyncClient: started
deactivate DefaultMcpTransport
McpAsyncClient --> McpSyncClient: created
deactivate McpAsyncClient
McpSyncClient --> McpClient: created
deactivate McpSyncClient
== Message Flow ==
McpClient -> McpSyncClient: initialize()
activate McpSyncClient
McpSyncClient -> McpAsyncClient: initialize()
activate McpAsyncClient
McpAsyncClient -> DefaultMcpTransport: sendMessage(initRequest)
activate DefaultMcpTransport
DefaultMcpTransport -> StdioServerTransport: sendMessage(initRequest)
activate StdioServerTransport
StdioServerTransport --> DefaultMcpTransport: response
deactivate StdioServerTransport
DefaultMcpTransport --> McpAsyncClient: InitializeResult
deactivate DefaultMcpTransport
McpAsyncClient --> McpSyncClient: InitializeResult
deactivate McpAsyncClient
McpSyncClient --> McpClient: InitializeResult
deactivate McpSyncClient
== Tool Execution ==
McpClient -> McpSyncClient: callTool(name, args)
activate McpSyncClient
McpSyncClient -> McpAsyncClient: callTool(name, args)
activate McpAsyncClient
McpAsyncClient -> DefaultMcpTransport: sendMessage(toolRequest)
activate DefaultMcpTransport
DefaultMcpTransport -> StdioServerTransport: sendMessage(toolRequest)
activate StdioServerTransport
StdioServerTransport --> DefaultMcpTransport: response
deactivate StdioServerTransport
DefaultMcpTransport --> McpAsyncClient: CallToolResult
deactivate DefaultMcpTransport
McpAsyncClient --> McpSyncClient: CallToolResult
deactivate McpAsyncClient
McpSyncClient --> McpClient: CallToolResult
deactivate McpSyncClient
== Cleanup ==
McpClient -> McpSyncClient: close()
activate McpSyncClient
McpSyncClient -> McpAsyncClient: close()
activate McpAsyncClient
McpAsyncClient -> DefaultMcpTransport: close()
activate DefaultMcpTransport
DefaultMcpTransport -> StdioServerTransport: close()
activate StdioServerTransport
StdioServerTransport --> DefaultMcpTransport: closed
deactivate StdioServerTransport
DefaultMcpTransport --> McpAsyncClient: closed
deactivate DefaultMcpTransport
McpAsyncClient --> McpSyncClient: closed
deactivate McpAsyncClient
McpSyncClient --> McpClient: closed
deactivate McpSyncClient
@enduml