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
-
StdioServerTransportmeans 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.