@@ -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
66127import { Server } from " @modelcontextprotocol/sdk/server/index.js" ;
67128import { StdioServerTransport } from " @modelcontextprotocol/sdk/server/stdio.js" ;
0 commit comments