node --version
npm install @modelcontextprotocol/sdk
Create an MCP server that exposes a single tool callable by any MCP-compatible client (e.g., Claude Desktop).
1 import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; 2 import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"; 3 import { z } from "zod"; 4 5 const server = new McpServer({ 6 name: "demo-server", 7 version: "1.0.0", 8 }); 9 10 server.tool( 11 "get_current_time", 12 "Returns the current UTC time as an ISO 8601 string", 13 {}, 14 async () => ({ 15 content: [{ type: "text", text: new Date().toISOString() }], 16 }) 17 ); 18 19 server.tool( 20 "echo", 21 "Returns the input message unchanged", 22 { message: z.string().describe("Message to echo") }, 23 async ({ message }) => ({ 24 content: [{ type: "text", text: message }], 25 }) 26 ); 27 28 const transport = new StdioServerTransport(); 29 await server.connect(transport); 30
Sign in to share your feedback and join the discussion.