Skip to content

Commit c287232

Browse files
committed
add a verify-only mode to the registry workflow
The key-to-DNS pairing cannot be checked from outside: the secret is write-only and the TXT record only carries the public half. login performs the full ownership proof -- it signs a challenge that the registry verifies against the record -- so a verify_only dispatch exercises everything short of publishing. The publish step is skipped when the input is set; workflow_run triggers are unaffected. Refs: #22
1 parent 4a21594 commit c287232

1 file changed

Lines changed: 12 additions & 4 deletions

File tree

.github/workflows/registry.yml

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@ on:
99
tag:
1010
description: "Released tag to publish (e.g. v1.1.0)"
1111
required: true
12+
verify_only:
13+
description: "Stop after the DNS ownership verification, publish nothing"
14+
type: boolean
15+
default: false
1216

1317
permissions:
1418
contents: read
@@ -49,9 +53,13 @@ jobs:
4953
run: |
5054
curl -fsSL https://github.com/modelcontextprotocol/registry/releases/latest/download/mcp-publisher_linux_amd64.tar.gz \
5155
| tar xz mcp-publisher
52-
- name: Publish to the MCP registry
56+
- name: Verify domain ownership
57+
# login performs the full DNS proof: it signs a challenge with the
58+
# private key and the registry checks it against the TXT record, so
59+
# a verify_only dispatch exercises everything short of publishing.
5360
env:
5461
MCP_PRIVATE_KEY: ${{ secrets.MCP_PRIVATE_KEY }}
55-
run: |
56-
./mcp-publisher login dns --domain=gaijin.team --private-key="$MCP_PRIVATE_KEY"
57-
./mcp-publisher publish
62+
run: ./mcp-publisher login dns --domain=gaijin.team --private-key="$MCP_PRIVATE_KEY"
63+
- name: Publish to the MCP registry
64+
if: ${{ !(github.event_name == 'workflow_dispatch' && inputs.verify_only) }}
65+
run: ./mcp-publisher publish

0 commit comments

Comments
 (0)