Skip to content
Open
Show file tree
Hide file tree
Changes from 31 commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
c04f40d
Add publish script and formed server file
MattBabbage Sep 24, 2025
b632d56
Fix url and fix script
MattBabbage Sep 24, 2025
5802130
Set version to 0.0.0 initially
MattBabbage Sep 24, 2025
dccbde3
remove uncessary script
MattBabbage Sep 24, 2025
c3c10cd
remove unnecessary ignore
MattBabbage Sep 24, 2025
e6bc1d7
Remove whitespace
MattBabbage Sep 24, 2025
22740ce
Apply suggestion from @Copilot
MattBabbage Sep 24, 2025
94a4937
Add registry publisher workflow
MattBabbage Sep 24, 2025
1ce3281
Fetch tags in registry release workflow
MattBabbage Sep 25, 2025
842fc6f
Update registry workflow and server.json with VERSION placeholder
MattBabbage Sep 25, 2025
7dac132
Merge main into matt/publish-to-mcp-registry branch, keeping our regi…
MattBabbage Sep 25, 2025
0f6993c
Add print for final version of server
MattBabbage Sep 25, 2025
759c59e
Adding debugging
MattBabbage Sep 25, 2025
833ed2b
Move to snake_case to test bug
MattBabbage Sep 25, 2025
d75cb2c
Adding Both Cases
MattBabbage Sep 25, 2025
7d11436
Remote only publishing
MattBabbage Sep 25, 2025
5010b7d
Edit namespace
MattBabbage Sep 25, 2025
2574fea
Edit namespace
MattBabbage Sep 25, 2025
b5df36d
Change name to github/github-mcp-server
MattBabbage Sep 25, 2025
c742cc4
Remote remote server
MattBabbage Sep 25, 2025
551a6bd
Update version and add specific file call
MattBabbage Sep 25, 2025
a8c47b8
Include setup step
MattBabbage Sep 25, 2025
e3e4680
Build publisher from source
MattBabbage Sep 25, 2025
935ea0e
Remove remote repo reference
MattBabbage Sep 25, 2025
b38db66
Edit identifier
MattBabbage Sep 25, 2025
dac1a25
Add dockerfile label and clean script
MattBabbage Sep 26, 2025
2da262e
Merge branch 'main' into matt/publish-to-mcp-registry
MattBabbage Sep 26, 2025
ce66ae8
Log latest tag if used
MattBabbage Sep 26, 2025
3346d97
declobbering tags
MattBabbage Sep 29, 2025
f6ea140
Change server schema
MattBabbage Sep 30, 2025
65564fb
Add Docker image readiness check with timeout in workflow
MattBabbage Oct 3, 2025
5e98f7a
Merge branch 'main' into matt/registry-pipeline-version-change
MattBabbage Oct 3, 2025
fda4c7b
Apply suggestion from @Copilot
MattBabbage Oct 3, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 45 additions & 11 deletions .github/workflows/registry-releaser.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,33 +16,67 @@ jobs:
- name: Checkout code
uses: actions/checkout@v5

- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: "stable"

- name: Fetch tags
run: git fetch --tags
run: |
if [[ "${{ github.ref_type }}" != "tag" ]]; then
git fetch --tags
else
echo "Skipping tag fetch - already on tag ${{ github.ref_name }}"
fi

- name: Wait for Docker image
run: |
if [[ "${{ github.ref_type }}" == "tag" ]]; then
TAG="${{ github.ref_name }}"
else
TAG=$(git tag --sort=-version:refname | grep -E '^v[0-9]+\.[0-9]+\.[0-9]+' | head -n1)
fi
IMAGE="ghcr.io/github/github-mcp-server:$TAG"

for i in {1..6}; do
if docker manifest inspect "$IMAGE" &>/dev/null; then
echo "✅ Docker image ready: $TAG"
break
fi
[ $i -eq 6 ] && { echo "❌ Timeout waiting for $TAG after 3 minutes"; exit 1; }
echo "⏳ Waiting for Docker image ($i/6)..."
sleep 30
done

- name: Install MCP Publisher
run: |
curl -L "https://github.com/modelcontextprotocol/registry/releases/download/v1.0.0/mcp-publisher_1.0.0_$(uname -s | tr '[:upper:]' '[:lower:]')_$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/').tar.gz" | tar xz mcp-publisher
git clone --quiet https://github.com/modelcontextprotocol/registry publisher-repo
cd publisher-repo && make publisher > /dev/null && cd ..
cp publisher-repo/bin/mcp-publisher . && chmod +x mcp-publisher

- name: Update server.json version
run: |
if [[ "${{ github.ref_type }}" == "tag" ]]; then
# Use the tag that triggered the workflow
TAG_VERSION=$(echo "${{ github.ref_name }}" | sed 's/^v//')
echo "Using triggered tag: ${{ github.ref_name }}"
else
# Fallback to latest tag (for manual triggers)
LATEST_TAG=$(git tag --sort=-version:refname | grep -E '^v[0-9]+\.[0-9]+\.[0-9]+(-.*)?$' | head -n 1)
if [ -z "$LATEST_TAG" ]; then
echo "❌ No release tag found. Cannot determine version."
exit 1
fi
[ -z "$LATEST_TAG" ] && { echo "No release tag found"; exit 1; }
TAG_VERSION=$(echo "$LATEST_TAG" | sed 's/^v//')
echo "Using latest tag: $LATEST_TAG"
fi
sed -i "s/\${VERSION}/$TAG_VERSION/g" server.json
echo "Updated server.json version to $TAG_VERSION"
echo "Version: $TAG_VERSION"

- name: Validate configuration
run: |
python3 -m json.tool server.json > /dev/null && echo "Configuration valid" || exit 1

- name: Display final server.json
run: |
echo "Final server.json contents:"
cat server.json

- name: Login to MCP Registry
- name: Login to MCP Registry (OIDC)
run: ./mcp-publisher login github-oidc

- name: Publish to MCP Registry
Expand Down
4 changes: 4 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,10 @@ RUN --mount=type=cache,target=/go/pkg/mod \

# Make a stage to run the app
FROM gcr.io/distroless/base-debian12

# Add required MCP server annotation
LABEL io.modelcontextprotocol.server.name="io.github.github/github-mcp-server"

# Set the working directory
WORKDIR /server
# Copy the binary from the build stage
Expand Down
11 changes: 2 additions & 9 deletions server.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-09-16/server.schema.json",
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-09-29/server.schema.json",
"name": "io.github.github/github-mcp-server",
"description": "Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.",
"status": "active",
Expand All @@ -12,9 +12,8 @@
{
"registryType": "oci",
"registryBaseUrl": "https://ghcr.io",
"identifier": "ghcr.io/github/github-mcp-server",
"identifier": "github/github-mcp-server",
"version": "${VERSION}",
"runtimeHint": "docker",
"transport": {
"type": "stdio"
},
Expand Down Expand Up @@ -62,11 +61,5 @@
}
]
}
],
"remotes": [
{
"type": "streamable-http",
"url": "https://api.githubcopilot.com/mcp/"
}
]
}
Loading