google-dev-knowledge-mcp-bridge
Local stdio MCP bridge for the Google Developer Knowledge MCP endpoint. It forwards upstream tool calls and adds a higher-signal search_documents mode that:
- caches semantically equivalent search requests
- expands top search hits with
batch_get_documents - extracts concise markdown sections for easier downstream citation and synthesis
The bridge does not embed credentials in tracked code. Authentication is resolved from Application Default Credentials plus service account impersonation configured through environment variables.
Requirements
- Node.js 18+
gcloudinstalled and authenticated withgcloud auth application-default login- Permission to impersonate the target service account
Installation
- Install dependencies:
npm install
- Copy the sample environment file:
cp .env.example .env
- Fill in only the values required for your environment.
Environment Variables
Required
GOOGLE_IMPERSONATE_SERVICE_ACCOUNT
Optional
GOOGLE_QUOTA_PROJECT_IDDEBUG_MCP=falseAUTO_EXPAND_SEARCH=trueEXPAND_TOP_N=4EXPAND_MAX_CHARS=9000EXPAND_PER_DOC_MAX_CHARS=2600CACHE_TTL_MS=300000REQUEST_TIMEOUT_MS=20000MAX_RETRIES=2BACKOFF_BASE_MS=400
Authentication Flow
The bridge uses this sequence:
- Loads Application Default Credentials from the local environment.
- Impersonates the service account named in
GOOGLE_IMPERSONATE_SERVICE_ACCOUNT. - Calls the Google Developer Knowledge MCP endpoint with an OAuth access token.
If GOOGLE_QUOTA_PROJECT_ID is set, the bridge also sends it as the quota project header.
MCP Server Launch
Run the bridge directly over stdio:
npm start
Equivalent direct command:
node server.js
Example Codex MCP launch configuration:
{
"mcpServers": {
"google-dev-knowledge-mcp-bridge": {
"command": "node",
"args": ["/absolute/path/to/google-dev-knowledge/server.js"],
"cwd": "/absolute/path/to/google-dev-knowledge",
"env": {
"GOOGLE_IMPERSONATE_SERVICE_ACCOUNT": "service-account@your-project.iam.gserviceaccount.com",
"GOOGLE_QUOTA_PROJECT_ID": "your-project-id",
"AUTO_EXPAND_SEARCH": "true",
"DEBUG_MCP": "false"
}
}
}
}
Repository Layout
server.js: CLI entrypointsrc/config.js: environment parsing and validationsrc/google-client.js: ADC + impersonation + HTTP retry logicsrc/content-pack.js: search expansion and excerpt construction helperssrc/bridge.js: stdio JSON-RPC loop and caching
Upstream MCP Tools
The bridge forwards upstream Google Developer Knowledge MCP tool calls. Common tools include:
search_documentsget_documentbatch_get_documents
When AUTO_EXPAND_SEARCH=true, search_documents responses are transformed into a context pack that includes:
- canonical source links
- top ranked search chunks
- extracted document excerpts sized for model context windows
All other tool calls are passed through unchanged.
Sample MCP Tool Calls
Example search_documents input:
{
"query": "Cloud Storage create bucket required permissions"
}
Example get_document input:
{
"name": "documents/cloud-storage-create-buckets"
}
Example batch_get_documents input:
{
"names": [
"documents/cloud-storage-create-buckets",
"documents/iam-roles-overview"
]
}
Smoke Tests
Syntax check the bridge:
npm run check
Troubleshooting
Missing required environment
- The process exits immediately if
GOOGLE_IMPERSONATE_SERVICE_ACCOUNTis unset.
Failed authentication
- Re-run
gcloud auth application-default login. - Confirm the authenticated principal can impersonate the configured service account.
- If you use quota billing, confirm
GOOGLE_QUOTA_PROJECT_IDis valid for the caller.
Request failures or timeouts
- Increase
REQUEST_TIMEOUT_MSin slower environments. - Leave
MAX_RETRIESabove0if you want automatic retry on429and5xxresponses.
Publishing hygiene
.envandnode_modules/are ignored by.gitignore.- Use
.env.exampleas the only tracked environment template.











