MCP Server
About
A sample Node.js MCP Server template that you can use to create your own MCP servers.
Details
- License
- MIT
Explore
- π Built with TypeScript for type safety and better developer experience
- π Supports both stdio and SSE transports
- π¦ Includes example prompts, resources, and tools
- β‘ Uses FastMCP for rapid development
- Node.js
- npm or yarn package manager
{
"mcpServers": {
"example-server": {
"command": "node",
"args": [ "dist/server.js" ]
}
}
}
{
"mcpServers": {
"example-server": {
"url": "https://example-server.com/sse"
}
}
}
Create a new file in src/tools/ and add it to server.ts. Learn more about MCP Tools:
import myTool from "./tools/my-tool.js";
server.addTool(myTool);
A TypeScript template repository for creating Model Context Protocol (MCP) servers with support for both stdio (Standard Input/Output) and SSE (Server-Sent Events) transports. This template provides a solid foundation for building MCP servers with a well-organized structure and essential features.
Features
- π Built with TypeScript for type safety and better developer experience
- π Supports both stdio and SSE transports
- π¦ Includes example prompts, resources, and tools
- β‘ Uses FastMCP for rapid development
Prerequisites
- Node.js
- npm or yarn package manager
Getting Started
1. Create a repo from this template
Click Use this template > Create a new repository

1. Clone your repository
git clone https://github.com/iamtraction/node-mcp-server.git
cd node-mcp-server
2. Install dependencies
npm install
3. Start development server
npm run dev
Project Structure
src/
βββ prompts/ # MCP prompts
βββ resources/ # MCP resources
βββ tools/ # MCP tools
βββ server.ts # Main server file
Available Scripts
- npm run dev - Start development server with hot reload
- npm run build - Build the TypeScript code
- npm run start - Start the production server
- npm run watch - Watch for TypeScript changes
- npm run lint - Run ESLint to check code quality and style
Adding New Features
Adding a Prompt
Create a new file in src/prompts/ and add it to server.ts. Learn more about MCP Prompts:
import myPrompt from "./prompts/my-prompt.js";
server.addPrompt(myPrompt);
Adding a Resource
Create a new file in src/resources/ and add it to server.ts. Learn more about MCP Resources:
import myResource from "./resources/my-resource.js";
server.addResource(myResource);
Adding a Tool
Create a new file in src/tools/ and add it to server.ts. Learn more about MCP Tools:
import myTool from "./tools/my-tool.js";
server.addTool(myTool);
Configuration
The server can be configured in server.ts. By default, it runs on port 3000 with SSE transport. You can modify the configuration in the server.start() options.:
server.start({
transportType: "httpStream", // or "stdio"
httpStream: {
port: 3000,
},
});
Learn more about Transports.
Using the MCP Server
stdio Server Setup
{
"mcpServers": {
"example-server": {
"command": "node",
"args": [ "dist/server.js" ]
}
}
}
SSE Server Setup
{
"mcpServers": {
"example-server": {
"url": "https://example-server.com/sse"
}
}
}
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Showcase
Have you built something cool with this template? Add it to the showcase!
<!-- Add your project here -->
> To add your project to the showcase:
>
> 1. Edit this README.md file
> 2. Add your project to the list above using this format:
>
> - Your Project Name - Brief description
> > 3. Submit a pull request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgments
- Model Context Protocol - The protocol specification
- MCP TypeScript SDK - The official TypeScript SDK
- FastMCP - The underlying MCP framework
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.



