Skip to content

Commit 2b85d8e

Browse files
Revert "Update TypeScript examples to use simplified API"
1 parent eb87195 commit 2b85d8e

File tree

5 files changed

+251
-141
lines changed

5 files changed

+251
-141
lines changed

docs/concepts/architecture.mdx

Lines changed: 29 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -210,30 +210,35 @@ Here's a basic example of implementing an MCP server:
210210

211211
<Tabs>
212212
<Tab title="TypeScript">
213-
```typescript
214-
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
215-
216-
const server = new McpServer({
217-
name: "example-server",
218-
version: "1.0.0"
219-
});
220-
221-
// Register a resource
222-
server.resource(
223-
"example",
224-
"example://resource",
225-
async (uri) => ({
226-
contents: [{
227-
uri: uri.href,
228-
text: "Example resource content"
229-
}]
230-
})
231-
);
232-
233-
// Connect transport
234-
const transport = new StdioServerTransport();
235-
await server.connect(transport);
236-
```
213+
```typescript
214+
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
215+
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
216+
217+
const server = new Server({
218+
name: "example-server",
219+
version: "1.0.0"
220+
}, {
221+
capabilities: {
222+
resources: {}
223+
}
224+
});
225+
226+
// Handle requests
227+
server.setRequestHandler(ListResourcesRequestSchema, async () => {
228+
return {
229+
resources: [
230+
{
231+
uri: "example://resource",
232+
name: "Example Resource"
233+
}
234+
]
235+
};
236+
});
237+
238+
// Connect transport
239+
const transport = new StdioServerTransport();
240+
await server.connect(transport);
241+
```
237242
</Tab>
238243
<Tab title="Python">
239244
```python

docs/concepts/prompts.mdx

Lines changed: 92 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -197,52 +197,98 @@ Here's a complete example of implementing prompts in an MCP server:
197197

198198
<Tabs>
199199
<Tab title="TypeScript">
200-
```typescript
201-
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
202-
import { z } from "zod";
203-
204-
const server = new McpServer({
205-
name: "example-prompts-server",
206-
version: "1.0.0"
207-
});
208-
209-
// Register git commit prompt
210-
server.prompt(
211-
"git-commit",
212-
"Generate a Git commit message",
213-
{
214-
changes: z.string().describe("Git diff or description of changes")
215-
},
216-
({ changes }) => ({
217-
messages: [{
218-
role: "user",
219-
content: {
220-
type: "text",
221-
text: `Generate a concise but descriptive commit message for these changes:\n\n${changes}`
222-
}
223-
}]
224-
})
225-
);
226-
227-
// Register code explanation prompt
228-
server.prompt(
229-
"explain-code",
230-
"Explain how code works",
231-
{
232-
code: z.string().describe("Code to explain"),
233-
language: z.string().optional().describe("Programming language")
234-
},
235-
({ code, language }) => ({
236-
messages: [{
237-
role: "user",
238-
content: {
239-
type: "text",
240-
text: `Explain how this ${language || "Unknown"} code works:\n\n${code}`
241-
}
242-
}]
243-
})
244-
);
245-
```
200+
```typescript
201+
import { Server } from "@modelcontextprotocol/sdk/server";
202+
import {
203+
ListPromptsRequestSchema,
204+
GetPromptRequestSchema
205+
} from "@modelcontextprotocol/sdk/types";
206+
207+
const PROMPTS = {
208+
"git-commit": {
209+
name: "git-commit",
210+
description: "Generate a Git commit message",
211+
arguments: [
212+
{
213+
name: "changes",
214+
description: "Git diff or description of changes",
215+
required: true
216+
}
217+
]
218+
},
219+
"explain-code": {
220+
name: "explain-code",
221+
description: "Explain how code works",
222+
arguments: [
223+
{
224+
name: "code",
225+
description: "Code to explain",
226+
required: true
227+
},
228+
{
229+
name: "language",
230+
description: "Programming language",
231+
required: false
232+
}
233+
]
234+
}
235+
};
236+
237+
const server = new Server({
238+
name: "example-prompts-server",
239+
version: "1.0.0"
240+
}, {
241+
capabilities: {
242+
prompts: {}
243+
}
244+
});
245+
246+
// List available prompts
247+
server.setRequestHandler(ListPromptsRequestSchema, async () => {
248+
return {
249+
prompts: Object.values(PROMPTS)
250+
};
251+
});
252+
253+
// Get specific prompt
254+
server.setRequestHandler(GetPromptRequestSchema, async (request) => {
255+
const prompt = PROMPTS[request.params.name];
256+
if (!prompt) {
257+
throw new Error(`Prompt not found: ${request.params.name}`);
258+
}
259+
260+
if (request.params.name === "git-commit") {
261+
return {
262+
messages: [
263+
{
264+
role: "user",
265+
content: {
266+
type: "text",
267+
text: `Generate a concise but descriptive commit message for these changes:\n\n${request.params.arguments?.changes}`
268+
}
269+
}
270+
]
271+
};
272+
}
273+
274+
if (request.params.name === "explain-code") {
275+
const language = request.params.arguments?.language || "Unknown";
276+
return {
277+
messages: [
278+
{
279+
role: "user",
280+
content: {
281+
type: "text",
282+
text: `Explain how this ${language} code works:\n\n${request.params.arguments?.code}`
283+
}
284+
}
285+
]
286+
};
287+
}
288+
289+
throw new Error("Prompt implementation not found");
290+
});
291+
```
246292
</Tab>
247293
<Tab title="Python">
248294
```python

docs/concepts/resources.mdx

Lines changed: 33 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -145,32 +145,47 @@ Here's a simple example of implementing resource support in an MCP server:
145145
<Tabs>
146146
<Tab title="TypeScript">
147147
```typescript
148-
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
149-
150-
const server = new McpServer({
148+
const server = new Server({
151149
name: "example-server",
152150
version: "1.0.0"
151+
}, {
152+
capabilities: {
153+
resources: {}
154+
}
155+
});
156+
157+
// List available resources
158+
server.setRequestHandler(ListResourcesRequestSchema, async () => {
159+
return {
160+
resources: [
161+
{
162+
uri: "file:///logs/app.log",
163+
name: "Application Logs",
164+
mimeType: "text/plain"
165+
}
166+
]
167+
};
153168
});
154169

155-
// Add static resource
156-
server.resource(
157-
"logs",
158-
"file:///logs/app.log",
159-
{
160-
mimeType: "text/plain",
161-
description: "Application log file"
162-
},
163-
async (uri) => {
170+
// Read resource contents
171+
server.setRequestHandler(ReadResourceRequestSchema, async (request) => {
172+
const uri = request.params.uri;
173+
174+
if (uri === "file:///logs/app.log") {
164175
const logContents = await readLogFile();
165176
return {
166-
contents: [{
167-
uri: uri.href,
168-
mimeType: "text/plain",
169-
text: logContents
170-
}]
177+
contents: [
178+
{
179+
uri,
180+
mimeType: "text/plain",
181+
text: logContents
182+
}
183+
]
171184
};
172185
}
173-
);
186+
187+
throw new Error("Resource not found");
188+
});
174189
```
175190
</Tab>
176191
<Tab title="Python">

docs/concepts/tools.mdx

Lines changed: 44 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -40,31 +40,50 @@ Here's an example of implementing a basic tool in an MCP server:
4040

4141
<Tabs>
4242
<Tab title="TypeScript">
43-
```typescript
44-
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
45-
import { z } from "zod";
46-
47-
const server = new McpServer({
48-
name: "example-server",
49-
version: "1.0.0"
50-
});
51-
52-
// Register a tool
53-
server.tool(
54-
"calculate_sum",
55-
"Add two numbers together",
56-
{
57-
a: z.number(),
58-
b: z.number()
59-
},
60-
async ({ a, b }) => ({
61-
content: [{
62-
type: "text",
63-
text: String(a + b)
64-
}]
65-
})
66-
);
67-
```
43+
```typescript
44+
const server = new Server({
45+
name: "example-server",
46+
version: "1.0.0"
47+
}, {
48+
capabilities: {
49+
tools: {}
50+
}
51+
});
52+
53+
// Define available tools
54+
server.setRequestHandler(ListToolsRequestSchema, async () => {
55+
return {
56+
tools: [{
57+
name: "calculate_sum",
58+
description: "Add two numbers together",
59+
inputSchema: {
60+
type: "object",
61+
properties: {
62+
a: { type: "number" },
63+
b: { type: "number" }
64+
},
65+
required: ["a", "b"]
66+
}
67+
}]
68+
};
69+
});
70+
71+
// Handle tool execution
72+
server.setRequestHandler(CallToolRequestSchema, async (request) => {
73+
if (request.params.name === "calculate_sum") {
74+
const { a, b } = request.params.arguments;
75+
return {
76+
content: [
77+
{
78+
type: "text",
79+
text: String(a + b)
80+
}
81+
]
82+
};
83+
}
84+
throw new Error("Tool not found");
85+
});
86+
```
6887
</Tab>
6988
<Tab title="Python">
7089
```python

0 commit comments

Comments
 (0)