Check whether a PR/commit is deployed to staging and production using the continuous-deployment MCP tools.
bash
/check-deployment-status <PR-URL> # Check deployment of a GitHub PR
/check-deployment-status <commit-hash> # Check deployment of a specific commit
/check-deployment-status <service-name> # List recent commits and their deployment status
When a PR is merged via SubmitQueue, the merge commit on main is DIFFERENT from the PR's head commit. The continuous-deployment system tracks the merge commit, not the PR head.
Workflow:
findServiceCommits with search text to find the actual merge commit on maingetCommitDeploymentStatus with the merge commit hashStageMeaningBuild createdBinary built from commitDeployed to stagingRunning on staging instancesSoakedStaging soak period passedWaited for deployment windowOutside deploy freeze windowsIntroduced to production****Fully deployed to production — code is live
"Introduced to production" = fully deployed. Not partial, not in-progress. The commit is running on all production instances.
StatusMeaningDEPLOYMENT_STATUS_DEPLOYEDCommit is running in this environmentDEPLOYMENT_STATUS_DEPLOYINGDeployment in progress(empty)Not deployed to this environment
Use mcp__code-mcp__get_github_pull_request_metadata:
text
org: uber-code
repo: go-code
number: <PR number>
Extract: title, head SHA, merged status, base branch.
The PR head SHA won't be found in deployment system. Search for the merge commit:
Use mcp__continuous-deployment__continuousdeployment_findservicecommits:
text
service_name: <service-name>
filter: { search_text: "<keyword from PR title>", commited_after: "2026-02-25T00:00:00Z" }
offset: 0
limit: 5
The result includes the merge commit hash, serial number, and code review metadata linking back to the PR.
Use mcp__continuous-deployment__continuousdeployment_getcommitdeploymentstatus:
text
hash: <merge-commit-hash>
repository: gitolite@code.uber.internal:go-code
options: { scope: "SCOPE_ALL_SERVICES" }
Returns deployment status per service per environment (staging, production, bits-test-sandbox).
ToolPurposefindServiceCommitsSearch commits by service name, author, text, date rangegetCommitDeploymentStatusGet deployment status of a commit across all environmentslistServiceCommitsList recent commits for a service (with serial-based pagination)getCommitsInDeploymentList commits in a specific deployment tasklistCommitSegmentsGet deployment segments for a servicegetConfigForServiceGet continuous deployment config for a service
ToolPurposeget_github_pull_request_metadataPR status, author, labels, SubmitQueue statusget_github_pull_request_diffPR diff contentget_github_pull_request_commentsPR comments
ToolPurposeucsdeployer_statusRollout status for a specific deployment objectdeploystatemanager_readRead deploy state
If only a service name is provided (no PR/commit):
Use mcp__continuous-deployment__continuousdeployment_listservicecommits:
text
service_name: <service-name>
offset: 0
limit: 5
Then check deployment status for each returned commit using Step 3.
For stacked PRs, each PR may affect different services. Check deployment per-service:
marketing-recommendations/ → check marketing-recommendations serviceads-insights/ → check ads-insights serviceFor go-code monorepo, always use: gitolite@code.uber.internal:go-code