Skip to main content
Glama
KonghaYao

mcp-skills-registry

by KonghaYao

모노레포 — MCPP 집계 서버 예제

MCPP 3.7의 모노레포 토폴로지 시연: 단일 HTTP 출구, 경로를 sub server로 라우팅.

형태

                    ┌─────────────────────────────────────────────┐
  客户端             │ monorepo(单一 HTTP server,端口 8787)      │
                    │                                             │
  /openspec/mcp   ──► OpenSpec skills sub server                  │
  /mattpocock/mcp ──► Matt Pocock skills sub server               │
  其他路径         ──► 404                                         │
                    └─────────────────────────────────────────────┘
  • 각 경로는 독립적인 MCP endpoint입니다. skills, resources 및 세션이 서로 격리됩니다.

  • src/registry.ts는 로컬 진입점, Cloudflare Worker 및 테스트가 공유하는 유일한 라우팅 레지스트리입니다.

  • stdio에는 URL/경로 개념이 없으므로 이 집계 형태에 적합하지 않습니다.

Related MCP server: MCP Skill Registry

초기화

bun run init

이 명령은 의존성을 설치하고, skills.lock.json에 따라 타사 skills를 재현하며, Worker가 패키징할 수 있는 정적 레지스트리를 생성합니다.

자주 사용하는 명령어

bun dev                     # 构建 skills 后启动 http://127.0.0.1:8787/
bun run demo                # 端到端 smoke 测试
bun run skills:sync         # 按 lock 同步第三方 skills
bun run skills:update       # 更新第三方 commit 并重新生成 registry
bun run deploy:dry-run      # 验证 Cloudflare Worker bundle
bun run deploy              # 部署 Cloudflare Worker

디렉토리 구조

├── src/
│   ├── index.ts                 # 本地网关和纯 fetch handler
│   ├── registry.ts              # 唯一 sub server 注册表
│   └── static-skills.ts         # 静态 skills resource 挂载器
├── servers/
│   ├── openspec/
│   │   ├── server.ts
│   │   ├── skills/              # 生成、Git ignored
│   │   └── skills.generated.ts  # 生成、Git ignored
│   └── mattpocock/
│       ├── server.ts
│       ├── skills/              # 生成、Git ignored
│       └── skills.generated.ts  # 生成、Git ignored
├── install-skills.js            # manifest + lock 同步器
├── generate-skills-registry.js  # 静态 registry 生成器
├── skills.json                  # source 声明
├── skills.lock.json             # 锁定 commit,提交进 Git
├── test/smoke.ts
├── worker.ts
└── wrangler.jsonc

재현 가능한 Skills 빌드

skills.json + skills.lock.json
            │
            ▼
     install-skills.js
            │ copy 锁定 commit
            ▼
 servers/<id>/skills/
            │
            ▼
generate-skills-registry.js
            │
            ▼
servers/<id>/skills.generated.ts
            │ static import
            ▼
      Bun / Worker bundle

생성된 디렉토리와 생성된 레지스트리는 커밋하지 않습니다. 새 클론은 bun run init을 통해 완전히 복원됩니다. sub server는 런타임에 node:fs를 읽지 않으므로 Worker 번들은 SKILL.md 본문을 포함합니다.

Cloudflare 배포

bun run deploy:dry-run
bun run deploy

세션 레지스트리는 isolate 메모리 상태입니다. 프로덕션에서 다중 인스턴스 동시 실행을 위해서는 세션 상태를 Durable Objects로 외부화해야 합니다.

관련

Related MCP Connectors

Related MCP Servers