You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The docs render as one flat 15-chapter "Tutorial - User Guide" plus a
15-item "Advanced" grab-bag (whose sidebar heading is a dead label: it has
no index page), and the section a deploying user needs most, "Running your
server", has exactly one child, titled "ASGI".
Regroup the same 40 pages into sections a reader would actually scan for:
Get started install -> first server -> test it
Servers one page per thing a server exposes; Tools first
Inside your handler the Context, dependencies, and everything a
running handler can do
Running your server now also owns Authorization and OpenTelemetry
Clients now also owns OAuth, identity assertion,
connecting to multiple servers, and the cache
Advanced only the genuine escape hatches (5, was 15),
with a real, clickable index page
"Protocol versions" and "Deprecated features" become their own top-level
entries. The first is the one page that squarely explains the two protocol
eras and was buried as the last child of "The Client", where a server
author never looks. The second is the SEP-2577 retirement table, filed
dead last in "Advanced".
Not a single file moves. MkDocs nav sections, nav titles, and file paths
are three independent things, so this is an mkdocs.yml edit plus three
new ~200-word section index pages (docs/servers/, docs/handlers/,
docs/advanced/). Every existing URL, every `--8<--` include, and every
docs_src test is untouched, and Material's breadcrumbs follow the nav,
not the directory.
docs/tutorial/index.md is rewritten from a "how these docs are built"
meta page into the Get started doorway; its tested-examples promise is
kept. tests/test_examples.py gains the two new docs directories so their
fenced code blocks stay lint-covered, and AGENTS.md's description of how
the docs are organised is updated to match.
Copy file name to clipboardExpand all lines: docs/tutorial/index.md
+13-13Lines changed: 13 additions & 13 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,8 +1,8 @@
1
-
# Tutorial - User Guide
1
+
# Get started
2
2
3
-
This tutorial shows you how to use the MCP Python SDK, step by step.
4
-
5
-
Each section gradually builds on the previous ones, but it's written so you can go straight to any specific section to solve a specific problem. It also works as a future reference: you can come back to exactly the part you need.
3
+
New to MCP, or new to this SDK? Start here. These pages take you from nothing to a
4
+
working, tested server: [install the SDK](../installation.md), build your
5
+
[first server](first-steps.md), and [test it](testing.md) with an in-memory client.
6
6
7
7
## Run the code
8
8
@@ -18,7 +18,7 @@ It is **HIGHLY encouraged** that you write (or copy) the code, edit it, and run
18
18
19
19
## You will not be guessing
20
20
21
-
Every example in this tutorial is a complete file under [`docs_src/`](https://github.com/modelcontextprotocol/python-sdk/tree/main/docs_src) in the SDK's own repository, and every one of them is exercised by the SDK's test suite through an **in-memory client**:
21
+
Every example in these docs is a complete file under [`docs_src/`](https://github.com/modelcontextprotocol/python-sdk/tree/main/docs_src) in the SDK's own repository, and every one of them is exercised by the SDK's test suite through an **in-memory client**:
22
22
23
23
```python
24
24
import pytest
@@ -38,14 +38,14 @@ No subprocess, no port, no transport. `Client(mcp)` connects to the server objec
38
38
39
39
If a change to the SDK breaks an example on one of these pages, CI goes red before the page does. The code you read here is the code that runs.
40
40
41
-
You'll use this yourself in the [Testing](testing.md) chapter; it's how you test your own servers, too.
42
-
43
-
## Install the SDK
44
-
45
-
If you haven't yet, [install the SDK](../installation.md) first.
41
+
You'll use this yourself in [Testing](testing.md); it's how you test your own servers, too.
46
42
47
-
## Advanced User Guide
43
+
## Where to go next
48
44
49
-
There is also an **Advanced User Guide** you can read after this one.
45
+
Once you have a server running, the rest of these docs are a reference, not a course.
46
+
Every page stands on its own — jump straight to what you need:
50
47
51
-
It builds on this tutorial, uses the same concepts, and teaches you the extra things: the low-level `Server`, middleware, authorization, the 2026-07-28 protocol negotiation. But you should read this first: everything in the Advanced guide assumes you know the basics.
48
+
* What a server exposes — tools, resources, prompts — is **[Servers](../servers/index.md)**.
49
+
* What's available inside the functions you register is **[Inside your handler](../handlers/index.md)**.
50
+
* Getting it in front of clients — stdio, HTTP, your existing FastAPI app — is **[Running your server](../run/index.md)**.
51
+
* Building the other side, an application that *uses* MCP servers, is **[Clients](../client/index.md)**.
0 commit comments