MCP服务器脚手架工具

一键生成可运行的Model Context Protocol (MCP)服务器项目,提供交互式CLI、TypeScript配置和工具注册结构,适用于AI工具开发和平台工程。

  • by navid1111
  • PowerShell
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 navid1111/mcp-server-starter-package

使用说明

mcp服务器启动器

使用一个命令构建一个可运行的模型上下文协议(MCP)服务器。

此软件包是任何构建MCP服务器的人的开发人员生产力工具。与其反复手动连接服务器引导、工具注册、TypeScript配置和打包, mcp-server-starter 生成一个干净的项目框架,以便您可以专注于工具本身。

为什么存在

一旦第一个项目已经建立,MCP就很简单了。令人讨厌的部分是重复的样板:服务器入口点、工具文件夹、构建配置、包元数据和注册逻辑。此启动器取消了设置税。

你得到的

  • 用于引导新MCP服务器的交互式CLI
  • TypeScript配置已就绪的启动项目
  • 示例工具实现
  • 工具注册表结构已准备好进行扩展
  • 无需手动接线即可添加新工具的辅助流程
  • 适合发布可重用MCP服务器的打包

架构概述

flowchart TD
    A[CLI Entry
dist/cli/index.js] --> B[Command Parser]
    B --> C[init]
    B --> D[add-tool]
    C --> E[Template Engine]
    E --> F[Generated MCP Server Project]
    D --> G[Tool Template + Registry Update]
    G --> F
    F --> H[Build + Run + Connect in MCP Client]

快速启动

生成新服务器:

npx mcp-server-starter init --name my-awesome-server
cd my-awesome-server
npm install
npm run build
npm start

稍后添加工具:

npx mcp-server-starter add-tool --name calculator --title "Calculator" --description "Performs calculations"

生成结构示例

my-awesome-server/
├── package.json
├── tsconfig.json
├── README.md
├── .gitignore
└── src/
    ├── server.ts
    └── mcp/
        └── tools/
            ├── index.ts
            └── echo.ts

工作流程示例

sequenceDiagram
    participant Dev as Developer
    participant CLI as mcp-server-starter
    participant Repo as New Server Repo
    participant Client as MCP Client

    Dev->>CLI: init --name weather-server
    CLI->>Repo: scaffold files
    Dev->>CLI: add-tool --name forecast
    CLI->>Repo: create tool + update registry
    Dev->>Repo: implement business logic
    Dev->>Repo: npm run build
    Dev->>Client: connect dist/server.js

示例:搭建服务器并将其连接到客户端

  1. 生成项目。
  2. 建造它。
  3. 添加生成的 dist/server.js MCP客户端配置的路径。

配置代码片段示例:

{
  "mcpServers": {
    "my-awesome-server": {
      "command": "node",
      "args": ["/absolute/path/to/my-awesome-server/dist/server.js"]
    }
  }
}

示例工具实现

import { z } from 'zod';
import type { Tool } from './index.js';

const inputSchema = z.object({
  name: z.string(),
});

export const helloTool: Tool = {
  name: 'hello',
  description: 'Greets a user by name',
  inputSchema: {
    type: 'object',
    properties: {
      name: { type: 'string' },
    },
    required: ['name'],
  },
  handler: async (args: unknown) => {
    const input = inputSchema.parse(args);
    return {
      content: [{ type: 'text', text: `Hello, ${input.name}!` }],
    };
  },
};

CLI命令

init

创建新的MCP服务器支架。

示例:

npx mcp-server-starter init
npx mcp-server-starter init --name my-server --preset minimal
npx mcp-server-starter init --name my-server --description "Internal tools server"

add-tool

将新工具添加到现有服务器支架中。

示例:

npx mcp-server-starter add-tool
npx mcp-server-starter add-tool --name calculator
npx mcp-server-starter add-tool --name calculator --force

项目结构

mcp-server-starter-package/
├── src/
│   ├── cli/
│   ├── commands/
│   ├── templates/
│   └── utils/
├── tests/
├── docs/
└── package.json

技术栈

  • TypeScript
  • Node.js
  • 纱线
  • 开玩笑
  • tsup
  • 变更集

最佳适配

该项目在人工智能工具、开发人员经验和平台工程角色方面尤其强大,因为它将协议知识转化为可重用的开发人员产品。