Skip to content

Commit 30e9872

Browse files
sdmcraftcliffhallSatya Deep Maheshwarijonathanhefner
authored
docs: Clarify server-client relationship (modelcontextprotocol#1631)
* docs: Clarify server-client relationship * fix: Linting error * chore: Addres review feedback * Update docs/docs/learn/architecture.mdx Co-authored-by: Cliff Hall <[email protected]> * Update docs/docs/learn/architecture.mdx Co-authored-by: Cliff Hall <[email protected]> * chore: Fix linting issue * Update docs/docs/learn/architecture.mdx Co-authored-by: Jonathan Hefner <[email protected]> * Update docs/docs/learn/architecture.mdx Co-authored-by: Jonathan Hefner <[email protected]> * Update transport documentation to clarify stdio one-to-one relationship - Remove transport-specific clarification from 2024-11-05 specification - Add stdio transport clarification to draft specification - Aligns with architecture documentation updates * further architecture doc fixes * some further changes to architecture doc * Update architecture.mdx documentation * chore: omitted suggested doc change in transports.mdx --------- Co-authored-by: sdmcraft <[email protected]> Co-authored-by: Cliff Hall <[email protected]> Co-authored-by: Satya Deep Maheshwari <[email protected]> Co-authored-by: Jonathan Hefner <[email protected]>
1 parent 155e509 commit 30e9872

File tree

1 file changed

+12
-9
lines changed

1 file changed

+12
-9
lines changed

docs/docs/learn/architecture.mdx

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,9 @@ The Model Context Protocol includes the following projects:
2828

2929
### Participants
3030

31-
MCP follows a client-server architecture where an MCP host — an AI application like [Claude Code](https://www.anthropic.com/claude-code) or [Claude Desktop](https://www.claude.ai/download) — establishes connections to one or more MCP servers. The MCP host accomplishes this by creating one MCP client for each MCP server. Each MCP client maintains a dedicated one-to-one connection with its corresponding MCP server.
31+
MCP follows a client-server architecture where an MCP host — an AI application like [Claude Code](https://www.anthropic.com/claude-code) or [Claude Desktop](https://www.claude.ai/download) — establishes connections to one or more MCP servers. The MCP host accomplishes this by creating one MCP client for each MCP server. Each MCP client maintains a dedicated connection with its corresponding MCP server.
32+
33+
Local MCP servers that use the STDIO transport typically serve a single MCP client, whereas remote MCP servers that use the Streamable HTTP transport will typically serve many MCP clients.
3234

3335
The key participants in the MCP architecture are:
3436

@@ -37,24 +39,25 @@ The key participants in the MCP architecture are:
3739
- **MCP Server**: A program that provides context to MCP clients
3840

3941
**For example**: Visual Studio Code acts as an MCP host. When Visual Studio Code establishes a connection to an MCP server, such as the [Sentry MCP server](https://docs.sentry.io/product/sentry-mcp/), the Visual Studio Code runtime instantiates an MCP client object that maintains the connection to the Sentry MCP server.
40-
When Visual Studio Code subsequently connects to another MCP server, such as the [local filesystem server](https://github.com/modelcontextprotocol/servers/tree/main/src/filesystem), the Visual Studio Code runtime instantiates an additional MCP client object to maintain this connection, hence maintaining a one-to-one
41-
relationship of MCP clients to MCP servers.
42+
When Visual Studio Code subsequently connects to another MCP server, such as the [local filesystem server](https://github.com/modelcontextprotocol/servers/tree/main/src/filesystem), the Visual Studio Code runtime instantiates an additional MCP client object to maintain this connection.
4243

4344
```mermaid
4445
graph TB
4546
subgraph "MCP Host (AI Application)"
4647
Client1["MCP Client 1"]
4748
Client2["MCP Client 2"]
4849
Client3["MCP Client 3"]
50+
Client4["MCP Client 4"]
4951
end
5052
51-
Server1["MCP Server 1<br/>(e.g., Sentry)"]
52-
Server2["MCP Server 2<br/>(e.g., Filesystem)"]
53-
Server3["MCP Server 3<br/>(e.g., Database)"]
53+
ServerA["MCP Server A - Local<br/>(e.g. Filesystem)"]
54+
ServerB["MCP Server B - Local<br/>(e.g. Database)"]
55+
ServerC["MCP Server C - Remote<br/>(e.g. Sentry)"]
5456
55-
Client1 ---|"One-to-one<br/>connection"| Server1
56-
Client2 ---|"One-to-one<br/>connection"| Server2
57-
Client3 ---|"One-to-one<br/>connection"| Server3
57+
Client1 ---|"Dedicated<br/>connection"| ServerA
58+
Client2 ---|"Dedicated<br/>connection"| ServerB
59+
Client3 ---|"Dedicated<br/>connection"| ServerC
60+
Client4 ---|"Dedicated<br/>connection"| ServerC
5861
```
5962

6063
Note that **MCP server** refers to the program that serves context data, regardless of

0 commit comments

Comments
 (0)