Skip to content
Merged
Show file tree
Hide file tree
Changes from 26 commits
Commits
Show all changes
29 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
4d24466
Merge branch 'main' into matt/publish-to-mcp-registry
MattBabbage Sep 26, 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
32 changes: 18 additions & 14 deletions .github/workflows/registry-releaser.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,33 +16,37 @@ jobs:
- name: Checkout code
uses: actions/checkout@v5

- name: Install jq
run: sudo apt-get update && sudo apt-get install -y jq
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: "stable"

- name: Fetch tags
run: git fetch --tags

- 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
jq ".version = \"$TAG_VERSION\" | .packages[].version = \"$TAG_VERSION\"" server.json > server.json.tmp && mv server.json.tmp server.json
echo "Updated server.json version to $TAG_VERSION"
sed -i "s/\${VERSION}/$TAG_VERSION/g" server.json
echo "Version: $TAG_VERSION"

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

- 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
13 changes: 3 additions & 10 deletions server.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,13 @@
"url": "https://github.com/github/github-mcp-server",
"source": "github"
},
"version": "0.0.0",
"version": "${VERSION}",
"packages": [
{
"registryType": "oci",
"registryBaseUrl": "https://ghcr.io",
"identifier": "ghcr.io/github/github-mcp-server",
"version": "0.0.0",
"runtimeHint": "docker",
"identifier": "github/github-mcp-server",
"version": "${VERSION}",
"transport": {
"type": "stdio"
},
Expand Down Expand Up @@ -62,11 +61,5 @@
}
]
}
],
"remotes": [
{
"type": "streamable-http",
"url": "https://api.githubcopilot.com/mcp/"
}
]
}
Loading