|
| 1 | +# Publishing YAP's MCP server & skill |
| 2 | + |
| 3 | +This document covers how `yap-mcp` and the YAP agent skill are distributed to |
| 4 | +the popular discovery channels. |
| 5 | + |
| 6 | +## Artifacts |
| 7 | + |
| 8 | +| Artifact | Source | Channel | |
| 9 | +| --- | --- | --- | |
| 10 | +| `yap-mcp` binary | goreleaser (`.goreleaser.yml`, id `yap-mcp`) | GitHub Releases | |
| 11 | +| `ghcr.io/m0rf30/yap-mcp` OCI image | `build/mcp/Dockerfile` + `.github/workflows/mcp-publish.yml` | GHCR + MCP registry | |
| 12 | +| `server.json` | repo root | MCP registry manifest | |
| 13 | +| `skills/yap/SKILL.md` | repo | Anthropic Agent Skills layout | |
| 14 | + |
| 15 | +## 1. MCP Registry (registry.modelcontextprotocol.io) |
| 16 | + |
| 17 | +The official registry is the highest-signal channel. It cannot ingest a raw |
| 18 | +`.tar.gz` release asset — `registryType` only accepts `npm | pypi | oci | |
| 19 | +nuget | mcpb`. We publish the **OCI image** and reference it from |
| 20 | +`server.json`. |
| 21 | + |
| 22 | +Automated on every `v*.*.*` tag by `.github/workflows/mcp-publish.yml`: |
| 23 | + |
| 24 | +1. Builds + pushes `ghcr.io/m0rf30/yap-mcp:{version,latest}` (amd64 + arm64). |
| 25 | +2. Syncs the version into `server.json`. |
| 26 | +3. Authenticates via **GitHub OIDC** (`mcp-publisher login github-oidc`). |
| 27 | +4. `mcp-publisher publish`. |
| 28 | + |
| 29 | +Manual publish: |
| 30 | + |
| 31 | +```sh |
| 32 | +# from repo root, server.json present |
| 33 | +mcp-publisher login github-oidc |
| 34 | +mcp-publisher publish |
| 35 | +``` |
| 36 | + |
| 37 | +Namespace `io.github.M0Rf30/*` is owned automatically via the GitHub OIDC |
| 38 | +identity (the repo is under the `M0Rf30` GitHub account). |
| 39 | + |
| 40 | +### Naming |
| 41 | + |
| 42 | +- Server name: `io.github.M0Rf30/yap` (reverse-DNS, exactly one `/`). The |
| 43 | + namespace is **case-sensitive** and must match the GitHub username casing |
| 44 | + (`M0Rf30`). The GHCR image path stays lowercase (OCI requirement). |
| 45 | +- OCI image carries the `io.modelcontextprotocol.server.name` label so the |
| 46 | + registry can verify ownership of the image ↔ server mapping. |
| 47 | + |
| 48 | +## 2. GitHub Releases (binaries) |
| 49 | + |
| 50 | +Already handled by `.goreleaser.yml` (`yap-mcp` build + per-binary archive). |
| 51 | +Users install via: |
| 52 | + |
| 53 | +```sh |
| 54 | +curl -fsSL https://raw.githubusercontent.com/M0Rf30/yap/main/scripts/install.sh | sh |
| 55 | +``` |
| 56 | + |
| 57 | +This is the path for manual / direct client config (no container). |
| 58 | + |
| 59 | +## 3. Aggregators & awesome-lists (PR-based discovery) |
| 60 | + |
| 61 | +Submit once; they index from GitHub thereafter. Each wants the repo URL + |
| 62 | +`server.json` (or their own manifest): |
| 63 | + |
| 64 | +| Channel | How | |
| 65 | +| --- | --- | |
| 66 | +| `modelcontextprotocol/servers` (Community Servers) | PR adding a list entry | |
| 67 | +| `punkpeye/awesome-mcp-servers` | PR adding a list entry | |
| 68 | +| Glama (`glama.ai/mcp`) | auto-indexes public GitHub MCP repos | |
| 69 | +| PulseMCP (`pulsemcp.com`) | submission form | |
| 70 | +| mcp.so | submission form | |
| 71 | +| Smithery (`smithery.ai`) | add `smithery.yaml` (optional, for hosted deploy) | |
| 72 | + |
| 73 | +## 4. Agent Skill channels |
| 74 | + |
| 75 | +`skills/yap/SKILL.md` already follows the Anthropic Agent Skills layout. |
| 76 | + |
| 77 | +| Channel | How | |
| 78 | +| --- | --- | |
| 79 | +| This repo | canonical source (`skills/yap/`) | |
| 80 | +| `anthropics/skills` | PR to contribute as a community skill | |
| 81 | +| Claude Code plugin marketplaces | bundle skill in a plugin repo with `plugin.json` | |
| 82 | +| awesome-claude-skills lists | PR adding an entry | |
| 83 | + |
| 84 | +## Release checklist |
| 85 | + |
| 86 | +1. Tag `vX.Y.Z` → `release.yml` builds binaries, `mcp-publish.yml` builds the |
| 87 | + OCI image and publishes to the MCP registry. |
| 88 | +2. Verify the image: `docker run -i --rm ghcr.io/m0rf30/yap-mcp:latest` (should |
| 89 | + block on stdio). |
| 90 | +3. Verify the registry entry at |
| 91 | + `https://registry.modelcontextprotocol.io/v0/servers?search=yap`. |
| 92 | +4. (First release only) open the aggregator + skill PRs above. |
0 commit comments