mirror of
https://github.com/DeusData/codebase-memory-mcp.git
synced 2026-11-04 10:48:20 +00:00
Add official MCP Registry publishing to the release pipeline
- Add `mcpName` to the npm package and an `mcp-name:` marker to the PyPI README so the registry can verify package ownership for both. - Rewrite server.json to reference the npm + PyPI packages instead of five per-platform mcpb tarballs. The old form was pinned to a stale 0.6.1 with hardcoded SHA-256s that needed manual updates every release; the package form only needs a version sync. Also trims the description to the registry's 100-character limit. - Add a publish-mcp-registry job: downloads mcp-publisher, authenticates via GitHub Actions OIDC (no token, no device flow), syncs server.json's version to the just-published npm package, and publishes. It runs after npm/PyPI but does not gate the release un-draft, so a registry outage never blocks shipping and the job can be retried on its own.
This commit is contained in:
1 parent
332bea6b42
commit
9507c4b0a1
4 files changed
+52
-32
No files matched your search
@@ -308,6 +308,44 @@ jobs:
|
||||
TWINE_PASSWORD: ${{ secrets.PYPI_TOKEN }}
|
||||
run: twine upload --non-interactive dist/*
|
||||
|
||||
# ── 8b. Publish server.json to the official MCP Registry ──────
|
||||
# Runs after npm + PyPI so the registry can verify package ownership
|
||||
# (npm: `mcpName` field in package.json; PyPI: `mcp-name:` marker in
|
||||
# the package README). Authenticates with GitHub Actions OIDC — no
|
||||
# token, no interactive device flow. server.json's version is synced
|
||||
# from the just-published npm package so it always matches the release.
|
||||
#
|
||||
# Intentionally does NOT gate publish-final: the binary release is the
|
||||
# product, the registry entry is metadata. A registry-preview outage
|
||||
# must never block shipping. Re-run this job alone to retry — it does
|
||||
# not touch npm/PyPI, so retries are safe.
|
||||
publish-mcp-registry:
|
||||
needs: [publish-registries]
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
id-token: write # GitHub OIDC auth to the MCP Registry
|
||||
contents: read
|
||||
steps:
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
|
||||
- name: Sync server.json version to the released package
|
||||
run: |
|
||||
VERSION=$(jq -r '.version' pkg/npm/package.json)
|
||||
jq --arg v "$VERSION" '.version = $v | (.packages[].version) = $v' \
|
||||
server.json > server.tmp && mv server.tmp server.json
|
||||
echo "server.json pinned to $VERSION"
|
||||
cat server.json
|
||||
|
||||
- name: Install mcp-publisher
|
||||
run: |
|
||||
curl -fsSL "https://github.com/modelcontextprotocol/registry/releases/latest/download/mcp-publisher_$(uname -s | tr '[:upper:]' '[:lower:]')_$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/').tar.gz" | tar xz mcp-publisher
|
||||
|
||||
- name: Authenticate to MCP Registry (GitHub OIDC)
|
||||
run: ./mcp-publisher login github-oidc
|
||||
|
||||
- name: Publish server.json to MCP Registry
|
||||
run: ./mcp-publisher publish
|
||||
|
||||
# ── 9. Atomic un-draft (only after npm + PyPI succeed) ────────
|
||||
# The GitHub release stays in DRAFT until both registries publish.
|
||||
# If anything upstream fails, the draft can be deleted and the run
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
"name": "codebase-memory-mcp",
|
||||
"version": "0.7.0",
|
||||
"description": "Fast code intelligence engine for AI coding agents — single static binary MCP server",
|
||||
"mcpName": "io.github.DeusData/codebase-memory-mcp",
|
||||
"license": "MIT",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
# codebase-memory-mcp
|
||||
|
||||
mcp-name: io.github.DeusData/codebase-memory-mcp
|
||||
|
||||
**Fast code intelligence engine for AI coding agents.** Indexes an average repository in milliseconds, the Linux kernel (28M LOC) in 3 minutes. Answers structural queries in under 1ms.
|
||||
|
||||
This package installs the `codebase-memory-mcp` binary from [GitHub Releases](https://github.com/DeusData/codebase-memory-mcp/releases). The binary is downloaded on first run and cached in your OS cache directory.
|
||||
|
||||
+11
-32
@@ -2,49 +2,28 @@
|
||||
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
|
||||
"name": "io.github.DeusData/codebase-memory-mcp",
|
||||
"title": "Codebase Memory",
|
||||
"description": "Persistent codebase knowledge graph — 159 languages, sub-ms queries, 99% fewer tokens than grep. Survives session restarts and context compaction.",
|
||||
"description": "Codebase knowledge graph for AI agents — 159 languages, sub-ms queries, 99% fewer tokens.",
|
||||
"repository": {
|
||||
"url": "https://github.com/DeusData/codebase-memory-mcp",
|
||||
"source": "github"
|
||||
},
|
||||
"version": "0.6.1",
|
||||
"websiteUrl": "https://deusdata.github.io/codebase-memory-mcp/",
|
||||
"version": "0.7.0",
|
||||
"packages": [
|
||||
{
|
||||
"registryType": "mcpb",
|
||||
"identifier": "https://github.com/DeusData/codebase-memory-mcp/releases/download/v0.6.1/codebase-memory-mcp-darwin-arm64.tar.gz",
|
||||
"fileSha256": "3468e5df340e53dba2d23cc30bf44210c412dfb2538d7da992465934bf4980e0",
|
||||
"registryType": "npm",
|
||||
"identifier": "codebase-memory-mcp",
|
||||
"version": "0.7.0",
|
||||
"runtimeHint": "npx",
|
||||
"transport": {
|
||||
"type": "stdio"
|
||||
}
|
||||
},
|
||||
{
|
||||
"registryType": "mcpb",
|
||||
"identifier": "https://github.com/DeusData/codebase-memory-mcp/releases/download/v0.6.1/codebase-memory-mcp-darwin-amd64.tar.gz",
|
||||
"fileSha256": "a85f8313181c7ffd3a0ac494c0e2bf1b5647f15de06686f8a0728162bf4326ac",
|
||||
"transport": {
|
||||
"type": "stdio"
|
||||
}
|
||||
},
|
||||
{
|
||||
"registryType": "mcpb",
|
||||
"identifier": "https://github.com/DeusData/codebase-memory-mcp/releases/download/v0.6.1/codebase-memory-mcp-linux-amd64.tar.gz",
|
||||
"fileSha256": "a24c04fd1fd61b08158e011685cf08d860e3594e4ce057ffda57d1cc2f4afdd1",
|
||||
"transport": {
|
||||
"type": "stdio"
|
||||
}
|
||||
},
|
||||
{
|
||||
"registryType": "mcpb",
|
||||
"identifier": "https://github.com/DeusData/codebase-memory-mcp/releases/download/v0.6.1/codebase-memory-mcp-linux-arm64.tar.gz",
|
||||
"fileSha256": "29811aadc2aa99fb9612683af30a06d03fcb2bfefb95c12ea672671827bd111c",
|
||||
"transport": {
|
||||
"type": "stdio"
|
||||
}
|
||||
},
|
||||
{
|
||||
"registryType": "mcpb",
|
||||
"identifier": "https://github.com/DeusData/codebase-memory-mcp/releases/download/v0.6.1/codebase-memory-mcp-windows-amd64.zip",
|
||||
"fileSha256": "e331f84f2ec760d179025b16b440b0f14282e83f2432318969dc69dde8ffffd0",
|
||||
"registryType": "pypi",
|
||||
"identifier": "codebase-memory-mcp",
|
||||
"version": "0.7.0",
|
||||
"runtimeHint": "uvx",
|
||||
"transport": {
|
||||
"type": "stdio"
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user