Skip to content

yadav-prakhar/mcp-maker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

25 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

MCP Maker

Supercharge your MCP server development with MCP Maker

npm version Downloads License NodeJS

πŸš€ Introduction β€’ ✨ Features β€’ πŸ“₯ Installation β€’ πŸ”§ Usage β€’ πŸ—οΈ Generated MCP Structure

MCP Maker

A CLI utility to quickly create and manage TypeScript MCP (Model Context Protocol) servers following a modular structure.

πŸ“‹ Table of Contents

πŸš€ Introduction

mcp-maker is a command-line utility designed to streamline the process of creating and managing TypeScript MCP servers. It follows the structure and patterns used for making modular MCP servers, providing a consistent and efficient way to scaffold new projects and add components.

Whether you're creating a new MCP server from scratch or adding tools and services to an existing one, mcp-maker simplifies the process and ensures adherence to best practices.

✨ Features

  • Quick Project Scaffolding: Create a fully structured MCP server project with a single command
  • Automated Tool Creation: Add new tools with proper structure and automatic registration in the toolHandler
  • Service Management: Add new services with proper structure and automatic registration
  • Prompt Creation: Add new MCP-compatible prompts with proper structure and automatic registration
  • Authentication Support: Add multiple authentication types (Basic, Token, OAuth) to your MCP server
  • Consistent Structure: Ensures all projects follow the same structure and patterns
  • TypeScript Support: Full TypeScript support with proper type definitions
  • Interactive CLI: User-friendly command-line interface with helpful prompts
  • Template-based Generation: Uses Handlebars templates for consistent code generation
  • Automatic Dependency Management: Handles npm dependencies and TypeScript configuration

πŸ“₯ Installation

Prerequisites

  • Node.js (>= 18.19.0)
  • npm (>= 7.0.0)

Global Installation (Recommended)

npm install -g mcp-maker

Local Installation

npm install --save-dev mcp-maker

πŸ”§ Usage

Create a New MCP Server

mcp-maker create server <name> [options]

Options

  • --http: Use HTTP transport instead of default stdio
  • --cors: Enable CORS with wildcard (*) access
  • --port <number>: Specify HTTP port (only valid with --http)
  • --no-install: Skip npm install and build steps
  • -h, --help: Display help for the command

Example

mcp-maker create server my-mcp-server --http --port 3000 --cors

This will create a new MCP server project named my-mcp-server with HTTP transport on port 3000 and CORS enabled.

Add a Tool

mcp-maker add tool <name> [options]

Options

  • -h, --help: Display help for the command

Example

cd my-mcp-server
mcp-maker add tool get-user-data

This will:

  1. Create a new tool directory in src/tools/get-user-data
  2. Create the tool implementation and index files
  3. Update the main tools index to include the new tool
  4. Update the toolHandler to handle the new tool

Add a Service

mcp-maker add service <name> [options]

Options

  • -h, --help: Display help for the command

Example

cd my-mcp-server
mcp-maker add service user-service

This will:

  1. Create a new service directory in src/services/user-service
  2. Create the service implementation and index files
  3. Update the main services index to include the new service
  4. Set up proper TypeScript types and interfaces

Add a Prompt

mcp-maker add prompt

Options

  • -h, --help: Display help for the command

Example

cd my-mcp-server
mcp-maker add prompt user-guidance

This will:

  1. Create a new prompt directory in src/prompts/user-guidance
  2. Create the prompt implementation, index, and README files
  3. Update the main prompts index to include the new prompt
  4. Set up proper MCP-compatible prompt structure

Add Authentication

mcp-maker add auth

Options

  • -h, --help: Display help for the command

Example

cd my-mcp-server
mcp-maker add auth

This will:

  1. Create a new auth directory in src/auth with all necessary structure
  2. Set up three authentication types:
    • Basic Authentication (username/password)
    • Token Authentication (API keys, JWT, etc.)
    • OAuth 2.0 Authentication (for integrating with OAuth providers)
  3. Create authentication factory, service, and interfaces
  4. Set up proper TypeScript types and interfaces

πŸ—οΈ Generated MCP Server Project Structure

The mcp-maker CLI scaffolds a new MCP server project with the following structure:

my-mcp-server/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ tools/             # Individual tools
β”‚   β”‚   └── <tool-name>/   # Each tool in its own directory
β”‚   β”‚       β”œβ”€β”€ index.ts   # Tool implementation
β”‚   β”‚       └── types.ts   # Type definitions for the tool
β”‚   β”‚
β”‚   β”œβ”€β”€ services/          # Service implementations
β”‚   β”‚   └── <service-name>/ # Each service in its own directory
β”‚   β”‚       β”œβ”€β”€ index.ts   # Service implementation
β”‚   β”‚       └── types.ts   # Type definitions for the service
β”‚   β”‚
β”‚   β”œβ”€β”€ prompts/           # MCP-compatible prompts
β”‚   β”‚   └── <prompt-name>/ # Each prompt in its own directory
β”‚   β”‚       β”œβ”€β”€ index.ts   # Prompt export in MCP format
β”‚   β”‚       β”œβ”€β”€ <name>Prompt.ts # Prompt implementation
β”‚   β”‚       └── README.md  # Documentation for the prompt
β”‚   β”‚
β”‚   β”œβ”€β”€ auth/              # Authentication (when added)
β”‚   β”‚   β”œβ”€β”€ interfaces/    # Authentication interfaces
β”‚   β”‚   β”œβ”€β”€ methods/       # Authentication method implementations
β”‚   β”‚   β”œβ”€β”€ AuthFactory.ts # Factory for creating auth providers
β”‚   β”‚   β”œβ”€β”€ AuthService.ts # Service for authentication
β”‚   β”‚   └── index.ts       # Main entry point for auth
β”‚   β”‚
β”‚   β”œβ”€β”€ types/             # Global TypeScript type definitions
β”‚   β”œβ”€β”€ utils/             # Utility functions
β”‚   β”œβ”€β”€ config.ts          # Configuration
β”‚   └── index.ts           # Main entry point
β”œβ”€β”€ tests/                 # Test files
β”œβ”€β”€ .gitignore
β”œβ”€β”€ package.json           # Project configuration and dependencies
β”œβ”€β”€ tsconfig.json          # TypeScript configuration
└── README.md

This structure ensures consistency across all MCP server projects created with mcp-maker.

πŸ—‚οΈ Repository Structure

This repository contains the following files and directories:

  • src/: The source code for the mcp-maker CLI utility.
  • tests/: Test files for the mcp-maker CLI utility.
  • README.md: This file, which provides an overview of the mcp-maker CLI utility.
  • LICENSE: The license under which this project is released.
  • CONTRIBUTING.md: Guidelines for contributing to this project.
  • DEVELOPMENT.md: Guidelines for developing and testing this project.
  • CODE_OF_CONDUCT.md: The code of conduct for this project.

🀝 Contributing

We welcome contributions! Please see our CONTRIBUTING.md for detailed guidelines, including branch naming conventions and pull‑request requirements.

πŸ“„ License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.

Copyright Β© 2025 Prakhar Yadav

About

A CLI utility to quickly create and manage modular TypeScript Model Context Protocol servers.

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors