From 77b973ff146c86036ae20ecce67f80956aae4fd8 Mon Sep 17 00:00:00 2001 From: Christian Tzolov Date: Wed, 26 Mar 2025 18:26:41 +0100 Subject: [PATCH] Add MCP sampling diagram Signed-off-by: Christian Tzolov --- model-context-protocol/sampling/README.md | 2 + .../sampling/mvc-sampling-sq.svg | 63 +++++++++++++++++++ .../sampling/sampling_sequence_diagram.puml | 54 ++++++++++++++++ 3 files changed, 119 insertions(+) create mode 100644 model-context-protocol/sampling/mvc-sampling-sq.svg create mode 100644 model-context-protocol/sampling/sampling_sequence_diagram.puml diff --git a/model-context-protocol/sampling/README.md b/model-context-protocol/sampling/README.md index bc54226..6da9a15 100644 --- a/model-context-protocol/sampling/README.md +++ b/model-context-protocol/sampling/README.md @@ -66,6 +66,8 @@ The MCP Sampling workflow in these examples follows these steps: - The server combines the responses from different LLMs - It returns the combined result to the user +![MCP Sampling Sequence Diagram](./mvc-sampling-sq.svg) + ## Server Implementation The MCP Weather Server implements the server-side of MCP Sampling: diff --git a/model-context-protocol/sampling/mvc-sampling-sq.svg b/model-context-protocol/sampling/mvc-sampling-sq.svg new file mode 100644 index 0000000..0006f04 --- /dev/null +++ b/model-context-protocol/sampling/mvc-sampling-sq.svg @@ -0,0 +1,63 @@ +MCP ServerMCP ServerMCP ClientMCP ClientLLMLLMInitializationInitialization RequestInitialization ResponseInitializatedInside an Existing Client InvocationAny Tool/Prompt/Resource ... RequestSamplingsampling/createMessageModel interactionForward sampling requestReturn generationReturn generationAny Tool/Prompt/Resource ... Response \ No newline at end of file diff --git a/model-context-protocol/sampling/sampling_sequence_diagram.puml b/model-context-protocol/sampling/sampling_sequence_diagram.puml new file mode 100644 index 0000000..b75a248 --- /dev/null +++ b/model-context-protocol/sampling/sampling_sequence_diagram.puml @@ -0,0 +1,54 @@ +@startuml +skinparam sequenceArrowThickness 2 +skinparam roundcorner 10 +skinparam sequenceParticipant { + BackgroundColor #222222 + BorderColor #222222 + FontColor white +} +skinparam sequenceLifeLineBorderColor #AAAAAA +skinparam sequenceGroupFontColor white + +participant "MCP Server" as Server +participant "MCP Client" as Client +participant "LLM" as LLM + +group Initialization + + Client -> Server: Initialization Request + activate Client + activate Server + + Server --> Client: Initialization Response + deactivate Server + + Client -\ Server: Initializated + deactivate Client +end + +group Inside an Existing Client Invocation + Client -> Server: Tool/Prompt/Resource Request + activate Client + activate Server + + group Sampling + Server -> Client: sampling/createMessage + activate Client + + group Model interaction + Client -> LLM: Forward sampling request + activate LLM + LLM --> Client: Return generation + deactivate LLM + end + + Client --> Server: Return generation + deactivate Client + end + + Server --> Client: Tool/Prompt/Resource Response + deactivate Server + deactivate Client +end + +@enduml