Skip to content

Commit 3ae4586

Browse files
committed
Capture our design principles
1 parent 231bf61 commit 3ae4586

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
@@ -67,6 +67,36 @@ Servers provide specialized context and capabilities:
6767
- Must respect security constraints
6868
- Can be local processes or remote services
6969

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

0 commit comments

Comments
 (0)