105 lines
2.6 KiB
Text
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
|