Summary
Adding a reviewer to a pull request currently requires a 3-step chain:
repo_get_repo_by_name_or_id -- resolve repository name to GUID (unless already known)
core_get_identity_ids -- resolve email address (e.g. bfs@templafy.com) to identity GUID (e.g. 3e13f7bd-d0b0-6ed9-a45d-b4e22eb7dc22)
repo_update_pull_request_reviewers -- actually add the reviewer using the GUID
Step 2 exists solely because reviewerIds only accepts identity GUIDs. The server already has the core_get_identity_ids tool and thus the capability to resolve identities -- it just doesn't do it inline.
Example of the current workflow
// Step 1: Look up identity GUID
// Tool: core_get_identity_ids
{ "searchFilter": "jdoe@example.com" }
// Result: [{ "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "displayName": "Jane Doe" }]
// Step 2: Add reviewer using GUID
// Tool: repo_update_pull_request_reviewers
{
"repositoryId": "MyRepositoryName",
"project": "MyProjectName",
"pullRequestId": 12345,
"reviewerIds": ["a1b2c3d4-e5f6-7890-abcd-ef1234567890"],
"action": "add"
}
Suggested fix
Accept email addresses or display names in reviewerIds in addition to GUIDs, and resolve them server-side. The server can detect whether a value is a GUID (matches UUID format) or a search string, and call the identity resolution API internally for non-GUID values.
Alternatively, add a parallel parameter like reviewerEmails that resolves emails to IDs before calling the Azure DevOps API.
Why this matters
This is one of the most common PR workflows - adding a reviewer. The extra lookup step:
- Adds latency (an extra round-trip tool call)
- Consumes tokens (the identity resolution response is verbose)
- Is error-prone (the model must correctly thread the GUID from one response into the next request)
In my Claude Code sessions, this pattern appeared repeatedly across PR creation workflows.
Summary
Adding a reviewer to a pull request currently requires a 3-step chain:
repo_get_repo_by_name_or_id-- resolve repository name to GUID (unless already known)core_get_identity_ids-- resolve email address (e.g.bfs@templafy.com) to identity GUID (e.g.3e13f7bd-d0b0-6ed9-a45d-b4e22eb7dc22)repo_update_pull_request_reviewers-- actually add the reviewer using the GUIDStep 2 exists solely because
reviewerIdsonly accepts identity GUIDs. The server already has thecore_get_identity_idstool and thus the capability to resolve identities -- it just doesn't do it inline.Example of the current workflow
Suggested fix
Accept email addresses or display names in
reviewerIdsin addition to GUIDs, and resolve them server-side. The server can detect whether a value is a GUID (matches UUID format) or a search string, and call the identity resolution API internally for non-GUID values.Alternatively, add a parallel parameter like
reviewerEmailsthat resolves emails to IDs before calling the Azure DevOps API.Why this matters
This is one of the most common PR workflows - adding a reviewer. The extra lookup step:
In my Claude Code sessions, this pattern appeared repeatedly across PR creation workflows.