Skip to content

Commit e3d3778

Browse files
committed
add the MCP registry manifest and OCI ownership label
server.json names the server team.gaijin/go-gerrit-mcp and lists the ghcr image as its only package: raw release binaries and Go modules have no supported registry type. Version and image tag are 0.0.0 placeholders; the publish job stamps both from the release tag. The registry verifies OCI package ownership by matching the image's io.modelcontextprotocol.server.name label against the manifest name, so the label must ship in the image the registry entry points at. Refs: #22
1 parent 71ee08d commit e3d3778

2 files changed

Lines changed: 57 additions & 0 deletions

File tree

.goreleaser.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,9 @@ dockers_v2:
3232
org.opencontainers.image.title: "{{ .ProjectName }}"
3333
org.opencontainers.image.version: "{{ .Version }}"
3434
org.opencontainers.image.source: "{{ .GitURL }}"
35+
# The MCP registry verifies OCI package ownership by matching this
36+
# label against the server.json name; without it the publish fails.
37+
io.modelcontextprotocol.server.name: "team.gaijin/go-gerrit-mcp"
3538

3639
checksum:
3740
name_template: checksums.txt

server.json

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
{
2+
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
3+
"name": "team.gaijin/go-gerrit-mcp",
4+
"title": "Gerrit Code Review",
5+
"description": "Capability-gated MCP tools for Gerrit code review: search, read diffs, comment, vote, transition",
6+
"version": "0.0.0",
7+
"repository": {
8+
"url": "https://github.com/GaijinEntertainment/go-gerrit-mcp",
9+
"source": "github",
10+
"id": "1285115759"
11+
},
12+
"packages": [
13+
{
14+
"registryType": "oci",
15+
"identifier": "ghcr.io/gaijinentertainment/go-gerrit-mcp:0.0.0",
16+
"transport": {
17+
"type": "stdio"
18+
},
19+
"environmentVariables": [
20+
{
21+
"name": "GERRIT_URL",
22+
"description": "Base URL of the Gerrit instance",
23+
"isRequired": true
24+
},
25+
{
26+
"name": "GERRIT_USERNAME",
27+
"description": "Account username for HTTP authentication",
28+
"isRequired": true
29+
},
30+
{
31+
"name": "GERRIT_TOKEN",
32+
"description": "HTTP password or token of the account",
33+
"isRequired": true,
34+
"isSecret": true
35+
},
36+
{
37+
"name": "GERRIT_MCP_GROUPS",
38+
"description": "Comma-separated capability groups to enable: read, comment, transition",
39+
"default": "read"
40+
},
41+
{
42+
"name": "GERRIT_MCP_PROJECTS",
43+
"description": "Comma-separated Gerrit project allowlist confining every operation"
44+
},
45+
{
46+
"name": "GERRIT_MCP_OWN_CHANGES_ONLY",
47+
"description": "Refuse trail-leaving operations on changes not owned by the authenticated account",
48+
"format": "boolean",
49+
"default": "true"
50+
}
51+
]
52+
}
53+
]
54+
}

0 commit comments

Comments
 (0)