Skip to content

Commit e60fb5e

Browse files
committed
Update README.md
1 parent 2e35b15 commit e60fb5e

File tree

1 file changed

+61
-0
lines changed

1 file changed

+61
-0
lines changed

README.md

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,67 @@ const resourceContent = await client.request(
6262

6363
### Creating a Server
6464

65+
The SDK provides two ways to create a server: using the low-level `Server` class or the simplified `McpServer` class with an Express-style API.
66+
67+
#### Using McpServer (Recommended)
68+
69+
```typescript
70+
import { McpServer } from "@modelcontextprotocol/sdk/server/index.js";
71+
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
72+
import { z } from "zod";
73+
74+
const server = new McpServer({
75+
name: "example-server",
76+
version: "1.0.0",
77+
});
78+
79+
// Define a simple tool with no parameters
80+
server.tool("save", async () => {
81+
return {
82+
content: [{ type: "text", text: "Saved successfully." }]
83+
};
84+
});
85+
86+
// Define a tool with parameters
87+
server.tool("add", { a: z.number(), b: z.number() }, async ({ a, b }) => {
88+
return {
89+
content: [{ type: "text", text: String(a + b) }]
90+
};
91+
});
92+
93+
// Define a static resource
94+
server.resource(
95+
"welcome-message",
96+
"file:///welcome.txt",
97+
async (uri) => ({
98+
contents: [{
99+
uri: uri.href,
100+
text: "Welcome to the server!"
101+
}]
102+
})
103+
);
104+
105+
// Define a prompt with parameters
106+
server.prompt(
107+
"greeting",
108+
{ name: z.string(), language: z.string().optional() },
109+
({ name, language }) => ({
110+
messages: [{
111+
role: "assistant",
112+
content: {
113+
type: "text",
114+
text: `${language === "es" ? "¡Hola" : "Hello"} ${name}!`
115+
}
116+
}]
117+
})
118+
);
119+
120+
const transport = new StdioServerTransport();
121+
await server.connect(transport);
122+
```
123+
124+
#### Using Server (Low-level API)
125+
65126
```typescript
66127
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
67128
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";

0 commit comments

Comments
 (0)