一个 monorepo,装着一组小而专的 MCP 服务,给 Claude、Cursor 等 AI 助手扩展能力用。每个服务独立打包、独立发布到 npm。
- 📦 Monorepo — pnpm workspaces 管理,新增服务只需新建子目录
- 🚀 独立发布 — 每个服务一个 npm 包,通过 Changesets 自动化版本与发布
- 🔧 TypeScript 优先 — 严格 TS、ESM、Node 20+
- 🧪 CI 全覆盖 — typecheck / test / build 全自动
- 📜 标准 MCP — 基于官方
@modelcontextprotocol/sdk,stdio 传输,即插即用
| 包名 | 说明 | 版本 |
|---|---|---|
@dawipong/mcp-pixabay |
调 Pixabay API 搜免费图片/视频 | |
@dawipong/mcp-undraw |
拉 unDraw 1700+ 开源 SVG 插画,支持染色,无需 API key | |
@dawipong/mcp-github |
包 gh CLI — 读 PR / Issue / Actions runs / workflow 日志,read-only 安全 |
mcp/
├── packages/ # 所有 MCP 服务,一个目录一个服务
│ └── pixabay/ # @dawipong/mcp-pixabay
│ ├── src/index.ts # MCP server 入口
│ ├── package.json # 独立 npm 包元信息
│ └── tsconfig.json
├── .changeset/ # Changesets 版本管理
├── .github/workflows/ # CI / Release pipeline
├── tsconfig.base.json # 所有子包共享的 TS 配置
└── package.json # workspace root
- 复制
packages/pixabay/改名,例如packages/translate/ - 改
package.json:name设成@dawipong/mcp-translate,bin设成mcp-translate,description改掉 - 在
src/index.ts写你的工具 - 跑
pnpm install让 workspace 链接生效 pnpm changeset起一次 changeset,提交 PR
# 单包构建后用 MCP Inspector 调试
cd packages/pixabay
PIXABAY_API_KEY=xxx pnpm inspect- Model Context Protocol — Anthropic 提出的 AI 工具协议
- @modelcontextprotocol/sdk — 官方 TS SDK
- pnpm workspaces — Monorepo 包管理
- Changesets — 版本与发布自动化
- TypeScript 5.7 + Zod — 类型与运行时校验
参见 CONTRIBUTING.md。Bug 报告与新服务提案请用 Issues。
MIT © nvrenshiren
- Anthropic — 设计并开源了 MCP 协议
- 所有 MCP 社区贡献者