iamtraction/node-mcp-server
If you are the rightful owner of node-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
A TypeScript template repository for creating Model Context Protocol (MCP) servers with support for both stdio and SSE transports.
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
-
Create a repo from this template
Click Use this template > Create a new repository
-
Clone your repository
git clone https://github.com/iamtraction/node-mcp-server.git cd node-mcp-server
-
Install dependencies
npm install
-
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 reloadnpm run build
- Build the TypeScript codenpm run start
- Start the production servernpm run watch
- Watch for TypeScript changesnpm 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!
To add your project to the showcase:
- Edit this README.md file
- Add your project to the list above using this format:
- [Your Project Name](link-to-your-project) - Brief description
- Submit a pull request
License
This project is licensed under the MIT License - see the file for details.
Acknowledgments
- Model Context Protocol - The protocol specification
- MCP TypeScript SDK - The official TypeScript SDK
- FastMCP - The underlying MCP framework