MCP Server
About
A sample Node.js MCP Server template that you can use to create your own MCP servers.
Details
- Author
- iamtraction
- GitHub stars
- 3
- Downloads
- 297
- Categories
- Other
Jump to
- Built with TypeScript for type safety
- Supports both stdio and SSE transports
- Includes example prompts, resources, and tools
- Uses FastMCP for rapid development
- Provides hot-reload development server
- Available linting and build scripts
Create a new repository from the template, clone it, install dependencies with npm install, and start the development server with npm run dev. Configure the server in server.ts to choose stdio or SSE transport. Add custom prompts, resources, and tools by creating files in the respective src/ subdirectories and registering them in server.ts.
MCP Server
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.



