mcp-skills-registry

mcp-skills-registry

A monorepo MCP server that aggregates multiple sub-servers under a single HTTP endpoint, routing by path, and supports static skills registry with Cloudflare deployment.

Category
Visit Server

README

monorepo —— MCPP 聚合 server 示例

演示 MCPP 3.7 的 monorepo 拓扑:单一 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 相互隔离。
  • 本地 Bun 与 Cloudflare Worker 均使用 @peri-code/mcpp@0.2 的严格 2026-07-28 无状态 Streamable HTTP,不依赖内存 session。
  • src/registry.ts 是本地入口、Cloudflare Worker 和测试共用的唯一路由注册表。
  • stdio 没有 URL/路径概念,不适用该聚合形态。

初始化

bun run init

该命令安装依赖、按 skills.lock.json 复现第三方 skills,并生成 Worker 可打包的静态 registry。

常用命令

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

生成目录和生成 registry 都不提交;新 clone 通过 bun run init 完整恢复。sub server 不在运行时读取 node:fs,因此 Worker bundle 会包含 SKILL.md 正文。

Docker 部署

本地构建并启动:

docker compose up --build -d
docker compose ps

默认监听 http://127.0.0.1:8787。可覆盖宿主机端口和镜像:

MCP_SKILLS_PORT=8080 \
MCP_SKILLS_IMAGE=ghcr.io/konghayao/mcp-skills-registry:latest \
docker compose up -d

Docker builder 按 skills.lock.json 下载并生成静态 registry;runtime 镜像直接运行 bun src/index.ts,启动时不访问 GitHub。镜像内服务监听 0.0.0.0:8787,并带有 /nope 404 健康检查。

直接拉取 GHCR 镜像:

docker pull ghcr.io/konghayao/mcp-skills-registry:latest
docker run -d --name mcp-skills-registry \
  --restart unless-stopped \
  -p 8787:8787 \
  ghcr.io/konghayao/mcp-skills-registry:latest

GHCR 自动发布

.github/workflows/publish-ghcr.yaml 在以下场景构建并推送 linux/amd64、linux/arm64 镜像:

  • push 到 main:发布 latest、main 和 sha-*;
  • push v* tag:发布 tag、semver 和 sha-*;
  • GitHub Actions 手动触发。

Workflow 使用仓库自带的 GITHUB_TOKEN,需要仓库 Actions 具备 packages: write 权限,不需要额外配置 GHCR token。首次发布后可在 GitHub Packages 中调整镜像可见性。

Cloudflare 部署

bun run deploy:dry-run
bun run deploy

Worker 使用无状态 Streamable HTTP:响应不返回 Mcp-Session-Id,每个请求独立创建 server 与 transport,适合 Cloudflare 多 isolate 路由,无需 Durable Objects。

相关

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured