MCP Server

by iamtraction

3 297 downloads Not rated yet MIT

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

screenshot

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

No reviews yet β€” be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.