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
Most `*.md` files were converted to `*.mdx` in modelcontextprotocol#283, but `package.json`
scripts and CI config were not updated to match. This commit makes the
necessary updates.
Unfortunately, Prettier currently only supports MDX v1 (see
[prettier#15221][] and [prettier#12209][]), which causes it to treat
content inside JSX tags as JSX instead of Markdown unless the content is
surrounded by blank lines (see [prettier#16589][]). Therefore, this
commit also adds blank lines inside JSX elements where necessary.
This commit also removes the 89-character line wrap rule for `.md` files
rather than update it for `.mdx` files. It's not clear that the rule
was helpful, and we already have many files that do not abide by it:
```console
$ grep -l '.{90}' docs/**/*.mdx | wc -l
59
```
For ease of rebasing, this commit _does not_ actually format the files
using Prettier. That will be done in the next commit.
[prettier#15221]: prettier/prettier#15221
[prettier#12209]: prettier/prettier#12209
[prettier#16589]: prettier/prettier#16589
Copy file name to clipboardExpand all lines: docs/development/roadmap.mdx
+5-1Lines changed: 5 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,7 +7,11 @@ description: Our plans for evolving Model Context Protocol
7
7
8
8
The Model Context Protocol is rapidly evolving. This page outlines our current thinking on key priorities and direction for approximately **the next six months**, though these may change significantly as the project develops. To see what's changed recently, check out the **[specification changelog](/specification/2025-03-26/changelog/)**.
9
9
10
-
<Note>The ideas presented here are not commitments—we may solve these challenges differently than described, or some may not materialize at all. This is also not an _exhaustive_ list; we may incorporate work that isn't mentioned here.</Note>
10
+
<Note>
11
+
12
+
The ideas presented here are not commitments—we may solve these challenges differently than described, or some may not materialize at all. This is also not an _exhaustive_ list; we may incorporate work that isn't mentioned here.
13
+
14
+
</Note>
11
15
12
16
We value community participation! Each section links to relevant discussions where you can learn more and contribute your thoughts.
Prompts enable servers to define reusable prompt templates and workflows that clients can easily surface to users and LLMs. They provide a powerful way to standardize and share common LLM interactions.
7
7
8
8
<Note>
9
+
9
10
Prompts are designed to be **user-controlled**, meaning they are exposed from servers to clients with the intention of the user being able to explicitly select them for use.
11
+
10
12
</Note>
11
13
12
14
## Overview
@@ -197,6 +199,7 @@ Here's a complete example of implementing prompts in an MCP server:
197
199
198
200
<Tabs>
199
201
<Tabtitle="TypeScript">
202
+
200
203
```typescript
201
204
import { Server } from"@modelcontextprotocol/sdk/server";
202
205
import {
@@ -289,8 +292,10 @@ Here's a complete example of implementing prompts in an MCP server:
289
292
thrownewError("Prompt implementation not found");
290
293
});
291
294
```
295
+
292
296
</Tab>
293
297
<Tabtitle="Python">
298
+
294
299
```python
295
300
from mcp.server import Server
296
301
import mcp.types as types
@@ -372,6 +377,7 @@ Here's a complete example of implementing prompts in an MCP server:
372
377
373
378
raiseValueError("Prompt implementation not found")
Copy file name to clipboardExpand all lines: docs/docs/concepts/resources.mdx
+8Lines changed: 8 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,13 +6,15 @@ description: "Expose data and content from your servers to LLMs"
6
6
Resources are a core primitive in the Model Context Protocol (MCP) that allow servers to expose data and content that can be read by clients and used as context for LLM interactions.
7
7
8
8
<Note>
9
+
9
10
Resources are designed to be **application-controlled**, meaning that the client application can decide how and when they should be used.
10
11
Different MCP clients may handle resources differently. For example:
11
12
- Claude Desktop currently requires users to explicitly select resources before they can be used
12
13
- Other clients might automatically select resources based on heuristics
13
14
- Some implementations may even allow the AI model itself to determine which resources to use
14
15
15
16
Server authors should be prepared to handle any of these interaction patterns when implementing resource support. In order to expose data to models automatically, server authors should use a **model-controlled** primitive such as [Tools](./tools).
17
+
16
18
</Note>
17
19
18
20
## Overview
@@ -119,7 +121,9 @@ The server responds with a list of resource contents:
119
121
```
120
122
121
123
<Tip>
124
+
122
125
Servers may return multiple resources in response to one `resources/read` request. This could be used, for example, to return a list of files inside a directory when the directory is read.
126
+
123
127
</Tip>
124
128
125
129
## Resource updates
@@ -145,6 +149,7 @@ Here's a simple example of implementing resource support in an MCP server:
145
149
146
150
<Tabs>
147
151
<Tabtitle="TypeScript">
152
+
148
153
```typescript
149
154
const server =newServer({
150
155
name: "example-server",
@@ -188,8 +193,10 @@ Here's a simple example of implementing resource support in an MCP server:
188
193
thrownewError("Resource not found");
189
194
});
190
195
```
196
+
191
197
</Tab>
192
198
<Tabtitle="Python">
199
+
193
200
```python
194
201
app = Server("example-server")
195
202
@@ -219,6 +226,7 @@ Here's a simple example of implementing resource support in an MCP server:
Copy file name to clipboardExpand all lines: docs/docs/concepts/sampling.mdx
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,7 +6,9 @@ description: "Let your servers request completions from LLMs"
6
6
Sampling is a powerful MCP feature that allows servers to request LLM completions through the client, enabling sophisticated agentic behaviors while maintaining security and privacy.
7
7
8
8
<Info>
9
+
9
10
This feature of MCP is not yet supported in the Claude Desktop client.
Copy file name to clipboardExpand all lines: docs/docs/concepts/tools.mdx
+17-3Lines changed: 17 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,7 +6,9 @@ description: "Enable LLMs to perform actions through your server"
6
6
Tools are a powerful primitive in the Model Context Protocol (MCP) that enable servers to expose executable functionality to clients. Through tools, LLMs can interact with external systems, perform computations, and take actions in the real world.
7
7
8
8
<Note>
9
+
9
10
Tools are designed to be **model-controlled**, meaning that tools are exposed from servers to clients with the intention of the AI model being able to automatically invoke them (with a human in the loop to grant approval).
11
+
10
12
</Note>
11
13
12
14
## Overview
@@ -47,6 +49,7 @@ Here's an example of implementing a basic tool in an MCP server:
47
49
48
50
<Tabs>
49
51
<Tabtitle="TypeScript">
52
+
50
53
```typescript
51
54
const server =newServer({
52
55
name: "example-server",
@@ -91,8 +94,10 @@ Here's an example of implementing a basic tool in an MCP server:
91
94
thrownewError("Tool not found");
92
95
});
93
96
```
97
+
94
98
</Tab>
95
99
<Tabtitle="Python">
100
+
96
101
```python
97
102
app = Server("example-server")
98
103
@@ -125,6 +130,7 @@ Here's an example of implementing a basic tool in an MCP server:
0 commit comments