create-mcp-server
Health Warn
- License — License: Apache-2.0
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Low visibility — Only 9 GitHub stars
Code Fail
- execSync — Synchronous shell command execution in scripts/update-template-deps.mjs
- execSync — Synchronous shell command execution in src/project-generator.ts
Permissions Pass
- Permissions — No dangerous permissions requested
This is an interactive command-line scaffolding tool designed to quickly generate production-ready boilerplate code for Model Context Protocol (MCP) servers using TypeScript.
Security Assessment
Overall Risk: Medium. The tool does not request dangerous system permissions, access sensitive user data, or contain hardcoded secrets. However, the codebase uses synchronous shell command execution (`execSync`) in two distinct files, including the core project generator. While normal for a CLI scaffolding tool that needs to run commands like `git init` or `npm install`, executing shell commands always introduces a moderate level of risk. If a malicious project name or external input is not properly sanitized before being passed to the shell, it could potentially lead to command injection.
Quality Assessment
The project is very new and currently has low community visibility with only 9 GitHub stars. However, it is an actively maintained repository, with the most recent code push occurring today. It uses the standard and permissive Apache-2.0 (noted as MIT in the README) license, making it fully open source and safe for integration into larger projects. Overall community trust and real-world testing remain limited simply due to the project's age.
Verdict
Use with caution — it is a standard, active boilerplate generator, but its low community adoption and direct shell execution mean you should inspect its generated output before deploying.
Scaffold production-ready MCP servers in seconds
@agentailor/create-mcp-server
Scaffold production-ready MCP servers in seconds.
Quick Start
Interactive mode (guided prompts):
npx @agentailor/create-mcp-server
CLI mode (all options via arguments):
npx @agentailor/create-mcp-server --name=my-server
CLI Options
| Option | Short | Default | Description |
|---|---|---|---|
--name |
-n |
— | Project name (required in CLI mode) |
--package-manager |
-p |
npm |
Package manager: npm, pnpm, yarn |
--framework |
-f |
sdk |
Framework: sdk, fastmcp |
--stdio |
— | false |
Use stdio transport (for local clients) |
--template |
-t |
stateless |
Server mode: stateless, stateful (HTTP only) |
--oauth |
— | false |
Enable OAuth (sdk+stateful only, incompatible with --stdio) |
--no-git |
— | false |
Skip git initialization |
--help |
-h |
— | Show help |
--version |
-V |
— | Show version |
Examples:
# Minimal - uses all defaults (HTTP streamable)
npx @agentailor/create-mcp-server --name=my-server
# stdio server (for local clients)
npx @agentailor/create-mcp-server --name=my-server --stdio
# stdio with FastMCP
npx @agentailor/create-mcp-server --name=my-server --stdio --framework=fastmcp
# Full HTTP options
npx @agentailor/create-mcp-server \
--name=my-auth-server \
--package-manager=pnpm \
--framework=sdk \
--template=stateful \
--oauth
# Short flags
npx @agentailor/create-mcp-server -n my-server -p yarn -f fastmcp
Features
- Two frameworks — Official MCP SDK or FastMCP
- Two transport types — HTTP (streamable) or stdio (for local cllients)
- Two HTTP server modes — stateless or stateful with session management
- Optional OAuth — OIDC-compliant authentication (SDK HTTP only) (setup guide)
- Package manager choice — npm, pnpm, or yarn
- TypeScript ready — ready to customize
- Docker ready — production Dockerfile included (HTTP transport)
- MCP Inspector — built-in debugging with
npm run inspect
Frameworks
| Framework | Description |
|---|---|
| Official MCP SDK (default) | Full control with Express.js, supports OAuth |
| FastMCP | Simpler API with less boilerplate |
FastMCP
FastMCP is a TypeScript framework built on top of the official MCP SDK that provides a simpler, more intuitive API for building MCP servers.
import { FastMCP } from "fastmcp";
import { z } from "zod";
const server = new FastMCP({ name: "My Server", version: "1.0.0" });
server.addTool({
name: "add",
description: "Add two numbers",
parameters: z.object({ a: z.number(), b: z.number() }),
execute: async ({ a, b }) => String(a + b),
});
server.start({ transportType: "httpStream", httpStream: { port: 3000 } });
Learn more: FastMCP Documentation
Transport Types
| Feature | HTTP (Streamable HTTP) | stdio |
|---|---|---|
| Use case | Remote access, cloud deployment | Local clients (Claude Desktop) |
| Protocol | HTTP/SSE | stdin/stdout |
| Session management | ✓ (stateful mode) | — |
| OAuth support | ✓ (SDK stateful) | — |
| Docker deployment | ✓ | — |
| Port configuration | ✓ | — |
HTTP: Deploy as an HTTP server accessible remotely. Choose stateless or stateful mode.
stdio: Run as a local process. Communicates over stdin/stdout. Ideal for local clients. No HTTP server, no port, no Dockerfile generated.
Server Modes (HTTP only)
| Feature | Stateless (default) | Stateful |
|---|---|---|
| Session management | — | ✓ |
| SSE support | — | ✓ |
| OAuth option (SDK only) | — | ✓ |
| Endpoints | POST /mcp | POST, GET, DELETE /mcp |
Stateless: Simple HTTP server — each request creates a new transport instance.
Stateful: Session-based server with transport reuse, Server-Sent Events for real-time updates, and optional OAuth authentication (SDK only).
Generated Project
my-mcp-server/
├── src/
│ ├── server.ts # MCP server (tools, prompts, resources)
│ ├── index.ts # Express app and transport setup
│ └── auth.ts # OAuth middleware (if enabled)
├── Dockerfile # Production-ready Docker build
├── package.json
├── tsconfig.json
├── .gitignore
├── .env.example
└── README.md
Scripts:
npm run dev— build and start the servernpm run inspect— open MCP Inspector (update URL inpackage.jsonif needed)
Learning Resources
| Guide | Description |
|---|---|
| Create Your First MCP Server in 5 Minutes | Build your first production-ready MCP server. A complete beginner guide to scaffolding a Fetch MCP server with TypeScript. |
| Securing MCP Servers with Keycloak | Learn how to secure your MCP servers with OAuth authentication using Keycloak. |
| Getting Started with FastMCP | Build MCP servers faster with FastMCP — the TypeScript framework inspired by Python's most popular MCP library. |
| OAuth for MCP Clients (Next.js + LangGraph.js) | Implement OAuth authentication in your MCP client using Next.js and the MCP SDK. |
Need help building MCP servers or agent infrastructure?
I help teams design and ship production-ready AI agent systems (MCP, LangGraph, RAG, memory, performance).
If you’re building something serious on top of this:
Happy to jump on a short call.
What is MCP?
The Model Context Protocol (MCP) is an open protocol that enables AI assistants to interact with external tools, data sources, and services.
Built by Agentailor
Built by Agentailor — your launchpad for production-ready MCP servers and scalable AI agents. We provide the tools, templates, and expertise to ship AI-powered applications faster.
Reviews (0)
Sign in to leave a review.
Leave a reviewNo results found