Search / team.gaijin/go-gerrit-mcp
Gerrit Code Review
L0· runs locallyCapability-gated Gerrit code review tools with opt-in review notifications pushed into the session
v1.1.3 · active · repository · descriptor JSON · versions
Search / team.gaijin/go-gerrit-mcp
L0· runs locallyCapability-gated Gerrit code review tools with opt-in review notifications pushed into the session
v1.1.3 · active · repository · descriptor JSON · versions
{
"mcpServers": {
"go-gerrit-mcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"GERRIT_URL",
"-e",
"GERRIT_USERNAME",
"-e",
"GERRIT_TOKEN",
"-e",
"GERRIT_MCP_GROUPS",
"-e",
"GERRIT_MCP_OWN_CHANGES_ONLY",
"-e",
"GERRIT_MCP_REVIEW_NOTIFICATIONS",
"-e",
"GERRIT_MCP_REVIEW_NOTIFICATIONS_POLL_INTERVAL",
"-e",
"GERRIT_MCP_REVIEW_NOTIFICATIONS_INCLUDE_OWN",
"ghcr.io/gaijinentertainment/go-gerrit-mcp:1.1.3"
],
"env": {
"GERRIT_URL": "${GERRIT_URL}",
"GERRIT_USERNAME": "${GERRIT_USERNAME}",
"GERRIT_TOKEN": "${GERRIT_TOKEN}",
"GERRIT_MCP_GROUPS": "read",
"GERRIT_MCP_OWN_CHANGES_ONLY": "true",
"GERRIT_MCP_REVIEW_NOTIFICATIONS": "false",
"GERRIT_MCP_REVIEW_NOTIFICATIONS_POLL_INTERVAL": "60s",
"GERRIT_MCP_REVIEW_NOTIFICATIONS_INCLUDE_OWN": "false"
}
}
}
}claude mcp add go-gerrit-mcp -e "GERRIT_URL=${GERRIT_URL}" -e "GERRIT_USERNAME=${GERRIT_USERNAME}" -e "GERRIT_TOKEN=${GERRIT_TOKEN}" -e "GERRIT_MCP_GROUPS=read" -e "GERRIT_MCP_OWN_CHANGES_ONLY=true" -e "GERRIT_MCP_REVIEW_NOTIFICATIONS=false" -e "GERRIT_MCP_REVIEW_NOTIFICATIONS_POLL_INTERVAL=60s" -e "GERRIT_MCP_REVIEW_NOTIFICATIONS_INCLUDE_OWN=false" -- docker run -i --rm -e GERRIT_URL -e GERRIT_USERNAME -e GERRIT_TOKEN -e GERRIT_MCP_GROUPS -e GERRIT_MCP_OWN_CHANGES_ONLY -e GERRIT_MCP_REVIEW_NOTIFICATIONS -e GERRIT_MCP_REVIEW_NOTIFICATIONS_POLL_INTERVAL -e GERRIT_MCP_REVIEW_NOTIFICATIONS_INCLUDE_OWN ghcr.io/gaijinentertainment/go-gerrit-mcp:1.1.3[mcp_servers.go-gerrit-mcp]
command = "docker"
args = ["run", "-i", "--rm", "-e", "GERRIT_URL", "-e", "GERRIT_USERNAME", "-e", "GERRIT_TOKEN", "-e", "GERRIT_MCP_GROUPS", "-e", "GERRIT_MCP_OWN_CHANGES_ONLY", "-e", "GERRIT_MCP_REVIEW_NOTIFICATIONS", "-e", "GERRIT_MCP_REVIEW_NOTIFICATIONS_POLL_INTERVAL", "-e", "GERRIT_MCP_REVIEW_NOTIFICATIONS_INCLUDE_OWN", "ghcr.io/gaijinentertainment/go-gerrit-mcp:1.1.3"]
env = { "GERRIT_URL" = "${GERRIT_URL}", "GERRIT_USERNAME" = "${GERRIT_USERNAME}", "GERRIT_TOKEN" = "${GERRIT_TOKEN}", "GERRIT_MCP_GROUPS" = "read", "GERRIT_MCP_OWN_CHANGES_ONLY" = "true", "GERRIT_MCP_REVIEW_NOTIFICATIONS" = "false", "GERRIT_MCP_REVIEW_NOTIFICATIONS_POLL_INTERVAL" = "60s", "GERRIT_MCP_REVIEW_NOTIFICATIONS_INCLUDE_OWN" = "false" }
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"go-gerrit-mcp": {
"type": "local",
"command": [
"docker",
"run",
"-i",
"--rm",
"-e",
"GERRIT_URL",
"-e",
"GERRIT_USERNAME",
"-e",
"GERRIT_TOKEN",
"-e",
"GERRIT_MCP_GROUPS",
"-e",
"GERRIT_MCP_OWN_CHANGES_ONLY",
"-e",
"GERRIT_MCP_REVIEW_NOTIFICATIONS",
"-e",
"GERRIT_MCP_REVIEW_NOTIFICATIONS_POLL_INTERVAL",
"-e",
"GERRIT_MCP_REVIEW_NOTIFICATIONS_INCLUDE_OWN",
"ghcr.io/gaijinentertainment/go-gerrit-mcp:1.1.3"
],
"enabled": true,
"environment": {
"GERRIT_URL": "{env:GERRIT_URL}",
"GERRIT_USERNAME": "{env:GERRIT_USERNAME}",
"GERRIT_TOKEN": "{env:GERRIT_TOKEN}",
"GERRIT_MCP_GROUPS": "read",
"GERRIT_MCP_OWN_CHANGES_ONLY": "true",
"GERRIT_MCP_REVIEW_NOTIFICATIONS": "false",
"GERRIT_MCP_REVIEW_NOTIFICATIONS_POLL_INTERVAL": "60s",
"GERRIT_MCP_REVIEW_NOTIFICATIONS_INCLUDE_OWN": "false"
}
}
}
}{
"mcpServers": {
"go-gerrit-mcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"GERRIT_URL",
"-e",
"GERRIT_USERNAME",
"-e",
"GERRIT_TOKEN",
"-e",
"GERRIT_MCP_GROUPS",
"-e",
"GERRIT_MCP_OWN_CHANGES_ONLY",
"-e",
"GERRIT_MCP_REVIEW_NOTIFICATIONS",
"-e",
"GERRIT_MCP_REVIEW_NOTIFICATIONS_POLL_INTERVAL",
"-e",
"GERRIT_MCP_REVIEW_NOTIFICATIONS_INCLUDE_OWN",
"ghcr.io/gaijinentertainment/go-gerrit-mcp:1.1.3"
],
"env": {
"GERRIT_URL": "${GERRIT_URL}",
"GERRIT_USERNAME": "${GERRIT_USERNAME}",
"GERRIT_TOKEN": "${GERRIT_TOKEN}",
"GERRIT_MCP_GROUPS": "read",
"GERRIT_MCP_OWN_CHANGES_ONLY": "true",
"GERRIT_MCP_REVIEW_NOTIFICATIONS": "false",
"GERRIT_MCP_REVIEW_NOTIFICATIONS_POLL_INTERVAL": "60s",
"GERRIT_MCP_REVIEW_NOTIFICATIONS_INCLUDE_OWN": "false"
}
}
},
"deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=go-gerrit-mcp&config=eyJjb21tYW5kIjoiZG9ja2VyIiwiYXJncyI6WyJydW4iLCItaSIsIi0tcm0iLCItZSIsIkdFUlJJVF9VUkwiLCItZSIsIkdFUlJJVF9VU0VSTkFNRSIsIi1lIiwiR0VSUklUX1RPS0VOIiwiLWUiLCJHRVJSSVRfTUNQX0dST1VQUyIsIi1lIiwiR0VSUklUX01DUF9PV05fQ0hBTkdFU19PTkxZIiwiLWUiLCJHRVJSSVRfTUNQX1JFVklFV19OT1RJRklDQVRJT05TIiwiLWUiLCJHRVJSSVRfTUNQX1JFVklFV19OT1RJRklDQVRJT05TX1BPTExfSU5URVJWQUwiLCItZSIsIkdFUlJJVF9NQ1BfUkVWSUVXX05PVElGSUNBVElPTlNfSU5DTFVERV9PV04iLCJnaGNyLmlvL2dhaWppbmVudGVydGFpbm1lbnQvZ28tZ2Vycml0LW1jcDoxLjEuMyJdLCJlbnYiOnsiR0VSUklUX1VSTCI6IiR7R0VSUklUX1VSTH0iLCJHRVJSSVRfVVNFUk5BTUUiOiIke0dFUlJJVF9VU0VSTkFNRX0iLCJHRVJSSVRfVE9LRU4iOiIke0dFUlJJVF9UT0tFTn0iLCJHRVJSSVRfTUNQX0dST1VQUyI6InJlYWQiLCJHRVJSSVRfTUNQX09XTl9DSEFOR0VTX09OTFkiOiJ0cnVlIiwiR0VSUklUX01DUF9SRVZJRVdfTk9USUZJQ0FUSU9OUyI6ImZhbHNlIiwiR0VSUklUX01DUF9SRVZJRVdfTk9USUZJQ0FUSU9OU19QT0xMX0lOVEVSVkFMIjoiNjBzIiwiR0VSUklUX01DUF9SRVZJRVdfTk9USUZJQ0FUSU9OU19JTkNMVURFX09XTiI6ImZhbHNlIn19"
}{
"servers": {
"go-gerrit-mcp": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"GERRIT_URL",
"-e",
"GERRIT_USERNAME",
"-e",
"GERRIT_TOKEN",
"-e",
"GERRIT_MCP_GROUPS",
"-e",
"GERRIT_MCP_OWN_CHANGES_ONLY",
"-e",
"GERRIT_MCP_REVIEW_NOTIFICATIONS",
"-e",
"GERRIT_MCP_REVIEW_NOTIFICATIONS_POLL_INTERVAL",
"-e",
"GERRIT_MCP_REVIEW_NOTIFICATIONS_INCLUDE_OWN",
"ghcr.io/gaijinentertainment/go-gerrit-mcp:1.1.3"
],
"env": {
"GERRIT_URL": "${GERRIT_URL}",
"GERRIT_USERNAME": "${GERRIT_USERNAME}",
"GERRIT_TOKEN": "${GERRIT_TOKEN}",
"GERRIT_MCP_GROUPS": "read",
"GERRIT_MCP_OWN_CHANGES_ONLY": "true",
"GERRIT_MCP_REVIEW_NOTIFICATIONS": "false",
"GERRIT_MCP_REVIEW_NOTIFICATIONS_POLL_INTERVAL": "60s",
"GERRIT_MCP_REVIEW_NOTIFICATIONS_INCLUDE_OWN": "false"
}
}
}
}{
"mcpServers": {
"go-gerrit-mcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"GERRIT_URL",
"-e",
"GERRIT_USERNAME",
"-e",
"GERRIT_TOKEN",
"-e",
"GERRIT_MCP_GROUPS",
"-e",
"GERRIT_MCP_OWN_CHANGES_ONLY",
"-e",
"GERRIT_MCP_REVIEW_NOTIFICATIONS",
"-e",
"GERRIT_MCP_REVIEW_NOTIFICATIONS_POLL_INTERVAL",
"-e",
"GERRIT_MCP_REVIEW_NOTIFICATIONS_INCLUDE_OWN",
"ghcr.io/gaijinentertainment/go-gerrit-mcp:1.1.3"
],
"env": {
"GERRIT_URL": "${GERRIT_URL}",
"GERRIT_USERNAME": "${GERRIT_USERNAME}",
"GERRIT_TOKEN": "${GERRIT_TOKEN}",
"GERRIT_MCP_GROUPS": "read",
"GERRIT_MCP_OWN_CHANGES_ONLY": "true",
"GERRIT_MCP_REVIEW_NOTIFICATIONS": "false",
"GERRIT_MCP_REVIEW_NOTIFICATIONS_POLL_INTERVAL": "60s",
"GERRIT_MCP_REVIEW_NOTIFICATIONS_INCLUDE_OWN": "false"
}
}
}
}extensions:
"go-gerrit-mcp":
enabled: true
name: "go-gerrit-mcp"
type: stdio
cmd: "docker"
args:
- "run"
- "-i"
- "--rm"
- "-e"
- "GERRIT_URL"
- "-e"
- "GERRIT_USERNAME"
- "-e"
- "GERRIT_TOKEN"
- "-e"
- "GERRIT_MCP_GROUPS"
- "-e"
- "GERRIT_MCP_OWN_CHANGES_ONLY"
- "-e"
- "GERRIT_MCP_REVIEW_NOTIFICATIONS"
- "-e"
- "GERRIT_MCP_REVIEW_NOTIFICATIONS_POLL_INTERVAL"
- "-e"
- "GERRIT_MCP_REVIEW_NOTIFICATIONS_INCLUDE_OWN"
- "ghcr.io/gaijinentertainment/go-gerrit-mcp:1.1.3"
envs:
"GERRIT_URL": "${GERRIT_URL}"
"GERRIT_USERNAME": "${GERRIT_USERNAME}"
"GERRIT_TOKEN": "${GERRIT_TOKEN}"
"GERRIT_MCP_GROUPS": "read"
"GERRIT_MCP_OWN_CHANGES_ONLY": "true"
"GERRIT_MCP_REVIEW_NOTIFICATIONS": "false"
"GERRIT_MCP_REVIEW_NOTIFICATIONS_POLL_INTERVAL": "60s"
"GERRIT_MCP_REVIEW_NOTIFICATIONS_INCLUDE_OWN": "false"
timeout: 300
Placeholders to fill from your own secret store: ${GERRIT_TOKEN}. The registry never accepts secret values.
This is a local package: the command runs on your machine.
Not scored: fewer than three checks apply, usually because no remote answered a credential-free probe or the server is a local package.
protocol.modern, protocol.stateless, protocol.transport, protocol.list_ttlno remote answered a protocol handshake (not probed yet, unreachable, or local-only)auth.prm, auth.as_metadata, auth.cimdno remote uses OAuthauth.secret_in_urlno templated URLtools.descriptions, tools.description_length, tools.schemas, tools.annotations, tools.directory_hints, tools.token_cost, tools.api_dumptool list unknown (behind auth, not probed, or empty)stability.changes, stability.rug_pulltool list unknowndeps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI packageNo tool definition changes recorded. A server's first observation is its baseline; later probes record what changes.
Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.
+repository +dns-namespace ~liveness-unmeasured ~updated-97d-ago -unpinned-packages(1)
Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.
| package | registry | version | runtime | secrets |
|---|---|---|---|---|
ghcr.io/gaijinentertainment/go-gerrit-mcp:1.1.3 | oci | unpinned | – | GERRIT_TOKEN |
No tools observed. Local packages are never executed by the registry.
Schemas: list_tools.
{
"name": "team.gaijin/go-gerrit-mcp",
"title": "Gerrit Code Review",
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"version": "1.1.3",
"packages": [
{
"transport": {
"type": "stdio"
},
"identifier": "ghcr.io/gaijinentertainment/go-gerrit-mcp:1.1.3",
"registryType": "oci",
"environmentVariables": [
{
"name": "GERRIT_URL",
"isRequired": true,
"description": "Base URL of the Gerrit instance"
},
{
"name": "GERRIT_USERNAME",
"isRequired": true,
"description": "Account username for HTTP authentication"
},
{
"name": "GERRIT_TOKEN",
"isSecret": true,
"isRequired": true,
"description": "HTTP password or token of the account"
},
{
"name": "GERRIT_MCP_GROUPS",
"default": "read",
"description": "Comma-separated capability groups to enable: read, comment, transition"
},
{
"name": "GERRIT_MCP_PROJECTS",
"description": "Comma-separated Gerrit project allowlist confining every operation"
},
{
"name": "GERRIT_MCP_OWN_CHANGES_ONLY",
"format": "boolean",
"default": "true",
"description": "Refuse trail-leaving operations on changes not owned by the authenticated account"
},
{
"name": "GERRIT_MCP_REVIEW_NOTIFICATIONS",
"format": "boolean",
"default": "false",
"description": "Enable review notifications: poll Gerrit for activity on subscribed changes and push it into the agent's session (requires a client with channel support)"
},
{
"name": "GERRIT_MCP_REVIEW_NOTIFICATIONS_POLL_INTERVAL",
"default": "60s",
"description": "Poll cadence for subscribed changes, as a Go duration"
},
{
"name": "GERRIT_MCP_REVIEW_NOTIFICATIONS_INCLUDE_OWN",
"format": "boolean",
"default": "false",
"description": "Keep the authenticated account's own activity in review notifications"
},
{
"name": "GERRIT_MCP_REVIEW_NOTIFICATIONS_EXCLUDE_ACCOUNTS",
"description": "Comma-separated usernames or numeric account IDs whose activity never becomes a review notification"
},
{
"name": "GERRIT_MCP_REVIEW_NOTIFICATIONS_EXCLUDE_PATTERNS",
"description": "Comma-separated regular expressions; matching message or comment text never becomes a review notification"
}
]
}
],
"repository": {
"id": "1285115759",
"url": "https://github.com/GaijinEntertainment/go-gerrit-mcp",
"source": "github"
},
"description": "Capability-gated Gerrit code review tools with opt-in review notifications pushed into the session"
}