Tool: open-repo-pull-request
Open a pull request in the remote SCM repository.
The following code sample shows how to use curl to call the open-repo-pull-request MCP tool.
| Curl Request |
|---|
curl --location 'https://developerconnect.googleapis.com/mcp' \ --header 'content-type: application/json' \ --header 'accept: application/json, text/event-stream' \ --data '{ "method": "tools/call", "params": { "name": "open-repo-pull-request", "arguments": { // Provide these details according to the MCP tool specification. } }, "jsonrpc": "2.0", "id": 1 }' |
Input Schema
Message for opening SCM Pull Request.
OpenGitRepositoryLinkPullRequestRequest
| JSON representation |
|---|
{
"name": string,
"pullRequest": {
object ( |
| Fields | |
|---|---|
name |
Required. The GitRepositoryLink resource name in the format |
pullRequest |
Required. The Pull Request details to open. Input fields used: title, body, head_ref, base_ref. |
PullRequest
| JSON representation |
|---|
{ "id": string, "title": string, "body": string, "headRef": string, "baseRef": string, "author": string, "createTime": string, "updateTime": string, "mergeTime": string, "closeTime": string, "declineTime": string, "state": enum ( |
| Fields | |
|---|---|
id |
Required. The ID of the PR. |
title |
Required. The title of the PR. |
body |
Optional. The body description of the PR. |
headRef |
Required. The source commit SHA of the head branch. |
baseRef |
Required. The target commit SHA of the base branch. |
author |
Output only. The username of the author. |
createTime |
Output only. When the PR was created. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
updateTime |
Output only. When the PR was updated. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
mergeTime |
Output only. When the PR was merged. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
closeTime |
Output only. When the PR was closed. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
declineTime |
Output only. When the PR was declined. Only set for SCM providers that support declining pull requests. Never set for GitHub, GitHub Enterprise, GitLab, or GitLab Enterprise, where a pull request closed without being merged is Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
state |
Output only. The current state of the PR. |
mergeability |
Output only. The mergeability state of the pull request. |
htmlUrl |
Output only. The HTML URL of the pull request on the SCM provider. |
Timestamp
| JSON representation |
|---|
{ "seconds": string, "nanos": integer } |
| Fields | |
|---|---|
seconds |
Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be between -62135596800 and 253402300799 inclusive (which corresponds to 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z). |
nanos |
Non-negative fractions of a second at nanosecond resolution. This field is the nanosecond portion of the duration, not an alternative to seconds. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be between 0 and 999,999,999 inclusive. |
State
The state of the PR.
| Enums | |
|---|---|
STATE_UNSPECIFIED |
Default value. |
OPEN |
The PR is open. |
CLOSED |
The PR is closed. |
MERGED |
The PR is merged. |
DECLINED |
The PR is declined. Only used by SCM providers that support declining pull requests. Never used for GitHub, GitHub Enterprise, GitLab, or GitLab Enterprise, where a pull request closed without being merged is CLOSED. |
Mergeability
The mergeability state of a pull request.
| Enums | |
|---|---|
MERGEABILITY_UNSPECIFIED |
Mergeability state is unspecified. |
MERGEABLE |
The pull request can be merged cleanly without Git conflicts. |
CONFLICTING |
The pull request has merge conflicts and cannot be merged cleanly. |
COMPUTING |
The mergeability state is currently being computed asynchronously by the upstream SCM provider. |
Output Schema
Message representing a SCM Pull Request.
PullRequest
| JSON representation |
|---|
{ "id": string, "title": string, "body": string, "headRef": string, "baseRef": string, "author": string, "createTime": string, "updateTime": string, "mergeTime": string, "closeTime": string, "declineTime": string, "state": enum ( |
| Fields | |
|---|---|
id |
Required. The ID of the PR. |
title |
Required. The title of the PR. |
body |
Optional. The body description of the PR. |
headRef |
Required. The source commit SHA of the head branch. |
baseRef |
Required. The target commit SHA of the base branch. |
author |
Output only. The username of the author. |
createTime |
Output only. When the PR was created. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
updateTime |
Output only. When the PR was updated. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
mergeTime |
Output only. When the PR was merged. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
closeTime |
Output only. When the PR was closed. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
declineTime |
Output only. When the PR was declined. Only set for SCM providers that support declining pull requests. Never set for GitHub, GitHub Enterprise, GitLab, or GitLab Enterprise, where a pull request closed without being merged is Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
state |
Output only. The current state of the PR. |
mergeability |
Output only. The mergeability state of the pull request. |
htmlUrl |
Output only. The HTML URL of the pull request on the SCM provider. |
Timestamp
| JSON representation |
|---|
{ "seconds": string, "nanos": integer } |
| Fields | |
|---|---|
seconds |
Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be between -62135596800 and 253402300799 inclusive (which corresponds to 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z). |
nanos |
Non-negative fractions of a second at nanosecond resolution. This field is the nanosecond portion of the duration, not an alternative to seconds. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be between 0 and 999,999,999 inclusive. |
State
The state of the PR.
| Enums | |
|---|---|
STATE_UNSPECIFIED |
Default value. |
OPEN |
The PR is open. |
CLOSED |
The PR is closed. |
MERGED |
The PR is merged. |
DECLINED |
The PR is declined. Only used by SCM providers that support declining pull requests. Never used for GitHub, GitHub Enterprise, GitLab, or GitLab Enterprise, where a pull request closed without being merged is CLOSED. |
Mergeability
The mergeability state of a pull request.
| Enums | |
|---|---|
MERGEABILITY_UNSPECIFIED |
Mergeability state is unspecified. |
MERGEABLE |
The pull request can be merged cleanly without Git conflicts. |
CONFLICTING |
The pull request has merge conflicts and cannot be merged cleanly. |
COMPUTING |
The mergeability state is currently being computed asynchronously by the upstream SCM provider. |
Tool Annotations
Tool annotations are sent to MCP clients to describe the basic risk of a given tool. Most clients treat these hints as untrusted, but they can be used to decide when a confirmation prompt might be sent to a user.
Along with the title string, the following boolean hints are defined as follows:
readOnlyHint: If true, the tool doesn't modify its environment. Default: false.destructiveHint: If true, then the tool can perform destructive actions. If false, then the tool can only perform additive actions. Default: true.idempotentHint: If true, then calling the tool repeatedly with the same arguments will have no additional effect on its environment. Default: false.openWorldHint: If true, then the tool can interact with an 'open world' of external entities. If false, then the tool can only interact with internal entities. For example, a web search tool would be open world, while a memory tool would not be open world.
Destructive Hint: ❌ | Idempotent Hint: ❌ | Read Only Hint: ❌ | Open World Hint: ❌