#!/usr/bin/env node import { Server } from "@modelcontextprotocol/sdk/server/index.js"; import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"; import { CallToolRequestSchema, ListToolsRequestSchema, } from "@modelcontextprotocol/sdk/types.js"; const server = new Server( { name: "hello-world-node", version: "1.0.0", }, { capabilities: { tools: {}, }, }, ); // Handle tool listing server.setRequestHandler(ListToolsRequestSchema, async (request) => { return { tools: [ { name: "get_current_time", description: "Get the current computer time", inputSchema: { type: "object", properties: {}, }, }, ], }; }); // Handle tool execution server.setRequestHandler(CallToolRequestSchema, async (request) => { if (request.params.name === "get_current_time") { const now = new Date(); const timeString = now.toLocaleString("en-US", { weekday: "long", year: "numeric", month: "long", day: "numeric", hour: "2-digit", minute: "2-digit", second: "2-digit", timeZoneName: "short", }); return { content: [ { type: "text", text: `The current time is: ${timeString}`, }, ], }; } throw new Error(`Unknown tool: ${request.params.name}`); }); // Start the server async function main() { const transport = new StdioServerTransport(); await server.connect(transport); console.error("Hello World MCP server running..."); } main().catch((error) => { console.error("Fatal error in main():", error); process.exit(1); });