About Hello World MCP Server
A TypeScript MCP server example for developers learning or testing MCP. It demonstrates resources, prompts, tools, and SSE and STDIO transports.
Key features
- 01SSE and STDIO transports
- 02Static and dynamic resources
- 03Sample prompt
- 04Echo and debug tools
Use cases
- 01Learn the structure of an MCP server
- 02Browse resources and invoke tools with MCP Inspector
MCP support
The server exposes static and dynamic resources, a prompt, an echo tool, and a debug tool to MCP clients.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMEHello World MCP Server
A simple Model Context Protocol (MCP) server implementation built with TypeScript. This server demonstrates basic MCP functionality including resources, prompts, and tools.
Features
- SSE and STDIO transport support
- Resource handling with static and dynamic resources
- Sample prompt implementation
- Example tool that echoes messages
- Debug tool for server introspection
Getting Started
Prerequisites
- Node.js (v16 or higher)
- npm or yarn
Installation
npm install
Build
npm run build
Running the Server
HTTP/SSE Transport (Web Browsers)
npm run start:http
This starts the server on http://localhost:3000 with:
- SSE endpoint at
/sse - Message endpoint at
/messages
STDIO Transport (Command Line)
npm run start
This runs the server in stdio mode for command-line integrations.
Testing the Server
Testing with cURL
-
Start the HTTP server:
npm run start:http -
In a terminal window, connect to the SSE endpoint:
curl -N http://localhost:3000/sseYou should see a response like:
event: endpoint data: /messages?sessionId=YOUR_SESSION_ID -
In another terminal window, send a request to invoke the echo tool:
curl -X POST \ "http://localhost:3000/messages?sessionId=YOUR_SESSION_ID" \ -H 'Content-Type: application/json' \ -d '{ "jsonrpc": "2.0", "id": 1, "method": "tools/invoke", "params": { "name": "echo", "parameters": { "message": "Testing the MCP server!" } } }' -
You should see a response in the SSE terminal window:
event: message data: {"jsonrpc":"2.0","id":1,"result":{"content":[{"type":"text","text":"Hello Testing the MCP server!"}]}} -
Try the debug tool to see available server methods:
curl -X POST \ "http://localhost:3000/messages?sessionId=YOUR_SESSION_ID" \ -H 'Content-Type: application/json' \ -d '{ "jsonrpc": "2.0", "id": 2, "method": "tools/invoke", "params": { "name": "debug", "parameters": {} } }'
Testing with MCP Inspector
For a visual interface, you can use the MCP Inspector tool:
- Connect to http://localhost:3000/sse in the MCP Inspector
- Browse available resources and tools
- Invoke tools interactively


Server API
Resources
hello://world- A static hello world resourcegreeting://{name}- A dynamic greeting with a name parameter
Tools
echo- Echoes back a message with "Hello" prefixdebug- Lists all available tools and methods
Prompts
helpful-assistant- A basic helpful assistant prompt
Troubleshooting
- If you get "Headers already sent" errors, make sure you're not manually setting headers
- Session ID handling is crucial for proper message routing
- Check the server console for debugging information
License
MIT
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.