I built my first MCP server last week and it was way simpler than I expected. Here is exactly how, no fluff.

Prerequisites

  • Node.js 20+
  • 10 minutes

Step 1: Scaffold

npx create-mcp-server my-first-server cd my-first-server npm install 

This generates a complete TypeScript project with one example tool.

Step 2: Add your tool

Open src/index.ts. Replace the hello tool with whatever you want:

server.setRequestHandler(CallToolRequestSchema, async (request) => { const { name, arguments: args } = request.params; if (name === 'current_time') { return { content: [{ type: 'text', text: new Date().toISOString() }] }; } throw new Error(`Unknown tool: ${name}`); }); 

Step 3: Build and connect

npm run build npm start 

Add to Claude Desktop config and you are done.

The whole thing took me 8 minutes. Most of that was reading the docs.

What I learned

  • The MCP SDK handles all the transport layer — you just define tools
  • StdioServerTransport means your server runs as a subprocess. No HTTP, no port conflicts
  • Error handling is important. If your tool crashes, the whole MCP connection breaks

Want to try it?

npm install -g mcp-hub mcp-hub search mcp 

Built with mcp-hub. If this helps, buy me a coffee.