node-mcp-server

iamtraction/node-mcp-server

3.3

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

  1. Create a repo from this template

    Click Use this template > Create a new repository

    screenshot

  2. Clone your repository

    git clone https://github.com/iamtraction/node-mcp-server.git
    cd node-mcp-server
    
  3. Install dependencies

    npm install
    
  4. 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!

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](link-to-your-project) - Brief description
    
  3. Submit a pull request

License

This project is licensed under the MIT License - see the file for details.

Acknowledgments