{
  "schema_version": 3,
  "tools": [
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_batch_update_document",
      "tool_namespace": "codex_apps__google_drive",
      "namespace_description": "Search and work with files from Google Drive, Docs, Sheets, and Slides.",
      "tool": {
        "name": "google drive_batch_update_document",
        "title": "batch_update_document",
        "description": "Apply raw Google Docs batchUpdate requests to document content, not Drive file metadata.\nThis action may fail because it needs an OAuth permission that was not requested when this connection was created. Reconnect to request the new permission.",
        "inputSchema": {
          "properties": {
            "requests": {
              "description": "Raw Google Docs API documents.batchUpdate request objects for editing document content. Each list item must set exactly one request type key such as insertText, updateTextStyle, replaceAllText, deleteContentRange, insertInlineImage, or addDocumentTab. For insertInlineImage, pass a short public HTTP(S) URL string directly in uri. For local/generated image bytes, put the workspace image path in image_uris and set the matching request uri to a non-public placeholder such as that same path. Do not pass base64 data URLs directly. Send each request as a structured object in the list, not as a JSON string or other stringified input. Requests execute in order. Do not use this to rename or move the Drive file; use update_file for Drive metadata or parent-folder changes.",
              "items": {
                "additionalProperties": true,
                "type": "object"
              },
              "title": "Requests",
              "type": "array"
            },
            "document_url": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Google Docs URL in the format https://docs.google.com/document/d/<DOCUMENT_ID>/... or a raw Google Docs document ID. If you only know the document title or title keywords, call `search_documents` first instead of asking the user for a URL. Do not pass document titles, Drive open?id links, app:// URLs, or /document/create.",
              "title": "Document Url"
            },
            "document_id": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Raw Google Docs document ID only (for example `1abcDEF...`). Use this when you already have the ID from a prior search result. Do not pass a full URL here.",
              "title": "Document Id"
            },
            "write_control": {
              "anyOf": [
                {
                  "properties": {
                    "requiredRevisionId": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Require the document to still be at this revision ID or fail the batch update.",
                      "title": "Requiredrevisionid"
                    },
                    "targetRevisionId": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Apply the batch update against this revision ID and merge with newer changes when possible.",
                      "title": "Targetrevisionid"
                    }
                  },
                  "title": "GoogleDocsBatchUpdateWriteControl",
                  "type": "object"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Optional writeControl object for the underlying Google Docs API batch update call."
            },
            "image_uris": {
              "anyOf": [
                {
                  "items": {
                    "anyOf": [
                      {
                        "description": "Connector-local file reference payload used for upload/download handoff.",
                        "properties": {
                          "download_url": {
                            "title": "Download Url",
                            "type": "string"
                          },
                          "file_id": {
                            "title": "File Id",
                            "type": "string"
                          },
                          "mime_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "title": "Mime Type"
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "title": "File Name"
                          }
                        },
                        "required": [
                          "download_url",
                          "file_id"
                        ],
                        "title": "ConnectorFileReference",
                        "type": "object"
                      },
                      {
                        "additionalProperties": true,
                        "type": "object"
                      }
                    ]
                  },
                  "type": "array"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Optional sidecar file references for local or generated images used by Drive roll-up batch update actions. This exists because runtime file upload rewriting currently only handles top-level file parameters. Put local workspace image paths here in the same order as the matching image URL placeholders in requests. Public HTTP(S) image URLs should stay directly in requests and should not be repeated here. Do not pass base64 data URLs.",
              "title": "Image Uris"
            }
          },
          "required": [
            "requests"
          ],
          "title": "batch_update_document_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "batch_update_document_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "GoogleDocsBatchUpdateResponse",
              "default": {},
              "type": "object",
              "properties": {
                "documentId": {
                  "title": "Documentid",
                  "description": "Google Docs document ID.",
                  "default": {},
                  "type": "string"
                },
                "revisionId": {
                  "title": "Revisionid",
                  "description": "Updated document revision ID, if available.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "replies": {
                  "title": "Replies",
                  "description": "Replies returned by the batch update requests.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "array",
                      "items": {
                        "title": "GoogleDocsBatchUpdateReply",
                        "default": {},
                        "type": "object",
                        "additionalProperties": true
                      }
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "writeControl": {
                  "description": "Write control state returned after the batch update, if available.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "title": "GoogleDocsBatchUpdateWriteControl",
                      "default": {},
                      "type": "object",
                      "properties": {
                        "requiredRevisionId": {
                          "title": "Requiredrevisionid",
                          "description": "Require the document to still be at this revision ID or fail the batch update.",
                          "type": "anyOf",
                          "anyOf": [
                            {
                              "default": {},
                              "type": "string"
                            },
                            {
                              "default": {},
                              "type": "null"
                            }
                          ]
                        },
                        "targetRevisionId": {
                          "title": "Targetrevisionid",
                          "description": "Apply the batch update against this revision ID and merge with newer changes when possible.",
                          "type": "anyOf",
                          "anyOf": [
                            {
                              "default": {},
                              "type": "string"
                            },
                            {
                              "default": {},
                              "type": "null"
                            }
                          ]
                        }
                      }
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "documentId"
              ]
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": true,
          "openWorldHint": true
        },
        "_meta": {
          "openai/fileParams": [
            "image_uris"
          ],
          "resource_name": "Google Drive_batch_update_document",
          "_codex_apps": {
            "resource_uri": "/connector_5f3c8c41a1e54ad7a76272c89e2554fa/link_68c64b0647dc81918c149d6541273e93/batch_update_document",
            "contains_mcp_source": false
          },
          "connector_id": "connector_5f3c8c41a1e54ad7a76272c89e2554fa",
          "connector_name": "Google Drive",
          "connector_description": "Search and work with files from Google Drive, Docs, Sheets, and Slides.",
          "link_id": "link_68c64b0647dc81918c149d6541273e93"
        }
      },
      "connector_id": "connector_5f3c8c41a1e54ad7a76272c89e2554fa",
      "connector_name": "Google Drive",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_batch_update_presentation",
      "tool_namespace": "codex_apps__google_drive",
      "namespace_description": "Search and work with files from Google Drive, Docs, Sheets, and Slides.",
      "tool": {
        "name": "google drive_batch_update_presentation",
        "title": "batch_update_presentation",
        "description": "Apply raw Google Slides batchUpdate requests to presentation content, not Drive file metadata.\nThis action may fail because it needs an OAuth permission that was not requested when this connection was created. Reconnect to request the new permission.",
        "inputSchema": {
          "properties": {
            "requests": {
              "description": "Raw Google Slides API presentations.batchUpdate request objects for editing presentation content. Each list item must set exactly one request type key such as createSlide, createImage, insertText, updateTextStyle, replaceAllText, updatePageElementTransform, deleteObject, or duplicateObject. Use slide/page objectId values returned by get_presentation, get_presentation_outline, or get_slide for fields such as elementProperties.pageObjectId or slideObjectIds; do not use the presentation ID, slide number, layout ID, or a page element ID. For local/generated image bytes in createImage.url, replaceImage.url, or replaceAllShapesWithImage.imageUrl, put the workspace image path in image_uris and set the matching request URL field to a non-public placeholder such as that same path. Send each request as a structured object in the list, not as a JSON string or other stringified input. Requests execute in order. Do not use this to rename or move the Drive file; use update_file for Drive metadata or parent-folder changes.",
              "items": {
                "additionalProperties": true,
                "title": "GoogleSlidesBatchUpdateRequestOperation",
                "type": "object"
              },
              "title": "Requests",
              "type": "array"
            },
            "presentation_url": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Google Slides URL in the format https://docs.google.com/presentation/d/<PRESENTATION_ID>/... or a raw presentation ID. If you only know the deck title or title keywords, call `search_presentations` first instead of asking the user for a URL.",
              "title": "Presentation Url"
            },
            "presentation_id": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Raw Google Slides presentation ID only (for example `1abcDEF...`). Use this when you already have the ID from a prior search result. Do not pass a full URL here.",
              "title": "Presentation Id"
            },
            "write_control": {
              "anyOf": [
                {
                  "properties": {
                    "requiredRevisionId": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Require the presentation to still be at this revision ID or fail the batch update.",
                      "title": "Requiredrevisionid"
                    }
                  },
                  "title": "GoogleSlidesBatchUpdateWriteControl",
                  "type": "object"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Optional writeControl object for the underlying Google Slides API batch update call. Prefer providing requiredRevisionId from a fresh read before writing when you want concurrent edits to fail cleanly."
            },
            "image_uris": {
              "anyOf": [
                {
                  "items": {
                    "anyOf": [
                      {
                        "description": "Connector-local file reference payload used for upload/download handoff.",
                        "properties": {
                          "download_url": {
                            "title": "Download Url",
                            "type": "string"
                          },
                          "file_id": {
                            "title": "File Id",
                            "type": "string"
                          },
                          "mime_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "title": "Mime Type"
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "title": "File Name"
                          }
                        },
                        "required": [
                          "download_url",
                          "file_id"
                        ],
                        "title": "ConnectorFileReference",
                        "type": "object"
                      },
                      {
                        "additionalProperties": true,
                        "type": "object"
                      }
                    ]
                  },
                  "type": "array"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Optional sidecar file references for local or generated images used by Drive roll-up batch update actions. This exists because runtime file upload rewriting currently only handles top-level file parameters. Put local workspace image paths here in the same order as the matching image URL placeholders in requests. Public HTTP(S) image URLs should stay directly in requests and should not be repeated here. Do not pass base64 data URLs.",
              "title": "Image Uris"
            }
          },
          "required": [
            "requests"
          ],
          "title": "batch_update_presentation_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "batch_update_presentation_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "GoogleSlidesBatchUpdateResponse",
              "default": {},
              "type": "object",
              "properties": {
                "presentationId": {
                  "title": "Presentationid",
                  "description": "Google Slides presentation ID.",
                  "default": {},
                  "type": "string"
                },
                "writeControl": {
                  "description": "Write control state returned after the batch update, if available.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "title": "GoogleSlidesBatchUpdateWriteControl",
                      "default": {},
                      "type": "object",
                      "properties": {
                        "requiredRevisionId": {
                          "title": "Requiredrevisionid",
                          "description": "Require the presentation to still be at this revision ID or fail the batch update.",
                          "type": "anyOf",
                          "anyOf": [
                            {
                              "default": {},
                              "type": "string"
                            },
                            {
                              "default": {},
                              "type": "null"
                            }
                          ]
                        }
                      }
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "replies": {
                  "title": "Replies",
                  "description": "Replies returned by the batch update requests.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "array",
                      "items": {
                        "title": "GoogleSlidesBatchUpdateReply",
                        "default": {},
                        "type": "object",
                        "additionalProperties": true
                      }
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "presentationId"
              ]
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": true,
          "openWorldHint": true
        },
        "_meta": {
          "openai/fileParams": [
            "image_uris"
          ],
          "resource_name": "Google Drive_batch_update_presentation",
          "_codex_apps": {
            "resource_uri": "/connector_5f3c8c41a1e54ad7a76272c89e2554fa/link_68c64b0647dc81918c149d6541273e93/batch_update_presentation",
            "contains_mcp_source": false
          },
          "connector_id": "connector_5f3c8c41a1e54ad7a76272c89e2554fa",
          "connector_name": "Google Drive",
          "connector_description": "Search and work with files from Google Drive, Docs, Sheets, and Slides.",
          "link_id": "link_68c64b0647dc81918c149d6541273e93"
        }
      },
      "connector_id": "connector_5f3c8c41a1e54ad7a76272c89e2554fa",
      "connector_name": "Google Drive",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_batch_update_spreadsheet",
      "tool_namespace": "codex_apps__google_drive",
      "namespace_description": "Search and work with files from Google Drive, Docs, Sheets, and Slides.",
      "tool": {
        "name": "google drive_batch_update_spreadsheet",
        "title": "batch_update_spreadsheet",
        "description": "Apply raw Google Sheets batchUpdate requests to spreadsheet content, not Drive file metadata.\nThis action may fail because it needs an OAuth permission that was not requested when this connection was created. Reconnect to request the new permission.",
        "inputSchema": {
          "properties": {
            "requests": {
              "description": "Raw Google Sheets API batchUpdate requests, in execution order. Each item must be one structured Sheets REST request object with exactly one request type key, for example {'addSheet': {...}}, {'updateCells': {...}}, or {'findReplace': {...}}. Use Google field names and casing exactly and do not pass JSON strings. For updateCells, provide a valid start or range with the target sheetId, keep row/column indexes inside the requested grid, put the field mask on updateCells.fields, and do not put a fields key inside rows[]. For findReplace, set exactly one scope: range, sheetId, or allSheets. For local/generated image bytes in IMAGE formulas, put the workspace image path in image_uris and set the matching formula URL argument to a non-public placeholder such as that same path. Do not use this to rename or move the Drive file; use update_file for Drive metadata or parent-folder changes.",
              "items": {
                "additionalProperties": true,
                "type": "object"
              },
              "title": "Requests",
              "type": "array"
            },
            "spreadsheet_url": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Google Sheets spreadsheet URL in the format https://docs.google.com/spreadsheets/d/<SPREADSHEET_ID>/... or a raw spreadsheet ID. If you only know the spreadsheet title or title keywords, call `search_spreadsheets` first instead of asking the user for a URL.",
              "title": "Spreadsheet Url"
            },
            "spreadsheet_id": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Raw Google Sheets spreadsheet ID only (for example `1abcDEF...`). Use this when you already have the ID from a prior search result. Do not pass a full URL here.",
              "title": "Spreadsheet Id"
            },
            "include_spreadsheet_in_response": {
              "default": false,
              "description": "When true, include the updated spreadsheet resource in the response.",
              "title": "Include Spreadsheet In Response",
              "type": "boolean"
            },
            "response_ranges": {
              "anyOf": [
                {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Optional ranges to include in updatedSpreadsheet when include_spreadsheet_in_response is true. A1 range including the sheet name, e.g. Sheet1!A1:C20 or 'Q1 Plan'!A1:C20. Quote sheet names that contain spaces or punctuation and avoid duplicated sheet prefixes.",
              "title": "Response Ranges"
            },
            "response_include_grid_data": {
              "default": false,
              "description": "When true, include grid data in updatedSpreadsheet. Only meaningful when include_spreadsheet_in_response is true.",
              "title": "Response Include Grid Data",
              "type": "boolean"
            },
            "image_uris": {
              "anyOf": [
                {
                  "items": {
                    "anyOf": [
                      {
                        "description": "Connector-local file reference payload used for upload/download handoff.",
                        "properties": {
                          "download_url": {
                            "title": "Download Url",
                            "type": "string"
                          },
                          "file_id": {
                            "title": "File Id",
                            "type": "string"
                          },
                          "mime_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "title": "Mime Type"
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "title": "File Name"
                          }
                        },
                        "required": [
                          "download_url",
                          "file_id"
                        ],
                        "title": "ConnectorFileReference",
                        "type": "object"
                      },
                      {
                        "additionalProperties": true,
                        "type": "object"
                      }
                    ]
                  },
                  "type": "array"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Optional sidecar file references for local or generated images used by Drive roll-up batch update actions. This exists because runtime file upload rewriting currently only handles top-level file parameters. Put local workspace image paths here in the same order as the matching image URL placeholders in requests. Public HTTP(S) image URLs should stay directly in requests and should not be repeated here. Do not pass base64 data URLs.",
              "title": "Image Uris"
            }
          },
          "required": [
            "requests"
          ],
          "title": "batch_update_spreadsheet_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "batch_update_spreadsheet_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "GoogleSheetsBatchUpdateResponse",
              "default": {},
              "type": "object",
              "properties": {
                "spreadsheetId": {
                  "title": "Spreadsheetid",
                  "description": "Google Sheets spreadsheet ID.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "replies": {
                  "title": "Replies",
                  "description": "Replies returned by the batch update requests.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "array",
                      "items": {
                        "default": {},
                        "type": "object",
                        "additionalProperties": true
                      }
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "updatedSpreadsheet": {
                  "title": "Updatedspreadsheet",
                  "description": "Updated spreadsheet payload when requested.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "object",
                      "additionalProperties": true
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                }
              }
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": true,
          "openWorldHint": true
        },
        "_meta": {
          "openai/fileParams": [
            "image_uris"
          ],
          "resource_name": "Google Drive_batch_update_spreadsheet",
          "_codex_apps": {
            "resource_uri": "/connector_5f3c8c41a1e54ad7a76272c89e2554fa/link_68c64b0647dc81918c149d6541273e93/batch_update_spreadsheet",
            "contains_mcp_source": false
          },
          "connector_id": "connector_5f3c8c41a1e54ad7a76272c89e2554fa",
          "connector_name": "Google Drive",
          "connector_description": "Search and work with files from Google Drive, Docs, Sheets, and Slides.",
          "link_id": "link_68c64b0647dc81918c149d6541273e93"
        }
      },
      "connector_id": "connector_5f3c8c41a1e54ad7a76272c89e2554fa",
      "connector_name": "Google Drive",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_create_file",
      "tool_namespace": "codex_apps__google_drive",
      "namespace_description": "Search and work with files from Google Drive, Docs, Sheets, and Slides.",
      "tool": {
        "name": "google drive_create_file",
        "title": "create_file",
        "description": "Create a native Google Doc, Sheet, or Slide file.\nThis action may fail because it needs an OAuth permission that was not requested when this connection was created. Reconnect to request the new permission.",
        "inputSchema": {
          "properties": {
            "title": {
              "description": "Title for the new file.",
              "title": "Title",
              "type": "string"
            },
            "mime_type": {
              "description": "Native Google Workspace MIME type to create. Supported values: application/vnd.google-apps.document, application/vnd.google-apps.spreadsheet, application/vnd.google-apps.presentation.",
              "title": "Mime Type",
              "type": "string"
            }
          },
          "required": [
            "title",
            "mime_type"
          ],
          "title": "create_file_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "create_file_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "CreateResponse",
              "default": {},
              "type": "object",
              "properties": {
                "fileId": {
                  "title": "Fileid",
                  "description": "Created Google Drive file ID.",
                  "default": {},
                  "type": "string"
                },
                "mimeType": {
                  "title": "Mimetype",
                  "description": "MIME type of the created file.",
                  "default": {},
                  "type": "string"
                },
                "title": {
                  "title": "Title",
                  "description": "Created file title, if available.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "url": {
                  "title": "Url",
                  "description": "Browser URL for the created file, if available.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "fileId",
                "mimeType"
              ]
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": true,
          "openWorldHint": true
        },
        "_meta": {
          "resource_name": "Google Drive_create_file",
          "_codex_apps": {
            "resource_uri": "/connector_5f3c8c41a1e54ad7a76272c89e2554fa/link_68c64b0647dc81918c149d6541273e93/create_file",
            "contains_mcp_source": false
          },
          "connector_id": "connector_5f3c8c41a1e54ad7a76272c89e2554fa",
          "connector_name": "Google Drive",
          "connector_description": "Search and work with files from Google Drive, Docs, Sheets, and Slides.",
          "link_id": "link_68c64b0647dc81918c149d6541273e93"
        }
      },
      "connector_id": "connector_5f3c8c41a1e54ad7a76272c89e2554fa",
      "connector_name": "Google Drive",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_create_presentation_from_template",
      "tool_namespace": "codex_apps__google_drive",
      "namespace_description": "Search and work with files from Google Drive, Docs, Sheets, and Slides.",
      "tool": {
        "name": "google drive_create_presentation_from_template",
        "title": "create_presentation_from_template",
        "description": "Copy an existing Google Slides deck to create a new deck from a template.\nThis action may fail because it needs an OAuth permission that was not requested when this connection was created. Reconnect to request the new permission.",
        "inputSchema": {
          "properties": {
            "template_presentation_url": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Google Slides URL in the format https://docs.google.com/presentation/d/<PRESENTATION_ID>/... or a raw presentation ID. If you only know the deck title or title keywords, call `search_presentations` first instead of asking the user for a URL.",
              "title": "Template Presentation Url"
            },
            "title": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Optional title for the new deck created from a template copy.",
              "title": "Title"
            },
            "template_presentation_id": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Raw Google Slides presentation ID only (for example `1abcDEF...`). Use this when you already have the ID from a prior search result. Do not pass a full URL here.",
              "title": "Template Presentation Id"
            }
          },
          "title": "create_presentation_from_template_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "create_presentation_from_template_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "GoogleSlidesPresentation",
              "default": {},
              "type": "object",
              "properties": {
                "presentationId": {
                  "title": "Presentationid",
                  "description": "Google Slides presentation ID.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "title": {
                  "title": "Title",
                  "description": "Presentation title.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "revisionId": {
                  "title": "Revisionid",
                  "description": "Current presentation revision ID, if available.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "url": {
                  "title": "Url",
                  "description": "Browser URL for the presentation, if available.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "slides": {
                  "title": "Slides",
                  "description": "Raw slide payloads, if included.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "array",
                      "items": {
                        "default": {},
                        "type": "object",
                        "additionalProperties": true
                      }
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                }
              }
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": true,
          "openWorldHint": true
        },
        "_meta": {
          "resource_name": "Google Drive_create_presentation_from_template",
          "_codex_apps": {
            "resource_uri": "/connector_5f3c8c41a1e54ad7a76272c89e2554fa/link_68c64b0647dc81918c149d6541273e93/create_presentation_from_template",
            "contains_mcp_source": false
          },
          "connector_id": "connector_5f3c8c41a1e54ad7a76272c89e2554fa",
          "connector_name": "Google Drive",
          "connector_description": "Search and work with files from Google Drive, Docs, Sheets, and Slides.",
          "link_id": "link_68c64b0647dc81918c149d6541273e93"
        }
      },
      "connector_id": "connector_5f3c8c41a1e54ad7a76272c89e2554fa",
      "connector_name": "Google Drive",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_duplicate_sheet_in_new_spreadsheet",
      "tool_namespace": "codex_apps__google_drive",
      "namespace_description": "Search and work with files from Google Drive, Docs, Sheets, and Slides.",
      "tool": {
        "name": "google drive_duplicate_sheet_in_new_spreadsheet",
        "title": "duplicate_sheet_in_new_spreadsheet",
        "description": "Duplicate an existing sheet into a newly created spreadsheet file.\nThis action may fail because it needs an OAuth permission that was not requested when this connection was created. Reconnect to request the new permission.",
        "inputSchema": {
          "properties": {
            "source_sheet_name": {
              "description": "Source sheet name to duplicate. Use the visible tab name, not the spreadsheet file name.",
              "title": "Source Sheet Name",
              "type": "string"
            },
            "new_file_name": {
              "description": "Name of the newly created spreadsheet file that will receive the copied sheet.",
              "title": "New File Name",
              "type": "string"
            },
            "spreadsheet_url": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Google Sheets spreadsheet URL in the format https://docs.google.com/spreadsheets/d/<SPREADSHEET_ID>/... or a raw spreadsheet ID. If you only know the spreadsheet title or title keywords, call `search_spreadsheets` first instead of asking the user for a URL.",
              "title": "Spreadsheet Url"
            },
            "spreadsheet_id": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Raw Google Sheets spreadsheet ID only (for example `1abcDEF...`). Use this when you already have the ID from a prior search result. Do not pass a full URL here.",
              "title": "Spreadsheet Id"
            },
            "new_sheet_name": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Optional name for the copied sheet in the new spreadsheet. Leave null to keep the source sheet name.",
              "title": "New Sheet Name"
            }
          },
          "required": [
            "source_sheet_name",
            "new_file_name"
          ],
          "title": "duplicate_sheet_in_new_spreadsheet_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "duplicate_sheet_in_new_spreadsheet_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "DuplicateSheetInNewFileResponse",
              "default": {},
              "type": "object",
              "properties": {
                "newSpreadsheetId": {
                  "title": "Newspreadsheetid",
                  "description": "Created spreadsheet ID, if available.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "newSpreadsheetUrl": {
                  "title": "Newspreadsheeturl",
                  "description": "Browser URL for the created spreadsheet, if available.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "newSheetId": {
                  "title": "Newsheetid",
                  "description": "Copied sheet ID, if available.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "integer"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "newSheetName": {
                  "title": "Newsheetname",
                  "description": "Copied sheet name, if available.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                }
              }
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": true,
          "openWorldHint": true
        },
        "_meta": {
          "resource_name": "Google Drive_duplicate_sheet_in_new_spreadsheet",
          "_codex_apps": {
            "resource_uri": "/connector_5f3c8c41a1e54ad7a76272c89e2554fa/link_68c64b0647dc81918c149d6541273e93/duplicate_sheet_in_new_spreadsheet",
            "contains_mcp_source": false
          },
          "connector_id": "connector_5f3c8c41a1e54ad7a76272c89e2554fa",
          "connector_name": "Google Drive",
          "connector_description": "Search and work with files from Google Drive, Docs, Sheets, and Slides.",
          "link_id": "link_68c64b0647dc81918c149d6541273e93"
        }
      },
      "connector_id": "connector_5f3c8c41a1e54ad7a76272c89e2554fa",
      "connector_name": "Google Drive",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_export_file",
      "tool_namespace": "codex_apps__google_drive",
      "namespace_description": "Search and work with files from Google Drive, Docs, Sheets, and Slides.",
      "tool": {
        "name": "google drive_export_file",
        "title": "export_file",
        "description": "Export a native Google Doc, Sheet, or Slide file to the requested MIME type.\nThis action may fail because it needs an OAuth permission that was not requested when this connection was created. Reconnect to request the new permission.",
        "inputSchema": {
          "properties": {
            "url": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Google Drive/Docs/Sheets/Slides file URL containing a valid ID (for example https://drive.google.com/file/d/<FILE_ID>/... or https://docs.google.com/document/d/<FILE_ID>/...). Do not pass local filesystem paths, Windows paths, gdrive:// URIs, or plain names.",
              "title": "Url"
            },
            "id": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Google Drive file ID only (for example `1abcDEF...`). Do not pass extra parameters.",
              "title": "Id"
            },
            "mime_type": {
              "default": "application/pdf",
              "description": "Export MIME type for a native Google Doc, Sheet, or Slide file. Common examples: application/pdf, application/vnd.openxmlformats-officedocument.wordprocessingml.document, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.openxmlformats-officedocument.presentationml.presentation, text/markdown, text/plain, text/csv.",
              "title": "Mime Type",
              "type": "string"
            }
          },
          "title": "export_file_input",
          "type": "object"
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "Google Drive_export_file",
          "_codex_apps": {
            "resource_uri": "/connector_5f3c8c41a1e54ad7a76272c89e2554fa/link_68c64b0647dc81918c149d6541273e93/export_file",
            "contains_mcp_source": false
          },
          "connector_id": "connector_5f3c8c41a1e54ad7a76272c89e2554fa",
          "connector_name": "Google Drive",
          "connector_description": "Search and work with files from Google Drive, Docs, Sheets, and Slides.",
          "link_id": "link_68c64b0647dc81918c149d6541273e93"
        }
      },
      "connector_id": "connector_5f3c8c41a1e54ad7a76272c89e2554fa",
      "connector_name": "Google Drive",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_fetch",
      "tool_namespace": "codex_apps__google_drive",
      "namespace_description": "Search and work with files from Google Drive, Docs, Sheets, and Slides.",
      "tool": {
        "name": "google drive_fetch",
        "title": "fetch",
        "description": "Download the content and title of a Google Drive file. If `download_raw_file` is set to True, the file will be downloaded as a raw file. Set `raw_export_mime_type` to override the raw export format for Google Docs or Sheets. Otherwise, the file will be displayed as text. If text extraction is unsupported, the response falls back to raw file fields.",
        "inputSchema": {
          "properties": {
            "url": {
              "description": "Google Drive/Docs/Sheets/Slides file URL containing a valid ID (for example https://drive.google.com/file/d/<FILE_ID>/... or https://docs.google.com/document/d/<FILE_ID>/...). Do not pass local filesystem paths, Windows paths, gdrive:// URIs, or plain names.",
              "title": "Url",
              "type": "string"
            },
            "download_raw_file": {
              "default": false,
              "description": "When true, download the raw bytes instead of text-extracted content.",
              "title": "Download Raw File",
              "type": "boolean"
            },
            "raw_export_mime_type": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Optional raw export MIME type to use when `download_raw_file=true` for Google Docs, Sheets, or Slides. Leave null to use the default raw export format.",
              "title": "Raw Export Mime Type"
            }
          },
          "required": [
            "url"
          ],
          "title": "fetch_input",
          "type": "object"
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "Google Drive_fetch",
          "_codex_apps": {
            "resource_uri": "/connector_5f3c8c41a1e54ad7a76272c89e2554fa/link_68c64b0647dc81918c149d6541273e93/fetch",
            "contains_mcp_source": false
          },
          "connector_id": "connector_5f3c8c41a1e54ad7a76272c89e2554fa",
          "connector_name": "Google Drive",
          "connector_description": "Search and work with files from Google Drive, Docs, Sheets, and Slides.",
          "link_id": "link_68c64b0647dc81918c149d6541273e93"
        }
      },
      "connector_id": "connector_5f3c8c41a1e54ad7a76272c89e2554fa",
      "connector_name": "Google Drive",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_find_document_text_range",
      "tool_namespace": "codex_apps__google_drive",
      "namespace_description": "Search and work with files from Google Drive, Docs, Sheets, and Slides.",
      "tool": {
        "name": "google drive_find_document_text_range",
        "title": "find_document_text_range",
        "description": "Find the index range of an exact text match in a Google Doc.\nThis action may fail because it needs an OAuth permission that was not requested when this connection was created. Reconnect to request the new permission.",
        "inputSchema": {
          "properties": {
            "text_to_find": {
              "description": "Exact document text to match. Prefer this over raw indexes when possible.",
              "title": "Text To Find",
              "type": "string"
            },
            "document_url": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Google Docs URL in the format https://docs.google.com/document/d/<DOCUMENT_ID>/... or a raw Google Docs document ID. If you only know the document title or title keywords, call `search_documents` first instead of asking the user for a URL. Do not pass document titles, Drive open?id links, app:// URLs, or /document/create.",
              "title": "Document Url"
            },
            "document_id": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Raw Google Docs document ID only (for example `1abcDEF...`). Use this when you already have the ID from a prior search result. Do not pass a full URL here.",
              "title": "Document Id"
            },
            "instance": {
              "default": 1,
              "description": "1-based occurrence number when target_text appears multiple times.",
              "title": "Instance",
              "type": "integer"
            },
            "tab_id": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Optional Google Docs tab ID. Use this to target a specific tab in a tabbed document. Exclude to get all tabs.",
              "title": "Tab Id"
            }
          },
          "required": [
            "text_to_find"
          ],
          "title": "find_document_text_range_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "find_document_text_range_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "GoogleDocsRangeLookupResponse",
              "default": {},
              "type": "object",
              "properties": {
                "documentId": {
                  "title": "Documentid",
                  "description": "Google Docs document ID.",
                  "default": {},
                  "type": "string"
                },
                "revisionId": {
                  "title": "Revisionid",
                  "description": "Current document revision ID, if available.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "resolvedRange": {
                  "description": "Resolved document range, if a match was found.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "title": "GoogleDocsResolvedRange",
                      "default": {},
                      "type": "object",
                      "properties": {
                        "startIndex": {
                          "title": "Startindex",
                          "description": "Resolved range start index.",
                          "default": {},
                          "type": "integer"
                        },
                        "endIndex": {
                          "title": "Endindex",
                          "description": "Resolved range end index.",
                          "default": {},
                          "type": "integer"
                        },
                        "tabId": {
                          "title": "Tabid",
                          "description": "Tab ID for the resolved range, if applicable.",
                          "type": "anyOf",
                          "anyOf": [
                            {
                              "default": {},
                              "type": "string"
                            },
                            {
                              "default": {},
                              "type": "null"
                            }
                          ]
                        },
                        "matchedText": {
                          "title": "Matchedtext",
                          "description": "Matched text for the resolved range, if available.",
                          "type": "anyOf",
                          "anyOf": [
                            {
                              "default": {},
                              "type": "string"
                            },
                            {
                              "default": {},
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "required": [
                        "startIndex",
                        "endIndex"
                      ]
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "documentId"
              ]
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "Google Drive_find_document_text_range",
          "_codex_apps": {
            "resource_uri": "/connector_5f3c8c41a1e54ad7a76272c89e2554fa/link_68c64b0647dc81918c149d6541273e93/find_document_text_range",
            "contains_mcp_source": false
          },
          "connector_id": "connector_5f3c8c41a1e54ad7a76272c89e2554fa",
          "connector_name": "Google Drive",
          "connector_description": "Search and work with files from Google Drive, Docs, Sheets, and Slides.",
          "link_id": "link_68c64b0647dc81918c149d6541273e93"
        }
      },
      "connector_id": "connector_5f3c8c41a1e54ad7a76272c89e2554fa",
      "connector_name": "Google Drive",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_get_document",
      "tool_namespace": "codex_apps__google_drive",
      "namespace_description": "Search and work with files from Google Drive, Docs, Sheets, and Slides.",
      "tool": {
        "name": "google drive_get_document",
        "title": "get_document",
        "description": "Get the full Google Doc, including tab content when present.\nThis action may fail because it needs an OAuth permission that was not requested when this connection was created. Reconnect to request the new permission.",
        "inputSchema": {
          "properties": {
            "document_url": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Google Docs URL in the format https://docs.google.com/document/d/<DOCUMENT_ID>/... or a raw Google Docs document ID. If you only know the document title or title keywords, call `search_documents` first instead of asking the user for a URL. Do not pass document titles, Drive open?id links, app:// URLs, or /document/create.",
              "title": "Document Url"
            },
            "document_id": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Raw Google Docs document ID only (for example `1abcDEF...`). Use this when you already have the ID from a prior search result. Do not pass a full URL here.",
              "title": "Document Id"
            }
          },
          "title": "get_document_input",
          "type": "object"
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "Google Drive_get_document",
          "_codex_apps": {
            "resource_uri": "/connector_5f3c8c41a1e54ad7a76272c89e2554fa/link_68c64b0647dc81918c149d6541273e93/get_document",
            "contains_mcp_source": false
          },
          "connector_id": "connector_5f3c8c41a1e54ad7a76272c89e2554fa",
          "connector_name": "Google Drive",
          "connector_description": "Search and work with files from Google Drive, Docs, Sheets, and Slides.",
          "link_id": "link_68c64b0647dc81918c149d6541273e93"
        }
      },
      "connector_id": "connector_5f3c8c41a1e54ad7a76272c89e2554fa",
      "connector_name": "Google Drive",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_get_document_comments",
      "tool_namespace": "codex_apps__google_drive",
      "namespace_description": "Search and work with files from Google Drive, Docs, Sheets, and Slides.",
      "tool": {
        "name": "google drive_get_document_comments",
        "title": "get_document_comments",
        "description": "Read user comments and replies on a Google Doc for additional review context.",
        "inputSchema": {
          "properties": {
            "document_url": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Google Docs URL in the format https://docs.google.com/document/d/<DOCUMENT_ID>/... or a raw Google Docs document ID. If you only know the document title or title keywords, call `search_documents` first instead of asking the user for a URL. Do not pass document titles, Drive open?id links, app:// URLs, or /document/create.",
              "title": "Document Url"
            },
            "document_id": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Raw Google Docs document ID only (for example `1abcDEF...`). Use this when you already have the ID from a prior search result. Do not pass a full URL here.",
              "title": "Document Id"
            },
            "include_deleted": {
              "default": false,
              "description": "When true, include deleted comments and deleted replies in the result.",
              "title": "Include Deleted",
              "type": "boolean"
            },
            "page_size": {
              "default": 100,
              "description": "Maximum comment threads to return on this page. Use the response nextPageToken to continue.",
              "title": "Page Size",
              "type": "integer"
            },
            "page_token": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Opaque nextPageToken from a previous get_document_comments response.",
              "title": "Page Token"
            }
          },
          "title": "get_document_comments_input",
          "type": "object"
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "Google Drive_get_document_comments",
          "_codex_apps": {
            "resource_uri": "/connector_5f3c8c41a1e54ad7a76272c89e2554fa/link_68c64b0647dc81918c149d6541273e93/get_document_comments",
            "contains_mcp_source": false
          },
          "connector_id": "connector_5f3c8c41a1e54ad7a76272c89e2554fa",
          "connector_name": "Google Drive",
          "connector_description": "Search and work with files from Google Drive, Docs, Sheets, and Slides.",
          "link_id": "link_68c64b0647dc81918c149d6541273e93"
        }
      },
      "connector_id": "connector_5f3c8c41a1e54ad7a76272c89e2554fa",
      "connector_name": "Google Drive",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_get_document_paragraph_range",
      "tool_namespace": "codex_apps__google_drive",
      "namespace_description": "Search and work with files from Google Drive, Docs, Sheets, and Slides.",
      "tool": {
        "name": "google drive_get_document_paragraph_range",
        "title": "get_document_paragraph_range",
        "description": "Resolve the paragraph range containing a given document index.\nThis action may fail because it needs an OAuth permission that was not requested when this connection was created. Reconnect to request the new permission.",
        "inputSchema": {
          "properties": {
            "index_within": {
              "description": "A Google Docs document index that falls within the paragraph you want to resolve.",
              "title": "Index Within",
              "type": "integer"
            },
            "document_url": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Google Docs URL in the format https://docs.google.com/document/d/<DOCUMENT_ID>/... or a raw Google Docs document ID. If you only know the document title or title keywords, call `search_documents` first instead of asking the user for a URL. Do not pass document titles, Drive open?id links, app:// URLs, or /document/create.",
              "title": "Document Url"
            },
            "document_id": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Raw Google Docs document ID only (for example `1abcDEF...`). Use this when you already have the ID from a prior search result. Do not pass a full URL here.",
              "title": "Document Id"
            },
            "tab_id": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Optional Google Docs tab ID. Use this to target a specific tab in a tabbed document. Exclude to get all tabs.",
              "title": "Tab Id"
            }
          },
          "required": [
            "index_within"
          ],
          "title": "get_document_paragraph_range_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "get_document_paragraph_range_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "GoogleDocsRangeLookupResponse",
              "default": {},
              "type": "object",
              "properties": {
                "documentId": {
                  "title": "Documentid",
                  "description": "Google Docs document ID.",
                  "default": {},
                  "type": "string"
                },
                "revisionId": {
                  "title": "Revisionid",
                  "description": "Current document revision ID, if available.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "resolvedRange": {
                  "description": "Resolved document range, if a match was found.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "title": "GoogleDocsResolvedRange",
                      "default": {},
                      "type": "object",
                      "properties": {
                        "startIndex": {
                          "title": "Startindex",
                          "description": "Resolved range start index.",
                          "default": {},
                          "type": "integer"
                        },
                        "endIndex": {
                          "title": "Endindex",
                          "description": "Resolved range end index.",
                          "default": {},
                          "type": "integer"
                        },
                        "tabId": {
                          "title": "Tabid",
                          "description": "Tab ID for the resolved range, if applicable.",
                          "type": "anyOf",
                          "anyOf": [
                            {
                              "default": {},
                              "type": "string"
                            },
                            {
                              "default": {},
                              "type": "null"
                            }
                          ]
                        },
                        "matchedText": {
                          "title": "Matchedtext",
                          "description": "Matched text for the resolved range, if available.",
                          "type": "anyOf",
                          "anyOf": [
                            {
                              "default": {},
                              "type": "string"
                            },
                            {
                              "default": {},
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "required": [
                        "startIndex",
                        "endIndex"
                      ]
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "documentId"
              ]
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "Google Drive_get_document_paragraph_range",
          "_codex_apps": {
            "resource_uri": "/connector_5f3c8c41a1e54ad7a76272c89e2554fa/link_68c64b0647dc81918c149d6541273e93/get_document_paragraph_range",
            "contains_mcp_source": false
          },
          "connector_id": "connector_5f3c8c41a1e54ad7a76272c89e2554fa",
          "connector_name": "Google Drive",
          "connector_description": "Search and work with files from Google Drive, Docs, Sheets, and Slides.",
          "link_id": "link_68c64b0647dc81918c149d6541273e93"
        }
      },
      "connector_id": "connector_5f3c8c41a1e54ad7a76272c89e2554fa",
      "connector_name": "Google Drive",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_get_document_tables",
      "tool_namespace": "codex_apps__google_drive",
      "namespace_description": "Search and work with files from Google Drive, Docs, Sheets, and Slides.",
      "tool": {
        "name": "google drive_get_document_tables",
        "title": "get_document_tables",
        "description": "Return table structures and cell text from a Google Doc.\nThis action may fail because it needs an OAuth permission that was not requested when this connection was created. Reconnect to request the new permission.",
        "inputSchema": {
          "properties": {
            "document_url": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Google Docs URL in the format https://docs.google.com/document/d/<DOCUMENT_ID>/... or a raw Google Docs document ID. If you only know the document title or title keywords, call `search_documents` first instead of asking the user for a URL. Do not pass document titles, Drive open?id links, app:// URLs, or /document/create.",
              "title": "Document Url"
            },
            "document_id": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Raw Google Docs document ID only (for example `1abcDEF...`). Use this when you already have the ID from a prior search result. Do not pass a full URL here.",
              "title": "Document Id"
            },
            "tab_id": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Optional Google Docs tab ID. Use this to target a specific tab in a tabbed document. Exclude to get all tabs.",
              "title": "Tab Id"
            }
          },
          "title": "get_document_tables_input",
          "type": "object"
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "Google Drive_get_document_tables",
          "_codex_apps": {
            "resource_uri": "/connector_5f3c8c41a1e54ad7a76272c89e2554fa/link_68c64b0647dc81918c149d6541273e93/get_document_tables",
            "contains_mcp_source": false
          },
          "connector_id": "connector_5f3c8c41a1e54ad7a76272c89e2554fa",
          "connector_name": "Google Drive",
          "connector_description": "Search and work with files from Google Drive, Docs, Sheets, and Slides.",
          "link_id": "link_68c64b0647dc81918c149d6541273e93"
        }
      },
      "connector_id": "connector_5f3c8c41a1e54ad7a76272c89e2554fa",
      "connector_name": "Google Drive",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_get_document_text",
      "tool_namespace": "codex_apps__google_drive",
      "namespace_description": "Search and work with files from Google Drive, Docs, Sheets, and Slides.",
      "tool": {
        "name": "google drive_get_document_text",
        "title": "get_document_text",
        "description": "Return paragraph text with document indexes for a Google Doc.\nThis action may fail because it needs an OAuth permission that was not requested when this connection was created. Reconnect to request the new permission.",
        "inputSchema": {
          "properties": {
            "document_url": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Google Docs URL in the format https://docs.google.com/document/d/<DOCUMENT_ID>/... or a raw Google Docs document ID. If you only know the document title or title keywords, call `search_documents` first instead of asking the user for a URL. Do not pass document titles, Drive open?id links, app:// URLs, or /document/create.",
              "title": "Document Url"
            },
            "document_id": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Raw Google Docs document ID only (for example `1abcDEF...`). Use this when you already have the ID from a prior search result. Do not pass a full URL here.",
              "title": "Document Id"
            },
            "tab_id": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Optional Google Docs tab ID. Use this to target a specific tab in a tabbed document. Exclude to get all tabs.",
              "title": "Tab Id"
            }
          },
          "title": "get_document_text_input",
          "type": "object"
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "Google Drive_get_document_text",
          "_codex_apps": {
            "resource_uri": "/connector_5f3c8c41a1e54ad7a76272c89e2554fa/link_68c64b0647dc81918c149d6541273e93/get_document_text",
            "contains_mcp_source": false
          },
          "connector_id": "connector_5f3c8c41a1e54ad7a76272c89e2554fa",
          "connector_name": "Google Drive",
          "connector_description": "Search and work with files from Google Drive, Docs, Sheets, and Slides.",
          "link_id": "link_68c64b0647dc81918c149d6541273e93"
        }
      },
      "connector_id": "connector_5f3c8c41a1e54ad7a76272c89e2554fa",
      "connector_name": "Google Drive",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_get_file_metadata",
      "tool_namespace": "codex_apps__google_drive",
      "namespace_description": "Search and work with files from Google Drive, Docs, Sheets, and Slides.",
      "tool": {
        "name": "google drive_get_file_metadata",
        "title": "get_file_metadata",
        "description": "Return metadata for a Google Drive file or folder without downloading contents. This action wraps Google Drive `files.get`.",
        "inputSchema": {
          "properties": {
            "fileId": {
              "description": "Google Drive API `fileId` path parameter. Raw file IDs are preferred; Drive/Docs/Sheets/Slides URLs are also accepted.",
              "title": "Fileid",
              "type": "string"
            },
            "acknowledgeAbuse": {
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Google Drive API `acknowledgeAbuse` query parameter for downloading abusive media when applicable.",
              "title": "Acknowledgeabuse"
            },
            "supportsAllDrives": {
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ],
              "default": true,
              "description": "Google Drive API `supportsAllDrives` query parameter.",
              "title": "Supportsalldrives"
            },
            "supportsTeamDrives": {
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Deprecated Google Drive API `supportsTeamDrives` query parameter.",
              "title": "Supportsteamdrives"
            },
            "includePermissionsForView": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Google Drive API `includePermissionsForView` query parameter. Only `published` is supported.",
              "title": "Includepermissionsforview"
            },
            "includeLabels": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Google Drive API `includeLabels` query parameter: comma-separated label IDs to include in `labelInfo`.",
              "title": "Includelabels"
            },
            "fields": {
              "default": "id,name,mimeType,webViewLink,createdTime,modifiedTime,parents,shared,driveId,hasAugmentedPermissions,capabilities/canShare,permissions(type,role,emailAddress,domain,displayName,allowFileDiscovery)",
              "description": "Google Drive API partial response `fields` selector for the file metadata.",
              "title": "Fields",
              "type": "string"
            }
          },
          "required": [
            "fileId"
          ],
          "title": "get_file_metadata_input",
          "type": "object"
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "Google Drive_get_file_metadata",
          "_codex_apps": {
            "resource_uri": "/connector_5f3c8c41a1e54ad7a76272c89e2554fa/link_68c64b0647dc81918c149d6541273e93/get_file_metadata",
            "contains_mcp_source": false
          },
          "connector_id": "connector_5f3c8c41a1e54ad7a76272c89e2554fa",
          "connector_name": "Google Drive",
          "connector_description": "Search and work with files from Google Drive, Docs, Sheets, and Slides.",
          "link_id": "link_68c64b0647dc81918c149d6541273e93"
        }
      },
      "connector_id": "connector_5f3c8c41a1e54ad7a76272c89e2554fa",
      "connector_name": "Google Drive",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_get_presentation",
      "tool_namespace": "codex_apps__google_drive",
      "namespace_description": "Search and work with files from Google Drive, Docs, Sheets, and Slides.",
      "tool": {
        "name": "google drive_get_presentation",
        "title": "get_presentation",
        "description": "Get presentation metadata and slide content for a Google Slides deck.\nThis action may fail because it needs an OAuth permission that was not requested when this connection was created. Reconnect to request the new permission.",
        "inputSchema": {
          "properties": {
            "presentation_url": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Google Slides URL in the format https://docs.google.com/presentation/d/<PRESENTATION_ID>/... or a raw presentation ID. If you only know the deck title or title keywords, call `search_presentations` first instead of asking the user for a URL.",
              "title": "Presentation Url"
            },
            "presentation_id": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Raw Google Slides presentation ID only (for example `1abcDEF...`). Use this when you already have the ID from a prior search result. Do not pass a full URL here.",
              "title": "Presentation Id"
            }
          },
          "title": "get_presentation_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "get_presentation_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "GoogleSlidesPresentation",
              "default": {},
              "type": "object",
              "properties": {
                "presentationId": {
                  "title": "Presentationid",
                  "description": "Google Slides presentation ID.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "title": {
                  "title": "Title",
                  "description": "Presentation title.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "revisionId": {
                  "title": "Revisionid",
                  "description": "Current presentation revision ID, if available.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "url": {
                  "title": "Url",
                  "description": "Browser URL for the presentation, if available.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "slides": {
                  "title": "Slides",
                  "description": "Raw slide payloads, if included.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "array",
                      "items": {
                        "default": {},
                        "type": "object",
                        "additionalProperties": true
                      }
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                }
              }
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "Google Drive_get_presentation",
          "_codex_apps": {
            "resource_uri": "/connector_5f3c8c41a1e54ad7a76272c89e2554fa/link_68c64b0647dc81918c149d6541273e93/get_presentation",
            "contains_mcp_source": false
          },
          "connector_id": "connector_5f3c8c41a1e54ad7a76272c89e2554fa",
          "connector_name": "Google Drive",
          "connector_description": "Search and work with files from Google Drive, Docs, Sheets, and Slides.",
          "link_id": "link_68c64b0647dc81918c149d6541273e93"
        }
      },
      "connector_id": "connector_5f3c8c41a1e54ad7a76272c89e2554fa",
      "connector_name": "Google Drive",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_get_presentation_comments",
      "tool_namespace": "codex_apps__google_drive",
      "namespace_description": "Search and work with files from Google Drive, Docs, Sheets, and Slides.",
      "tool": {
        "name": "google drive_get_presentation_comments",
        "title": "get_presentation_comments",
        "description": "Read user comments and replies on a Google Slides deck for additional review context.",
        "inputSchema": {
          "properties": {
            "presentation_url": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Google Slides URL in the format https://docs.google.com/presentation/d/<PRESENTATION_ID>/... or a raw presentation ID. If you only know the deck title or title keywords, call `search_presentations` first instead of asking the user for a URL.",
              "title": "Presentation Url"
            },
            "presentation_id": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Raw Google Slides presentation ID only (for example `1abcDEF...`). Use this when you already have the ID from a prior search result. Do not pass a full URL here.",
              "title": "Presentation Id"
            },
            "include_deleted": {
              "default": false,
              "description": "When true, include deleted comments and deleted replies in the result.",
              "title": "Include Deleted",
              "type": "boolean"
            },
            "page_size": {
              "default": 100,
              "description": "Maximum comment threads to return on this page. Use the response nextPageToken to continue.",
              "title": "Page Size",
              "type": "integer"
            },
            "page_token": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Opaque nextPageToken from a previous get_presentation_comments response.",
              "title": "Page Token"
            }
          },
          "title": "get_presentation_comments_input",
          "type": "object"
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "Google Drive_get_presentation_comments",
          "_codex_apps": {
            "resource_uri": "/connector_5f3c8c41a1e54ad7a76272c89e2554fa/link_68c64b0647dc81918c149d6541273e93/get_presentation_comments",
            "contains_mcp_source": false
          },
          "connector_id": "connector_5f3c8c41a1e54ad7a76272c89e2554fa",
          "connector_name": "Google Drive",
          "connector_description": "Search and work with files from Google Drive, Docs, Sheets, and Slides.",
          "link_id": "link_68c64b0647dc81918c149d6541273e93"
        }
      },
      "connector_id": "connector_5f3c8c41a1e54ad7a76272c89e2554fa",
      "connector_name": "Google Drive",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_get_presentation_outline",
      "tool_namespace": "codex_apps__google_drive",
      "namespace_description": "Search and work with files from Google Drive, Docs, Sheets, and Slides.",
      "tool": {
        "name": "google drive_get_presentation_outline",
        "title": "get_presentation_outline",
        "description": "Return a compact slide outline for stable slide targeting.\nThis action may fail because it needs an OAuth permission that was not requested when this connection was created. Reconnect to request the new permission.",
        "inputSchema": {
          "properties": {
            "presentation_url": {
              "description": "Google Slides URL in the format https://docs.google.com/presentation/d/<PRESENTATION_ID>/... or a raw presentation ID. If you only know the deck title or title keywords, call `search_presentations` first instead of asking the user for a URL.",
              "title": "Presentation Url",
              "type": "string"
            }
          },
          "required": [
            "presentation_url"
          ],
          "title": "get_presentation_outline_input",
          "type": "object"
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "Google Drive_get_presentation_outline",
          "_codex_apps": {
            "resource_uri": "/connector_5f3c8c41a1e54ad7a76272c89e2554fa/link_68c64b0647dc81918c149d6541273e93/get_presentation_outline",
            "contains_mcp_source": false
          },
          "connector_id": "connector_5f3c8c41a1e54ad7a76272c89e2554fa",
          "connector_name": "Google Drive",
          "connector_description": "Search and work with files from Google Drive, Docs, Sheets, and Slides.",
          "link_id": "link_68c64b0647dc81918c149d6541273e93"
        }
      },
      "connector_id": "connector_5f3c8c41a1e54ad7a76272c89e2554fa",
      "connector_name": "Google Drive",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_get_presentation_tables",
      "tool_namespace": "codex_apps__google_drive",
      "namespace_description": "Search and work with files from Google Drive, Docs, Sheets, and Slides.",
      "tool": {
        "name": "google drive_get_presentation_tables",
        "title": "get_presentation_tables",
        "description": "Return Google Slides table structures with row and column coordinates preserved.\nThis action may fail because it needs an OAuth permission that was not requested when this connection was created. Reconnect to request the new permission.",
        "inputSchema": {
          "properties": {
            "presentation_url": {
              "description": "Google Slides URL",
              "title": "Presentation Url",
              "type": "string"
            }
          },
          "required": [
            "presentation_url"
          ],
          "title": "get_presentation_tables_input",
          "type": "object"
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "Google Drive_get_presentation_tables",
          "_codex_apps": {
            "resource_uri": "/connector_5f3c8c41a1e54ad7a76272c89e2554fa/link_68c64b0647dc81918c149d6541273e93/get_presentation_tables",
            "contains_mcp_source": false
          },
          "connector_id": "connector_5f3c8c41a1e54ad7a76272c89e2554fa",
          "connector_name": "Google Drive",
          "connector_description": "Search and work with files from Google Drive, Docs, Sheets, and Slides.",
          "link_id": "link_68c64b0647dc81918c149d6541273e93"
        }
      },
      "connector_id": "connector_5f3c8c41a1e54ad7a76272c89e2554fa",
      "connector_name": "Google Drive",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_get_presentation_text",
      "tool_namespace": "codex_apps__google_drive",
      "namespace_description": "Search and work with files from Google Drive, Docs, Sheets, and Slides.",
      "tool": {
        "name": "google drive_get_presentation_text",
        "title": "get_presentation_text",
        "description": "Return only text content to reduce payload size.\nThis action may fail because it needs an OAuth permission that was not requested when this connection was created. Reconnect to request the new permission.",
        "inputSchema": {
          "properties": {
            "presentation_url": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Google Slides URL in the format https://docs.google.com/presentation/d/<PRESENTATION_ID>/... or a raw presentation ID. If you only know the deck title or title keywords, call `search_presentations` first instead of asking the user for a URL.",
              "title": "Presentation Url"
            },
            "presentation_id": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Raw Google Slides presentation ID only (for example `1abcDEF...`). Use this when you already have the ID from a prior search result. Do not pass a full URL here.",
              "title": "Presentation Id"
            }
          },
          "title": "get_presentation_text_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "get_presentation_text_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "GoogleSlidesPresentation",
              "default": {},
              "type": "object",
              "properties": {
                "presentationId": {
                  "title": "Presentationid",
                  "description": "Google Slides presentation ID.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "title": {
                  "title": "Title",
                  "description": "Presentation title.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "revisionId": {
                  "title": "Revisionid",
                  "description": "Current presentation revision ID, if available.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "url": {
                  "title": "Url",
                  "description": "Browser URL for the presentation, if available.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "slides": {
                  "title": "Slides",
                  "description": "Raw slide payloads, if included.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "array",
                      "items": {
                        "default": {},
                        "type": "object",
                        "additionalProperties": true
                      }
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                }
              }
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "Google Drive_get_presentation_text",
          "_codex_apps": {
            "resource_uri": "/connector_5f3c8c41a1e54ad7a76272c89e2554fa/link_68c64b0647dc81918c149d6541273e93/get_presentation_text",
            "contains_mcp_source": false
          },
          "connector_id": "connector_5f3c8c41a1e54ad7a76272c89e2554fa",
          "connector_name": "Google Drive",
          "connector_description": "Search and work with files from Google Drive, Docs, Sheets, and Slides.",
          "link_id": "link_68c64b0647dc81918c149d6541273e93"
        }
      },
      "connector_id": "connector_5f3c8c41a1e54ad7a76272c89e2554fa",
      "connector_name": "Google Drive",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_get_profile",
      "tool_namespace": "codex_apps__google_drive",
      "namespace_description": "Search and work with files from Google Drive, Docs, Sheets, and Slides.",
      "tool": {
        "name": "google drive_get_profile",
        "title": "get_profile",
        "description": "Return the current Google Drive user's profile information. This action takes no parameters.",
        "inputSchema": {
          "properties": {},
          "title": "get_profile_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "get_profile_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "Profile",
              "description": "Many connectors (especially OAuth-based) act on behalf of a user.\nThis class represents the user's profile, which is typically retrieved from\nthe connector's API during the OAuth flow.\n\nImplementation details for different connectors vary, so we can't guarantee\nthat all fields will be present.",
              "default": {},
              "type": "object",
              "properties": {
                "id": {
                  "title": "Id",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "name": {
                  "title": "Name",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "email": {
                  "title": "Email",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "nickname": {
                  "title": "Nickname",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "picture": {
                  "title": "Picture",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                }
              }
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "Google Drive_get_profile",
          "_codex_apps": {
            "resource_uri": "/connector_5f3c8c41a1e54ad7a76272c89e2554fa/link_68c64b0647dc81918c149d6541273e93/get_profile",
            "contains_mcp_source": false
          },
          "connector_id": "connector_5f3c8c41a1e54ad7a76272c89e2554fa",
          "connector_name": "Google Drive",
          "connector_description": "Search and work with files from Google Drive, Docs, Sheets, and Slides.",
          "link_id": "link_68c64b0647dc81918c149d6541273e93"
        }
      },
      "connector_id": "connector_5f3c8c41a1e54ad7a76272c89e2554fa",
      "connector_name": "Google Drive",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_get_slide",
      "tool_namespace": "codex_apps__google_drive",
      "namespace_description": "Search and work with files from Google Drive, Docs, Sheets, and Slides.",
      "tool": {
        "name": "google drive_get_slide",
        "title": "get_slide",
        "description": "Get a single slide by object ID.\nThis action may fail because it needs an OAuth permission that was not requested when this connection was created. Reconnect to request the new permission.",
        "inputSchema": {
          "properties": {
            "slide_object_id": {
              "description": "Google Slides slide/page objectId for the target slide. Use an objectId from get_presentation or get_presentation_outline; do not pass the presentation ID, slide number, layout ID, or a page element ID.",
              "title": "Slide Object Id",
              "type": "string"
            },
            "presentation_url": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Google Slides URL in the format https://docs.google.com/presentation/d/<PRESENTATION_ID>/... or a raw presentation ID. If you only know the deck title or title keywords, call `search_presentations` first instead of asking the user for a URL.",
              "title": "Presentation Url"
            },
            "presentation_id": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Raw Google Slides presentation ID only (for example `1abcDEF...`). Use this when you already have the ID from a prior search result. Do not pass a full URL here.",
              "title": "Presentation Id"
            }
          },
          "required": [
            "slide_object_id"
          ],
          "title": "get_slide_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "get_slide_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "GoogleSlidesSlide",
              "default": {},
              "type": "object",
              "properties": {
                "objectId": {
                  "title": "Objectid",
                  "description": "Slide object ID, if available.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "pageElements": {
                  "title": "Pageelements",
                  "description": "Raw page elements on the slide, if included.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "array",
                      "items": {
                        "default": {},
                        "type": "object",
                        "additionalProperties": true
                      }
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "pageType": {
                  "title": "Pagetype",
                  "description": "Slide page type, if available.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "revisionId": {
                  "title": "Revisionid",
                  "description": "Presentation revision ID associated with the slide, if available.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "pageProperties": {
                  "title": "Pageproperties",
                  "description": "Raw page properties payload, if included.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "object",
                      "additionalProperties": true
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "slideProperties": {
                  "title": "Slideproperties",
                  "description": "Raw slide properties payload, if included.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "object",
                      "additionalProperties": true
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "layoutProperties": {
                  "title": "Layoutproperties",
                  "description": "Raw layout properties payload, if included.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "object",
                      "additionalProperties": true
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                }
              }
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "Google Drive_get_slide",
          "_codex_apps": {
            "resource_uri": "/connector_5f3c8c41a1e54ad7a76272c89e2554fa/link_68c64b0647dc81918c149d6541273e93/get_slide",
            "contains_mcp_source": false
          },
          "connector_id": "connector_5f3c8c41a1e54ad7a76272c89e2554fa",
          "connector_name": "Google Drive",
          "connector_description": "Search and work with files from Google Drive, Docs, Sheets, and Slides.",
          "link_id": "link_68c64b0647dc81918c149d6541273e93"
        }
      },
      "connector_id": "connector_5f3c8c41a1e54ad7a76272c89e2554fa",
      "connector_name": "Google Drive",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_get_slide_thumbnail",
      "tool_namespace": "codex_apps__google_drive",
      "namespace_description": "Search and work with files from Google Drive, Docs, Sheets, and Slides.",
      "tool": {
        "name": "google drive_get_slide_thumbnail",
        "title": "get_slide_thumbnail",
        "description": "Return slide metadata plus an inline thumbnail image for visual layout questions.\nThis action may fail because it needs an OAuth permission that was not requested when this connection was created. Reconnect to request the new permission.",
        "inputSchema": {
          "properties": {
            "slide_object_id": {
              "description": "Slide/page objectId to render as a thumbnail image. Use an objectId from get_presentation or get_presentation_outline; do not pass the presentation ID, slide number, layout ID, or a page element ID.",
              "title": "Slide Object Id",
              "type": "string"
            },
            "presentation_url": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Google Slides URL in the format https://docs.google.com/presentation/d/<PRESENTATION_ID>/... or a raw presentation ID. If you only know the deck title or title keywords, call `search_presentations` first instead of asking the user for a URL.",
              "title": "Presentation Url"
            },
            "presentation_id": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Raw Google Slides presentation ID only (for example `1abcDEF...`). Use this when you already have the ID from a prior search result. Do not pass a full URL here.",
              "title": "Presentation Id"
            },
            "thumbnail_size": {
              "enum": [
                "LARGE",
                "MEDIUM",
                "SMALL"
              ],
              "title": "GoogleSlidesThumbnailSize",
              "type": "string",
              "default": "MEDIUM",
              "description": "Thumbnail size. Defaults to MEDIUM. Use LARGE only when fine layout details matter."
            }
          },
          "required": [
            "slide_object_id"
          ],
          "title": "get_slide_thumbnail_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "get_slide_thumbnail_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "GoogleSlidesThumbnail",
              "default": {},
              "type": "object",
              "properties": {
                "slideObjectId": {
                  "title": "Slideobjectid",
                  "description": "Slide object ID for the thumbnail.",
                  "default": {},
                  "type": "string"
                },
                "contentUrl": {
                  "title": "Contenturl",
                  "description": "Direct thumbnail content URL, if available.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "width": {
                  "title": "Width",
                  "description": "Thumbnail width in pixels, if available.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "integer"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "height": {
                  "title": "Height",
                  "description": "Thumbnail height in pixels, if available.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "integer"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "mimeType": {
                  "title": "Mimetype",
                  "description": "Thumbnail MIME type, if available.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "thumbnailSize": {
                  "description": "Requested thumbnail size enum, if available.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "title": "GoogleSlidesThumbnailSize",
                      "default": {},
                      "type": "enum",
                      "enum": [
                        "LARGE",
                        "MEDIUM",
                        "SMALL"
                      ]
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "imageAssetPointer": {
                  "title": "Imageassetpointer",
                  "description": "Internal image asset pointer used by the app surface for thumbnail rendering.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "slideObjectId"
              ]
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "Google Drive_get_slide_thumbnail",
          "_codex_apps": {
            "resource_uri": "/connector_5f3c8c41a1e54ad7a76272c89e2554fa/link_68c64b0647dc81918c149d6541273e93/get_slide_thumbnail",
            "contains_mcp_source": false
          },
          "connector_id": "connector_5f3c8c41a1e54ad7a76272c89e2554fa",
          "connector_name": "Google Drive",
          "connector_description": "Search and work with files from Google Drive, Docs, Sheets, and Slides.",
          "link_id": "link_68c64b0647dc81918c149d6541273e93"
        }
      },
      "connector_id": "connector_5f3c8c41a1e54ad7a76272c89e2554fa",
      "connector_name": "Google Drive",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_get_spreadsheet_cells",
      "tool_namespace": "codex_apps__google_drive",
      "namespace_description": "Search and work with files from Google Drive, Docs, Sheets, and Slides.",
      "tool": {
        "name": "google drive_get_spreadsheet_cells",
        "title": "get_spreadsheet_cells",
        "description": "Read cell data from one or more bounded spreadsheet ranges using the CellData shape.\nThis action may fail because it needs an OAuth permission that was not requested when this connection was created. Reconnect to request the new permission.",
        "inputSchema": {
          "properties": {
            "ranges": {
              "description": "One or more A1 ranges including the sheet name, e.g. ['Sheet1!A1:C20']. Keep each range within existing sheet bounds.",
              "items": {
                "type": "string"
              },
              "title": "Ranges",
              "type": "array"
            },
            "spreadsheet_url": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Google Sheets spreadsheet URL in the format https://docs.google.com/spreadsheets/d/<SPREADSHEET_ID>/... or a raw spreadsheet ID. If you only know the spreadsheet title or title keywords, call `search_spreadsheets` first instead of asking the user for a URL.",
              "title": "Spreadsheet Url"
            },
            "spreadsheet_id": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Raw Google Sheets spreadsheet ID only (for example `1abcDEF...`). Use this when you already have the ID from a prior search result. Do not pass a full URL here.",
              "title": "Spreadsheet Id"
            },
            "cell_fields": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Raw Google Sheets CellData field mask fragment. Examples: 'formattedValue,effectiveValue' or 'formattedValue,userEnteredValue,effectiveFormat(textFormat,numberFormat)'. Default: 'userEnteredValue,userEnteredFormat'. Prefer this action over `get_spreadsheet_range` unless you only need the plain cell values; use this action for formatting, formulas, validation, notes, hyperlinks, and other cell metadata.",
              "title": "Cell Fields"
            }
          },
          "required": [
            "ranges"
          ],
          "title": "get_spreadsheet_cells_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "get_spreadsheet_cells_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "GoogleSheetsSpreadsheet",
              "description": "Google Sheets spreadsheet metadata, including spreadsheet properties and optional sheet summaries.",
              "default": {},
              "type": "object",
              "properties": {
                "spreadsheetId": {
                  "default": {},
                  "type": "string"
                },
                "spreadsheetUrl": {
                  "default": {},
                  "type": "string"
                },
                "properties": {
                  "description": "Top-level spreadsheet properties such as title, locale, and time zone.",
                  "default": {},
                  "type": "object",
                  "additionalProperties": true
                },
                "sheets": {
                  "description": "Sheets contained in the spreadsheet. Each item may include properties, grid data, and chart summaries.",
                  "default": {},
                  "type": "array",
                  "items": {
                    "default": {},
                    "type": "object",
                    "additionalProperties": true
                  }
                }
              },
              "additionalProperties": true
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "Google Drive_get_spreadsheet_cells",
          "_codex_apps": {
            "resource_uri": "/connector_5f3c8c41a1e54ad7a76272c89e2554fa/link_68c64b0647dc81918c149d6541273e93/get_spreadsheet_cells",
            "contains_mcp_source": false
          },
          "connector_id": "connector_5f3c8c41a1e54ad7a76272c89e2554fa",
          "connector_name": "Google Drive",
          "connector_description": "Search and work with files from Google Drive, Docs, Sheets, and Slides.",
          "link_id": "link_68c64b0647dc81918c149d6541273e93"
        }
      },
      "connector_id": "connector_5f3c8c41a1e54ad7a76272c89e2554fa",
      "connector_name": "Google Drive",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_get_spreadsheet_comments",
      "tool_namespace": "codex_apps__google_drive",
      "namespace_description": "Search and work with files from Google Drive, Docs, Sheets, and Slides.",
      "tool": {
        "name": "google drive_get_spreadsheet_comments",
        "title": "get_spreadsheet_comments",
        "description": "Read user comments and replies on a Google Sheets spreadsheet for additional review context.",
        "inputSchema": {
          "properties": {
            "spreadsheet_url": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Google Sheets spreadsheet URL in the format https://docs.google.com/spreadsheets/d/<SPREADSHEET_ID>/... or a raw spreadsheet ID. If you only know the spreadsheet title or title keywords, call `search_spreadsheets` first instead of asking the user for a URL.",
              "title": "Spreadsheet Url"
            },
            "spreadsheet_id": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Raw Google Sheets spreadsheet ID only (for example `1abcDEF...`). Use this when you already have the ID from a prior search result. Do not pass a full URL here.",
              "title": "Spreadsheet Id"
            },
            "include_deleted": {
              "default": false,
              "description": "When true, include deleted comments and deleted replies in the result.",
              "title": "Include Deleted",
              "type": "boolean"
            },
            "page_size": {
              "default": 100,
              "description": "Maximum comment threads to return on this page. Use the response nextPageToken to continue.",
              "title": "Page Size",
              "type": "integer"
            },
            "page_token": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Opaque nextPageToken from a previous get_spreadsheet_comments response.",
              "title": "Page Token"
            }
          },
          "title": "get_spreadsheet_comments_input",
          "type": "object"
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "Google Drive_get_spreadsheet_comments",
          "_codex_apps": {
            "resource_uri": "/connector_5f3c8c41a1e54ad7a76272c89e2554fa/link_68c64b0647dc81918c149d6541273e93/get_spreadsheet_comments",
            "contains_mcp_source": false
          },
          "connector_id": "connector_5f3c8c41a1e54ad7a76272c89e2554fa",
          "connector_name": "Google Drive",
          "connector_description": "Search and work with files from Google Drive, Docs, Sheets, and Slides.",
          "link_id": "link_68c64b0647dc81918c149d6541273e93"
        }
      },
      "connector_id": "connector_5f3c8c41a1e54ad7a76272c89e2554fa",
      "connector_name": "Google Drive",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_get_spreadsheet_metadata",
      "tool_namespace": "codex_apps__google_drive",
      "namespace_description": "Search and work with files from Google Drive, Docs, Sheets, and Slides.",
      "tool": {
        "name": "google drive_get_spreadsheet_metadata",
        "title": "get_spreadsheet_metadata",
        "description": "Get metadata about a spreadsheet.\nThis action may fail because it needs an OAuth permission that was not requested when this connection was created. Reconnect to request the new permission.",
        "inputSchema": {
          "properties": {
            "spreadsheet_url": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Google Sheets spreadsheet URL in the format https://docs.google.com/spreadsheets/d/<SPREADSHEET_ID>/... or a raw spreadsheet ID. If you only know the spreadsheet title or title keywords, call `search_spreadsheets` first instead of asking the user for a URL.",
              "title": "Spreadsheet Url"
            },
            "spreadsheet_id": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Raw Google Sheets spreadsheet ID only (for example `1abcDEF...`). Use this when you already have the ID from a prior search result. Do not pass a full URL here.",
              "title": "Spreadsheet Id"
            },
            "charts_only": {
              "default": false,
              "description": "When true, return only sheet properties and chart IDs/titles.",
              "title": "Charts Only",
              "type": "boolean"
            },
            "include_conditional_format_rules": {
              "default": false,
              "description": "When true, include per-sheet conditional formatting rules in the response.",
              "title": "Include Conditional Format Rules",
              "type": "boolean"
            }
          },
          "title": "get_spreadsheet_metadata_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "get_spreadsheet_metadata_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "GoogleSheetsSpreadsheet",
              "description": "Google Sheets spreadsheet metadata, including spreadsheet properties and optional sheet summaries.",
              "default": {},
              "type": "object",
              "properties": {
                "spreadsheetId": {
                  "default": {},
                  "type": "string"
                },
                "spreadsheetUrl": {
                  "default": {},
                  "type": "string"
                },
                "properties": {
                  "description": "Top-level spreadsheet properties such as title, locale, and time zone.",
                  "default": {},
                  "type": "object",
                  "additionalProperties": true
                },
                "sheets": {
                  "description": "Sheets contained in the spreadsheet. Each item may include properties, grid data, and chart summaries.",
                  "default": {},
                  "type": "array",
                  "items": {
                    "default": {},
                    "type": "object",
                    "additionalProperties": true
                  }
                }
              },
              "additionalProperties": true
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "Google Drive_get_spreadsheet_metadata",
          "_codex_apps": {
            "resource_uri": "/connector_5f3c8c41a1e54ad7a76272c89e2554fa/link_68c64b0647dc81918c149d6541273e93/get_spreadsheet_metadata",
            "contains_mcp_source": false
          },
          "connector_id": "connector_5f3c8c41a1e54ad7a76272c89e2554fa",
          "connector_name": "Google Drive",
          "connector_description": "Search and work with files from Google Drive, Docs, Sheets, and Slides.",
          "link_id": "link_68c64b0647dc81918c149d6541273e93"
        }
      },
      "connector_id": "connector_5f3c8c41a1e54ad7a76272c89e2554fa",
      "connector_name": "Google Drive",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_get_spreadsheet_range",
      "tool_namespace": "codex_apps__google_drive",
      "namespace_description": "Search and work with files from Google Drive, Docs, Sheets, and Slides.",
      "tool": {
        "name": "google drive_get_spreadsheet_range",
        "title": "get_spreadsheet_range",
        "description": "Read only the plain values from a range of cells within a spreadsheet.\nThis action may fail because it needs an OAuth permission that was not requested when this connection was created. Reconnect to request the new permission.",
        "inputSchema": {
          "properties": {
            "sheet_name": {
              "description": "Sheet tab name only (no ! or coordinates). For A1 notation compatibility, quote names with spaces/punctuation (e.g. 'Q1 Plan'). If the name contains a single quote, escape it as two single quotes inside the quoted name (e.g. 'O''Reilly').",
              "title": "Sheet Name",
              "type": "string"
            },
            "range": {
              "description": "Cell range only (A1 or R1C1), e.g. A1:B10, A:Z, or 1:200. Do not include the sheet name here because sheet_name is prepended automatically. Passing Sheet1!A1:Z200 or duplicated prefixes like Sheet1!Sheet1!A1:B10 will fail. Keep the range within existing sheet bounds. Use this action only when you need the plain values of a range; use `get_spreadsheet_cells` when you need cell values together with formatting, formulas, validation, notes, hyperlinks, or other cell metadata.",
              "pattern": "^[^!]+$",
              "title": "Range",
              "type": "string"
            },
            "spreadsheet_url": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Google Sheets spreadsheet URL in the format https://docs.google.com/spreadsheets/d/<SPREADSHEET_ID>/... or a raw spreadsheet ID. If you only know the spreadsheet title or title keywords, call `search_spreadsheets` first instead of asking the user for a URL.",
              "title": "Spreadsheet Url"
            },
            "spreadsheet_id": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Raw Google Sheets spreadsheet ID only (for example `1abcDEF...`). Use this when you already have the ID from a prior search result. Do not pass a full URL here.",
              "title": "Spreadsheet Id"
            },
            "value_render_option": {
              "anyOf": [
                {
                  "enum": [
                    "FORMATTED_VALUE",
                    "UNFORMATTED_VALUE",
                    "FORMULA"
                  ],
                  "title": "ValueRenderOption",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "The option to render the values, e.g. 'FORMATTED_VALUE', 'UNFORMATTED_VALUE' or 'FORMULA'. Use null for default."
            }
          },
          "required": [
            "sheet_name",
            "range"
          ],
          "title": "get_spreadsheet_range_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "get_spreadsheet_range_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "GoogleSheetsValueRange",
              "description": "Model representing a Google Sheets ValueRange: a matrix of cell values and the range they came from.",
              "default": {},
              "type": "object",
              "properties": {
                "range": {
                  "title": "Range",
                  "description": "A1 range covered by the returned values.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "majorDimension": {
                  "title": "Majordimension",
                  "description": "Major dimension for the returned values.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "values": {
                  "title": "Values",
                  "description": "Returned cell values.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "array",
                      "items": {
                        "default": {},
                        "type": "array",
                        "items": {
                          "default": {},
                          "type": "typeless"
                        }
                      }
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                }
              }
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "Google Drive_get_spreadsheet_range",
          "_codex_apps": {
            "resource_uri": "/connector_5f3c8c41a1e54ad7a76272c89e2554fa/link_68c64b0647dc81918c149d6541273e93/get_spreadsheet_range",
            "contains_mcp_source": false
          },
          "connector_id": "connector_5f3c8c41a1e54ad7a76272c89e2554fa",
          "connector_name": "Google Drive",
          "connector_description": "Search and work with files from Google Drive, Docs, Sheets, and Slides.",
          "link_id": "link_68c64b0647dc81918c149d6541273e93"
        }
      },
      "connector_id": "connector_5f3c8c41a1e54ad7a76272c89e2554fa",
      "connector_name": "Google Drive",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_import_document",
      "tool_namespace": "codex_apps__google_drive",
      "namespace_description": "Search and work with files from Google Drive, Docs, Sheets, and Slides.",
      "tool": {
        "name": "google drive_import_document",
        "title": "import_document",
        "description": "Upload a local DOC/DOCX/ODT/RTF/HTML/TXT file to Drive, defaulting to native Google Docs.\nThis action may fail because it needs an OAuth permission that was not requested when this connection was created. Reconnect to request the new permission.",
        "inputSchema": {
          "properties": {
            "source_file": {
              "properties": {
                "download_url": {
                  "description": "Connector file download URL for the source document.",
                  "minLength": 1,
                  "title": "Download Url",
                  "type": "string"
                },
                "file_id": {
                  "description": "Connector file ID for the source document.",
                  "title": "File Id",
                  "type": "string"
                },
                "mime_type": {
                  "description": "Source MIME type for Drive import into Google Docs. Accepted values: application/msword, application/vnd.openxmlformats-officedocument.wordprocessingml.document, application/vnd.oasis.opendocument.text, application/rtf, text/html, text/plain. Google's source of truth is the Drive API `about.importFormats` field: https://developers.google.com/workspace/drive/api/reference/rest/v3/about.",
                  "title": "Mime Type",
                  "type": "string"
                },
                "file_name": {
                  "description": "Source document file name.",
                  "title": "File Name",
                  "type": "string"
                }
              },
              "required": [
                "download_url",
                "file_id",
                "mime_type",
                "file_name"
              ],
              "title": "GoogleDocsImportSourceFile",
              "type": "object",
              "description": "Uploaded document file to import through Google Drive's conversion flow. Pass the resolved uploaded file object directly. The source MIME type must match one of the accepted document import MIME types on `source_file.mime_type`. Defaults to creating a native Google Doc; use `upload_file` to store arbitrary raw files without conversion."
            },
            "title": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Optional title for the imported Google Docs document. Defaults to the uploaded filename stem.",
              "title": "Title"
            },
            "upload_mode": {
              "enum": [
                "native_google_docs",
                "keep_source_file_type"
              ],
              "title": "GoogleDocsImportUploadMode",
              "type": "string",
              "default": "native_google_docs",
              "description": "How to store the uploaded file in Drive. Defaults to native_google_docs. `keep_source_file_type` preserves the uploaded file type, but the source file must still be one of the accepted Drive import MIME types for this action."
            }
          },
          "required": [
            "source_file"
          ],
          "title": "import_document_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "import_document_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "ImportedDocumentResponse",
              "default": {},
              "type": "object",
              "properties": {
                "success": {
                  "title": "Success",
                  "description": "Whether the document import upload succeeded.",
                  "default": {},
                  "type": "boolean"
                },
                "converted": {
                  "title": "Converted",
                  "description": "Whether the uploaded document was converted into native Google Docs.",
                  "default": {},
                  "type": "boolean"
                },
                "fileId": {
                  "title": "Fileid",
                  "description": "Imported Google Drive file ID.",
                  "default": {},
                  "type": "string"
                },
                "title": {
                  "title": "Title",
                  "description": "Imported file title, if available.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "mimeType": {
                  "title": "Mimetype",
                  "description": "MIME type stored for the imported file.",
                  "default": {},
                  "type": "string"
                },
                "url": {
                  "title": "Url",
                  "description": "Browser URL for the imported Drive file, if available.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "documentId": {
                  "title": "Documentid",
                  "description": "Google Docs document ID when converted to native Google Docs.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "parentId": {
                  "title": "Parentid",
                  "description": "Destination Drive folder ID, if the file was uploaded there.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "success",
                "converted",
                "fileId",
                "mimeType"
              ]
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": true,
          "openWorldHint": true
        },
        "_meta": {
          "openai/fileParams": [
            "source_file"
          ],
          "resource_name": "Google Drive_import_document",
          "_codex_apps": {
            "resource_uri": "/connector_5f3c8c41a1e54ad7a76272c89e2554fa/link_68c64b0647dc81918c149d6541273e93/import_document",
            "contains_mcp_source": false
          },
          "connector_id": "connector_5f3c8c41a1e54ad7a76272c89e2554fa",
          "connector_name": "Google Drive",
          "connector_description": "Search and work with files from Google Drive, Docs, Sheets, and Slides.",
          "link_id": "link_68c64b0647dc81918c149d6541273e93"
        }
      },
      "connector_id": "connector_5f3c8c41a1e54ad7a76272c89e2554fa",
      "connector_name": "Google Drive",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_import_presentation",
      "tool_namespace": "codex_apps__google_drive",
      "namespace_description": "Search and work with files from Google Drive, Docs, Sheets, and Slides.",
      "tool": {
        "name": "google drive_import_presentation",
        "title": "import_presentation",
        "description": "Upload a local PPT/PPTX/ODP file to Drive, defaulting to native Google Slides.\nThis action may fail because it needs an OAuth permission that was not requested when this connection was created. Reconnect to request the new permission.",
        "inputSchema": {
          "properties": {
            "source_file": {
              "properties": {
                "download_url": {
                  "description": "Connector file download URL for the source presentation.",
                  "minLength": 1,
                  "title": "Download Url",
                  "type": "string"
                },
                "file_id": {
                  "description": "Connector file ID for the source presentation.",
                  "title": "File Id",
                  "type": "string"
                },
                "mime_type": {
                  "description": "Source MIME type for Drive import into Google Slides. Accepted values: application/vnd.ms-powerpoint, application/vnd.openxmlformats-officedocument.presentationml.presentation, application/vnd.oasis.opendocument.presentation. Google's source of truth is the Drive API `about.importFormats` field: https://developers.google.com/workspace/drive/api/reference/rest/v3/about.",
                  "title": "Mime Type",
                  "type": "string"
                },
                "file_name": {
                  "description": "Source presentation file name.",
                  "title": "File Name",
                  "type": "string"
                }
              },
              "required": [
                "download_url",
                "file_id",
                "mime_type",
                "file_name"
              ],
              "title": "GoogleSlidesImportSourceFile",
              "type": "object",
              "description": "Uploaded presentation file to import through Google Drive's conversion flow. Pass the resolved uploaded file object directly. The source MIME type must match one of the accepted presentation import MIME types on `source_file.mime_type`. Defaults to creating a native Google Slides deck; use `upload_file` to store arbitrary raw files without conversion."
            },
            "title": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Optional title for the imported Google Slides presentation. Defaults to the uploaded filename stem.",
              "title": "Title"
            },
            "upload_mode": {
              "enum": [
                "native_google_slides",
                "keep_source_file_type"
              ],
              "title": "GoogleSlidesUploadMode",
              "type": "string",
              "default": "native_google_slides",
              "description": "How to store the uploaded file in Drive. Defaults to native_google_slides. `keep_source_file_type` preserves the uploaded file type, but the source file must still be one of the accepted Drive import MIME types for this action."
            }
          },
          "required": [
            "source_file"
          ],
          "title": "import_presentation_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "import_presentation_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "GoogleSlidesImportedFile",
              "default": {},
              "type": "object",
              "properties": {
                "fileId": {
                  "title": "Fileid",
                  "description": "Imported Google Drive file ID.",
                  "default": {},
                  "type": "string"
                },
                "title": {
                  "title": "Title",
                  "description": "Imported file title, if available.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "mimeType": {
                  "title": "Mimetype",
                  "description": "MIME type stored for the imported file.",
                  "default": {},
                  "type": "string"
                },
                "url": {
                  "title": "Url",
                  "description": "Browser URL for the imported file, if available.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "presentationId": {
                  "title": "Presentationid",
                  "description": "Google Slides presentation ID when converted to Slides.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "fileId",
                "mimeType"
              ]
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": true,
          "openWorldHint": true
        },
        "_meta": {
          "openai/fileParams": [
            "source_file"
          ],
          "resource_name": "Google Drive_import_presentation",
          "_codex_apps": {
            "resource_uri": "/connector_5f3c8c41a1e54ad7a76272c89e2554fa/link_68c64b0647dc81918c149d6541273e93/import_presentation",
            "contains_mcp_source": false
          },
          "connector_id": "connector_5f3c8c41a1e54ad7a76272c89e2554fa",
          "connector_name": "Google Drive",
          "connector_description": "Search and work with files from Google Drive, Docs, Sheets, and Slides.",
          "link_id": "link_68c64b0647dc81918c149d6541273e93"
        }
      },
      "connector_id": "connector_5f3c8c41a1e54ad7a76272c89e2554fa",
      "connector_name": "Google Drive",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_import_spreadsheet",
      "tool_namespace": "codex_apps__google_drive",
      "namespace_description": "Search and work with files from Google Drive, Docs, Sheets, and Slides.",
      "tool": {
        "name": "google drive_import_spreadsheet",
        "title": "import_spreadsheet",
        "description": "Upload a spreadsheet file to Drive, defaulting to native Google Sheets conversion.\nThis action may fail because it needs an OAuth permission that was not requested when this connection was created. Reconnect to request the new permission.",
        "inputSchema": {
          "properties": {
            "source_file": {
              "properties": {
                "download_url": {
                  "description": "Connector file download URL for the source spreadsheet.",
                  "minLength": 1,
                  "title": "Download Url",
                  "type": "string"
                },
                "file_id": {
                  "description": "Connector file ID for the source spreadsheet.",
                  "title": "File Id",
                  "type": "string"
                },
                "mime_type": {
                  "description": "Source MIME type for Drive import into Google Sheets. Accepted values: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel, application/vnd.oasis.opendocument.spreadsheet, text/csv, text/tab-separated-values. Google's source of truth is the Drive API `about.importFormats` field: https://developers.google.com/workspace/drive/api/reference/rest/v3/about.",
                  "title": "Mime Type",
                  "type": "string"
                },
                "file_name": {
                  "description": "Source spreadsheet file name.",
                  "title": "File Name",
                  "type": "string"
                }
              },
              "required": [
                "download_url",
                "file_id",
                "mime_type",
                "file_name"
              ],
              "title": "GoogleSheetsImportSourceFile",
              "type": "object",
              "description": "Uploaded spreadsheet file to import through Google Drive's conversion flow. Pass the resolved uploaded file object directly. The source MIME type must match one of the accepted spreadsheet import MIME types on `source_file.mime_type`. Defaults to creating a native Google Sheet; use `upload_file` to store arbitrary raw files without conversion."
            },
            "title": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Optional title for the imported spreadsheet. Defaults to the uploaded filename stem.",
              "title": "Title"
            },
            "upload_mode": {
              "enum": [
                "native_google_sheets",
                "keep_source_file_type"
              ],
              "title": "GoogleSheetsImportUploadMode",
              "type": "string",
              "default": "native_google_sheets",
              "description": "How to store the uploaded spreadsheet in Drive. Defaults to native_google_sheets. `keep_source_file_type` preserves the uploaded file type, but the source file must still be one of the accepted Drive import MIME types for this action."
            }
          },
          "required": [
            "source_file"
          ],
          "title": "import_spreadsheet_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "import_spreadsheet_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "ImportedSpreadsheetResponse",
              "default": {},
              "type": "object",
              "properties": {
                "success": {
                  "title": "Success",
                  "description": "Whether the spreadsheet import upload succeeded.",
                  "default": {},
                  "type": "boolean"
                },
                "converted": {
                  "title": "Converted",
                  "description": "Whether the uploaded spreadsheet was converted into native Google Sheets.",
                  "default": {},
                  "type": "boolean"
                },
                "fileId": {
                  "title": "Fileid",
                  "description": "Imported Google Drive file ID.",
                  "default": {},
                  "type": "string"
                },
                "title": {
                  "title": "Title",
                  "description": "Imported file title, if available.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "mimeType": {
                  "title": "Mimetype",
                  "description": "MIME type stored for the imported file.",
                  "default": {},
                  "type": "string"
                },
                "url": {
                  "title": "Url",
                  "description": "Browser URL for the imported Drive file, if available.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "spreadsheetId": {
                  "title": "Spreadsheetid",
                  "description": "Google Sheets spreadsheet ID when converted to native Google Sheets.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "parentId": {
                  "title": "Parentid",
                  "description": "Destination Drive folder ID, if the file was uploaded there.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "success",
                "converted",
                "fileId",
                "mimeType"
              ]
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": true,
          "openWorldHint": true
        },
        "_meta": {
          "openai/fileParams": [
            "source_file"
          ],
          "resource_name": "Google Drive_import_spreadsheet",
          "_codex_apps": {
            "resource_uri": "/connector_5f3c8c41a1e54ad7a76272c89e2554fa/link_68c64b0647dc81918c149d6541273e93/import_spreadsheet",
            "contains_mcp_source": false
          },
          "connector_id": "connector_5f3c8c41a1e54ad7a76272c89e2554fa",
          "connector_name": "Google Drive",
          "connector_description": "Search and work with files from Google Drive, Docs, Sheets, and Slides.",
          "link_id": "link_68c64b0647dc81918c149d6541273e93"
        }
      },
      "connector_id": "connector_5f3c8c41a1e54ad7a76272c89e2554fa",
      "connector_name": "Google Drive",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_list_drives",
      "tool_namespace": "codex_apps__google_drive",
      "namespace_description": "Search and work with files from Google Drive, Docs, Sheets, and Slides.",
      "tool": {
        "name": "google drive_list_drives",
        "title": "list_drives",
        "description": "List shared drives accessible to the user. This action takes no parameters.",
        "inputSchema": {
          "properties": {},
          "title": "list_drives_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "list_drives_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "ListDrivesResponse",
              "default": {},
              "type": "object",
              "properties": {
                "drives": {
                  "title": "Drives",
                  "description": "Available shared drives.",
                  "default": {},
                  "type": "array",
                  "items": {
                    "default": {},
                    "type": "object",
                    "additionalProperties": true
                  }
                }
              },
              "required": [
                "drives"
              ]
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "Google Drive_list_drives",
          "_codex_apps": {
            "resource_uri": "/connector_5f3c8c41a1e54ad7a76272c89e2554fa/link_68c64b0647dc81918c149d6541273e93/list_drives",
            "contains_mcp_source": false
          },
          "connector_id": "connector_5f3c8c41a1e54ad7a76272c89e2554fa",
          "connector_name": "Google Drive",
          "connector_description": "Search and work with files from Google Drive, Docs, Sheets, and Slides.",
          "link_id": "link_68c64b0647dc81918c149d6541273e93"
        }
      },
      "connector_id": "connector_5f3c8c41a1e54ad7a76272c89e2554fa",
      "connector_name": "Google Drive",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_list_folder",
      "tool_namespace": "codex_apps__google_drive",
      "namespace_description": "Search and work with files from Google Drive, Docs, Sheets, and Slides.",
      "tool": {
        "name": "google drive_list_folder",
        "title": "list_folder",
        "description": "List the items directly contained in a Google Drive folder. Accepted parameters are only `url` and `top_k`. For My Drive root, pass the literal `root` alias instead of a synthetic folder URL.",
        "inputSchema": {
          "properties": {
            "url": {
              "description": "Google Drive folder URL (for example https://drive.google.com/drive/folders/<FOLDER_ID>) or the literal `root` alias for the user's My Drive root folder. Do not pass `my-drive`, raw folder names, or local filesystem paths.",
              "title": "Url",
              "type": "string"
            },
            "top_k": {
              "default": 100,
              "description": "Maximum number of items to scan in the folder. Parameter name is `top_k`.",
              "title": "Top K",
              "type": "integer"
            }
          },
          "required": [
            "url"
          ],
          "title": "list_folder_input",
          "type": "object"
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "Google Drive_list_folder",
          "_codex_apps": {
            "resource_uri": "/connector_5f3c8c41a1e54ad7a76272c89e2554fa/link_68c64b0647dc81918c149d6541273e93/list_folder",
            "contains_mcp_source": false
          },
          "connector_id": "connector_5f3c8c41a1e54ad7a76272c89e2554fa",
          "connector_name": "Google Drive",
          "connector_description": "Search and work with files from Google Drive, Docs, Sheets, and Slides.",
          "link_id": "link_68c64b0647dc81918c149d6541273e93"
        }
      },
      "connector_id": "connector_5f3c8c41a1e54ad7a76272c89e2554fa",
      "connector_name": "Google Drive",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_recent_documents",
      "tool_namespace": "codex_apps__google_drive",
      "namespace_description": "Search and work with files from Google Drive, Docs, Sheets, and Slides.",
      "tool": {
        "name": "google drive_recent_documents",
        "title": "recent_documents",
        "description": "Return the most recently modified documents accessible to the user. Accepted parameters are only `top_k` and `require_viewed_by_user`. Set `require_viewed_by_user=True` to only return files the current user has viewed.",
        "inputSchema": {
          "properties": {
            "top_k": {
              "description": "Number of recent files to return. Parameter name is `top_k`.",
              "title": "Top K",
              "type": "integer"
            },
            "require_viewed_by_user": {
              "default": false,
              "description": "When true, return only files viewed by the authenticated user.",
              "title": "Require Viewed By User",
              "type": "boolean"
            }
          },
          "required": [
            "top_k"
          ],
          "title": "recent_documents_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "recent_documents_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "SearchResponse",
              "default": {},
              "type": "object",
              "properties": {
                "results": {
                  "title": "Results",
                  "description": "Matching Google Drive files and folders.",
                  "default": {},
                  "type": "array",
                  "items": {
                    "default": {},
                    "type": "object",
                    "additionalProperties": true
                  }
                }
              },
              "required": [
                "results"
              ]
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "Google Drive_recent_documents",
          "_codex_apps": {
            "resource_uri": "/connector_5f3c8c41a1e54ad7a76272c89e2554fa/link_68c64b0647dc81918c149d6541273e93/recent_documents",
            "contains_mcp_source": false
          },
          "connector_id": "connector_5f3c8c41a1e54ad7a76272c89e2554fa",
          "connector_name": "Google Drive",
          "connector_description": "Search and work with files from Google Drive, Docs, Sheets, and Slides.",
          "link_id": "link_68c64b0647dc81918c149d6541273e93"
        }
      },
      "connector_id": "connector_5f3c8c41a1e54ad7a76272c89e2554fa",
      "connector_name": "Google Drive",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_search",
      "tool_namespace": "codex_apps__google_drive",
      "namespace_description": "Search and work with files from Google Drive, Docs, Sheets, and Slides.",
      "tool": {
        "name": "google drive_search",
        "title": "search",
        "description": "Search Google Drive files by query and return basic details. Accepted parameters are only `query`, `topn`, `special_filter_query_str`, `best_effort_fetch`, `fetch_ttl`, and `require_viewed_by_user`. Use clear, specific keywords such as project names, collaborators, or file types. Example: ``\"design doc pptx\"``. When using query, each search query is an AND token match. Meaning, every token in the query is required to be present in order to match. - Search will return documents that contain all of the keywords in the query. - Therefore, queries should be short and keyword-focused (avoid long natural language). - If no results are found, try the following strategies: 1) Use different or related keywords. 2) Make the query more generic and simpler. - To improve recall, consider variants of your terms: abbreviations, synonyms, etc. - Previous search results can provide hints about useful variants of internal terms — use those to refine queries. Use `special_filter_query_str` when you need precise MIME-type or metadata filters. It uses Google Drive v3 search (the `q` parameter). - Supported time fields: `modifiedTime`, `createdTime`, `viewedByMeTime`, `sharedWithMeTime` (ISO 8601, e.g., '2025-09-03T00:00:00'). - People/ownership filters: `'me' in owners`, `'user@domain.com' in owners`, `'user@domain.com' in writers`, `'user@domain.com' in readers`, `sharedWithMe = true`. - Type filters: `mimeType = 'application/vnd.google-apps.document'` (Docs), `...spreadsheet` (Sheets), `...presentation` (Slides), and `mimeType != 'application/vnd.google-apps.folder'` to exclude folders. or mimeType = 'application/vnd.google-apps.folder' to select folders. Set `require_viewed_by_user=True` to restrict results to files the current user has viewed. Do not pass unsupported fields like `top_k`, `max_results`, `page_size`, `folder_url`, `query_type`, `user_message`, `recency_days`, `driveId`, or `include_shared_drives`.",
        "inputSchema": {
          "properties": {
            "query": {
              "description": "Keyword query for Drive search. Use concise terms like project/file names. This may be empty only when `special_filter_query_str` is provided.",
              "title": "Query",
              "type": "string"
            },
            "topn": {
              "default": 20,
              "description": "Maximum results to return. Parameter name is `topn` (not `top_k`, `max_results`, or `page_size`).",
              "title": "Topn",
              "type": "integer"
            },
            "special_filter_query_str": {
              "default": "",
              "description": "Optional raw Google Drive API `q` filter expression for advanced filtering.",
              "title": "Special Filter Query Str",
              "type": "string"
            },
            "best_effort_fetch": {
              "default": false,
              "description": "When true, attempt to fetch text content for each result.",
              "title": "Best Effort Fetch",
              "type": "boolean"
            },
            "fetch_ttl": {
              "default": 15.0,
              "description": "Best-effort fetch timeout in seconds when best_effort_fetch=true.",
              "title": "Fetch Ttl",
              "type": "number"
            },
            "require_viewed_by_user": {
              "default": false,
              "description": "When true, keep only files viewed by the authenticated user.",
              "title": "Require Viewed By User",
              "type": "boolean"
            }
          },
          "required": [
            "query"
          ],
          "title": "search_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "search_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "SearchResponse",
              "default": {},
              "type": "object",
              "properties": {
                "results": {
                  "title": "Results",
                  "description": "Matching Google Drive files and folders.",
                  "default": {},
                  "type": "array",
                  "items": {
                    "default": {},
                    "type": "object",
                    "additionalProperties": true
                  }
                }
              },
              "required": [
                "results"
              ]
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "Google Drive_search",
          "_codex_apps": {
            "resource_uri": "/connector_5f3c8c41a1e54ad7a76272c89e2554fa/link_68c64b0647dc81918c149d6541273e93/search",
            "contains_mcp_source": false
          },
          "connector_id": "connector_5f3c8c41a1e54ad7a76272c89e2554fa",
          "connector_name": "Google Drive",
          "connector_description": "Search and work with files from Google Drive, Docs, Sheets, and Slides.",
          "link_id": "link_68c64b0647dc81918c149d6541273e93"
        }
      },
      "connector_id": "connector_5f3c8c41a1e54ad7a76272c89e2554fa",
      "connector_name": "Google Drive",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_search_spreadsheet_rows",
      "tool_namespace": "codex_apps__google_drive",
      "namespace_description": "Search and work with files from Google Drive, Docs, Sheets, and Slides.",
      "tool": {
        "name": "google drive_search_spreadsheet_rows",
        "title": "search_spreadsheet_rows",
        "description": "Search bounded spreadsheet rows containing a query string and return matching rows.\nThis action may fail because it needs an OAuth permission that was not requested when this connection was created. Reconnect to request the new permission.",
        "inputSchema": {
          "properties": {
            "sheet_name": {
              "description": "Sheet tab name only (no ! or coordinates). For A1 notation compatibility, quote names with spaces/punctuation (e.g. 'Q1 Plan'). If the name contains a single quote, escape it as two single quotes inside the quoted name (e.g. 'O''Reilly').",
              "title": "Sheet Name",
              "type": "string"
            },
            "query": {
              "description": "String to search for in any cell within each row.",
              "title": "Query",
              "type": "string"
            },
            "start_row": {
              "default": 1,
              "description": "1-based first row to scan. Usually 1 when the header is in the first row.",
              "title": "Start Row",
              "type": "integer"
            },
            "end_row": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "1-based last row to scan. Required unless range is provided. Choose a finite bound from spreadsheet metadata or user context; this is the scan limit, not the result limit. The scan may cover at most 50,000 cells.",
              "title": "End Row"
            },
            "start_column": {
              "default": "A",
              "description": "First spreadsheet column letter to scan, e.g. A. Usually A when scanning the visible table.",
              "title": "Start Column",
              "type": "string"
            },
            "end_column": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Last spreadsheet column letter to scan, e.g. Z. Required unless range is provided. Choose a finite bound from spreadsheet metadata or known table width. The scan may cover at most 50,000 cells.",
              "title": "End Column"
            },
            "range": {
              "anyOf": [
                {
                  "pattern": "^[^!]+$",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Compatibility-only bounded A1 scan range, e.g. A1:Z500 or B2. Prefer start_row, end_row, start_column, and end_column. Whole-column or whole-row ranges such as A:Z, A:A, or 1:500 are rejected for search because they can read far more cells than intended. The scan may cover at most 50,000 cells.",
              "title": "Range"
            },
            "spreadsheet_url": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Google Sheets spreadsheet URL in the format https://docs.google.com/spreadsheets/d/<SPREADSHEET_ID>/... or a raw spreadsheet ID. If you only know the spreadsheet title or title keywords, call `search_spreadsheets` first instead of asking the user for a URL.",
              "title": "Spreadsheet Url"
            },
            "spreadsheet_id": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Raw Google Sheets spreadsheet ID only (for example `1abcDEF...`). Use this when you already have the ID from a prior search result. Do not pass a full URL here.",
              "title": "Spreadsheet Id"
            },
            "return_columns": {
              "anyOf": [
                {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Optional spreadsheet column letters to include in output, e.g. ['A', 'C', 'F']. They must fall inside the scanned column bounds. Leave null to return the first max_columns scanned columns.",
              "title": "Return Columns"
            },
            "column_numbers": {
              "anyOf": [
                {
                  "items": {
                    "type": "integer"
                  },
                  "type": "array"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Deprecated compatibility alias for return_columns. 1-based column positions relative to the scanned range. Use null unless maintaining an older caller.",
              "title": "Column Numbers"
            },
            "header_row": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "default": 1,
              "description": "1-based spreadsheet row containing column headers. The default behaves like the previous search_spreadsheet_rows action: row 1 when included, otherwise the first scanned row. Use null when the scanned range has no header row.",
              "title": "Header Row"
            },
            "include_header_row": {
              "default": true,
              "description": "When true and header_row is inside the scan, include the header values as the first output row.",
              "title": "Include Header Row",
              "type": "boolean"
            },
            "max_matching_rows": {
              "default": 100,
              "description": "Maximum number of matching non-header rows to return. This limits output only, not the scan. Default is 100.",
              "title": "Max Matching Rows",
              "type": "integer"
            },
            "max_rows": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Deprecated compatibility alias for max_matching_rows. Leave null for new calls.",
              "title": "Max Rows"
            },
            "max_columns": {
              "default": 100,
              "description": "Maximum number of scanned columns to return when return_columns is null. Default is 100.",
              "title": "Max Columns",
              "type": "integer"
            }
          },
          "required": [
            "sheet_name",
            "query"
          ],
          "title": "search_spreadsheet_rows_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "search_spreadsheet_rows_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "GoogleSheetsSearchRowsResponse",
              "default": {},
              "type": "object",
              "properties": {
                "markdown": {
                  "title": "Markdown",
                  "description": "Markdown table containing matching rows.",
                  "default": {},
                  "type": "string"
                },
                "scanned_range": {
                  "title": "Scanned Range",
                  "description": "Bounded A1 range scanned by the action.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "scanned_row_count": {
                  "title": "Scanned Row Count",
                  "description": "Number of spreadsheet rows in the requested scan range.",
                  "default": 0,
                  "type": "integer"
                },
                "scanned_column_count": {
                  "title": "Scanned Column Count",
                  "description": "Number of spreadsheet columns in the requested scan range.",
                  "default": 0,
                  "type": "integer"
                },
                "matched_row_count": {
                  "title": "Matched Row Count",
                  "description": "Number of non-header rows that matched the query.",
                  "default": 0,
                  "type": "integer"
                },
                "returned_matching_row_count": {
                  "title": "Returned Matching Row Count",
                  "description": "Number of matching non-header rows included in the markdown.",
                  "default": 0,
                  "type": "integer"
                },
                "truncated": {
                  "title": "Truncated",
                  "description": "Whether the returned markdown was truncated.",
                  "default": false,
                  "type": "boolean"
                },
                "truncated_rows": {
                  "title": "Truncated Rows",
                  "description": "Whether rows were truncated from the output.",
                  "default": false,
                  "type": "boolean"
                },
                "truncated_columns": {
                  "title": "Truncated Columns",
                  "description": "Whether columns were truncated from the output.",
                  "default": false,
                  "type": "boolean"
                },
                "truncated_row_count": {
                  "title": "Truncated Row Count",
                  "description": "Number of rows omitted from the output.",
                  "default": 0,
                  "type": "integer"
                },
                "truncated_column_count": {
                  "title": "Truncated Column Count",
                  "description": "Number of columns omitted from the output.",
                  "default": 0,
                  "type": "integer"
                }
              },
              "required": [
                "markdown"
              ]
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "Google Drive_search_spreadsheet_rows",
          "_codex_apps": {
            "resource_uri": "/connector_5f3c8c41a1e54ad7a76272c89e2554fa/link_68c64b0647dc81918c149d6541273e93/search_spreadsheet_rows",
            "contains_mcp_source": false
          },
          "connector_id": "connector_5f3c8c41a1e54ad7a76272c89e2554fa",
          "connector_name": "Google Drive",
          "connector_description": "Search and work with files from Google Drive, Docs, Sheets, and Slides.",
          "link_id": "link_68c64b0647dc81918c149d6541273e93"
        }
      },
      "connector_id": "connector_5f3c8c41a1e54ad7a76272c89e2554fa",
      "connector_name": "Google Drive",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_add_comment_to_issue",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_add_comment_to_issue",
        "title": "add_comment_to_issue",
        "description": "Create a top-level PR Conversation comment (Issue comment).",
        "inputSchema": {
          "properties": {
            "repo_full_name": {
              "description": "Repository in `owner/name` form, such as `openai/openai`. This maps to GitHub REST `owner` and `repo` path parameters: https://docs.github.com/en/rest/repos/repos#get-a-repository",
              "title": "Repo Full Name",
              "type": "string"
            },
            "pr_number": {
              "description": "Pull request number in the repository.",
              "title": "Pr Number",
              "type": "integer"
            },
            "comment": {
              "description": "Top-level comment body to add to the issue thread.",
              "title": "Comment",
              "type": "string"
            }
          },
          "required": [
            "repo_full_name",
            "pr_number",
            "comment"
          ],
          "title": "add_comment_to_issue_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "add_comment_to_issue_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "GithubCommentResponse",
              "default": {},
              "type": "object",
              "properties": {
                "id": {
                  "title": "Id",
                  "description": "Identifier of the created GitHub comment.",
                  "default": {},
                  "type": "integer"
                }
              },
              "required": [
                "id"
              ]
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": true,
          "openWorldHint": true
        },
        "_meta": {
          "resource_name": "GitHub_add_comment_to_issue",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/add_comment_to_issue",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_add_issue_assignees",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_add_issue_assignees",
        "title": "add_issue_assignees",
        "description": "Add assignees to an issue or pull request. Returns a normalized issue snapshot after the mutation. Docs: https://docs.github.com/en/rest/issues/assignees?apiVersion=2022-11-28#add-assignees-to-an-issue",
        "inputSchema": {
          "properties": {
            "repository_full_name": {
              "description": "Repository in `owner/name` form, such as `openai/openai`. This maps to GitHub REST `owner` and `repo` path parameters: https://docs.github.com/en/rest/repos/repos#get-a-repository",
              "title": "Repository Full Name",
              "type": "string"
            },
            "issue_number": {
              "description": "Issue number in the repository.",
              "title": "Issue Number",
              "type": "integer"
            },
            "assignees": {
              "description": "GitHub usernames to add as assignees. GitHub's endpoint supports up to 10 assignees and adds to the existing set.",
              "items": {
                "type": "string"
              },
              "title": "Assignees",
              "type": "array"
            }
          },
          "required": [
            "repository_full_name",
            "issue_number",
            "assignees"
          ],
          "title": "add_issue_assignees_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "add_issue_assignees_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "WriteIssueResponse",
              "default": {},
              "type": "object",
              "properties": {
                "issue": {
                  "title": "Issue",
                  "description": "GitHub issue payload after the write operation.",
                  "default": {},
                  "type": "object",
                  "additionalProperties": true
                },
                "url": {
                  "title": "Url",
                  "description": "Canonical URL for the GitHub issue.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "title": {
                  "title": "Title",
                  "description": "Title of the GitHub issue.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "issue"
              ]
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": true,
          "openWorldHint": true
        },
        "_meta": {
          "resource_name": "GitHub_add_issue_assignees",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/add_issue_assignees",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_add_issue_labels",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_add_issue_labels",
        "title": "add_issue_labels",
        "description": "Add labels to an issue or pull request. Returns a normalized issue snapshot after the mutation. Docs: https://docs.github.com/en/rest/issues/labels?apiVersion=2022-11-28#add-labels-to-an-issue",
        "inputSchema": {
          "properties": {
            "repository_full_name": {
              "description": "Repository in `owner/name` form, such as `openai/openai`. This maps to GitHub REST `owner` and `repo` path parameters: https://docs.github.com/en/rest/repos/repos#get-a-repository",
              "title": "Repository Full Name",
              "type": "string"
            },
            "issue_number": {
              "description": "Issue number in the repository.",
              "title": "Issue Number",
              "type": "integer"
            },
            "labels": {
              "description": "Labels to add to the issue or pull request. This is additive, unlike `update_issue(labels=...)` which replaces the full set.",
              "items": {
                "type": "string"
              },
              "title": "Labels",
              "type": "array"
            }
          },
          "required": [
            "repository_full_name",
            "issue_number",
            "labels"
          ],
          "title": "add_issue_labels_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "add_issue_labels_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "WriteIssueResponse",
              "default": {},
              "type": "object",
              "properties": {
                "issue": {
                  "title": "Issue",
                  "description": "GitHub issue payload after the write operation.",
                  "default": {},
                  "type": "object",
                  "additionalProperties": true
                },
                "url": {
                  "title": "Url",
                  "description": "Canonical URL for the GitHub issue.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "title": {
                  "title": "Title",
                  "description": "Title of the GitHub issue.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "issue"
              ]
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": true,
          "openWorldHint": true
        },
        "_meta": {
          "resource_name": "GitHub_add_issue_labels",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/add_issue_labels",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_add_reaction_to_issue_comment",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_add_reaction_to_issue_comment",
        "title": "add_reaction_to_issue_comment",
        "description": "Add a reaction to an issue comment.",
        "inputSchema": {
          "properties": {
            "repo_full_name": {
              "description": "Repository in `owner/name` form, such as `openai/openai`. This maps to GitHub REST `owner` and `repo` path parameters: https://docs.github.com/en/rest/repos/repos#get-a-repository",
              "title": "Repo Full Name",
              "type": "string"
            },
            "comment_id": {
              "description": "Numeric issue or review comment ID.",
              "title": "Comment Id",
              "type": "integer"
            },
            "reaction": {
              "description": "Reaction identifier such as `+1` or `eyes`.",
              "title": "Reaction",
              "type": "string"
            }
          },
          "required": [
            "repo_full_name",
            "comment_id",
            "reaction"
          ],
          "title": "add_reaction_to_issue_comment_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "add_reaction_to_issue_comment_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "GithubReaction",
              "description": "Reaction on an issue or pull request.",
              "default": {},
              "type": "object",
              "properties": {
                "id": {
                  "title": "Id",
                  "default": {},
                  "type": "integer"
                },
                "node_id": {
                  "title": "Node Id",
                  "default": {},
                  "type": "string"
                },
                "user": {
                  "title": "GithubUser",
                  "default": {},
                  "type": "object",
                  "properties": {
                    "login": {
                      "title": "Login",
                      "default": {},
                      "type": "string"
                    },
                    "name": {
                      "title": "Name",
                      "type": "anyOf",
                      "anyOf": [
                        {
                          "default": {},
                          "type": "string"
                        },
                        {
                          "default": {},
                          "type": "null"
                        }
                      ]
                    },
                    "email": {
                      "title": "Email",
                      "type": "anyOf",
                      "anyOf": [
                        {
                          "default": {},
                          "type": "string"
                        },
                        {
                          "default": {},
                          "type": "null"
                        }
                      ]
                    },
                    "avatar_url": {
                      "title": "Avatar Url",
                      "type": "anyOf",
                      "anyOf": [
                        {
                          "default": {},
                          "type": "string"
                        },
                        {
                          "default": {},
                          "type": "null"
                        }
                      ]
                    },
                    "id": {
                      "title": "Id",
                      "type": "anyOf",
                      "anyOf": [
                        {
                          "default": {},
                          "type": "integer"
                        },
                        {
                          "default": {},
                          "type": "null"
                        }
                      ]
                    }
                  },
                  "required": [
                    "login"
                  ]
                },
                "content": {
                  "title": "Content",
                  "default": {},
                  "type": "string"
                },
                "created_at": {
                  "title": "Created At",
                  "default": {},
                  "type": "string"
                }
              },
              "required": [
                "id",
                "node_id",
                "user",
                "content",
                "created_at"
              ]
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": true,
          "openWorldHint": true
        },
        "_meta": {
          "resource_name": "GitHub_add_reaction_to_issue_comment",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/add_reaction_to_issue_comment",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_add_reaction_to_pr",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_add_reaction_to_pr",
        "title": "add_reaction_to_pr",
        "description": "Add a reaction to a GitHub pull request.",
        "inputSchema": {
          "properties": {
            "repo_full_name": {
              "description": "Repository in `owner/name` form, such as `openai/openai`. This maps to GitHub REST `owner` and `repo` path parameters: https://docs.github.com/en/rest/repos/repos#get-a-repository",
              "title": "Repo Full Name",
              "type": "string"
            },
            "pr_number": {
              "description": "Pull request number in the repository.",
              "title": "Pr Number",
              "type": "integer"
            },
            "reaction": {
              "description": "Reaction identifier such as `+1` or `eyes`.",
              "title": "Reaction",
              "type": "string"
            }
          },
          "required": [
            "repo_full_name",
            "pr_number",
            "reaction"
          ],
          "title": "add_reaction_to_pr_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "add_reaction_to_pr_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "GithubReaction",
              "description": "Reaction on an issue or pull request.",
              "default": {},
              "type": "object",
              "properties": {
                "id": {
                  "title": "Id",
                  "default": {},
                  "type": "integer"
                },
                "node_id": {
                  "title": "Node Id",
                  "default": {},
                  "type": "string"
                },
                "user": {
                  "title": "GithubUser",
                  "default": {},
                  "type": "object",
                  "properties": {
                    "login": {
                      "title": "Login",
                      "default": {},
                      "type": "string"
                    },
                    "name": {
                      "title": "Name",
                      "type": "anyOf",
                      "anyOf": [
                        {
                          "default": {},
                          "type": "string"
                        },
                        {
                          "default": {},
                          "type": "null"
                        }
                      ]
                    },
                    "email": {
                      "title": "Email",
                      "type": "anyOf",
                      "anyOf": [
                        {
                          "default": {},
                          "type": "string"
                        },
                        {
                          "default": {},
                          "type": "null"
                        }
                      ]
                    },
                    "avatar_url": {
                      "title": "Avatar Url",
                      "type": "anyOf",
                      "anyOf": [
                        {
                          "default": {},
                          "type": "string"
                        },
                        {
                          "default": {},
                          "type": "null"
                        }
                      ]
                    },
                    "id": {
                      "title": "Id",
                      "type": "anyOf",
                      "anyOf": [
                        {
                          "default": {},
                          "type": "integer"
                        },
                        {
                          "default": {},
                          "type": "null"
                        }
                      ]
                    }
                  },
                  "required": [
                    "login"
                  ]
                },
                "content": {
                  "title": "Content",
                  "default": {},
                  "type": "string"
                },
                "created_at": {
                  "title": "Created At",
                  "default": {},
                  "type": "string"
                }
              },
              "required": [
                "id",
                "node_id",
                "user",
                "content",
                "created_at"
              ]
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": true,
          "openWorldHint": true
        },
        "_meta": {
          "resource_name": "GitHub_add_reaction_to_pr",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/add_reaction_to_pr",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_add_reaction_to_pr_review_comment",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_add_reaction_to_pr_review_comment",
        "title": "add_reaction_to_pr_review_comment",
        "description": "Add a reaction to a pull request review comment.",
        "inputSchema": {
          "properties": {
            "repo_full_name": {
              "description": "Repository in `owner/name` form, such as `openai/openai`. This maps to GitHub REST `owner` and `repo` path parameters: https://docs.github.com/en/rest/repos/repos#get-a-repository",
              "title": "Repo Full Name",
              "type": "string"
            },
            "comment_id": {
              "description": "Numeric issue or review comment ID.",
              "title": "Comment Id",
              "type": "integer"
            },
            "reaction": {
              "description": "Reaction identifier such as `+1` or `eyes`.",
              "title": "Reaction",
              "type": "string"
            }
          },
          "required": [
            "repo_full_name",
            "comment_id",
            "reaction"
          ],
          "title": "add_reaction_to_pr_review_comment_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "add_reaction_to_pr_review_comment_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "GithubReaction",
              "description": "Reaction on an issue or pull request.",
              "default": {},
              "type": "object",
              "properties": {
                "id": {
                  "title": "Id",
                  "default": {},
                  "type": "integer"
                },
                "node_id": {
                  "title": "Node Id",
                  "default": {},
                  "type": "string"
                },
                "user": {
                  "title": "GithubUser",
                  "default": {},
                  "type": "object",
                  "properties": {
                    "login": {
                      "title": "Login",
                      "default": {},
                      "type": "string"
                    },
                    "name": {
                      "title": "Name",
                      "type": "anyOf",
                      "anyOf": [
                        {
                          "default": {},
                          "type": "string"
                        },
                        {
                          "default": {},
                          "type": "null"
                        }
                      ]
                    },
                    "email": {
                      "title": "Email",
                      "type": "anyOf",
                      "anyOf": [
                        {
                          "default": {},
                          "type": "string"
                        },
                        {
                          "default": {},
                          "type": "null"
                        }
                      ]
                    },
                    "avatar_url": {
                      "title": "Avatar Url",
                      "type": "anyOf",
                      "anyOf": [
                        {
                          "default": {},
                          "type": "string"
                        },
                        {
                          "default": {},
                          "type": "null"
                        }
                      ]
                    },
                    "id": {
                      "title": "Id",
                      "type": "anyOf",
                      "anyOf": [
                        {
                          "default": {},
                          "type": "integer"
                        },
                        {
                          "default": {},
                          "type": "null"
                        }
                      ]
                    }
                  },
                  "required": [
                    "login"
                  ]
                },
                "content": {
                  "title": "Content",
                  "default": {},
                  "type": "string"
                },
                "created_at": {
                  "title": "Created At",
                  "default": {},
                  "type": "string"
                }
              },
              "required": [
                "id",
                "node_id",
                "user",
                "content",
                "created_at"
              ]
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": true,
          "openWorldHint": true
        },
        "_meta": {
          "resource_name": "GitHub_add_reaction_to_pr_review_comment",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/add_reaction_to_pr_review_comment",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_add_review_to_pr",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_add_review_to_pr",
        "title": "add_review_to_pr",
        "description": "Add a review to a GitHub pull request. review is required for REQUEST_CHANGES and COMMENT events.",
        "inputSchema": {
          "properties": {
            "repo_full_name": {
              "description": "Repository in `owner/name` form, such as `openai/openai`. This maps to GitHub REST `owner` and `repo` path parameters: https://docs.github.com/en/rest/repos/repos#get-a-repository",
              "title": "Repo Full Name",
              "type": "string"
            },
            "pr_number": {
              "description": "Pull request number in the repository.",
              "title": "Pr Number",
              "type": "integer"
            },
            "action": {
              "enum": [
                "COMMENT",
                "APPROVE",
                "REQUEST_CHANGES"
              ],
              "title": "GithubReviewAction",
              "type": "string",
              "description": "Review action to take. `review` is required for `COMMENT` and `REQUEST_CHANGES`."
            },
            "review": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Review body to submit. Required when requesting changes or leaving a comment.",
              "title": "Review"
            },
            "file_comments": {
              "anyOf": [
                {
                  "items": {
                    "properties": {
                      "path": {
                        "description": "Repository path of the file to comment on.",
                        "title": "Path",
                        "type": "string"
                      },
                      "position": {
                        "anyOf": [
                          {
                            "type": "integer"
                          },
                          {
                            "type": "null"
                          }
                        ],
                        "default": null,
                        "description": "The position in the diff where you want to add a review comment. Note this value is not the same as the line number in the file. The position value equals the number of lines down from the first \"@@\" hunk header in the file you want to add a comment. The line just below the \"@@\" line is position 1, the next line is position 2, and so on. The position in the diff continues to increase through lines of whitespace and additional hunks until the beginning of a new file.",
                        "title": "Position"
                      },
                      "body": {
                        "description": "Body text for the review comment.",
                        "title": "Body",
                        "type": "string"
                      },
                      "line": {
                        "anyOf": [
                          {
                            "type": "integer"
                          },
                          {
                            "type": "null"
                          }
                        ],
                        "default": null,
                        "description": "File line number for line-based review comments.",
                        "title": "Line"
                      },
                      "side": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "null"
                          }
                        ],
                        "default": null,
                        "description": "Diff side for `line`, such as `LEFT` or `RIGHT`.",
                        "title": "Side"
                      },
                      "start_line": {
                        "anyOf": [
                          {
                            "type": "integer"
                          },
                          {
                            "type": "null"
                          }
                        ],
                        "default": null,
                        "description": "Starting line number for a multi-line review comment range.",
                        "title": "Start Line"
                      },
                      "start_side": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "null"
                          }
                        ],
                        "default": null,
                        "description": "Diff side for `start_line`, such as `LEFT` or `RIGHT`.",
                        "title": "Start Side"
                      }
                    },
                    "required": [
                      "path",
                      "body"
                    ],
                    "title": "GithubFileComment",
                    "type": "object"
                  },
                  "type": "array"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Optional inline file comments to include with the review.",
              "title": "File Comments"
            },
            "commit_id": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Optional commit SHA to anchor the review.",
              "title": "Commit Id"
            }
          },
          "required": [
            "repo_full_name",
            "pr_number",
            "action"
          ],
          "title": "add_review_to_pr_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "add_review_to_pr_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "GithubReviewResponse",
              "default": {},
              "type": "object",
              "properties": {
                "success": {
                  "title": "Success",
                  "description": "Whether the review operation completed successfully.",
                  "default": {},
                  "type": "boolean"
                },
                "review_id": {
                  "title": "Review Id",
                  "description": "Identifier of the created or updated review, when available.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "integer"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "success"
              ]
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": true,
          "openWorldHint": true
        },
        "_meta": {
          "resource_name": "GitHub_add_review_to_pr",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/add_review_to_pr",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_compare_commits",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_compare_commits",
        "title": "compare_commits",
        "description": "Compare two commits/refs and return per-file stats plus compare metadata. This is a thin wrapper around `GithubPlugin.compare_commits` to provide a stable, compact response shape to connector consumers.",
        "inputSchema": {
          "properties": {
            "repo_full_name": {
              "title": "Repo Full Name",
              "type": "string"
            },
            "base": {
              "title": "Base",
              "type": "string"
            },
            "head": {
              "title": "Head",
              "type": "string"
            }
          },
          "required": [
            "repo_full_name",
            "base",
            "head"
          ],
          "title": "compare_commits_input",
          "type": "object"
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "GitHub_compare_commits",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/compare_commits",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_convert_pull_request_to_draft",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_convert_pull_request_to_draft",
        "title": "convert_pull_request_to_draft",
        "description": "Convert an open pull request back to draft state. Returns the connector's normalized PR snapshot after the transition. Docs: https://docs.github.com/en/graphql/reference/mutations#convertpullrequesttodraft",
        "inputSchema": {
          "properties": {
            "repository_full_name": {
              "description": "Repository in `owner/name` form, such as `openai/openai`. This maps to GitHub REST `owner` and `repo` path parameters: https://docs.github.com/en/rest/repos/repos#get-a-repository",
              "title": "Repository Full Name",
              "type": "string"
            },
            "pr_number": {
              "description": "Pull request number in the repository.",
              "title": "Pr Number",
              "type": "integer"
            }
          },
          "required": [
            "repository_full_name",
            "pr_number"
          ],
          "title": "convert_pull_request_to_draft_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "convert_pull_request_to_draft_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "Result",
              "default": {},
              "type": "object",
              "additionalProperties": true
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": true,
          "openWorldHint": true
        },
        "_meta": {
          "resource_name": "GitHub_convert_pull_request_to_draft",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/convert_pull_request_to_draft",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_create_blob",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_create_blob",
        "title": "create_blob",
        "description": "Create a blob in the repository and return its SHA.",
        "inputSchema": {
          "properties": {
            "repository_full_name": {
              "description": "Repository in `owner/name` form, such as `openai/openai`. This maps to GitHub REST `owner` and `repo` path parameters: https://docs.github.com/en/rest/repos/repos#get-a-repository",
              "title": "Repository Full Name",
              "type": "string"
            },
            "content": {
              "description": "Blob content to store in the repository.",
              "title": "Content",
              "type": "string"
            },
            "encoding": {
              "default": "utf-8",
              "description": "One of utf-8 or base64. Default is utf-8.",
              "enum": [
                "utf-8",
                "base64"
              ],
              "title": "Encoding",
              "type": "string"
            }
          },
          "required": [
            "repository_full_name",
            "content"
          ],
          "title": "create_blob_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "create_blob_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "Result",
              "default": {},
              "type": "object",
              "additionalProperties": true
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": true,
          "openWorldHint": true
        },
        "_meta": {
          "resource_name": "GitHub_create_blob",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/create_blob",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_create_branch",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_create_branch",
        "title": "create_branch",
        "description": "Create a new branch in the given repository from base_branch.",
        "inputSchema": {
          "properties": {
            "repository_full_name": {
              "description": "Repository in `owner/name` form, such as `openai/openai`. This maps to GitHub REST `owner` and `repo` path parameters: https://docs.github.com/en/rest/repos/repos#get-a-repository",
              "title": "Repository Full Name",
              "type": "string"
            },
            "branch_name": {
              "description": "Branch name to create or update.",
              "title": "Branch Name",
              "type": "string"
            },
            "sha": {
              "description": "Commit SHA.",
              "title": "Sha",
              "type": "string"
            }
          },
          "required": [
            "repository_full_name",
            "branch_name",
            "sha"
          ],
          "title": "create_branch_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "create_branch_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "Result",
              "default": {},
              "type": "object",
              "additionalProperties": true
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": true,
          "openWorldHint": true
        },
        "_meta": {
          "resource_name": "GitHub_create_branch",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/create_branch",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_create_commit",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_create_commit",
        "title": "create_commit",
        "description": "Create a commit pointing to tree_sha with one or more parents.",
        "inputSchema": {
          "properties": {
            "repository_full_name": {
              "description": "Repository in `owner/name` form, such as `openai/openai`. This maps to GitHub REST `owner` and `repo` path parameters: https://docs.github.com/en/rest/repos/repos#get-a-repository",
              "title": "Repository Full Name",
              "type": "string"
            },
            "message": {
              "description": "Commit message to use for the new commit.",
              "title": "Message",
              "type": "string"
            },
            "tree_sha": {
              "description": "Tree SHA to point the new commit at.",
              "title": "Tree Sha",
              "type": "string"
            },
            "parent_sha": {
              "description": "Parent commit SHA for the new commit.",
              "title": "Parent Sha",
              "type": "string"
            },
            "additional_parent_shas": {
              "anyOf": [
                {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Additional ordered commit parent SHAs. Defaults to no additional parents.",
              "title": "Additional Parent Shas"
            }
          },
          "required": [
            "repository_full_name",
            "message",
            "tree_sha",
            "parent_sha"
          ],
          "title": "create_commit_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "create_commit_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "Result",
              "default": {},
              "type": "object",
              "additionalProperties": true
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": true,
          "openWorldHint": true
        },
        "_meta": {
          "resource_name": "GitHub_create_commit",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/create_commit",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_create_file",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_create_file",
        "title": "create_file",
        "description": "Create a UTF-8 text file through GitHub's contents API. Returns only the resulting commit SHA, not GitHub's full content/commit payload. Docs: https://docs.github.com/en/rest/repos/contents?apiVersion=2022-11-28#create-or-update-file-contents",
        "inputSchema": {
          "properties": {
            "repository_full_name": {
              "description": "Repository in `owner/name` form, such as `openai/openai`. This maps to GitHub REST `owner` and `repo` path parameters: https://docs.github.com/en/rest/repos/repos#get-a-repository",
              "title": "Repository Full Name",
              "type": "string"
            },
            "path": {
              "description": "Path for the file within the repository.",
              "title": "Path",
              "type": "string"
            },
            "content": {
              "description": "Complete UTF-8 text contents to write. This wrapper base64-encodes the text for GitHub's contents API.",
              "title": "Content",
              "type": "string"
            },
            "message": {
              "description": "Commit message for the new file.",
              "title": "Message",
              "type": "string"
            },
            "branch": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Optional branch to create the file on. Leave null to use the default branch.",
              "title": "Branch"
            }
          },
          "required": [
            "repository_full_name",
            "path",
            "content",
            "message"
          ],
          "title": "create_file_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "create_file_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "Result",
              "default": {},
              "type": "object",
              "additionalProperties": true
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": true,
          "openWorldHint": true
        },
        "_meta": {
          "resource_name": "GitHub_create_file",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/create_file",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_create_issue",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_create_issue",
        "title": "create_issue",
        "description": "Create a GitHub issue. Returns a normalized issue snapshot, not GitHub's raw REST payload. Docs: https://docs.github.com/en/rest/issues/issues?apiVersion=2022-11-28#create-an-issue",
        "inputSchema": {
          "properties": {
            "repository_full_name": {
              "description": "Repository in `owner/name` form, such as `openai/openai`. This maps to GitHub REST `owner` and `repo` path parameters: https://docs.github.com/en/rest/repos/repos#get-a-repository",
              "title": "Repository Full Name",
              "type": "string"
            },
            "title": {
              "description": "Issue title.",
              "title": "Title",
              "type": "string"
            },
            "body": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Optional Markdown body for the issue.",
              "title": "Body"
            },
            "assignees": {
              "anyOf": [
                {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Optional GitHub usernames to assign when creating the issue.",
              "title": "Assignees"
            },
            "labels": {
              "anyOf": [
                {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Optional labels to apply when creating the issue.",
              "title": "Labels"
            },
            "milestone": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Optional milestone number to associate with the issue.",
              "title": "Milestone"
            }
          },
          "required": [
            "repository_full_name",
            "title"
          ],
          "title": "create_issue_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "create_issue_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "WriteIssueResponse",
              "default": {},
              "type": "object",
              "properties": {
                "issue": {
                  "title": "Issue",
                  "description": "GitHub issue payload after the write operation.",
                  "default": {},
                  "type": "object",
                  "additionalProperties": true
                },
                "url": {
                  "title": "Url",
                  "description": "Canonical URL for the GitHub issue.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "title": {
                  "title": "Title",
                  "description": "Title of the GitHub issue.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "issue"
              ]
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": true,
          "openWorldHint": true
        },
        "_meta": {
          "resource_name": "GitHub_create_issue",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/create_issue",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_create_pull_request",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_create_pull_request",
        "title": "create_pull_request",
        "description": "Open a pull request in the repository. Returns the connector's normalized PR snapshot, not the full REST response payload. Docs: https://docs.github.com/en/rest/pulls/pulls?apiVersion=2022-11-28#create-a-pull-request",
        "inputSchema": {
          "properties": {
            "repository_full_name": {
              "description": "Repository in `owner/name` form, such as `openai/openai`. This maps to GitHub REST `owner` and `repo` path parameters: https://docs.github.com/en/rest/repos/repos#get-a-repository",
              "title": "Repository Full Name",
              "type": "string"
            },
            "title": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Title for the new pull request. Required unless `issue` is supplied.",
              "title": "Title"
            },
            "body": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Pull request description or summary. GitHub allows omitting this field.",
              "title": "Body"
            },
            "head_branch": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Compatibility alias for `head`, the branch containing the proposed changes.",
              "title": "Head Branch"
            },
            "base_branch": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Compatibility alias for `base`, the target branch for the pull request.",
              "title": "Base Branch"
            },
            "draft": {
              "default": false,
              "description": "Create the pull request as a draft.",
              "title": "Draft",
              "type": "boolean"
            },
            "head": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "GitHub REST `head` branch containing the proposed changes.",
              "title": "Head"
            },
            "base": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "GitHub REST `base` branch that the pull request targets.",
              "title": "Base"
            },
            "issue": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Existing issue number to convert into a pull request.",
              "title": "Issue"
            },
            "head_repo": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Repository where the head branch lives. Required by GitHub for some same-organization cross-repository pull requests.",
              "title": "Head Repo"
            },
            "maintainer_can_modify": {
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Whether maintainers may modify the pull request branch.",
              "title": "Maintainer Can Modify"
            }
          },
          "required": [
            "repository_full_name"
          ],
          "title": "create_pull_request_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "create_pull_request_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "Result",
              "default": {},
              "type": "object",
              "additionalProperties": true
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": true,
          "openWorldHint": true
        },
        "_meta": {
          "resource_name": "GitHub_create_pull_request",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/create_pull_request",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_create_tree",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_create_tree",
        "title": "create_tree",
        "description": "Create a tree object in the repository from the given elements.",
        "inputSchema": {
          "properties": {
            "repository_full_name": {
              "description": "Repository in `owner/name` form, such as `openai/openai`. This maps to GitHub REST `owner` and `repo` path parameters: https://docs.github.com/en/rest/repos/repos#get-a-repository",
              "title": "Repository Full Name",
              "type": "string"
            },
            "tree_elements": {
              "description": "Tree entries to include in the new tree object.",
              "items": {
                "additionalProperties": true,
                "type": "object"
              },
              "title": "Tree Elements",
              "type": "array"
            },
            "base_tree_sha": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Optional base tree SHA to build on. Leave null to create from scratch.",
              "title": "Base Tree Sha"
            }
          },
          "required": [
            "repository_full_name",
            "tree_elements"
          ],
          "title": "create_tree_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "create_tree_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "Result",
              "default": {},
              "type": "object",
              "additionalProperties": true
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": true,
          "openWorldHint": true
        },
        "_meta": {
          "resource_name": "GitHub_create_tree",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/create_tree",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_delete_file",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_delete_file",
        "title": "delete_file",
        "description": "Delete a file through GitHub's contents API. Returns only the resulting commit SHA. Docs: https://docs.github.com/en/rest/repos/contents?apiVersion=2022-11-28#delete-a-file",
        "inputSchema": {
          "properties": {
            "repository_full_name": {
              "description": "Repository in `owner/name` form, such as `openai/openai`. This maps to GitHub REST `owner` and `repo` path parameters: https://docs.github.com/en/rest/repos/repos#get-a-repository",
              "title": "Repository Full Name",
              "type": "string"
            },
            "path": {
              "description": "Path for the existing file within the repository.",
              "title": "Path",
              "type": "string"
            },
            "message": {
              "description": "Commit message for the file deletion.",
              "title": "Message",
              "type": "string"
            },
            "sha": {
              "description": "Current blob SHA of the file being deleted, usually from `fetch_file`.",
              "title": "Sha",
              "type": "string"
            },
            "branch": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Optional branch to update. Leave null to use the default branch.",
              "title": "Branch"
            }
          },
          "required": [
            "repository_full_name",
            "path",
            "message",
            "sha"
          ],
          "title": "delete_file_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "delete_file_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "Result",
              "default": {},
              "type": "object",
              "additionalProperties": true
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": true,
          "openWorldHint": true
        },
        "_meta": {
          "resource_name": "GitHub_delete_file",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/delete_file",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_dismiss_pull_request_review",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_dismiss_pull_request_review",
        "title": "dismiss_pull_request_review",
        "description": "Dismiss a submitted pull request review. Returns the normalized review snapshot after dismissal. Docs: https://docs.github.com/en/graphql/reference/mutations#dismisspullrequestreview",
        "inputSchema": {
          "properties": {
            "review_id": {
              "description": "GraphQL pull request review node ID.",
              "title": "Review Id",
              "type": "string"
            },
            "message": {
              "description": "Dismissal message explaining why the review is being dismissed.",
              "title": "Message",
              "type": "string"
            }
          },
          "required": [
            "review_id",
            "message"
          ],
          "title": "dismiss_pull_request_review_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "dismiss_pull_request_review_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "DismissPullRequestReviewResponse",
              "default": {},
              "type": "object",
              "properties": {
                "review": {
                  "title": "Review",
                  "description": "Dismissed review payload returned by GitHub.",
                  "default": {},
                  "type": "object",
                  "additionalProperties": true
                }
              },
              "required": [
                "review"
              ]
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": true,
          "openWorldHint": true
        },
        "_meta": {
          "resource_name": "GitHub_dismiss_pull_request_review",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/dismiss_pull_request_review",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_download_user_content",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_download_user_content",
        "title": "download_user_content",
        "description": "Download a GitHub private user image attachment URL. Use this only for private-user-images.githubusercontent.com URLs, such as GitHub issue or pull request image uploads. Use fetch or fetch_file for repository files.",
        "inputSchema": {
          "properties": {
            "url": {
              "description": "GitHub private user image attachment URL to download. Only https://private-user-images.githubusercontent.com URLs are supported; use fetch or fetch_file for repository files.",
              "title": "Url",
              "type": "string"
            }
          },
          "required": [
            "url"
          ],
          "title": "download_user_content_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "download_user_content_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "Result",
              "default": {},
              "type": "object",
              "additionalProperties": true
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "GitHub_download_user_content",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/download_user_content",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_download_workflow_artifact",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_download_workflow_artifact",
        "title": "download_workflow_artifact",
        "description": "Download a GitHub Actions workflow artifact ZIP archive. GitHub serves this endpoint through a temporary redirect; the underlying client follows that redirect before returning a reusable file reference for the ZIP bytes. Docs: https://docs.github.com/en/rest/actions/artifacts?apiVersion=2022-11-28#download-an-artifact",
        "inputSchema": {
          "properties": {
            "repo_full_name": {
              "description": "Repository in `owner/name` form, such as `openai/openai`. This maps to GitHub REST `owner` and `repo` path parameters: https://docs.github.com/en/rest/repos/repos#get-a-repository",
              "title": "Repo Full Name",
              "type": "string"
            },
            "artifact_id": {
              "description": "GitHub Actions workflow artifact ID.",
              "title": "Artifact Id",
              "type": "integer"
            },
            "file_name": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Optional ZIP file name for the returned file reference.",
              "title": "File Name"
            }
          },
          "required": [
            "repo_full_name",
            "artifact_id"
          ],
          "title": "download_workflow_artifact_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "download_workflow_artifact_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "DownloadWorkflowArtifactResponse",
              "default": {},
              "type": "object",
              "properties": {
                "file_uri": {
                  "description": "File reference for the downloaded GitHub Actions artifact ZIP.",
                  "default": {},
                  "type": "allOf",
                  "allOf": [
                    {
                      "title": "ConnectorFileReference",
                      "description": "Connector-local file reference payload used for upload/download handoff.",
                      "default": {},
                      "type": "object",
                      "properties": {
                        "download_url": {
                          "title": "Download Url",
                          "default": {},
                          "type": "string"
                        },
                        "file_id": {
                          "title": "File Id",
                          "default": {},
                          "type": "string"
                        },
                        "mime_type": {
                          "title": "Mime Type",
                          "type": "anyOf",
                          "anyOf": [
                            {
                              "default": {},
                              "type": "string"
                            },
                            {
                              "default": {},
                              "type": "null"
                            }
                          ]
                        },
                        "file_name": {
                          "title": "File Name",
                          "type": "anyOf",
                          "anyOf": [
                            {
                              "default": {},
                              "type": "string"
                            },
                            {
                              "default": {},
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "required": [
                        "download_url",
                        "file_id"
                      ]
                    }
                  ]
                },
                "artifact_id": {
                  "title": "Artifact Id",
                  "description": "GitHub Actions workflow artifact ID.",
                  "default": {},
                  "type": "integer"
                },
                "file_name": {
                  "title": "File Name",
                  "description": "Materialized artifact ZIP file name.",
                  "default": {},
                  "type": "string"
                },
                "mime_type": {
                  "title": "Mime Type",
                  "description": "MIME type for the materialized artifact ZIP.",
                  "default": {},
                  "type": "string"
                }
              },
              "required": [
                "file_uri",
                "artifact_id",
                "file_name",
                "mime_type"
              ]
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "GitHub_download_workflow_artifact",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/download_workflow_artifact",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_enable_auto_merge",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_enable_auto_merge",
        "title": "enable_auto_merge",
        "description": "Enable auto-merge for a pull request. This wrapper infers the merge method from repository settings and returns only `success`. Docs: https://docs.github.com/en/graphql/reference/mutations#enablepullrequestautomerge",
        "inputSchema": {
          "properties": {
            "repository_full_name": {
              "description": "Repository in `owner/name` form, such as `openai/openai`. This maps to GitHub REST `owner` and `repo` path parameters: https://docs.github.com/en/rest/repos/repos#get-a-repository",
              "title": "Repository Full Name",
              "type": "string"
            },
            "pr_number": {
              "description": "Pull request number in the repository.",
              "title": "Pr Number",
              "type": "integer"
            }
          },
          "required": [
            "repository_full_name",
            "pr_number"
          ],
          "title": "enable_auto_merge_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "enable_auto_merge_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "Result",
              "default": {},
              "type": "object",
              "additionalProperties": true
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": true,
          "openWorldHint": true
        },
        "_meta": {
          "resource_name": "GitHub_enable_auto_merge",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/enable_auto_merge",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_fetch",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_fetch",
        "title": "fetch",
        "description": "Fetch a UTF-8 text file from GitHub by URL. Use a file URL such as ``https://github.com/owner/repo/blob/branch/path/to/file.py``. ``raw.githubusercontent.com`` file URLs and ``api.github.com/repos/.../contents/...`` URLs with a ``ref`` query parameter are also accepted.",
        "inputSchema": {
          "properties": {
            "url": {
              "description": "GitHub file URL to fetch. Supports github.com blob URLs, raw.githubusercontent.com URLs, and api.github.com repository contents URLs with a ref query parameter.",
              "title": "Url",
              "type": "string"
            }
          },
          "required": [
            "url"
          ],
          "title": "fetch_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "fetch_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "FetchResponse",
              "default": {},
              "type": "object",
              "properties": {
                "content": {
                  "title": "Content",
                  "description": "Fetched document or page content.",
                  "default": {},
                  "type": "string"
                },
                "title": {
                  "title": "Title",
                  "description": "Title inferred for the fetched content.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "modified_date": {
                  "title": "Modified Date",
                  "description": "Last modified timestamp for the fetched content, when available.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "url": {
                  "title": "Url",
                  "description": "Canonical GitHub URL for the fetched content.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "content"
              ]
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "GitHub_fetch",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/fetch",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_fetch_blob",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_fetch_blob",
        "title": "fetch_blob",
        "description": "Fetch blob content by SHA from the given repository.",
        "inputSchema": {
          "properties": {
            "repository_full_name": {
              "description": "Repository in `owner/name` form, such as `openai/openai`. This maps to GitHub REST `owner` and `repo` path parameters: https://docs.github.com/en/rest/repos/repos#get-a-repository",
              "title": "Repository Full Name",
              "type": "string"
            },
            "blob_sha": {
              "description": "Blob SHA returned by GitHub.",
              "title": "Blob Sha",
              "type": "string"
            }
          },
          "required": [
            "repository_full_name",
            "blob_sha"
          ],
          "title": "fetch_blob_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "fetch_blob_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "Result",
              "default": {},
              "type": "object",
              "additionalProperties": true
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "GitHub_fetch_blob",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/fetch_blob",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_fetch_commit",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_fetch_commit",
        "title": "fetch_commit",
        "description": "Fetch a commit with its metadata, diff, and canonical URL.",
        "inputSchema": {
          "properties": {
            "repo_full_name": {
              "description": "Repository in `owner/name` form, such as `openai/openai`. This maps to GitHub REST `owner` and `repo` path parameters: https://docs.github.com/en/rest/repos/repos#get-a-repository",
              "title": "Repo Full Name",
              "type": "string"
            },
            "commit_sha": {
              "description": "Commit SHA.",
              "title": "Commit Sha",
              "type": "string"
            }
          },
          "required": [
            "repo_full_name",
            "commit_sha"
          ],
          "title": "fetch_commit_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "fetch_commit_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "FetchCommitResponse",
              "default": {},
              "type": "object",
              "properties": {
                "commit": {
                  "title": "Commit",
                  "description": "Fetched GitHub commit payload.",
                  "default": {},
                  "type": "object",
                  "additionalProperties": true
                },
                "url": {
                  "title": "Url",
                  "description": "Canonical URL for the commit.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "title": {
                  "title": "Title",
                  "description": "Display title for the commit.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "diff": {
                  "title": "Diff",
                  "description": "Unified diff for the commit, when requested.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "commit"
              ]
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "GitHub_fetch_commit",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/fetch_commit",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_fetch_commit_workflow_runs",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_fetch_commit_workflow_runs",
        "title": "fetch_commit_workflow_runs",
        "description": "Fetch GitHub Actions workflow runs associated with a commit SHA. This wrapper currently filters to pull-request-triggered runs and returns the first page only. Docs: https://docs.github.com/en/rest/actions/workflow-runs?apiVersion=2022-11-28#list-workflow-runs-for-a-repository",
        "inputSchema": {
          "properties": {
            "repo_full_name": {
              "description": "Repository in `owner/name` form, such as `openai/openai`. This maps to GitHub REST `owner` and `repo` path parameters: https://docs.github.com/en/rest/repos/repos#get-a-repository",
              "title": "Repo Full Name",
              "type": "string"
            },
            "commit_sha": {
              "description": "Commit SHA.",
              "title": "Commit Sha",
              "type": "string"
            }
          },
          "required": [
            "repo_full_name",
            "commit_sha"
          ],
          "title": "fetch_commit_workflow_runs_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "fetch_commit_workflow_runs_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "FetchCommitWorkflowRunsResponse",
              "default": {},
              "type": "object",
              "properties": {
                "workflow_runs": {
                  "title": "Workflow Runs",
                  "description": "Workflow runs associated with the commit.",
                  "default": {},
                  "type": "array",
                  "items": {
                    "default": {},
                    "type": "object",
                    "additionalProperties": true
                  }
                }
              },
              "required": [
                "workflow_runs"
              ]
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "GitHub_fetch_commit_workflow_runs",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/fetch_commit_workflow_runs",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_fetch_file",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_fetch_file",
        "title": "fetch_file",
        "description": "Fetch file content by repository path, using the default branch when ref is omitted.",
        "inputSchema": {
          "properties": {
            "repository_full_name": {
              "description": "Repository in `owner/name` form, such as `openai/openai`. This maps to GitHub REST `owner` and `repo` path parameters: https://docs.github.com/en/rest/repos/repos#get-a-repository",
              "title": "Repository Full Name",
              "type": "string"
            },
            "path": {
              "description": "Repository path for the file to fetch.",
              "title": "Path",
              "type": "string"
            },
            "ref": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Optional branch, tag, or commit ref to read from. Omit this unless the ref is known; the repository default branch will be used when omitted.",
              "title": "Ref"
            },
            "encoding": {
              "default": "utf-8",
              "description": "One of utf-8 or base64. Default is utf-8.",
              "enum": [
                "utf-8",
                "base64"
              ],
              "title": "Encoding",
              "type": "string"
            },
            "start_line": {
              "anyOf": [
                {
                  "exclusiveMinimum": 0,
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Optional 1-based first line to return.",
              "title": "Start Line"
            },
            "end_line": {
              "anyOf": [
                {
                  "exclusiveMinimum": 0,
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Optional 1-based last line to return.",
              "title": "End Line"
            }
          },
          "required": [
            "repository_full_name",
            "path"
          ],
          "title": "fetch_file_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "fetch_file_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "Result",
              "default": {},
              "type": "object",
              "additionalProperties": true
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "GitHub_fetch_file",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/fetch_file",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_fetch_issue",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_fetch_issue",
        "title": "fetch_issue",
        "description": "Fetch GitHub issue.",
        "inputSchema": {
          "properties": {
            "issue_number": {
              "description": "Issue number in the repository.",
              "title": "Issue Number",
              "type": "integer"
            },
            "repository_full_name": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Repository in `owner/name` form, such as `openai/openai`. This maps to GitHub REST `owner` and `repo` path parameters: https://docs.github.com/en/rest/repos/repos#get-a-repository",
              "title": "Repository Full Name"
            },
            "repository_id": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Numeric GitHub repository ID, such as `1296269`. Use this only when the stable repository `id` from a GitHub repository object is available: https://docs.github.com/en/rest/repos/repos#get-a-repository",
              "title": "Repository Id"
            },
            "repository_url": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "GitHub repository URL, or a nested repository URL such as a pull request, issue, branch, or file URL. Examples: `https://github.com/openai/openai/pulls/123`, `https://api.github.com/repos/openai/openai`, `https://github.example.com/api/v3/repos/octo/repo`. Supports GitHub Enterprise Server custom hostnames and GHE.com API hosts. Docs: https://docs.github.com/en/rest/repos/repos#get-a-repository and https://docs.github.com/en/enterprise-server@latest/rest/using-the-rest-api/getting-started-with-the-rest-api and https://docs.github.com/en/enterprise-cloud@latest/admin/data-residency/about-github-enterprise-cloud-with-data-residency#api-access",
              "title": "Repository Url"
            }
          },
          "required": [
            "issue_number"
          ],
          "title": "fetch_issue_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "fetch_issue_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "FetchIssueResponse",
              "default": {},
              "type": "object",
              "properties": {
                "issue": {
                  "title": "Issue",
                  "description": "Fetched GitHub issue payload.",
                  "default": {},
                  "type": "object",
                  "additionalProperties": true
                },
                "url": {
                  "title": "Url",
                  "description": "Canonical URL for the GitHub issue.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "title": {
                  "title": "Title",
                  "description": "Title of the GitHub issue.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "issue"
              ]
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "GitHub_fetch_issue",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/fetch_issue",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_fetch_issue_comments",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_fetch_issue_comments",
        "title": "fetch_issue_comments",
        "description": "Fetch comments for a GitHub issue across all pages.",
        "inputSchema": {
          "properties": {
            "repo_full_name": {
              "description": "Repository in `owner/name` form, such as `openai/openai`. This maps to GitHub REST `owner` and `repo` path parameters: https://docs.github.com/en/rest/repos/repos#get-a-repository",
              "title": "Repo Full Name",
              "type": "string"
            },
            "issue_number": {
              "description": "Issue number in the repository.",
              "title": "Issue Number",
              "type": "integer"
            }
          },
          "required": [
            "repo_full_name",
            "issue_number"
          ],
          "title": "fetch_issue_comments_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "fetch_issue_comments_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "FetchPrCommentsResponse",
              "default": {},
              "type": "object",
              "properties": {
                "comments": {
                  "title": "Comments",
                  "description": "Comments associated with the pull request.",
                  "default": {},
                  "type": "array",
                  "items": {
                    "default": {},
                    "type": "object",
                    "additionalProperties": true
                  }
                },
                "url": {
                  "title": "Url",
                  "description": "Canonical URL for the pull request.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "title": {
                  "title": "Title",
                  "description": "Title of the pull request.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "comments"
              ]
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "GitHub_fetch_issue_comments",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/fetch_issue_comments",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_fetch_pr",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_fetch_pr",
        "title": "fetch_pr",
        "description": "Fetch a pull request with its diff, metadata, and optionally comments.",
        "inputSchema": {
          "properties": {
            "repo_full_name": {
              "description": "Repository in `owner/name` form, such as `openai/openai`. This maps to GitHub REST `owner` and `repo` path parameters: https://docs.github.com/en/rest/repos/repos#get-a-repository",
              "title": "Repo Full Name",
              "type": "string"
            },
            "pr_number": {
              "description": "Pull request number in the repository.",
              "title": "Pr Number",
              "type": "integer"
            }
          },
          "required": [
            "repo_full_name",
            "pr_number"
          ],
          "title": "fetch_pr_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "fetch_pr_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "FetchPullRequestResponse",
              "default": {},
              "type": "object",
              "properties": {
                "pull_request": {
                  "title": "Pull Request",
                  "description": "Fetched GitHub pull request payload.",
                  "default": {},
                  "type": "object",
                  "additionalProperties": true
                },
                "url": {
                  "title": "Url",
                  "description": "Canonical URL for the pull request.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "title": {
                  "title": "Title",
                  "description": "Title of the pull request.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "diff": {
                  "title": "Diff",
                  "description": "Unified diff for the pull request, when requested.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "comments": {
                  "title": "Comments",
                  "description": "Pull request comments included in the response, when requested.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "array",
                      "items": {
                        "default": {},
                        "type": "object",
                        "additionalProperties": true
                      }
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "pull_request"
              ]
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "GitHub_fetch_pr",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/fetch_pr",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_fetch_pr_comments",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_fetch_pr_comments",
        "title": "fetch_pr_comments",
        "description": "Fetch a merged PR discussion timeline. The returned list combines issue comments, inline review comments, and review submissions into one normalized array. Docs: https://docs.github.com/en/rest/issues/comments?apiVersion=2022-11-28 Docs: https://docs.github.com/en/rest/pulls/comments?apiVersion=2022-11-28 Docs: https://docs.github.com/en/rest/pulls/reviews?apiVersion=2022-11-28",
        "inputSchema": {
          "properties": {
            "repo_full_name": {
              "description": "Repository in `owner/name` form, such as `openai/openai`. This maps to GitHub REST `owner` and `repo` path parameters: https://docs.github.com/en/rest/repos/repos#get-a-repository",
              "title": "Repo Full Name",
              "type": "string"
            },
            "pr_number": {
              "description": "Pull request number in the repository.",
              "title": "Pr Number",
              "type": "integer"
            }
          },
          "required": [
            "repo_full_name",
            "pr_number"
          ],
          "title": "fetch_pr_comments_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "fetch_pr_comments_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "FetchPrCommentsResponse",
              "default": {},
              "type": "object",
              "properties": {
                "comments": {
                  "title": "Comments",
                  "description": "Comments associated with the pull request.",
                  "default": {},
                  "type": "array",
                  "items": {
                    "default": {},
                    "type": "object",
                    "additionalProperties": true
                  }
                },
                "url": {
                  "title": "Url",
                  "description": "Canonical URL for the pull request.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "title": {
                  "title": "Title",
                  "description": "Title of the pull request.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "comments"
              ]
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "GitHub_fetch_pr_comments",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/fetch_pr_comments",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_fetch_pr_file_patch",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_fetch_pr_file_patch",
        "title": "fetch_pr_file_patch",
        "description": "Fetch a single-file patch from a PR, searching across all file-list pages.",
        "inputSchema": {
          "properties": {
            "repo_full_name": {
              "description": "Repository in `owner/name` form, such as `openai/openai`. This maps to GitHub REST `owner` and `repo` path parameters: https://docs.github.com/en/rest/repos/repos#get-a-repository",
              "title": "Repo Full Name",
              "type": "string"
            },
            "pr_number": {
              "description": "Pull request number in the repository.",
              "title": "Pr Number",
              "type": "integer"
            },
            "path": {
              "description": "Path of the changed file within the pull request.",
              "title": "Path",
              "type": "string"
            }
          },
          "required": [
            "repo_full_name",
            "pr_number",
            "path"
          ],
          "title": "fetch_pr_file_patch_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "fetch_pr_file_patch_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "FetchPrFilePatchSingleResponse",
              "default": {},
              "type": "object",
              "properties": {
                "patch": {
                  "description": "Patch for the requested pull request file, if GitHub returned one.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "title": "GithubFilePatch",
                      "default": {},
                      "type": "object",
                      "properties": {
                        "filename": {
                          "title": "Filename",
                          "type": "anyOf",
                          "anyOf": [
                            {
                              "default": {},
                              "type": "string"
                            },
                            {
                              "default": {},
                              "type": "null"
                            }
                          ]
                        },
                        "patch": {
                          "title": "Patch",
                          "type": "anyOf",
                          "anyOf": [
                            {
                              "default": {},
                              "type": "string"
                            },
                            {
                              "default": {},
                              "type": "null"
                            }
                          ]
                        }
                      }
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                }
              }
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "GitHub_fetch_pr_file_patch",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/fetch_pr_file_patch",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_fetch_pr_patch",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_fetch_pr_patch",
        "title": "fetch_pr_patch",
        "description": "Fetch the patch for a GitHub pull request across all changed-file pages.",
        "inputSchema": {
          "properties": {
            "repo_full_name": {
              "description": "Repository in `owner/name` form, such as `openai/openai`. This maps to GitHub REST `owner` and `repo` path parameters: https://docs.github.com/en/rest/repos/repos#get-a-repository",
              "title": "Repo Full Name",
              "type": "string"
            },
            "pr_number": {
              "description": "Pull request number in the repository.",
              "title": "Pr Number",
              "type": "integer"
            }
          },
          "required": [
            "repo_full_name",
            "pr_number"
          ],
          "title": "fetch_pr_patch_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "fetch_pr_patch_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "FetchPrPatchResponse",
              "default": {},
              "type": "object",
              "properties": {
                "patches": {
                  "title": "Patches",
                  "description": "Per-file patches for the pull request.",
                  "default": {},
                  "type": "array",
                  "items": {
                    "title": "GithubFilePatch",
                    "default": {},
                    "type": "object",
                    "properties": {
                      "filename": {
                        "title": "Filename",
                        "type": "anyOf",
                        "anyOf": [
                          {
                            "default": {},
                            "type": "string"
                          },
                          {
                            "default": {},
                            "type": "null"
                          }
                        ]
                      },
                      "patch": {
                        "title": "Patch",
                        "type": "anyOf",
                        "anyOf": [
                          {
                            "default": {},
                            "type": "string"
                          },
                          {
                            "default": {},
                            "type": "null"
                          }
                        ]
                      }
                    }
                  }
                },
                "url": {
                  "title": "Url",
                  "description": "Canonical URL for the pull request.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "title": {
                  "title": "Title",
                  "description": "Title of the pull request.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "patches"
              ]
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "GitHub_fetch_pr_patch",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/fetch_pr_patch",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_fetch_workflow_job_logs",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_fetch_workflow_job_logs",
        "title": "fetch_workflow_job_logs",
        "description": "Fetch decoded logs for a GitHub Actions workflow job. GitHub serves this endpoint through a temporary redirect; the underlying client follows that redirect before decoding the bytes. Docs: https://docs.github.com/en/rest/actions/workflow-jobs?apiVersion=2022-11-28#download-job-logs-for-a-workflow-run-job",
        "inputSchema": {
          "properties": {
            "repo_full_name": {
              "description": "Repository in `owner/name` form, such as `openai/openai`. This maps to GitHub REST `owner` and `repo` path parameters: https://docs.github.com/en/rest/repos/repos#get-a-repository",
              "title": "Repo Full Name",
              "type": "string"
            },
            "job_id": {
              "description": "GitHub Actions workflow job ID.",
              "title": "Job Id",
              "type": "integer"
            }
          },
          "required": [
            "repo_full_name",
            "job_id"
          ],
          "title": "fetch_workflow_job_logs_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "fetch_workflow_job_logs_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "FetchWorkflowJobLogsResponse",
              "default": {},
              "type": "object",
              "properties": {
                "content": {
                  "title": "Content",
                  "description": "Raw log content for the GitHub workflow job.",
                  "default": {},
                  "type": "string"
                }
              },
              "required": [
                "content"
              ]
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "GitHub_fetch_workflow_job_logs",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/fetch_workflow_job_logs",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_fetch_workflow_job_steps",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_fetch_workflow_job_steps",
        "title": "fetch_workflow_job_steps",
        "description": "Fetch steps for a GitHub Actions workflow job. Returns only step summaries, not the full job payload. Docs: https://docs.github.com/en/rest/actions/workflow-jobs?apiVersion=2022-11-28#get-a-job-for-a-workflow-run",
        "inputSchema": {
          "properties": {
            "repo_full_name": {
              "description": "Repository in `owner/name` form, such as `openai/openai`. This maps to GitHub REST `owner` and `repo` path parameters: https://docs.github.com/en/rest/repos/repos#get-a-repository",
              "title": "Repo Full Name",
              "type": "string"
            },
            "job_id": {
              "description": "GitHub Actions workflow job ID.",
              "title": "Job Id",
              "type": "integer"
            }
          },
          "required": [
            "repo_full_name",
            "job_id"
          ],
          "title": "fetch_workflow_job_steps_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "fetch_workflow_job_steps_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "FetchWorkflowJobStepsResponse",
              "default": {},
              "type": "object",
              "properties": {
                "steps": {
                  "title": "Steps",
                  "description": "Steps belonging to the selected GitHub workflow job.",
                  "default": {},
                  "type": "array",
                  "items": {
                    "default": {},
                    "type": "object",
                    "additionalProperties": true
                  }
                }
              },
              "required": [
                "steps"
              ]
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "GitHub_fetch_workflow_job_steps",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/fetch_workflow_job_steps",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_fetch_workflow_run_artifacts",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_fetch_workflow_run_artifacts",
        "title": "fetch_workflow_run_artifacts",
        "description": "Fetch artifacts for a GitHub Actions workflow run. This wrapper returns the first page only. Docs: https://docs.github.com/en/rest/actions/artifacts?apiVersion=2022-11-28#list-workflow-run-artifacts",
        "inputSchema": {
          "properties": {
            "repo_full_name": {
              "description": "Repository in `owner/name` form, such as `openai/openai`. This maps to GitHub REST `owner` and `repo` path parameters: https://docs.github.com/en/rest/repos/repos#get-a-repository",
              "title": "Repo Full Name",
              "type": "string"
            },
            "run_id": {
              "description": "GitHub Actions workflow run ID.",
              "title": "Run Id",
              "type": "integer"
            },
            "name": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Optional artifact name to filter by.",
              "title": "Name"
            }
          },
          "required": [
            "repo_full_name",
            "run_id"
          ],
          "title": "fetch_workflow_run_artifacts_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "fetch_workflow_run_artifacts_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "FetchWorkflowRunArtifactsResponse",
              "default": {},
              "type": "object",
              "properties": {
                "artifacts": {
                  "title": "Artifacts",
                  "description": "Artifacts belonging to the selected GitHub workflow run.",
                  "default": {},
                  "type": "array",
                  "items": {
                    "default": {},
                    "type": "object",
                    "additionalProperties": true
                  }
                }
              },
              "required": [
                "artifacts"
              ]
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "GitHub_fetch_workflow_run_artifacts",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/fetch_workflow_run_artifacts",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_fetch_workflow_run_jobs",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_fetch_workflow_run_jobs",
        "title": "fetch_workflow_run_jobs",
        "description": "Fetch jobs for a GitHub Actions workflow run. This wrapper returns the latest attempt's jobs from the first page only. Docs: https://docs.github.com/en/rest/actions/workflow-jobs?apiVersion=2022-11-28#list-jobs-for-a-workflow-run",
        "inputSchema": {
          "properties": {
            "repo_full_name": {
              "description": "Repository in `owner/name` form, such as `openai/openai`. This maps to GitHub REST `owner` and `repo` path parameters: https://docs.github.com/en/rest/repos/repos#get-a-repository",
              "title": "Repo Full Name",
              "type": "string"
            },
            "run_id": {
              "description": "GitHub Actions workflow run ID.",
              "title": "Run Id",
              "type": "integer"
            }
          },
          "required": [
            "repo_full_name",
            "run_id"
          ],
          "title": "fetch_workflow_run_jobs_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "fetch_workflow_run_jobs_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "FetchWorkflowRunJobsResponse",
              "default": {},
              "type": "object",
              "properties": {
                "jobs": {
                  "title": "Jobs",
                  "description": "Jobs belonging to the selected GitHub workflow run.",
                  "default": {},
                  "type": "array",
                  "items": {
                    "default": {},
                    "type": "object",
                    "additionalProperties": true
                  }
                }
              },
              "required": [
                "jobs"
              ]
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "GitHub_fetch_workflow_run_jobs",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/fetch_workflow_run_jobs",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_get_commit_combined_status",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_get_commit_combined_status",
        "title": "get_commit_combined_status",
        "description": "Fetch the combined CI status and individual status checks for a commit.",
        "inputSchema": {
          "properties": {
            "repo_full_name": {
              "description": "Repository in `owner/name` form, such as `openai/openai`. This maps to GitHub REST `owner` and `repo` path parameters: https://docs.github.com/en/rest/repos/repos#get-a-repository",
              "title": "Repo Full Name",
              "type": "string"
            },
            "commit_sha": {
              "description": "Commit SHA.",
              "title": "Commit Sha",
              "type": "string"
            }
          },
          "required": [
            "repo_full_name",
            "commit_sha"
          ],
          "title": "get_commit_combined_status_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "get_commit_combined_status_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "FetchCommitCombinedStatusResponse",
              "default": {},
              "type": "object",
              "properties": {
                "statuses": {
                  "title": "Statuses",
                  "description": "Combined status checks reported for the commit.",
                  "default": {},
                  "type": "array",
                  "items": {
                    "default": {},
                    "type": "object",
                    "additionalProperties": true
                  }
                }
              },
              "required": [
                "statuses"
              ]
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "GitHub_get_commit_combined_status",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/get_commit_combined_status",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_get_issue_comment_reactions",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_get_issue_comment_reactions",
        "title": "get_issue_comment_reactions",
        "description": "Fetch reactions for an issue comment.",
        "inputSchema": {
          "properties": {
            "repo_full_name": {
              "description": "Repository in `owner/name` form, such as `openai/openai`. This maps to GitHub REST `owner` and `repo` path parameters: https://docs.github.com/en/rest/repos/repos#get-a-repository",
              "title": "Repo Full Name",
              "type": "string"
            },
            "comment_id": {
              "description": "Numeric issue or review comment ID.",
              "title": "Comment Id",
              "type": "integer"
            },
            "per_page": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Maximum number of results to return.",
              "title": "Per Page"
            },
            "page": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "1-based page number for pagination.",
              "title": "Page"
            }
          },
          "required": [
            "repo_full_name",
            "comment_id"
          ],
          "title": "get_issue_comment_reactions_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "get_issue_comment_reactions_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "GithubReactionsResponse",
              "default": {},
              "type": "object",
              "properties": {
                "reactions": {
                  "title": "Reactions",
                  "description": "Reactions returned for the requested GitHub entity.",
                  "default": {},
                  "type": "array",
                  "items": {
                    "title": "GithubReaction",
                    "description": "Reaction on an issue or pull request.",
                    "default": {},
                    "type": "object",
                    "properties": {
                      "id": {
                        "title": "Id",
                        "default": {},
                        "type": "integer"
                      },
                      "node_id": {
                        "title": "Node Id",
                        "default": {},
                        "type": "string"
                      },
                      "user": {
                        "title": "GithubUser",
                        "default": {},
                        "type": "object",
                        "properties": {
                          "login": {
                            "title": "Login",
                            "default": {},
                            "type": "string"
                          },
                          "name": {
                            "title": "Name",
                            "type": "anyOf",
                            "anyOf": [
                              {
                                "default": {},
                                "type": "string"
                              },
                              {
                                "default": {},
                                "type": "null"
                              }
                            ]
                          },
                          "email": {
                            "title": "Email",
                            "type": "anyOf",
                            "anyOf": [
                              {
                                "default": {},
                                "type": "string"
                              },
                              {
                                "default": {},
                                "type": "null"
                              }
                            ]
                          },
                          "avatar_url": {
                            "title": "Avatar Url",
                            "type": "anyOf",
                            "anyOf": [
                              {
                                "default": {},
                                "type": "string"
                              },
                              {
                                "default": {},
                                "type": "null"
                              }
                            ]
                          },
                          "id": {
                            "title": "Id",
                            "type": "anyOf",
                            "anyOf": [
                              {
                                "default": {},
                                "type": "integer"
                              },
                              {
                                "default": {},
                                "type": "null"
                              }
                            ]
                          }
                        },
                        "required": [
                          "login"
                        ]
                      },
                      "content": {
                        "title": "Content",
                        "default": {},
                        "type": "string"
                      },
                      "created_at": {
                        "title": "Created At",
                        "default": {},
                        "type": "string"
                      }
                    },
                    "required": [
                      "id",
                      "node_id",
                      "user",
                      "content",
                      "created_at"
                    ]
                  }
                }
              },
              "required": [
                "reactions"
              ]
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "GitHub_get_issue_comment_reactions",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/get_issue_comment_reactions",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_get_pr_diff",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_get_pr_diff",
        "title": "get_pr_diff",
        "description": "Fetch just the diff or patch text for a pull request.",
        "inputSchema": {
          "properties": {
            "repo_full_name": {
              "description": "Repository in `owner/name` form, such as `openai/openai`. This maps to GitHub REST `owner` and `repo` path parameters: https://docs.github.com/en/rest/repos/repos#get-a-repository",
              "title": "Repo Full Name",
              "type": "string"
            },
            "pr_number": {
              "description": "Pull request number in the repository.",
              "title": "Pr Number",
              "type": "integer"
            },
            "format": {
              "default": "diff",
              "description": "Output format to return. Use `diff` for unified diff or `patch` for patch text.",
              "enum": [
                "diff",
                "patch"
              ],
              "title": "Format",
              "type": "string"
            }
          },
          "required": [
            "repo_full_name",
            "pr_number"
          ],
          "title": "get_pr_diff_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "get_pr_diff_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "GetPrDiffResponse",
              "default": {},
              "type": "object",
              "properties": {
                "diff": {
                  "title": "Diff",
                  "description": "Unified diff for the pull request.",
                  "default": {},
                  "type": "string"
                }
              },
              "required": [
                "diff"
              ]
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "GitHub_get_pr_diff",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/get_pr_diff",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_get_pr_info",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_get_pr_info",
        "title": "get_pr_info",
        "description": "Get metadata (title, description, refs, and status) for a pull request. This action does *not* include the actual code changes. If you need the diff or per-file patches, call `fetch_pr_patch` instead (or use `get_users_recent_prs_in_repo` with ``include_diff=True`` when listing the user's own PRs).",
        "inputSchema": {
          "properties": {
            "repository_full_name": {
              "description": "Repository in `owner/name` form, such as `openai/openai`. This maps to GitHub REST `owner` and `repo` path parameters: https://docs.github.com/en/rest/repos/repos#get-a-repository",
              "title": "Repository Full Name",
              "type": "string"
            },
            "pr_number": {
              "description": "Pull request number in the repository.",
              "title": "Pr Number",
              "type": "integer"
            }
          },
          "required": [
            "repository_full_name",
            "pr_number"
          ],
          "title": "get_pr_info_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "get_pr_info_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "Result",
              "default": {},
              "type": "object",
              "additionalProperties": true
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "GitHub_get_pr_info",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/get_pr_info",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_get_pr_reactions",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_get_pr_reactions",
        "title": "get_pr_reactions",
        "description": "Fetch reactions for a GitHub pull request.",
        "inputSchema": {
          "properties": {
            "repo_full_name": {
              "description": "Repository in `owner/name` form, such as `openai/openai`. This maps to GitHub REST `owner` and `repo` path parameters: https://docs.github.com/en/rest/repos/repos#get-a-repository",
              "title": "Repo Full Name",
              "type": "string"
            },
            "pr_number": {
              "description": "Pull request number in the repository.",
              "title": "Pr Number",
              "type": "integer"
            },
            "per_page": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Maximum number of results to return.",
              "title": "Per Page"
            },
            "page": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "1-based page number for pagination.",
              "title": "Page"
            }
          },
          "required": [
            "repo_full_name",
            "pr_number"
          ],
          "title": "get_pr_reactions_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "get_pr_reactions_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "GithubReactionsResponse",
              "default": {},
              "type": "object",
              "properties": {
                "reactions": {
                  "title": "Reactions",
                  "description": "Reactions returned for the requested GitHub entity.",
                  "default": {},
                  "type": "array",
                  "items": {
                    "title": "GithubReaction",
                    "description": "Reaction on an issue or pull request.",
                    "default": {},
                    "type": "object",
                    "properties": {
                      "id": {
                        "title": "Id",
                        "default": {},
                        "type": "integer"
                      },
                      "node_id": {
                        "title": "Node Id",
                        "default": {},
                        "type": "string"
                      },
                      "user": {
                        "title": "GithubUser",
                        "default": {},
                        "type": "object",
                        "properties": {
                          "login": {
                            "title": "Login",
                            "default": {},
                            "type": "string"
                          },
                          "name": {
                            "title": "Name",
                            "type": "anyOf",
                            "anyOf": [
                              {
                                "default": {},
                                "type": "string"
                              },
                              {
                                "default": {},
                                "type": "null"
                              }
                            ]
                          },
                          "email": {
                            "title": "Email",
                            "type": "anyOf",
                            "anyOf": [
                              {
                                "default": {},
                                "type": "string"
                              },
                              {
                                "default": {},
                                "type": "null"
                              }
                            ]
                          },
                          "avatar_url": {
                            "title": "Avatar Url",
                            "type": "anyOf",
                            "anyOf": [
                              {
                                "default": {},
                                "type": "string"
                              },
                              {
                                "default": {},
                                "type": "null"
                              }
                            ]
                          },
                          "id": {
                            "title": "Id",
                            "type": "anyOf",
                            "anyOf": [
                              {
                                "default": {},
                                "type": "integer"
                              },
                              {
                                "default": {},
                                "type": "null"
                              }
                            ]
                          }
                        },
                        "required": [
                          "login"
                        ]
                      },
                      "content": {
                        "title": "Content",
                        "default": {},
                        "type": "string"
                      },
                      "created_at": {
                        "title": "Created At",
                        "default": {},
                        "type": "string"
                      }
                    },
                    "required": [
                      "id",
                      "node_id",
                      "user",
                      "content",
                      "created_at"
                    ]
                  }
                }
              },
              "required": [
                "reactions"
              ]
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "GitHub_get_pr_reactions",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/get_pr_reactions",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_get_pr_review_comment_reactions",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_get_pr_review_comment_reactions",
        "title": "get_pr_review_comment_reactions",
        "description": "Fetch reactions for a pull request review comment.",
        "inputSchema": {
          "properties": {
            "repo_full_name": {
              "description": "Repository in `owner/name` form, such as `openai/openai`. This maps to GitHub REST `owner` and `repo` path parameters: https://docs.github.com/en/rest/repos/repos#get-a-repository",
              "title": "Repo Full Name",
              "type": "string"
            },
            "comment_id": {
              "description": "Numeric issue or review comment ID.",
              "title": "Comment Id",
              "type": "integer"
            },
            "per_page": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Maximum number of results to return.",
              "title": "Per Page"
            },
            "page": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "1-based page number for pagination.",
              "title": "Page"
            }
          },
          "required": [
            "repo_full_name",
            "comment_id"
          ],
          "title": "get_pr_review_comment_reactions_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "get_pr_review_comment_reactions_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "GithubReactionsResponse",
              "default": {},
              "type": "object",
              "properties": {
                "reactions": {
                  "title": "Reactions",
                  "description": "Reactions returned for the requested GitHub entity.",
                  "default": {},
                  "type": "array",
                  "items": {
                    "title": "GithubReaction",
                    "description": "Reaction on an issue or pull request.",
                    "default": {},
                    "type": "object",
                    "properties": {
                      "id": {
                        "title": "Id",
                        "default": {},
                        "type": "integer"
                      },
                      "node_id": {
                        "title": "Node Id",
                        "default": {},
                        "type": "string"
                      },
                      "user": {
                        "title": "GithubUser",
                        "default": {},
                        "type": "object",
                        "properties": {
                          "login": {
                            "title": "Login",
                            "default": {},
                            "type": "string"
                          },
                          "name": {
                            "title": "Name",
                            "type": "anyOf",
                            "anyOf": [
                              {
                                "default": {},
                                "type": "string"
                              },
                              {
                                "default": {},
                                "type": "null"
                              }
                            ]
                          },
                          "email": {
                            "title": "Email",
                            "type": "anyOf",
                            "anyOf": [
                              {
                                "default": {},
                                "type": "string"
                              },
                              {
                                "default": {},
                                "type": "null"
                              }
                            ]
                          },
                          "avatar_url": {
                            "title": "Avatar Url",
                            "type": "anyOf",
                            "anyOf": [
                              {
                                "default": {},
                                "type": "string"
                              },
                              {
                                "default": {},
                                "type": "null"
                              }
                            ]
                          },
                          "id": {
                            "title": "Id",
                            "type": "anyOf",
                            "anyOf": [
                              {
                                "default": {},
                                "type": "integer"
                              },
                              {
                                "default": {},
                                "type": "null"
                              }
                            ]
                          }
                        },
                        "required": [
                          "login"
                        ]
                      },
                      "content": {
                        "title": "Content",
                        "default": {},
                        "type": "string"
                      },
                      "created_at": {
                        "title": "Created At",
                        "default": {},
                        "type": "string"
                      }
                    },
                    "required": [
                      "id",
                      "node_id",
                      "user",
                      "content",
                      "created_at"
                    ]
                  }
                }
              },
              "required": [
                "reactions"
              ]
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "GitHub_get_pr_review_comment_reactions",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/get_pr_review_comment_reactions",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_get_profile",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_get_profile",
        "title": "get_profile",
        "description": "Retrieve the GitHub profile for the authenticated user.",
        "inputSchema": {
          "properties": {},
          "title": "get_profile_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "get_profile_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "Profile",
              "description": "Many connectors (especially OAuth-based) act on behalf of a user.\nThis class represents the user's profile, which is typically retrieved from\nthe connector's API during the OAuth flow.\n\nImplementation details for different connectors vary, so we can't guarantee\nthat all fields will be present.",
              "default": {},
              "type": "object",
              "properties": {
                "id": {
                  "title": "Id",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "name": {
                  "title": "Name",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "email": {
                  "title": "Email",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "nickname": {
                  "title": "Nickname",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "picture": {
                  "title": "Picture",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                }
              }
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "GitHub_get_profile",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/get_profile",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_get_repo",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_get_repo",
        "title": "get_repo",
        "description": "Retrieve metadata for a GitHub repository. Provide exactly one repository locator: - `repository_full_name`: `owner/name`, such as `openai/openai`. Maps to GitHub REST `owner` and `repo` path parameters. - `repository_id`: numeric GitHub repository ID, such as `1296269`. - `repository_url`: repository URL or nested repository URL, such as a PR, issue, branch, file, REST API, GitHub Enterprise Server `/api/v3`, or GHE.com API URL. - `repo_id`: backward-compatible alias for existing programmatic callers. Prefer the explicit locator inputs for new calls. GitHub REST repository docs: https://docs.github.com/en/rest/repos/repos#get-a-repository GitHub Enterprise Server REST docs: https://docs.github.com/en/enterprise-server@latest/rest/using-the-rest-api/getting-started-with-the-rest-api GHE.com API host docs: https://docs.github.com/en/enterprise-cloud@latest/admin/data-residency/about-github-enterprise-cloud-with-data-residency#api-access",
        "inputSchema": {
          "properties": {
            "repository_full_name": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Repository in `owner/name` form, such as `openai/openai`. This maps to GitHub REST `owner` and `repo` path parameters: https://docs.github.com/en/rest/repos/repos#get-a-repository",
              "title": "Repository Full Name"
            },
            "repository_id": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Numeric GitHub repository ID, such as `1296269`. Use this only when the stable repository `id` from a GitHub repository object is available: https://docs.github.com/en/rest/repos/repos#get-a-repository",
              "title": "Repository Id"
            },
            "repository_url": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "GitHub repository URL, or a nested repository URL such as a pull request, issue, branch, or file URL. Examples: `https://github.com/openai/openai/pulls/123`, `https://api.github.com/repos/openai/openai`, `https://github.example.com/api/v3/repos/octo/repo`. Supports GitHub Enterprise Server custom hostnames and GHE.com API hosts. Docs: https://docs.github.com/en/rest/repos/repos#get-a-repository and https://docs.github.com/en/enterprise-server@latest/rest/using-the-rest-api/getting-started-with-the-rest-api and https://docs.github.com/en/enterprise-cloud@latest/admin/data-residency/about-github-enterprise-cloud-with-data-residency#api-access",
              "title": "Repository Url"
            }
          },
          "title": "get_repo_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "get_repo_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "Result",
              "default": {},
              "type": "object",
              "additionalProperties": true
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "GitHub_get_repo",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/get_repo",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_get_repo_collaborator_permission",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_get_repo_collaborator_permission",
        "title": "get_repo_collaborator_permission",
        "description": "Return the collaborator permission level for a user on a repository.",
        "inputSchema": {
          "properties": {
            "repository_full_name": {
              "description": "Repository in `owner/name` form, such as `openai/openai`. This maps to GitHub REST `owner` and `repo` path parameters: https://docs.github.com/en/rest/repos/repos#get-a-repository",
              "title": "Repository Full Name",
              "type": "string"
            },
            "username": {
              "description": "GitHub username to check against the repository.",
              "title": "Username",
              "type": "string"
            }
          },
          "required": [
            "repository_full_name",
            "username"
          ],
          "title": "get_repo_collaborator_permission_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "get_repo_collaborator_permission_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "RepoCollaboratorPermissionResponse",
              "default": {},
              "type": "object",
              "properties": {
                "permission": {
                  "title": "Permission",
                  "description": "Repository permission level for the requested collaborator.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                }
              }
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "GitHub_get_repo_collaborator_permission",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/get_repo_collaborator_permission",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_get_user_login",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_get_user_login",
        "title": "get_user_login",
        "description": "Return the GitHub login for the authenticated user.",
        "inputSchema": {
          "properties": {},
          "title": "get_user_login_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "get_user_login_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "Result",
              "default": {},
              "type": "object",
              "additionalProperties": true
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "GitHub_get_user_login",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/get_user_login",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_get_users_recent_prs_in_repo",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_get_users_recent_prs_in_repo",
        "title": "get_users_recent_prs_in_repo",
        "description": "List the user's recent GitHub pull requests in a repository. `limit` is the final number of PRs returned. The connector paginates the underlying GitHub search endpoint to satisfy larger limits.",
        "inputSchema": {
          "properties": {
            "repository_full_name": {
              "description": "Repository in `owner/name` form, such as `openai/openai`. This maps to GitHub REST `owner` and `repo` path parameters: https://docs.github.com/en/rest/repos/repos#get-a-repository",
              "title": "Repository Full Name",
              "type": "string"
            },
            "limit": {
              "default": 20,
              "description": "Maximum number of results to return.",
              "title": "Limit",
              "type": "integer"
            },
            "state": {
              "default": "all",
              "description": "Pull request state filter such as `open`, `closed`, or `all`.",
              "title": "State",
              "type": "string"
            },
            "include_diff": {
              "default": false,
              "description": "Include the pull request diff in each result.",
              "title": "Include Diff",
              "type": "boolean"
            },
            "include_comments": {
              "default": false,
              "description": "Include pull request comments in each result.",
              "title": "Include Comments",
              "type": "boolean"
            }
          },
          "required": [
            "repository_full_name"
          ],
          "title": "get_users_recent_prs_in_repo_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "get_users_recent_prs_in_repo_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "ListPullRequestsResponse",
              "default": {},
              "type": "object",
              "properties": {
                "pull_requests": {
                  "title": "Pull Requests",
                  "description": "Pull requests returned by the listing operation.",
                  "default": {},
                  "type": "array",
                  "items": {
                    "default": {},
                    "type": "object",
                    "additionalProperties": true
                  }
                }
              },
              "required": [
                "pull_requests"
              ]
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "GitHub_get_users_recent_prs_in_repo",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/get_users_recent_prs_in_repo",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_label_pr",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_label_pr",
        "title": "label_pr",
        "description": "Label a pull request.",
        "inputSchema": {
          "properties": {
            "repository_full_name": {
              "description": "Repository in `owner/name` form, such as `openai/openai`. This maps to GitHub REST `owner` and `repo` path parameters: https://docs.github.com/en/rest/repos/repos#get-a-repository",
              "title": "Repository Full Name",
              "type": "string"
            },
            "pr_number": {
              "description": "Pull request number in the repository.",
              "title": "Pr Number",
              "type": "integer"
            },
            "label": {
              "description": "Label to add to the pull request.",
              "title": "Label",
              "type": "string"
            }
          },
          "required": [
            "repository_full_name",
            "pr_number",
            "label"
          ],
          "title": "label_pr_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "label_pr_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "Result",
              "default": {},
              "type": "object",
              "additionalProperties": true
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": true,
          "openWorldHint": true
        },
        "_meta": {
          "resource_name": "GitHub_label_pr",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/label_pr",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_list_installations",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_list_installations",
        "title": "list_installations",
        "description": "List all organizations the authenticated user has installed this GitHub App on.",
        "inputSchema": {
          "properties": {},
          "title": "list_installations_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "list_installations_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "ListInstallationsResponse",
              "default": {},
              "type": "object",
              "properties": {
                "installations": {
                  "title": "Installations",
                  "description": "GitHub App installations available to the account.",
                  "default": {},
                  "type": "array",
                  "items": {
                    "default": {},
                    "type": "object",
                    "additionalProperties": true
                  }
                }
              },
              "required": [
                "installations"
              ]
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "GitHub_list_installations",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/list_installations",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_list_installed_accounts",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_list_installed_accounts",
        "title": "list_installed_accounts",
        "description": "List all accounts that the user has installed our GitHub app on.",
        "inputSchema": {
          "properties": {},
          "title": "list_installed_accounts_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "list_installed_accounts_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "ListInstalledAccountsResponse",
              "default": {},
              "type": "object",
              "properties": {
                "accounts": {
                  "title": "Accounts",
                  "description": "GitHub accounts or installations available to the app.",
                  "default": {},
                  "type": "array",
                  "items": {
                    "default": {},
                    "type": "object",
                    "additionalProperties": true
                  }
                }
              },
              "required": [
                "accounts"
              ]
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "GitHub_list_installed_accounts",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/list_installed_accounts",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_list_pr_changed_filenames",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_list_pr_changed_filenames",
        "title": "list_pr_changed_filenames",
        "description": "List changed filenames for a PR across all paginated file-list pages.",
        "inputSchema": {
          "properties": {
            "repo_full_name": {
              "description": "Repository in `owner/name` form, such as `openai/openai`. This maps to GitHub REST `owner` and `repo` path parameters: https://docs.github.com/en/rest/repos/repos#get-a-repository",
              "title": "Repo Full Name",
              "type": "string"
            },
            "pr_number": {
              "description": "Pull request number in the repository.",
              "title": "Pr Number",
              "type": "integer"
            }
          },
          "required": [
            "repo_full_name",
            "pr_number"
          ],
          "title": "list_pr_changed_filenames_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "list_pr_changed_filenames_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "ListPrChangedFilenamesResponse",
              "default": {},
              "type": "object",
              "properties": {
                "filenames": {
                  "title": "Filenames",
                  "description": "Changed file paths in the pull request.",
                  "default": {},
                  "type": "array",
                  "items": {
                    "default": {},
                    "type": "string"
                  }
                }
              },
              "required": [
                "filenames"
              ]
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "GitHub_list_pr_changed_filenames",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/list_pr_changed_filenames",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_list_pull_request_review_threads",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_list_pull_request_review_threads",
        "title": "list_pull_request_review_threads",
        "description": "List inline review threads on a pull request, including resolved state. Returns GraphQL review thread nodes, including comment bodies and resolution metadata. Docs: https://docs.github.com/en/graphql/reference/objects#pullrequestreviewthread",
        "inputSchema": {
          "properties": {
            "repo_full_name": {
              "description": "Repository in `owner/name` form, such as `openai/openai`. This maps to GitHub REST `owner` and `repo` path parameters: https://docs.github.com/en/rest/repos/repos#get-a-repository",
              "title": "Repo Full Name",
              "type": "string"
            },
            "pr_number": {
              "description": "Pull request number in the repository.",
              "title": "Pr Number",
              "type": "integer"
            }
          },
          "required": [
            "repo_full_name",
            "pr_number"
          ],
          "title": "list_pull_request_review_threads_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "list_pull_request_review_threads_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "ListPullRequestReviewThreadsResponse",
              "default": {},
              "type": "object",
              "properties": {
                "review_threads": {
                  "title": "Review Threads",
                  "description": "Review threads associated with the pull request.",
                  "default": {},
                  "type": "array",
                  "items": {
                    "default": {},
                    "type": "object",
                    "additionalProperties": true
                  }
                }
              },
              "required": [
                "review_threads"
              ]
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "GitHub_list_pull_request_review_threads",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/list_pull_request_review_threads",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_list_pull_request_reviews",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_list_pull_request_reviews",
        "title": "list_pull_request_reviews",
        "description": "List review submissions on a pull request. Returns GraphQL review nodes normalized into the connector's review model. Docs: https://docs.github.com/en/graphql/reference/objects#pullrequestreview",
        "inputSchema": {
          "properties": {
            "repo_full_name": {
              "description": "Repository in `owner/name` form, such as `openai/openai`. This maps to GitHub REST `owner` and `repo` path parameters: https://docs.github.com/en/rest/repos/repos#get-a-repository",
              "title": "Repo Full Name",
              "type": "string"
            },
            "pr_number": {
              "description": "Pull request number in the repository.",
              "title": "Pr Number",
              "type": "integer"
            }
          },
          "required": [
            "repo_full_name",
            "pr_number"
          ],
          "title": "list_pull_request_reviews_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "list_pull_request_reviews_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "ListPullRequestReviewsResponse",
              "default": {},
              "type": "object",
              "properties": {
                "reviews": {
                  "title": "Reviews",
                  "description": "Reviews recorded for the pull request.",
                  "default": {},
                  "type": "array",
                  "items": {
                    "default": {},
                    "type": "object",
                    "additionalProperties": true
                  }
                }
              },
              "required": [
                "reviews"
              ]
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "GitHub_list_pull_request_reviews",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/list_pull_request_reviews",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_list_recent_issues",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_list_recent_issues",
        "title": "list_recent_issues",
        "description": "Return the most recent GitHub issues the user can access. `top_k` is the final result limit. The connector transparently paginates GitHub's issues API until that limit is reached or no more pages exist.",
        "inputSchema": {
          "properties": {
            "top_k": {
              "default": 20,
              "title": "Top K",
              "type": "integer"
            }
          },
          "title": "list_recent_issues_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "list_recent_issues_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "ListIssuesResponse",
              "default": {},
              "type": "object",
              "properties": {
                "issues": {
                  "title": "Issues",
                  "description": "Issues returned by the GitHub listing operation.",
                  "default": {},
                  "type": "array",
                  "items": {
                    "default": {},
                    "type": "object",
                    "additionalProperties": true
                  }
                }
              },
              "required": [
                "issues"
              ]
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "GitHub_list_recent_issues",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/list_recent_issues",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_list_repositories",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_list_repositories",
        "title": "list_repositories",
        "description": "List repositories accessible to the authenticated user.",
        "inputSchema": {
          "properties": {
            "page_size": {
              "default": 20,
              "description": "Maximum number of results to return.",
              "title": "Page Size",
              "type": "integer"
            },
            "page_offset": {
              "default": 0,
              "description": "Zero-based offset into the result set.",
              "title": "Page Offset",
              "type": "integer"
            },
            "owner": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Optional owner login to filter returned repositories.",
              "title": "Owner"
            },
            "include_search_index_status": {
              "default": false,
              "description": "Include code search index availability metadata for each repo.",
              "title": "Include Search Index Status",
              "type": "boolean"
            }
          },
          "title": "list_repositories_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "list_repositories_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "ListRepositoriesResponse",
              "default": {},
              "type": "object",
              "properties": {
                "repositories": {
                  "title": "Repositories",
                  "description": "Repositories visible to the linked GitHub account.",
                  "default": {},
                  "type": "array",
                  "items": {
                    "default": {},
                    "type": "object",
                    "additionalProperties": true
                  }
                }
              },
              "required": [
                "repositories"
              ]
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "GitHub_list_repositories",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/list_repositories",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_list_repositories_by_affiliation",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_list_repositories_by_affiliation",
        "title": "list_repositories_by_affiliation",
        "description": "List repositories accessible to the authenticated user filtered by affiliation.",
        "inputSchema": {
          "properties": {
            "affiliation": {
              "description": "GitHub affiliation filter such as `owner`, `collaborator`, or `organization_member`.",
              "title": "Affiliation",
              "type": "string"
            },
            "page_size": {
              "default": 100,
              "description": "Maximum number of results to return.",
              "title": "Page Size",
              "type": "integer"
            },
            "page_offset": {
              "default": 0,
              "description": "Zero-based offset into the result set.",
              "title": "Page Offset",
              "type": "integer"
            }
          },
          "required": [
            "affiliation"
          ],
          "title": "list_repositories_by_affiliation_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "list_repositories_by_affiliation_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "ListRepositoriesResponse",
              "default": {},
              "type": "object",
              "properties": {
                "repositories": {
                  "title": "Repositories",
                  "description": "Repositories visible to the linked GitHub account.",
                  "default": {},
                  "type": "array",
                  "items": {
                    "default": {},
                    "type": "object",
                    "additionalProperties": true
                  }
                }
              },
              "required": [
                "repositories"
              ]
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "GitHub_list_repositories_by_affiliation",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/list_repositories_by_affiliation",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_list_repositories_by_installation",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_list_repositories_by_installation",
        "title": "list_repositories_by_installation",
        "description": "List repositories accessible to the authenticated user.",
        "inputSchema": {
          "properties": {
            "installation_id": {
              "description": "GitHub App installation ID to filter by.",
              "title": "Installation Id",
              "type": "integer"
            },
            "page_size": {
              "default": 20,
              "description": "Maximum number of results to return.",
              "title": "Page Size",
              "type": "integer"
            },
            "page_offset": {
              "default": 0,
              "description": "Zero-based offset into the result set.",
              "title": "Page Offset",
              "type": "integer"
            }
          },
          "required": [
            "installation_id"
          ],
          "title": "list_repositories_by_installation_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "list_repositories_by_installation_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "ListRepositoriesResponse",
              "default": {},
              "type": "object",
              "properties": {
                "repositories": {
                  "title": "Repositories",
                  "description": "Repositories visible to the linked GitHub account.",
                  "default": {},
                  "type": "array",
                  "items": {
                    "default": {},
                    "type": "object",
                    "additionalProperties": true
                  }
                }
              },
              "required": [
                "repositories"
              ]
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "GitHub_list_repositories_by_installation",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/list_repositories_by_installation",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_list_user_org_memberships",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_list_user_org_memberships",
        "title": "list_user_org_memberships",
        "description": "List the authenticated user's organization memberships.",
        "inputSchema": {
          "properties": {},
          "title": "list_user_org_memberships_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "list_user_org_memberships_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "Result",
              "default": {},
              "type": "object",
              "additionalProperties": true
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "GitHub_list_user_org_memberships",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/list_user_org_memberships",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_list_user_orgs",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_list_user_orgs",
        "title": "list_user_orgs",
        "description": "List organizations the authenticated user is a member of.",
        "inputSchema": {
          "properties": {},
          "title": "list_user_orgs_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "list_user_orgs_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "Result",
              "default": {},
              "type": "object",
              "additionalProperties": true
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "GitHub_list_user_orgs",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/list_user_orgs",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_lock_issue_conversation",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_lock_issue_conversation",
        "title": "lock_issue_conversation",
        "description": "Lock an issue or pull request conversation. Allowed `lock_reason` values are `off-topic`, `too heated`, `resolved`, and `spam`. Docs: https://docs.github.com/en/rest/issues/issues?apiVersion=2022-11-28#lock-an-issue",
        "inputSchema": {
          "properties": {
            "repository_full_name": {
              "description": "Repository in `owner/name` form, such as `openai/openai`. This maps to GitHub REST `owner` and `repo` path parameters: https://docs.github.com/en/rest/repos/repos#get-a-repository",
              "title": "Repository Full Name",
              "type": "string"
            },
            "issue_number": {
              "description": "Issue number in the repository.",
              "title": "Issue Number",
              "type": "integer"
            },
            "lock_reason": {
              "anyOf": [
                {
                  "enum": [
                    "off-topic",
                    "too heated",
                    "resolved",
                    "spam"
                  ],
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Optional reason for locking the conversation.",
              "title": "Lock Reason"
            }
          },
          "required": [
            "repository_full_name",
            "issue_number"
          ],
          "title": "lock_issue_conversation_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "lock_issue_conversation_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "GithubSuccessResponse",
              "default": {},
              "type": "object",
              "properties": {
                "success": {
                  "title": "Success",
                  "description": "Whether the GitHub action completed successfully.",
                  "default": {},
                  "type": "boolean"
                }
              },
              "required": [
                "success"
              ]
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": true,
          "openWorldHint": true
        },
        "_meta": {
          "resource_name": "GitHub_lock_issue_conversation",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/lock_issue_conversation",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_mark_pull_request_ready_for_review",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_mark_pull_request_ready_for_review",
        "title": "mark_pull_request_ready_for_review",
        "description": "Mark a draft pull request as ready for review. Returns the connector's normalized PR snapshot after the transition. Docs: https://docs.github.com/en/graphql/reference/mutations#markpullrequestreadyforreview",
        "inputSchema": {
          "properties": {
            "repository_full_name": {
              "description": "Repository in `owner/name` form, such as `openai/openai`. This maps to GitHub REST `owner` and `repo` path parameters: https://docs.github.com/en/rest/repos/repos#get-a-repository",
              "title": "Repository Full Name",
              "type": "string"
            },
            "pr_number": {
              "description": "Pull request number in the repository.",
              "title": "Pr Number",
              "type": "integer"
            }
          },
          "required": [
            "repository_full_name",
            "pr_number"
          ],
          "title": "mark_pull_request_ready_for_review_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "mark_pull_request_ready_for_review_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "Result",
              "default": {},
              "type": "object",
              "additionalProperties": true
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": true,
          "openWorldHint": true
        },
        "_meta": {
          "resource_name": "GitHub_mark_pull_request_ready_for_review",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/mark_pull_request_ready_for_review",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_merge_pull_request",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_merge_pull_request",
        "title": "merge_pull_request",
        "description": "Merge a pull request immediately. Returns GitHub's merge result payload (`sha`, `merged`, `message`). Docs: https://docs.github.com/en/rest/pulls/pulls?apiVersion=2022-11-28#merge-a-pull-request",
        "inputSchema": {
          "properties": {
            "repository_full_name": {
              "description": "Repository in `owner/name` form, such as `openai/openai`. This maps to GitHub REST `owner` and `repo` path parameters: https://docs.github.com/en/rest/repos/repos#get-a-repository",
              "title": "Repository Full Name",
              "type": "string"
            },
            "pr_number": {
              "description": "Pull request number in the repository.",
              "title": "Pr Number",
              "type": "integer"
            },
            "merge_method": {
              "anyOf": [
                {
                  "enum": [
                    "merge",
                    "squash",
                    "rebase"
                  ],
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Optional merge method.",
              "title": "Merge Method"
            },
            "commit_title": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Optional override for the merge commit title.",
              "title": "Commit Title"
            },
            "commit_message": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Optional override for the merge commit message.",
              "title": "Commit Message"
            },
            "expected_head_sha": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Optional expected head SHA. GitHub rejects the merge if the PR head moved.",
              "title": "Expected Head Sha"
            }
          },
          "required": [
            "repository_full_name",
            "pr_number"
          ],
          "title": "merge_pull_request_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "merge_pull_request_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "MergePullRequestResponse",
              "default": {},
              "type": "object",
              "properties": {
                "sha": {
                  "title": "Sha",
                  "description": "Commit SHA created by the merge, when present.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "merged": {
                  "title": "Merged",
                  "description": "Whether GitHub reports the pull request as merged.",
                  "default": {},
                  "type": "boolean"
                },
                "message": {
                  "title": "Message",
                  "description": "Status message returned by GitHub.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "merged"
              ]
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": true,
          "openWorldHint": true
        },
        "_meta": {
          "resource_name": "GitHub_merge_pull_request",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/merge_pull_request",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_remove_issue_assignees",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_remove_issue_assignees",
        "title": "remove_issue_assignees",
        "description": "Remove assignees from an issue or pull request. Returns a normalized issue snapshot after the mutation. Docs: https://docs.github.com/en/rest/issues/assignees?apiVersion=2022-11-28#remove-assignees-from-an-issue",
        "inputSchema": {
          "properties": {
            "repository_full_name": {
              "description": "Repository in `owner/name` form, such as `openai/openai`. This maps to GitHub REST `owner` and `repo` path parameters: https://docs.github.com/en/rest/repos/repos#get-a-repository",
              "title": "Repository Full Name",
              "type": "string"
            },
            "issue_number": {
              "description": "Issue number in the repository.",
              "title": "Issue Number",
              "type": "integer"
            },
            "assignees": {
              "description": "GitHub usernames to remove from assignees.",
              "items": {
                "type": "string"
              },
              "title": "Assignees",
              "type": "array"
            }
          },
          "required": [
            "repository_full_name",
            "issue_number",
            "assignees"
          ],
          "title": "remove_issue_assignees_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "remove_issue_assignees_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "WriteIssueResponse",
              "default": {},
              "type": "object",
              "properties": {
                "issue": {
                  "title": "Issue",
                  "description": "GitHub issue payload after the write operation.",
                  "default": {},
                  "type": "object",
                  "additionalProperties": true
                },
                "url": {
                  "title": "Url",
                  "description": "Canonical URL for the GitHub issue.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "title": {
                  "title": "Title",
                  "description": "Title of the GitHub issue.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "issue"
              ]
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": true,
          "openWorldHint": true
        },
        "_meta": {
          "resource_name": "GitHub_remove_issue_assignees",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/remove_issue_assignees",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_remove_issue_label",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_remove_issue_label",
        "title": "remove_issue_label",
        "description": "Remove one label from an issue or pull request. Returns a normalized issue snapshot after the mutation. Docs: https://docs.github.com/en/rest/issues/labels?apiVersion=2022-11-28#remove-a-label-from-an-issue",
        "inputSchema": {
          "properties": {
            "repository_full_name": {
              "description": "Repository in `owner/name` form, such as `openai/openai`. This maps to GitHub REST `owner` and `repo` path parameters: https://docs.github.com/en/rest/repos/repos#get-a-repository",
              "title": "Repository Full Name",
              "type": "string"
            },
            "issue_number": {
              "description": "Issue number in the repository.",
              "title": "Issue Number",
              "type": "integer"
            },
            "label": {
              "description": "Single label to remove from the issue or pull request.",
              "title": "Label",
              "type": "string"
            }
          },
          "required": [
            "repository_full_name",
            "issue_number",
            "label"
          ],
          "title": "remove_issue_label_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "remove_issue_label_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "WriteIssueResponse",
              "default": {},
              "type": "object",
              "properties": {
                "issue": {
                  "title": "Issue",
                  "description": "GitHub issue payload after the write operation.",
                  "default": {},
                  "type": "object",
                  "additionalProperties": true
                },
                "url": {
                  "title": "Url",
                  "description": "Canonical URL for the GitHub issue.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "title": {
                  "title": "Title",
                  "description": "Title of the GitHub issue.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "issue"
              ]
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": true,
          "openWorldHint": true
        },
        "_meta": {
          "resource_name": "GitHub_remove_issue_label",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/remove_issue_label",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_remove_pull_request_reviewers",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_remove_pull_request_reviewers",
        "title": "remove_pull_request_reviewers",
        "description": "Remove individual or team reviewer requests from a pull request. Returns the connector's normalized PR snapshot after the mutation. Docs: https://docs.github.com/en/rest/pulls/review-requests?apiVersion=2022-11-28#remove-requested-reviewers-from-a-pull-request",
        "inputSchema": {
          "properties": {
            "repository_full_name": {
              "description": "Repository in `owner/name` form, such as `openai/openai`. This maps to GitHub REST `owner` and `repo` path parameters: https://docs.github.com/en/rest/repos/repos#get-a-repository",
              "title": "Repository Full Name",
              "type": "string"
            },
            "pr_number": {
              "description": "Pull request number in the repository.",
              "title": "Pr Number",
              "type": "integer"
            },
            "reviewers": {
              "anyOf": [
                {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Optional GitHub usernames to remove from review requests.",
              "title": "Reviewers"
            },
            "team_reviewers": {
              "anyOf": [
                {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Optional team slugs to remove from review requests.",
              "title": "Team Reviewers"
            }
          },
          "required": [
            "repository_full_name",
            "pr_number"
          ],
          "title": "remove_pull_request_reviewers_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "remove_pull_request_reviewers_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "Result",
              "default": {},
              "type": "object",
              "additionalProperties": true
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": true,
          "openWorldHint": true
        },
        "_meta": {
          "resource_name": "GitHub_remove_pull_request_reviewers",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/remove_pull_request_reviewers",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_remove_reaction_from_issue_comment",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_remove_reaction_from_issue_comment",
        "title": "remove_reaction_from_issue_comment",
        "description": "Remove a reaction from an issue comment.",
        "inputSchema": {
          "properties": {
            "repo_full_name": {
              "description": "Repository in `owner/name` form, such as `openai/openai`. This maps to GitHub REST `owner` and `repo` path parameters: https://docs.github.com/en/rest/repos/repos#get-a-repository",
              "title": "Repo Full Name",
              "type": "string"
            },
            "comment_id": {
              "description": "Numeric issue or review comment ID.",
              "title": "Comment Id",
              "type": "integer"
            },
            "reaction_id": {
              "description": "Reaction ID to remove.",
              "title": "Reaction Id",
              "type": "integer"
            }
          },
          "required": [
            "repo_full_name",
            "comment_id",
            "reaction_id"
          ],
          "title": "remove_reaction_from_issue_comment_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "remove_reaction_from_issue_comment_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "GithubReactionActionResponse",
              "default": {},
              "type": "object",
              "properties": {
                "success": {
                  "title": "Success",
                  "description": "Whether the reaction action completed successfully.",
                  "default": {},
                  "type": "boolean"
                }
              },
              "required": [
                "success"
              ]
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": true,
          "openWorldHint": true
        },
        "_meta": {
          "resource_name": "GitHub_remove_reaction_from_issue_comment",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/remove_reaction_from_issue_comment",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_remove_reaction_from_pr",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_remove_reaction_from_pr",
        "title": "remove_reaction_from_pr",
        "description": "Remove a reaction from a GitHub pull request.",
        "inputSchema": {
          "properties": {
            "repo_full_name": {
              "description": "Repository in `owner/name` form, such as `openai/openai`. This maps to GitHub REST `owner` and `repo` path parameters: https://docs.github.com/en/rest/repos/repos#get-a-repository",
              "title": "Repo Full Name",
              "type": "string"
            },
            "pr_number": {
              "description": "Pull request number in the repository.",
              "title": "Pr Number",
              "type": "integer"
            },
            "reaction_id": {
              "description": "Reaction ID to remove.",
              "title": "Reaction Id",
              "type": "integer"
            }
          },
          "required": [
            "repo_full_name",
            "pr_number",
            "reaction_id"
          ],
          "title": "remove_reaction_from_pr_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "remove_reaction_from_pr_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "GithubReactionActionResponse",
              "default": {},
              "type": "object",
              "properties": {
                "success": {
                  "title": "Success",
                  "description": "Whether the reaction action completed successfully.",
                  "default": {},
                  "type": "boolean"
                }
              },
              "required": [
                "success"
              ]
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": true,
          "openWorldHint": true
        },
        "_meta": {
          "resource_name": "GitHub_remove_reaction_from_pr",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/remove_reaction_from_pr",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_remove_reaction_from_pr_review_comment",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_remove_reaction_from_pr_review_comment",
        "title": "remove_reaction_from_pr_review_comment",
        "description": "Remove a reaction from a pull request review comment.",
        "inputSchema": {
          "properties": {
            "repo_full_name": {
              "description": "Repository in `owner/name` form, such as `openai/openai`. This maps to GitHub REST `owner` and `repo` path parameters: https://docs.github.com/en/rest/repos/repos#get-a-repository",
              "title": "Repo Full Name",
              "type": "string"
            },
            "comment_id": {
              "description": "Numeric issue or review comment ID.",
              "title": "Comment Id",
              "type": "integer"
            },
            "reaction_id": {
              "description": "Reaction ID to remove.",
              "title": "Reaction Id",
              "type": "integer"
            }
          },
          "required": [
            "repo_full_name",
            "comment_id",
            "reaction_id"
          ],
          "title": "remove_reaction_from_pr_review_comment_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "remove_reaction_from_pr_review_comment_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "GithubReactionActionResponse",
              "default": {},
              "type": "object",
              "properties": {
                "success": {
                  "title": "Success",
                  "description": "Whether the reaction action completed successfully.",
                  "default": {},
                  "type": "boolean"
                }
              },
              "required": [
                "success"
              ]
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": true,
          "openWorldHint": true
        },
        "_meta": {
          "resource_name": "GitHub_remove_reaction_from_pr_review_comment",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/remove_reaction_from_pr_review_comment",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_reply_to_review_comment",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_reply_to_review_comment",
        "title": "reply_to_review_comment",
        "description": "Reply to an inline review comment on a PR (Files changed thread). comment_id must be the ID of the thread’s top-level inline review comment (replies-to-replies are not supported by the API)",
        "inputSchema": {
          "properties": {
            "repo_full_name": {
              "description": "Repository in `owner/name` form, such as `openai/openai`. This maps to GitHub REST `owner` and `repo` path parameters: https://docs.github.com/en/rest/repos/repos#get-a-repository",
              "title": "Repo Full Name",
              "type": "string"
            },
            "pr_number": {
              "description": "Pull request number in the repository.",
              "title": "Pr Number",
              "type": "integer"
            },
            "comment_id": {
              "description": "Numeric issue or review comment ID.",
              "title": "Comment Id",
              "type": "integer"
            },
            "comment": {
              "description": "Reply text to post into the review thread.",
              "title": "Comment",
              "type": "string"
            }
          },
          "required": [
            "repo_full_name",
            "pr_number",
            "comment_id",
            "comment"
          ],
          "title": "reply_to_review_comment_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "reply_to_review_comment_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "GithubCommentResponse",
              "default": {},
              "type": "object",
              "properties": {
                "id": {
                  "title": "Id",
                  "description": "Identifier of the created GitHub comment.",
                  "default": {},
                  "type": "integer"
                }
              },
              "required": [
                "id"
              ]
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": true,
          "openWorldHint": true
        },
        "_meta": {
          "resource_name": "GitHub_reply_to_review_comment",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/reply_to_review_comment",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_request_pull_request_reviewers",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_request_pull_request_reviewers",
        "title": "request_pull_request_reviewers",
        "description": "Request individual or team reviewers on a pull request. Returns the connector's normalized PR snapshot after the review request mutation. Docs: https://docs.github.com/en/rest/pulls/review-requests?apiVersion=2022-11-28#request-reviewers-for-a-pull-request",
        "inputSchema": {
          "properties": {
            "repository_full_name": {
              "description": "Repository in `owner/name` form, such as `openai/openai`. This maps to GitHub REST `owner` and `repo` path parameters: https://docs.github.com/en/rest/repos/repos#get-a-repository",
              "title": "Repository Full Name",
              "type": "string"
            },
            "pr_number": {
              "description": "Pull request number in the repository.",
              "title": "Pr Number",
              "type": "integer"
            },
            "reviewers": {
              "anyOf": [
                {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Optional GitHub usernames to request for review.",
              "title": "Reviewers"
            },
            "team_reviewers": {
              "anyOf": [
                {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Optional team slugs to request for review.",
              "title": "Team Reviewers"
            }
          },
          "required": [
            "repository_full_name",
            "pr_number"
          ],
          "title": "request_pull_request_reviewers_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "request_pull_request_reviewers_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "Result",
              "default": {},
              "type": "object",
              "additionalProperties": true
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": true,
          "openWorldHint": true
        },
        "_meta": {
          "resource_name": "GitHub_request_pull_request_reviewers",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/request_pull_request_reviewers",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_rerun_failed_workflow_run_jobs",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_rerun_failed_workflow_run_jobs",
        "title": "rerun_failed_workflow_run_jobs",
        "description": "Re-run all failed jobs in a GitHub Actions workflow run. Use this to retry only the failed jobs from a workflow run, instead of starting a full new attempt for successful jobs too. The linked GitHub app or token must have GitHub Actions write permission for the repository. Docs: https://docs.github.com/en/rest/actions/workflow-runs?apiVersion=2022-11-28#re-run-failed-jobs-from-a-workflow-run",
        "inputSchema": {
          "properties": {
            "repo_full_name": {
              "description": "Repository in `owner/name` form, such as `openai/openai`. This maps to GitHub REST `owner` and `repo` path parameters: https://docs.github.com/en/rest/repos/repos#get-a-repository",
              "title": "Repo Full Name",
              "type": "string"
            },
            "run_id": {
              "description": "GitHub Actions workflow run ID.",
              "title": "Run Id",
              "type": "integer"
            }
          },
          "required": [
            "repo_full_name",
            "run_id"
          ],
          "title": "rerun_failed_workflow_run_jobs_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "rerun_failed_workflow_run_jobs_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "GithubSuccessResponse",
              "default": {},
              "type": "object",
              "properties": {
                "success": {
                  "title": "Success",
                  "description": "Whether the GitHub action completed successfully.",
                  "default": {},
                  "type": "boolean"
                }
              },
              "required": [
                "success"
              ]
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": true,
          "openWorldHint": true
        },
        "_meta": {
          "resource_name": "GitHub_rerun_failed_workflow_run_jobs",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/rerun_failed_workflow_run_jobs",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_rerun_workflow_job",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_rerun_workflow_job",
        "title": "rerun_workflow_job",
        "description": "Re-run one GitHub Actions workflow job. Use this when a specific failed or cancelled job should be retried without re-running every failed job in the workflow run. The linked GitHub app or token must have GitHub Actions write permission for the repository. Docs: https://docs.github.com/en/rest/actions/workflow-runs?apiVersion=2022-11-28#re-run-a-job-from-a-workflow-run",
        "inputSchema": {
          "properties": {
            "repo_full_name": {
              "description": "Repository in `owner/name` form, such as `openai/openai`. This maps to GitHub REST `owner` and `repo` path parameters: https://docs.github.com/en/rest/repos/repos#get-a-repository",
              "title": "Repo Full Name",
              "type": "string"
            },
            "job_id": {
              "description": "GitHub Actions workflow job ID to re-run.",
              "title": "Job Id",
              "type": "integer"
            }
          },
          "required": [
            "repo_full_name",
            "job_id"
          ],
          "title": "rerun_workflow_job_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "rerun_workflow_job_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "GithubSuccessResponse",
              "default": {},
              "type": "object",
              "properties": {
                "success": {
                  "title": "Success",
                  "description": "Whether the GitHub action completed successfully.",
                  "default": {},
                  "type": "boolean"
                }
              },
              "required": [
                "success"
              ]
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": true,
          "openWorldHint": true
        },
        "_meta": {
          "resource_name": "GitHub_rerun_workflow_job",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/rerun_workflow_job",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_resolve_review_thread",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_resolve_review_thread",
        "title": "resolve_review_thread",
        "description": "Resolve an inline pull request review thread. Docs: https://docs.github.com/en/graphql/reference/mutations#resolvereviewthread",
        "inputSchema": {
          "properties": {
            "thread_id": {
              "description": "GraphQL review thread node ID.",
              "title": "Thread Id",
              "type": "string"
            }
          },
          "required": [
            "thread_id"
          ],
          "title": "resolve_review_thread_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "resolve_review_thread_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "GithubReviewThreadResponse",
              "default": {},
              "type": "object",
              "properties": {
                "review_thread": {
                  "title": "Review Thread",
                  "description": "Single GitHub review thread payload.",
                  "default": {},
                  "type": "object",
                  "additionalProperties": true
                }
              },
              "required": [
                "review_thread"
              ]
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": true,
          "openWorldHint": true
        },
        "_meta": {
          "resource_name": "GitHub_resolve_review_thread",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/resolve_review_thread",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_search",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_search",
        "title": "search",
        "description": "Search files within a specific GitHub repository. Provide a plain string query, avoid GitHub query flags such as ``is:pr``. Include keywords that match file names, functions, or error messages. ``repository_name`` or ``org`` can narrow the search scope. Example: ``query=\"tokenizer bug\" repository_name=\"tiktoken\"``. ``topn`` is the number of results to return. No results are returned if the query is empty.",
        "inputSchema": {
          "properties": {
            "query": {
              "description": "Search query string.",
              "title": "Query",
              "type": "string"
            },
            "topn": {
              "default": 20,
              "description": "Maximum number of results to return.",
              "title": "Topn",
              "type": "integer"
            },
            "repository_name": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Repository or repositories to search within. Use this to narrow the search scope.",
              "title": "Repository Name"
            },
            "org": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Optional GitHub organization to scope the search.",
              "title": "Org"
            }
          },
          "required": [
            "query"
          ],
          "title": "search_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "search_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "SearchResponse",
              "default": {},
              "type": "object",
              "properties": {
                "results": {
                  "title": "Results",
                  "description": "GitHub search results matching the query.",
                  "default": {},
                  "type": "array",
                  "items": {
                    "default": {},
                    "type": "object",
                    "additionalProperties": true
                  }
                }
              },
              "required": [
                "results"
              ]
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "GitHub_search",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/search",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_search_branches",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_search_branches",
        "title": "search_branches",
        "description": "Search GitHub branches within a repository.",
        "inputSchema": {
          "properties": {
            "owner": {
              "description": "GitHub repository owner or organization name.",
              "title": "Owner",
              "type": "string"
            },
            "repo_name": {
              "description": "Repository name without the owner prefix.",
              "title": "Repo Name",
              "type": "string"
            },
            "query": {
              "description": "Search query string.",
              "title": "Query",
              "type": "string"
            },
            "page_size": {
              "default": 20,
              "description": "Maximum number of results to return.",
              "title": "Page Size",
              "type": "integer"
            },
            "cursor": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Opaque cursor from a previous branch search.",
              "title": "Cursor"
            }
          },
          "required": [
            "owner",
            "repo_name",
            "query"
          ],
          "title": "search_branches_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "search_branches_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "Result",
              "default": {},
              "type": "object",
              "additionalProperties": true
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "GitHub_search_branches",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/search_branches",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_search_commits",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_search_commits",
        "title": "search_commits",
        "description": "Search GitHub commits across one or more repositories.",
        "inputSchema": {
          "properties": {
            "query": {
              "description": "Search query string.",
              "title": "Query",
              "type": "string"
            },
            "repository_full_name": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Repository or repositories in `owner/name` form to search within.",
              "title": "Repository Full Name"
            },
            "repository_id": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "items": {
                    "type": "integer"
                  },
                  "type": "array"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Repository ID or IDs to search within.",
              "title": "Repository Id"
            },
            "repository_url": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Repository URL or URLs to search within.",
              "title": "Repository Url"
            },
            "org": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Optional GitHub organization to scope the search.",
              "title": "Org"
            },
            "topn": {
              "default": 20,
              "description": "Maximum number of results to return.",
              "title": "Topn",
              "type": "integer"
            },
            "sort": {
              "anyOf": [
                {
                  "enum": [
                    "best-match",
                    "author-date",
                    "committer-date"
                  ],
                  "title": "GithubCommitSort",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Optional commit sort order."
            },
            "order": {
              "anyOf": [
                {
                  "enum": [
                    "desc",
                    "asc"
                  ],
                  "title": "GithubSearchResultOrder",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Optional result ordering."
            }
          },
          "required": [
            "query"
          ],
          "title": "search_commits_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "search_commits_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "SearchCommitsResponse",
              "default": {},
              "type": "object",
              "properties": {
                "commits": {
                  "title": "Commits",
                  "description": "Commits matching the GitHub search query.",
                  "default": {},
                  "type": "array",
                  "items": {
                    "default": {},
                    "type": "object",
                    "additionalProperties": true
                  }
                }
              },
              "required": [
                "commits"
              ]
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "GitHub_search_commits",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/search_commits",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_search_installed_repositories_streaming",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_search_installed_repositories_streaming",
        "title": "search_installed_repositories_streaming",
        "description": "Search for a repository (not a file) by name or description. To search for a file, use `search`.",
        "inputSchema": {
          "properties": {
            "query": {
              "description": "Search query string.",
              "title": "Query",
              "type": "string"
            },
            "limit": {
              "default": 10,
              "description": "Maximum number of results to return.",
              "title": "Limit",
              "type": "integer"
            },
            "next_token": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Opaque streaming cursor from a previous search.",
              "title": "Next Token"
            },
            "option_enrich_code_search_index_availability": {
              "default": true,
              "description": "Include search index availability metadata in the response.",
              "title": "Option Enrich Code Search Index Availability",
              "type": "boolean"
            },
            "option_enrich_code_search_index_request_concurrency_limit": {
              "default": 10,
              "description": "Maximum concurrent requests when enriching search index availability.",
              "title": "Option Enrich Code Search Index Request Concurrency Limit",
              "type": "integer"
            }
          },
          "required": [
            "query"
          ],
          "title": "search_installed_repositories_streaming_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "search_installed_repositories_streaming_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "Result",
              "default": {},
              "type": "object",
              "additionalProperties": true
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "GitHub_search_installed_repositories_streaming",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/search_installed_repositories_streaming",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_search_installed_repositories_v2",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_search_installed_repositories_v2",
        "title": "search_installed_repositories_v2",
        "description": "Search repositories within the user's installations using GitHub search.",
        "inputSchema": {
          "properties": {
            "query": {
              "description": "Search query string.",
              "title": "Query",
              "type": "string"
            },
            "limit": {
              "default": 10,
              "description": "Maximum number of results to return.",
              "title": "Limit",
              "type": "integer"
            },
            "installation_ids": {
              "anyOf": [
                {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Optional GitHub App installation IDs to filter by.",
              "title": "Installation Ids"
            },
            "page": {
              "default": 1,
              "description": "1-based page number for pagination.",
              "title": "Page",
              "type": "integer"
            },
            "include_search_index_status": {
              "default": false,
              "description": "Include code search index availability metadata for each repo.",
              "title": "Include Search Index Status",
              "type": "boolean"
            }
          },
          "required": [
            "query"
          ],
          "title": "search_installed_repositories_v2_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "search_installed_repositories_v2_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "SearchRepositoriesResponse",
              "default": {},
              "type": "object",
              "properties": {
                "repositories": {
                  "title": "Repositories",
                  "description": "Repositories matching the GitHub search query.",
                  "default": {},
                  "type": "array",
                  "items": {
                    "default": {},
                    "type": "object",
                    "additionalProperties": true
                  }
                }
              },
              "required": [
                "repositories"
              ]
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "GitHub_search_installed_repositories_v2",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/search_installed_repositories_v2",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_search_issues",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_search_issues",
        "title": "search_issues",
        "description": "Search GitHub issues.",
        "inputSchema": {
          "properties": {
            "query": {
              "description": "Search query string.",
              "title": "Query",
              "type": "string"
            },
            "repository_full_name": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Repository or repositories in `owner/name` form to search within.",
              "title": "Repository Full Name"
            },
            "repository_id": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "items": {
                    "type": "integer"
                  },
                  "type": "array"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Repository ID or IDs to search within.",
              "title": "Repository Id"
            },
            "repository_url": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Repository URL or URLs to search within.",
              "title": "Repository Url"
            },
            "topn": {
              "default": 20,
              "description": "Maximum number of results to return.",
              "title": "Topn",
              "type": "integer"
            },
            "sort": {
              "anyOf": [
                {
                  "enum": [
                    "best-match",
                    "created",
                    "updated",
                    "comments",
                    "reactions",
                    "interactions"
                  ],
                  "title": "GithubIssueSort",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Optional issue sort order."
            },
            "order": {
              "anyOf": [
                {
                  "enum": [
                    "desc",
                    "asc"
                  ],
                  "title": "GithubSearchResultOrder",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Optional result ordering."
            },
            "state": {
              "anyOf": [
                {
                  "enum": [
                    "open",
                    "closed"
                  ],
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Optional issue state filter.",
              "title": "State"
            }
          },
          "required": [
            "query"
          ],
          "title": "search_issues_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "search_issues_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "SearchIssuesResponse",
              "default": {},
              "type": "object",
              "properties": {
                "issues": {
                  "title": "Issues",
                  "description": "Issues matching the GitHub search query.",
                  "default": {},
                  "type": "array",
                  "items": {
                    "default": {},
                    "type": "object",
                    "additionalProperties": true
                  }
                }
              },
              "required": [
                "issues"
              ]
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "GitHub_search_issues",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/search_issues",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_search_prs",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_search_prs",
        "title": "search_prs",
        "description": "Search GitHub pull requests.",
        "inputSchema": {
          "properties": {
            "query": {
              "description": "Search query string.",
              "title": "Query",
              "type": "string"
            },
            "repository_full_name": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Repository or repositories in `owner/name` form to search within.",
              "title": "Repository Full Name"
            },
            "repository_id": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "items": {
                    "type": "integer"
                  },
                  "type": "array"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Repository ID or IDs to search within.",
              "title": "Repository Id"
            },
            "repository_url": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Repository URL or URLs to search within.",
              "title": "Repository Url"
            },
            "org": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Optional GitHub organization to scope the search.",
              "title": "Org"
            },
            "topn": {
              "default": 20,
              "description": "Maximum number of results to return.",
              "title": "Topn",
              "type": "integer"
            },
            "sort": {
              "anyOf": [
                {
                  "enum": [
                    "best-match",
                    "created",
                    "updated",
                    "comments",
                    "reactions",
                    "interactions"
                  ],
                  "title": "GithubIssueSort",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Optional pull request sort order."
            },
            "order": {
              "anyOf": [
                {
                  "enum": [
                    "desc",
                    "asc"
                  ],
                  "title": "GithubSearchResultOrder",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Optional result ordering."
            },
            "state": {
              "anyOf": [
                {
                  "enum": [
                    "open",
                    "closed",
                    "all"
                  ],
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Optional pull request state filter: open, closed, or all.",
              "title": "State"
            }
          },
          "required": [
            "query"
          ],
          "title": "search_prs_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "search_prs_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "SearchIssuesResponse",
              "default": {},
              "type": "object",
              "properties": {
                "issues": {
                  "title": "Issues",
                  "description": "Issues matching the GitHub search query.",
                  "default": {},
                  "type": "array",
                  "items": {
                    "default": {},
                    "type": "object",
                    "additionalProperties": true
                  }
                }
              },
              "required": [
                "issues"
              ]
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "GitHub_search_prs",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/search_prs",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_search_repositories",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_search_repositories",
        "title": "search_repositories",
        "description": "Search for a repository (not a file) by name or description. To search for a file, use `search`.",
        "inputSchema": {
          "properties": {
            "query": {
              "description": "Search query string.",
              "title": "Query",
              "type": "string"
            },
            "per_page": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Maximum number of results to return.",
              "title": "Per Page"
            },
            "page": {
              "default": 1,
              "description": "1-based page number for pagination.",
              "title": "Page",
              "type": "integer"
            },
            "org": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Optional GitHub organization to scope the search.",
              "title": "Org"
            },
            "topn": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Alias for `per_page` used by some callers.",
              "title": "Topn"
            }
          },
          "required": [
            "query"
          ],
          "title": "search_repositories_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "search_repositories_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "SearchRepositoriesResponse",
              "default": {},
              "type": "object",
              "properties": {
                "repositories": {
                  "title": "Repositories",
                  "description": "Repositories matching the GitHub search query.",
                  "default": {},
                  "type": "array",
                  "items": {
                    "default": {},
                    "type": "object",
                    "additionalProperties": true
                  }
                }
              },
              "required": [
                "repositories"
              ]
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "GitHub_search_repositories",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/search_repositories",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_unlock_issue_conversation",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_unlock_issue_conversation",
        "title": "unlock_issue_conversation",
        "description": "Unlock an issue or pull request conversation. Docs: https://docs.github.com/en/rest/issues/issues?apiVersion=2022-11-28#unlock-an-issue",
        "inputSchema": {
          "properties": {
            "repository_full_name": {
              "description": "Repository in `owner/name` form, such as `openai/openai`. This maps to GitHub REST `owner` and `repo` path parameters: https://docs.github.com/en/rest/repos/repos#get-a-repository",
              "title": "Repository Full Name",
              "type": "string"
            },
            "issue_number": {
              "description": "Issue number in the repository.",
              "title": "Issue Number",
              "type": "integer"
            }
          },
          "required": [
            "repository_full_name",
            "issue_number"
          ],
          "title": "unlock_issue_conversation_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "unlock_issue_conversation_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "GithubSuccessResponse",
              "default": {},
              "type": "object",
              "properties": {
                "success": {
                  "title": "Success",
                  "description": "Whether the GitHub action completed successfully.",
                  "default": {},
                  "type": "boolean"
                }
              },
              "required": [
                "success"
              ]
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": true,
          "openWorldHint": true
        },
        "_meta": {
          "resource_name": "GitHub_unlock_issue_conversation",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/unlock_issue_conversation",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_unresolve_review_thread",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_unresolve_review_thread",
        "title": "unresolve_review_thread",
        "description": "Mark an inline pull request review thread as unresolved. Docs: https://docs.github.com/en/graphql/reference/mutations#unresolvereviewthread",
        "inputSchema": {
          "properties": {
            "thread_id": {
              "description": "GraphQL review thread node ID.",
              "title": "Thread Id",
              "type": "string"
            }
          },
          "required": [
            "thread_id"
          ],
          "title": "unresolve_review_thread_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "unresolve_review_thread_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "GithubReviewThreadResponse",
              "default": {},
              "type": "object",
              "properties": {
                "review_thread": {
                  "title": "Review Thread",
                  "description": "Single GitHub review thread payload.",
                  "default": {},
                  "type": "object",
                  "additionalProperties": true
                }
              },
              "required": [
                "review_thread"
              ]
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": true,
          "openWorldHint": true
        },
        "_meta": {
          "resource_name": "GitHub_unresolve_review_thread",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/unresolve_review_thread",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_update_file",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_update_file",
        "title": "update_file",
        "description": "Replace a UTF-8 text file through GitHub's contents API. Returns only the resulting commit SHA. Do not run update/delete writes for the same path in parallel. Docs: https://docs.github.com/en/rest/repos/contents?apiVersion=2022-11-28#create-or-update-file-contents",
        "inputSchema": {
          "properties": {
            "repository_full_name": {
              "description": "Repository in `owner/name` form, such as `openai/openai`. This maps to GitHub REST `owner` and `repo` path parameters: https://docs.github.com/en/rest/repos/repos#get-a-repository",
              "title": "Repository Full Name",
              "type": "string"
            },
            "path": {
              "description": "Path for the existing file within the repository.",
              "title": "Path",
              "type": "string"
            },
            "content": {
              "description": "Complete replacement UTF-8 text contents. This wrapper base64-encodes the text for GitHub's contents API.",
              "title": "Content",
              "type": "string"
            },
            "message": {
              "description": "Commit message for the file update.",
              "title": "Message",
              "type": "string"
            },
            "sha": {
              "description": "Current blob SHA of the file being updated, usually from `fetch_file`.",
              "title": "Sha",
              "type": "string"
            },
            "branch": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Optional branch to update. Leave null to use the default branch.",
              "title": "Branch"
            }
          },
          "required": [
            "repository_full_name",
            "path",
            "content",
            "message",
            "sha"
          ],
          "title": "update_file_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "update_file_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "Result",
              "default": {},
              "type": "object",
              "additionalProperties": true
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": true,
          "openWorldHint": true
        },
        "_meta": {
          "resource_name": "GitHub_update_file",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/update_file",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_update_issue",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_update_issue",
        "title": "update_issue",
        "description": "Update a GitHub issue, including title/body, state, labels, assignees, or milestone. Returns a normalized issue snapshot after the patch. Docs: https://docs.github.com/en/rest/issues/issues?apiVersion=2022-11-28#update-an-issue",
        "inputSchema": {
          "properties": {
            "repository_full_name": {
              "description": "Repository in `owner/name` form, such as `openai/openai`. This maps to GitHub REST `owner` and `repo` path parameters: https://docs.github.com/en/rest/repos/repos#get-a-repository",
              "title": "Repository Full Name",
              "type": "string"
            },
            "issue_number": {
              "description": "Issue number in the repository.",
              "title": "Issue Number",
              "type": "integer"
            },
            "title": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Optional replacement issue title.",
              "title": "Title"
            },
            "body": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Optional replacement Markdown body.",
              "title": "Body"
            },
            "state": {
              "anyOf": [
                {
                  "enum": [
                    "open",
                    "closed"
                  ],
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Optional issue state. Use closed to close or open to reopen.",
              "title": "State"
            },
            "state_reason": {
              "anyOf": [
                {
                  "enum": [
                    "completed",
                    "not_planned",
                    "duplicate",
                    "reopened"
                  ],
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Optional state reason. GitHub uses this only with state changes. This wrapper supports `completed`, `not_planned`, `duplicate`, and `reopened`.",
              "title": "State Reason"
            },
            "assignees": {
              "anyOf": [
                {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Optional full assignee list to set on the issue. This replaces the assignee set rather than adding to it.",
              "title": "Assignees"
            },
            "labels": {
              "anyOf": [
                {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Optional full label list to set on the issue. This replaces the label set rather than adding to it.",
              "title": "Labels"
            },
            "milestone": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Optional milestone number to set on the issue. This wrapper does not expose an explicit way to clear an existing milestone.",
              "title": "Milestone"
            }
          },
          "required": [
            "repository_full_name",
            "issue_number"
          ],
          "title": "update_issue_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "update_issue_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "WriteIssueResponse",
              "default": {},
              "type": "object",
              "properties": {
                "issue": {
                  "title": "Issue",
                  "description": "GitHub issue payload after the write operation.",
                  "default": {},
                  "type": "object",
                  "additionalProperties": true
                },
                "url": {
                  "title": "Url",
                  "description": "Canonical URL for the GitHub issue.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "title": {
                  "title": "Title",
                  "description": "Title of the GitHub issue.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "issue"
              ]
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": true,
          "openWorldHint": true
        },
        "_meta": {
          "resource_name": "GitHub_update_issue",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/update_issue",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_update_issue_comment",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_update_issue_comment",
        "title": "update_issue_comment",
        "description": "Update a top-level PR Conversation comment (Issue comment).",
        "inputSchema": {
          "properties": {
            "repo_full_name": {
              "description": "Repository in `owner/name` form, such as `openai/openai`. This maps to GitHub REST `owner` and `repo` path parameters: https://docs.github.com/en/rest/repos/repos#get-a-repository",
              "title": "Repo Full Name",
              "type": "string"
            },
            "comment_id": {
              "description": "Numeric issue or review comment ID.",
              "title": "Comment Id",
              "type": "integer"
            },
            "comment": {
              "description": "Replacement comment body.",
              "title": "Comment",
              "type": "string"
            }
          },
          "required": [
            "repo_full_name",
            "comment_id",
            "comment"
          ],
          "title": "update_issue_comment_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "update_issue_comment_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "GithubCommentResponse",
              "default": {},
              "type": "object",
              "properties": {
                "id": {
                  "title": "Id",
                  "description": "Identifier of the created GitHub comment.",
                  "default": {},
                  "type": "integer"
                }
              },
              "required": [
                "id"
              ]
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": true,
          "openWorldHint": true
        },
        "_meta": {
          "resource_name": "GitHub_update_issue_comment",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/update_issue_comment",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_update_pull_request",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_update_pull_request",
        "title": "update_pull_request",
        "description": "Update PR metadata, base branch, or open/closed state. Returns the connector's normalized PR snapshot. Docs: https://docs.github.com/en/rest/pulls/pulls?apiVersion=2022-11-28#update-a-pull-request",
        "inputSchema": {
          "properties": {
            "repository_full_name": {
              "description": "Repository in `owner/name` form, such as `openai/openai`. This maps to GitHub REST `owner` and `repo` path parameters: https://docs.github.com/en/rest/repos/repos#get-a-repository",
              "title": "Repository Full Name",
              "type": "string"
            },
            "pr_number": {
              "description": "Pull request number in the repository.",
              "title": "Pr Number",
              "type": "integer"
            },
            "title": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Optional replacement pull request title.",
              "title": "Title"
            },
            "body": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Optional replacement pull request body.",
              "title": "Body"
            },
            "state": {
              "anyOf": [
                {
                  "enum": [
                    "open",
                    "closed"
                  ],
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Optional pull request state. Use closed to close or open to reopen.",
              "title": "State"
            },
            "base_branch": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Optional new base branch to retarget the pull request onto.",
              "title": "Base Branch"
            },
            "maintainer_can_modify": {
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Whether maintainers may push commits to the head branch.",
              "title": "Maintainer Can Modify"
            }
          },
          "required": [
            "repository_full_name",
            "pr_number"
          ],
          "title": "update_pull_request_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "update_pull_request_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "Result",
              "default": {},
              "type": "object",
              "additionalProperties": true
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": true,
          "openWorldHint": true
        },
        "_meta": {
          "resource_name": "GitHub_update_pull_request",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/update_pull_request",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_update_ref",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_update_ref",
        "title": "update_ref",
        "description": "Move branch ref to the given commit SHA.",
        "inputSchema": {
          "properties": {
            "repository_full_name": {
              "description": "Repository in `owner/name` form, such as `openai/openai`. This maps to GitHub REST `owner` and `repo` path parameters: https://docs.github.com/en/rest/repos/repos#get-a-repository",
              "title": "Repository Full Name",
              "type": "string"
            },
            "branch_name": {
              "description": "Branch name to create or update.",
              "title": "Branch Name",
              "type": "string"
            },
            "sha": {
              "description": "Commit SHA.",
              "title": "Sha",
              "type": "string"
            },
            "force": {
              "default": false,
              "description": "Force the ref update even if it is not a fast-forward.",
              "title": "Force",
              "type": "boolean"
            }
          },
          "required": [
            "repository_full_name",
            "branch_name",
            "sha"
          ],
          "title": "update_ref_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "update_ref_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "Result",
              "default": {},
              "type": "object",
              "additionalProperties": true
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": true,
          "openWorldHint": true
        },
        "_meta": {
          "resource_name": "GitHub_update_ref",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/update_ref",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_update_review_comment",
      "tool_namespace": "codex_apps__github",
      "namespace_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
      "tool": {
        "name": "github_update_review_comment",
        "title": "update_review_comment",
        "description": "Update an inline review comment (or a reply) on a PR.",
        "inputSchema": {
          "properties": {
            "repo_full_name": {
              "description": "Repository in `owner/name` form, such as `openai/openai`. This maps to GitHub REST `owner` and `repo` path parameters: https://docs.github.com/en/rest/repos/repos#get-a-repository",
              "title": "Repo Full Name",
              "type": "string"
            },
            "comment_id": {
              "description": "Numeric issue or review comment ID.",
              "title": "Comment Id",
              "type": "integer"
            },
            "comment": {
              "description": "Replacement inline review comment body.",
              "title": "Comment",
              "type": "string"
            }
          },
          "required": [
            "repo_full_name",
            "comment_id",
            "comment"
          ],
          "title": "update_review_comment_input",
          "type": "object"
        },
        "outputSchema": {
          "title": "update_review_comment_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "GithubCommentResponse",
              "default": {},
              "type": "object",
              "properties": {
                "id": {
                  "title": "Id",
                  "description": "Identifier of the created GitHub comment.",
                  "default": {},
                  "type": "integer"
                }
              },
              "required": [
                "id"
              ]
            }
          },
          "required": [
            "result"
          ]
        },
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": true,
          "openWorldHint": true
        },
        "_meta": {
          "resource_name": "GitHub_update_review_comment",
          "_codex_apps": {
            "resource_uri": "/connector_76869538009648d5b282a4bb21c3d157/link_6999c8255070819198bd233870218f6b/update_review_comment",
            "contains_mcp_source": false
          },
          "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
          "connector_name": "GitHub",
          "connector_description": "Access repositories, issues, and pull requests. Required for some features such as Codex",
          "link_id": "link_6999c8255070819198bd233870218f6b"
        }
      },
      "connector_id": "connector_76869538009648d5b282a4bb21c3d157",
      "connector_name": "GitHub",
      "plugin_display_names": []
    }
  ]
}