mcp-helper
v2.1.1
Published
MCP development assistant: scaffold MCP servers (Node SDK v2 / Go) with stdio + Streamable HTTP.
Maintainers
Readme
MCP Helper (mcp-cli)
用于脚手架化创建 Node(SDK v2) 或 Go MCP 服务端项目的命令行工具。
- 默认文档:英文(见 README.md)
- 本页为中文版本
项目概述
mcp-cli 可生成可运行的 MCP 服务器:
Node:
@modelcontextprotocol/server+ 可选 Hono Streamable HTTPGo:官方
github.com/modelcontextprotocol/go-sdk传输:
stdio和/或streamable-http(/mcp)带轮转的文件日志(stdio 下不会污染 stdout)
可选 Node bootstrap(Prettier、Husky 等)
2.x 为破坏性升级:无 Express、无 Legacy SSE、无
@modelcontextprotocol/sdkv1。
环境要求
- Node.js 20+ 与 pnpm(CLI 与 Node 脚手架)
- Go 1.25+(仅 Go 脚手架需要)
安装与运行
pnpm install
pnpm build
node build/cli.js --help可选二进制:
pnpm build:bin使用方法
mcp-cli init [name]选项
| 参数 | 说明 |
| ------------------------ | ------------------------------------------ |
| -y, --yes | 跳过交互 |
| -l, --lang <node\|go> | 语言(默认 node) |
| -t, --transport <list> | stdio、streamable-http(默认 stdio) |
| -b, --bootstrap | 仅 Node 的 bootstrap |
| -s, --skip-install | 跳过依赖安装 |
示例
# Node
mcp-cli init my-mcp -y -l node -t stdio,streamable-http
cd my-mcp
pnpm debug
MCP_TRANSPORT=http pnpm start
# Go
mcp-cli init my-go-mcp -y -l go -t stdio,streamable-http
cd my-go-mcp && make tidy && make run-http生成内容
Node 目录结构
面向 SOLID 的分层(仅生成所选传输 / 鉴权相关文件):
| 路径 | 职责 |
| ------------------------ | ---------------------------------------- |
| src/index.ts | 组合根:串联 config、logger、transport |
| src/config.ts | 环境变量 / 应用配置 |
| src/logger.ts | 可注入日志 + 文件轮转 |
| src/server.ts | 组装 McpServer(不含传输) |
| src/tools/ | Tool 注册(含 ping、echo;在此扩展) |
| src/auth/bearer.ts | HTTP Bearer 鉴权(仅选 HTTP 时生成) |
| src/transport/stdio.ts | stdio 适配器 |
| src/transport/http.ts | Streamable HTTP / Hono 适配器 |
脚本:build、start、start:stdio / start:http、debug、build:bin。
扩展 Node 项目
- 新增
src/tools/my-tool.ts,导出registerMyTool(server) - 在
src/tools/index.ts中注册 pnpm build后重启即可,无需改传输层
Go 目录结构
cmd/server/main.go— 官方 Go SDK 上的ping/echointernal/logger— stderr + 轮转文件日志Makefile—build、run、run-stdio、run-http
共用环境变量
| 变量 | 含义 |
| ------------------------------- | --------------------------------------- |
| MCP_TRANSPORT | stdio | http(同时生成两种传输时) |
| MCP_HOST / MCP_PORT | HTTP 监听地址 |
| MCP_AUTH_TOKEN | HTTP /mcp 可选 Bearer |
| MCP_LOG_LEVEL / MCP_LOG_DIR | 日志控制 |
不识别旧别名 sse / remote。
面向本 CLI 的开发
pnpm build
pnpm typecheck
pnpm test
pnpm format发布
在 main 上、工作区干净时:
pnpm release # 交互式 bump,提交、打 tag、push
pnpm release -- patch # 或 minor / major / prepatch / preminor / premajor
pnpm release -- --no-increment # 为当前 package.json 版本打 tag(例如首次发 2.x)
pnpm release -- --dry-run # 预览,不写 git/npm本地 不会 发 npm。推送 v* 标签后由 GitHub Actions 通过 npm Trusted Publishing(OIDC)发布并创建 GitHub Release。不需要 NPM_TOKEN;npmjs.com 上的 Trusted Publisher 需指向本仓库,工作流文件名为 publish.yml。
许可证
ISC
