Gemini Enterprise supports Streamable HTTP only — the transport CodeQR speaks. The legacy SSE transport is not supported by either side.
Step 1 — Create a client ID
Gemini Enterprise sends users back to a fixed callback URL after they sign in. Register that URL with CodeQR to get a client ID:client_id starting with codeqr_. Keep it — you will paste it in step 2.
Step 2 — Add the MCP server
In Gemini Enterprise, go to Data stores → Create data store, choose Custom MCP Server, and fill in:About the client secret
CodeQR does not issue one. The registration response says so —"token_endpoint_auth_method": "none" — and the token endpoint ignores the field entirely; it authenticates the exchange with PKCE and the registered redirect URI.
Gemini Enterprise marks the field as required, so put any placeholder in it. It is neither sent anywhere meaningful nor checked.
Step 3 — Enable the actions
Once the data store reaches Active, open it and choose Actions → Reload custom actions. Sign in to CodeQR and pick the project to grant access to. The fourteen CodeQR tools appear in the list. Select the ones your team should have and click Enable actions.What your team gets
Approving the connection grants CodeQR access scoped to the single project chosen at sign-in: read and write on links, QR codes and tags, plus read on analytics and domains. Conversion tracking is not included — see the note on scopes. Gemini Enterprise caps a data store at 100 enabled actions; CodeQR uses fourteen, so there is room alongside other servers.Troubleshooting
Sign-in fails instantly, before any login screen
Sign-in fails instantly, before any login screen
PKCE is off. Turn on Enable PKCE Support in the connection’s authentication settings. CodeQR rejects the authorization request outright without it.
redirect_uri does not match any URI registered for this client
redirect_uri does not match any URI registered for this client
The callback URL Gemini Enterprise uses is not one you registered in step 1. Copy the exact URL from its setup screen and re-run the registration command with it — you get a new
client_id, which replaces the one in the connection.Verify Auth fails but the URLs look right
Verify Auth fails but the URLs look right
Confirm the server is reachable from outside your network:It should answer
{"status":"ok","service":"codeqr-mcp-remote", ...}. Note that Private Service Connect and VPC Service Controls are not supported by this connector.No actions appear after connecting
No actions appear after connecting
The action list is populated by Reload custom actions, not by the connection itself. Run it from the data store once it shows Active.

