Skip to content

Commit 10475fb

Browse files
Merge pull request modelcontextprotocol#61 from modelcontextprotocol/justin/design-principles
Capture our design principles
2 parents 94a9676 + 3ae4586 commit 10475fb

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

docs/specification/architecture/_index.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,36 @@ Servers provide specialized context and capabilities:
6969
- Must respect security constraints
7070
- Can be local processes or remote services
7171

72+
## Design Principles
73+
74+
MCP is built on several key design principles that inform its architecture and implementation:
75+
76+
1. **Servers should be extremely easy to build**
77+
- Clients handle complex orchestration responsibilities
78+
- Servers focus on specific, well-defined capabilities
79+
- Simple interfaces minimize implementation overhead
80+
- Clear separation enables maintainable code
81+
82+
2. **Servers should be highly composable**
83+
- Each server provides focused functionality in isolation
84+
- Multiple servers can be combined seamlessly
85+
- Shared protocol enables interoperability
86+
- Modular design supports extensibility
87+
88+
3. **Servers should not be able to read the whole conversation, nor "see into" other servers**
89+
- Servers receive only necessary contextual information
90+
- Full conversation history stays with client/host
91+
- Each server connection maintains isolation
92+
- Cross-server interactions are client-controlled
93+
- Host process enforces security boundaries
94+
95+
4. **Features can be added to servers and clients progressively**
96+
- Core protocol provides minimal required functionality
97+
- Additional capabilities can be negotiated as needed
98+
- Servers and clients evolve independently
99+
- Protocol designed for future extensibility
100+
- Backwards compatibility is maintained
101+
72102
## Message Types
73103
MCP defines three core message types based on [JSON-RPC 2.0](https://www.jsonrpc.org/specification):
74104

0 commit comments

Comments
 (0)