8000 docs: Clarify server-client relationship by sdmcraft · Pull Request #1631 · modelcontextprotocol/modelcontextprotocol · GitHub
[go: up one dir, main page]

Skip to content

Conversation

sdmcraft
Copy link
Contributor
@sdmcraft sdmcraft commented Oct 9, 2025

This PR clarifies the server-client relationship in MCP architecture documentation to resolve ambiguity about whether servers can handle multiple concurrent client connections. The changes explicitly state that while each client maintains a dedicated connection to a server, MCP servers may accept connections from multiple clients concurrently.

Motivation and Context

This change addresses GitHub issue #1402 which highlighted ambiguity in the MCP specification regarding the server-client relationship. The issue noted that:

  • The specification describes a 1:1 relationship between client and server
  • But it was unclear whether a server MUST serve only one client
  • This ambiguity led to different implementations (e.g., mcp-go allowing one server per multiple clients)
  • The documentation had conflicting statements about this relationship

The changes clarify that the 1:1 relationship refers to individual connections, not server capability, resolving implementation inconsistencies across different MCP SDKs.

How Has This Been Tested?

This is a documentation-only change that clarifies existing behavior rather than changing it. The changes have been reviewed for:

  • Consistency across all specification versions
  • Clarity of language and technical accuracy
  • Alignment with existing MCP implementations that support multiple concurrent client connections

Breaking Changes

None. This is purely a documentation clarification that makes explicit what was already implicit in the protocol design. No code changes or configuration updates are required.

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Documentation update

Checklist

  • I have read the MCP Documentation
  • My code follows the repository's style guidelines
  • New and existing tests pass locally
  • I have added appropriate error handling
  • I have added or updated documentation as needed

Additional context

Files changed:

  • docs/docs/learn/architecture.mdx: Added clarifying note about server capability to accept multiple concurrent client connections
  • docs/specification/2024-11-05/basic/transports.mdx: Enhanced stdio transport description to clarify the one-to-one relationship between client and server instance

Key clarifications:

  1. Server capability: MCP servers may accept connections from multiple MCP clients concurrently
  2. Connection relationship: Each client maintains a dedicated connection to a server instance
  3. Transport specificity: The stdio transport creates a dedicated channel ensuring strict one-to-one relationship between each client and its server instance

This resolves the implementation ambiguity that was causing different SDKs to interpret the server-client relationship differently, providing clear guidance for future MCP implementations.

@sdmcraft
Copy link
Contributor Author

@jonathanhefner , would you mind taking a look at this?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

0