MCP Server

by iamtraction

3 stars
297 downloads
Not rated
GitHub Website

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

- 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

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.