Skip to content
This repository was archived by the owner on Feb 14, 2025. It is now read-only.

Commit a922b1a

Browse files
committed
Add doc diagrams
1 parent 7d79231 commit a922b1a

File tree

3 files changed

+144
-0
lines changed

3 files changed

+144
-0
lines changed

mcp-core/docs/class-diagrams.puml

Lines changed: 135 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,135 @@
1+
@startuml Core Components
2+
3+
interface McpTransport {
4+
+void start()
5+
+void close()
6+
+Mono<Void> closeGracefully()
7+
+void setInboudMessageHandler()
8+
+void setInboundErrorHandler()
9+
+Mono<Void> sendMessage()
10+
}
11+
12+
abstract class AbstractMcpTransport {
13+
#ObjectMapper objectMapper
14+
#getInboundSink()
15+
#getOutboundSink()
16+
#getErrorSink()
17+
}
18+
19+
interface McpSession {
20+
+<T> Mono<T> sendRequest()
21+
+Mono<Void> sendNotification()
22+
+Mono<Void> closeGracefully()
23+
}
24+
25+
class DefaultMcpSession {
26+
-McpTransport transport
27+
-ObjectMapper objectMapper
28+
}
29+
30+
class McpClient {
31+
+{static} async()
32+
+{static} sync()
33+
}
34+
35+
class McpAsyncClient {
36+
+Mono<InitializeResult> initialize()
37+
+Mono<CallToolResult> callTool()
38+
+Mono<ListToolsResult> listTools()
39+
+Mono<ListResourcesResult> listResources()
40+
+Mono<ReadResourceResult> readResource()
41+
+Mono<ListPromptsResult> listPrompts()
42+
+Mono<GetPromptResult> getPrompt()
43+
}
44+
45+
class McpSyncClient {
46+
+InitializeResult initialize()
47+
+CallToolResult callTool()
48+
+ListToolsResult listTools()
49+
+ListResourcesResult listResources()
50+
+ReadResourceResult readResource()
51+
+ListPromptsResult listPrompts()
52+
+GetPromptResult getPrompt()
53+
}
54+
55+
class StdioServerTransport {
56+
-Process serverProcess
57+
-ServerParameters parameters
58+
}
59+
60+
class McpSchema {
61+
+class ErrorCodes
62+
+interface Request
63+
+interface JSONRPCMessage
64+
+interface ResourceContents
65+
+interface Content
66+
}
67+
68+
class McpError {
69+
-int code
70+
-String message
71+
}
72+
73+
McpTransport <|.. AbstractMcpTransport
74+
AbstractMcpTransport <|-- StdioServerTransport
75+
McpSession <|-- DefaultMcpSession
76+
DefaultMcpSession <|-- McpAsyncClient
77+
McpClient ..> McpAsyncClient : creates
78+
McpClient ..> McpSyncClient : creates
79+
McpSyncClient o-- McpAsyncClient
80+
DefaultMcpSession o-- McpTransport
81+
McpSchema <.. McpSession : uses
82+
McpError ..> McpSession : throws
83+
84+
@enduml
85+
86+
@startuml Message Flow
87+
88+
package "MCP Schema" {
89+
interface JSONRPCMessage {
90+
+String jsonrpc()
91+
}
92+
93+
interface Request {
94+
}
95+
96+
class InitializeRequest
97+
class CallToolRequest
98+
class CreateMessageRequest
99+
class CompleteRequest
100+
class GetPromptRequest
101+
}
102+
103+
package "Resource Types" {
104+
interface ResourceContents {
105+
+String uri()
106+
+String mimeType()
107+
}
108+
109+
class TextResourceContents
110+
class BlobResourceContents
111+
112+
interface Content {
113+
+String type()
114+
}
115+
116+
class TextContent
117+
class ImageContent
118+
class EmbeddedResource
119+
}
120+
121+
JSONRPCMessage <|.. Request
122+
Request <|.. InitializeRequest
123+
Request <|.. CallToolRequest
124+
Request <|.. CreateMessageRequest
125+
Request <|.. CompleteRequest
126+
Request <|.. GetPromptRequest
127+
128+
ResourceContents <|.. TextResourceContents
129+
ResourceContents <|.. BlobResourceContents
130+
131+
Content <|.. TextContent
132+
Content <|.. ImageContent
133+
Content <|.. EmbeddedResource
134+
135+
@enduml

0 commit comments

Comments
 (0)