Skip to content

Latest commit

 

History

History
259 lines (190 loc) · 8.53 KB

File metadata and controls

259 lines (190 loc) · 8.53 KB

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