We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/croit/mcp-croit-ceph'
If you have feedback or need assistance with the MCP directory API, please join our Discord server
name: Publish to MCP Registry
on:
workflow_dispatch: # Manual trigger
push:
tags:
- 'v*'
jobs:
publish:
runs-on: ubuntu-latest
permissions:
id-token: write # Required for OIDC
contents: read
packages: read # May be needed for org repos
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Wait for Docker Hub image
run: |
# Extract version from server.json
VERSION=$(grep -m1 '"version"' server.json | sed 's/.*"version": *"\([^"]*\)".*/\1/')
echo "Waiting for Docker image version $VERSION to be available on Docker Hub..."
for i in {1..30}; do
if curl -s "https://hub.docker.com/v2/repositories/croit/mcp-croit-ceph/tags/$VERSION" | grep -q "\"name\":\"$VERSION\""; then
echo "Docker image $VERSION found!"
exit 0
fi
echo "Attempt $i/30: Image $VERSION not found yet, waiting..."
sleep 10
done
echo "Error: Docker image $VERSION not found after 5 minutes"
echo "Available tags:"
curl -s "https://hub.docker.com/v2/repositories/croit/mcp-croit-ceph/tags" | grep -o '"name":"[^"]*"' | head -5
exit 1
- name: Install MCP Publisher
env:
MCP_PUBLISHER_VERSION: v1.3.3
run: |
OS=$(uname -s | tr '[:upper:]' '[:lower:]')
ARCH=$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/')
ASSET="mcp-publisher_${OS}_${ARCH}.tar.gz"
echo "Downloading MCP Publisher ${MCP_PUBLISHER_VERSION} (${ASSET})"
curl -L "https://github.com/modelcontextprotocol/registry/releases/download/${MCP_PUBLISHER_VERSION}/${ASSET}" | tar xz mcp-publisher
chmod +x mcp-publisher
- name: Debug OIDC Token
run: |
echo "Repository: ${{ github.repository }}"
echo "Repository owner: ${{ github.repository_owner }}"
echo "Actor: ${{ github.actor }}"
echo "Workflow: ${{ github.workflow }}"
- name: Login with OIDC
run: |
echo "Attempting OIDC login for repository: ${{ github.repository }}"
./mcp-publisher login github-oidc
- name: Publish to Registry
run: |
echo "Publishing server to MCP Registry..."
./mcp-publisher publish --verbose || {
echo "===== Debugging failed publish ====="
echo "Server name in server.json:"
grep '"name"' server.json | head -1
echo "Expected pattern: io.github.${{ github.repository_owner }}/*"
exit 1
}