{
  "schema_version": 3,
  "tools": [
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_create_site",
      "tool_namespace": "codex_apps__sites",
      "namespace_description": "Build and deploy websites with Sites.",
      "tool": {
        "name": "sites_create_site",
        "title": "create_site",
        "description": "Create a site only when .openai/hosting.json has no project_id. If it has one, reuse that site. Never call this tool more than once for the same local site. This tool does not create local source. Immediately persist the response's id unchanged as project_id in .openai/hosting.json. The response includes a short-lived source repository credential that can be reused for pushes until it expires. Use per-command Git authentication; never expose or persist its token.",
        "inputSchema": {
          "properties": {
            "title": {
              "description": "User-facing title for the site.",
              "title": "Title",
              "type": "string"
            },
            "slug": {
              "description": "Unique URL slug for the site. Use at least 5 characters, starting with a lowercase ASCII letter and containing only lowercase ASCII letters, digits, and single hyphens. Do not use leading, trailing, or consecutive hyphens, a reserved Sites slug, or a slug already used by another site.",
              "title": "Slug",
              "type": "string"
            },
            "description": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Optional user-facing description of the site.",
              "title": "Description"
            }
          },
          "required": [
            "title",
            "slug"
          ],
          "title": "create_site_input",
          "type": "object",
          "additionalProperties": false
        },
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "Sites_create_site",
          "_codex_apps": {
            "resource_uri": "/connector_20205bf7d4e99a89d7154bb849718324/implicit_link::connector_20205bf7d4e99a89d7154bb849718324/create_site",
            "contains_mcp_source": false
          },
          "connector_id": "connector_20205bf7d4e99a89d7154bb849718324",
          "connector_name": "Sites",
          "connector_description": "Build and deploy websites with Sites.",
          "link_id": "implicit_link::connector_20205bf7d4e99a89d7154bb849718324",
          "link_is_implicit": true
        }
      },
      "connector_id": "connector_20205bf7d4e99a89d7154bb849718324",
      "connector_name": "Sites",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_create_source_repository_write_credential",
      "tool_namespace": "codex_apps__sites",
      "namespace_description": "Build and deploy websites with Sites.",
      "tool": {
        "name": "sites_create_source_repository_write_credential",
        "title": "create_source_repository_write_credential",
        "description": "Create a short-lived source repository write credential when the credential returned by create_site is no longer usable. Use it to push the source state later referenced by commit_sha. The credential can be reused until it expires; use per-command Git authentication. Never expose or persist its token.",
        "inputSchema": {
          "properties": {
            "project_id": {
              "description": "Exact opaque site project ID. Copy it verbatim from .openai/hosting.json's project_id or the id field returned by create_site, list_sites, or get_site. Never invent, modify, or substitute another identifier.",
              "title": "Project Id",
              "type": "string"
            }
          },
          "required": [
            "project_id"
          ],
          "title": "create_source_repository_write_credential_input",
          "type": "object",
          "additionalProperties": false
        },
        "outputSchema": {
          "title": "create_source_repository_write_credential_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "AppgardenSourceRepositoryCredentialResponse",
              "default": {},
              "type": "object",
              "properties": {
                "provider": {
                  "title": "Provider",
                  "description": "Source repository provider.",
                  "default": {},
                  "type": "string"
                },
                "app_repository_id": {
                  "title": "App Repository Id",
                  "description": "AppGen AppRepository id.",
                  "default": {},
                  "type": "string"
                },
                "repository": {
                  "title": "Repository",
                  "description": "Provider repository name bound to the AppGen project.",
                  "default": {},
                  "type": "string"
                },
                "branch": {
                  "title": "Branch",
                  "description": "Default branch the client should push.",
                  "default": {},
                  "type": "string"
                },
                "remote_url": {
                  "title": "Remote Url",
                  "description": "Git remote URL without embedded credentials.",
                  "default": {},
                  "type": "string"
                },
                "token": {
                  "title": "Token",
                  "description": "Short-lived repo-scoped Git token.",
                  "default": {},
                  "type": "string"
                },
                "token_expires_at": {
                  "title": "Token Expires At",
                  "description": "Token expiration timestamp when provided.",
                  "default": {},
                  "type": "string"
                },
                "auth_mode": {
                  "title": "Auth Mode",
                  "description": "Git authentication mode for the token.",
                  "default": {},
                  "type": "string"
                }
              },
              "required": [
                "provider",
                "app_repository_id",
                "repository",
                "branch",
                "remote_url",
                "token",
                "token_expires_at",
                "auth_mode"
              ],
              "additionalProperties": false
            }
          },
          "required": [
            "result"
          ],
          "additionalProperties": false
        },
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "Sites_create_source_repository_write_credential",
          "_codex_apps": {
            "resource_uri": "/connector_20205bf7d4e99a89d7154bb849718324/implicit_link::connector_20205bf7d4e99a89d7154bb849718324/create_source_repository_write_credential",
            "contains_mcp_source": false
          },
          "connector_id": "connector_20205bf7d4e99a89d7154bb849718324",
          "connector_name": "Sites",
          "connector_description": "Build and deploy websites with Sites.",
          "link_id": "implicit_link::connector_20205bf7d4e99a89d7154bb849718324",
          "link_is_implicit": true
        }
      },
      "connector_id": "connector_20205bf7d4e99a89d7154bb849718324",
      "connector_name": "Sites",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_deploy_private_site_version",
      "tool_namespace": "codex_apps__sites",
      "namespace_description": "Build and deploy websites with Sites.",
      "tool": {
        "name": "sites_deploy_private_site_version",
        "title": "deploy_private_site_version",
        "description": "Deploy a saved site version to production only when verified owner-only access makes the current caller the sole explicitly allowed viewer and allows no groups. This tool fails without starting a deployment when the site is shared, public, or cannot be verified as owner-only. In those cases, ask the user to approve deployment before using deploy_site_version. Every returned Sites deployment URL is a production URL. If the initial state is non-terminal or the user asks for progress, use get_deployment_status.",
        "inputSchema": {
          "properties": {
            "project_id": {
              "description": "Exact opaque site project ID. Copy it verbatim from .openai/hosting.json's project_id or the id field returned by create_site, list_sites, or get_site. Never invent, modify, or substitute another identifier.",
              "title": "Project Id",
              "type": "string"
            },
            "version_id": {
              "description": "Exact opaque saved version ID returned as id by save_site_version, list_site_versions, or get_site_version. Copy it verbatim as version_id; never substitute a project or deployment ID.",
              "title": "Version Id",
              "type": "string"
            }
          },
          "required": [
            "project_id",
            "version_id"
          ],
          "title": "deploy_private_site_version_input",
          "type": "object",
          "additionalProperties": false
        },
        "outputSchema": {
          "title": "deploy_private_site_version_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "AppGardenDeploymentResponse",
              "default": {},
              "type": "object",
              "properties": {
                "id": {
                  "title": "Id",
                  "description": "Opaque deployment ID. Pass this exact value as deployment_id.",
                  "default": {},
                  "type": "string"
                },
                "project_id": {
                  "title": "Project Id",
                  "description": "Opaque site project ID. Pass this exact value as project_id.",
                  "default": {},
                  "type": "string"
                },
                "title": {
                  "title": "Title",
                  "default": {},
                  "type": "string"
                },
                "version_id": {
                  "title": "Version Id",
                  "description": "Opaque saved version ID. Pass this exact value as version_id.",
                  "default": {},
                  "type": "string"
                },
                "type": {
                  "title": "AppDeploymentKind",
                  "default": {},
                  "type": "enum",
                  "enum": [
                    "preview",
                    "publish"
                  ]
                },
                "status": {
                  "title": "AppDeploymentStatus",
                  "default": {},
                  "type": "enum",
                  "enum": [
                    "pending",
                    "building",
                    "publishing",
                    "succeeded",
                    "failed"
                  ]
                },
                "url": {
                  "title": "Url",
                  "default": {},
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "provider_deployment_id": {
                  "title": "Provider Deployment Id",
                  "default": {},
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "failure_message": {
                  "title": "Failure Message",
                  "default": {},
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "env_set_revision": {
                  "title": "Env Set Revision",
                  "default": {},
                  "type": "integer"
                },
                "updated_at": {
                  "title": "Updated At",
                  "default": {},
                  "type": "string"
                }
              },
              "required": [
                "id",
                "project_id",
                "title",
                "version_id",
                "type",
                "status",
                "url",
                "provider_deployment_id",
                "failure_message",
                "env_set_revision",
                "updated_at"
              ],
              "additionalProperties": false
            }
          },
          "required": [
            "result"
          ],
          "additionalProperties": false
        },
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "Sites_deploy_private_site_version",
          "_codex_apps": {
            "resource_uri": "/connector_20205bf7d4e99a89d7154bb849718324/implicit_link::connector_20205bf7d4e99a89d7154bb849718324/deploy_private_site_version",
            "contains_mcp_source": false
          },
          "connector_id": "connector_20205bf7d4e99a89d7154bb849718324",
          "connector_name": "Sites",
          "connector_description": "Build and deploy websites with Sites.",
          "link_id": "implicit_link::connector_20205bf7d4e99a89d7154bb849718324",
          "link_is_implicit": true
        }
      },
      "connector_id": "connector_20205bf7d4e99a89d7154bb849718324",
      "connector_name": "Sites",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_deploy_site_version",
      "tool_namespace": "codex_apps__sites",
      "namespace_description": "Build and deploy websites with Sites.",
      "tool": {
        "name": "sites_deploy_site_version",
        "title": "deploy_site_version",
        "description": "Deploy a saved site version to production when the site is shared with anyone besides the current caller, public, cannot be verified as owner-only, or when deploy_private_site_version is unavailable. This is an open-world deployment and requires explicit user approval. For a verified owner-only site, use deploy_private_site_version when available. An unsaved local build cannot be deployed directly. Every returned Sites deployment URL is a production URL. If the initial state is non-terminal or the user asks for progress, use get_deployment_status.",
        "inputSchema": {
          "properties": {
            "project_id": {
              "description": "Exact opaque site project ID. Copy it verbatim from .openai/hosting.json's project_id or the id field returned by create_site, list_sites, or get_site. Never invent, modify, or substitute another identifier.",
              "title": "Project Id",
              "type": "string"
            },
            "version_id": {
              "description": "Exact opaque saved version ID returned as id by save_site_version, list_site_versions, or get_site_version. Copy it verbatim as version_id; never substitute a project or deployment ID.",
              "title": "Version Id",
              "type": "string"
            }
          },
          "required": [
            "project_id",
            "version_id"
          ],
          "title": "deploy_site_version_input",
          "type": "object",
          "additionalProperties": false
        },
        "outputSchema": {
          "title": "deploy_site_version_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "AppGardenDeploymentResponse",
              "default": {},
              "type": "object",
              "properties": {
                "id": {
                  "title": "Id",
                  "description": "Opaque deployment ID. Pass this exact value as deployment_id.",
                  "default": {},
                  "type": "string"
                },
                "project_id": {
                  "title": "Project Id",
                  "description": "Opaque site project ID. Pass this exact value as project_id.",
                  "default": {},
                  "type": "string"
                },
                "title": {
                  "title": "Title",
                  "default": {},
                  "type": "string"
                },
                "version_id": {
                  "title": "Version Id",
                  "description": "Opaque saved version ID. Pass this exact value as version_id.",
                  "default": {},
                  "type": "string"
                },
                "type": {
                  "title": "AppDeploymentKind",
                  "default": {},
                  "type": "enum",
                  "enum": [
                    "preview",
                    "publish"
                  ]
                },
                "status": {
                  "title": "AppDeploymentStatus",
                  "default": {},
                  "type": "enum",
                  "enum": [
                    "pending",
                    "building",
                    "publishing",
                    "succeeded",
                    "failed"
                  ]
                },
                "url": {
                  "title": "Url",
                  "default": {},
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "provider_deployment_id": {
                  "title": "Provider Deployment Id",
                  "default": {},
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "failure_message": {
                  "title": "Failure Message",
                  "default": {},
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "env_set_revision": {
                  "title": "Env Set Revision",
                  "default": {},
                  "type": "integer"
                },
                "updated_at": {
                  "title": "Updated At",
                  "default": {},
                  "type": "string"
                }
              },
              "required": [
                "id",
                "project_id",
                "title",
                "version_id",
                "type",
                "status",
                "url",
                "provider_deployment_id",
                "failure_message",
                "env_set_revision",
                "updated_at"
              ],
              "additionalProperties": false
            }
          },
          "required": [
            "result"
          ],
          "additionalProperties": false
        },
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": false,
          "openWorldHint": true
        },
        "_meta": {
          "resource_name": "Sites_deploy_site_version",
          "_codex_apps": {
            "resource_uri": "/connector_20205bf7d4e99a89d7154bb849718324/implicit_link::connector_20205bf7d4e99a89d7154bb849718324/deploy_site_version",
            "contains_mcp_source": false
          },
          "connector_id": "connector_20205bf7d4e99a89d7154bb849718324",
          "connector_name": "Sites",
          "connector_description": "Build and deploy websites with Sites.",
          "link_id": "implicit_link::connector_20205bf7d4e99a89d7154bb849718324",
          "link_is_implicit": true
        }
      },
      "connector_id": "connector_20205bf7d4e99a89d7154bb849718324",
      "connector_name": "Sites",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_get_deployment_status",
      "tool_namespace": "codex_apps__sites",
      "namespace_description": "Build and deploy websites with Sites.",
      "tool": {
        "name": "sites_get_deployment_status",
        "title": "get_deployment_status",
        "description": "Get the current status of a production deployment. Continue polling a non-terminal deployment when progress is requested, unless the user asks to stop. On success, report the production URL. On failure, report the failure message and the site, version, and deployment IDs.",
        "inputSchema": {
          "properties": {
            "project_id": {
              "description": "ID of the site from the same deployment flow as version_id and deployment_id.",
              "title": "Project Id",
              "type": "string"
            },
            "version_id": {
              "description": "Saved version ID from the same deployment flow as project_id and deployment_id.",
              "title": "Version Id",
              "type": "string"
            },
            "deployment_id": {
              "description": "Deployment ID returned for the supplied project_id and version_id. Do not mix identifiers from different deployment flows.",
              "title": "Deployment Id",
              "type": "string"
            }
          },
          "required": [
            "project_id",
            "version_id",
            "deployment_id"
          ],
          "title": "get_deployment_status_input",
          "type": "object",
          "additionalProperties": false
        },
        "outputSchema": {
          "title": "get_deployment_status_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "AppGardenDeploymentResponse",
              "default": {},
              "type": "object",
              "properties": {
                "id": {
                  "title": "Id",
                  "description": "Opaque deployment ID. Pass this exact value as deployment_id.",
                  "default": {},
                  "type": "string"
                },
                "project_id": {
                  "title": "Project Id",
                  "description": "Opaque site project ID. Pass this exact value as project_id.",
                  "default": {},
                  "type": "string"
                },
                "title": {
                  "title": "Title",
                  "default": {},
                  "type": "string"
                },
                "version_id": {
                  "title": "Version Id",
                  "description": "Opaque saved version ID. Pass this exact value as version_id.",
                  "default": {},
                  "type": "string"
                },
                "type": {
                  "title": "AppDeploymentKind",
                  "default": {},
                  "type": "enum",
                  "enum": [
                    "preview",
                    "publish"
                  ]
                },
                "status": {
                  "title": "AppDeploymentStatus",
                  "default": {},
                  "type": "enum",
                  "enum": [
                    "pending",
                    "building",
                    "publishing",
                    "succeeded",
                    "failed"
                  ]
                },
                "url": {
                  "title": "Url",
                  "default": {},
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "provider_deployment_id": {
                  "title": "Provider Deployment Id",
                  "default": {},
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "failure_message": {
                  "title": "Failure Message",
                  "default": {},
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "env_set_revision": {
                  "title": "Env Set Revision",
                  "default": {},
                  "type": "integer"
                },
                "updated_at": {
                  "title": "Updated At",
                  "default": {},
                  "type": "string"
                }
              },
              "required": [
                "id",
                "project_id",
                "title",
                "version_id",
                "type",
                "status",
                "url",
                "provider_deployment_id",
                "failure_message",
                "env_set_revision",
                "updated_at"
              ],
              "additionalProperties": false
            }
          },
          "required": [
            "result"
          ],
          "additionalProperties": false
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "Sites_get_deployment_status",
          "_codex_apps": {
            "resource_uri": "/connector_20205bf7d4e99a89d7154bb849718324/implicit_link::connector_20205bf7d4e99a89d7154bb849718324/get_deployment_status",
            "contains_mcp_source": false
          },
          "connector_id": "connector_20205bf7d4e99a89d7154bb849718324",
          "connector_name": "Sites",
          "connector_description": "Build and deploy websites with Sites.",
          "link_id": "implicit_link::connector_20205bf7d4e99a89d7154bb849718324",
          "link_is_implicit": true
        }
      },
      "connector_id": "connector_20205bf7d4e99a89d7154bb849718324",
      "connector_name": "Sites",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_get_environment",
      "tool_namespace": "codex_apps__sites",
      "namespace_description": "Build and deploy websites with Sites.",
      "tool": {
        "name": "sites_get_environment",
        "title": "get_environment",
        "description": "Deprecated legacy Codex app alias. Use get_environment_variables instead.",
        "inputSchema": {
          "properties": {
            "project_id": {
              "description": "Site project ID",
              "title": "Project Id",
              "type": "string"
            }
          },
          "required": [
            "project_id"
          ],
          "title": "get_environment_input",
          "type": "object",
          "additionalProperties": false
        },
        "outputSchema": {
          "title": "get_environment_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "AppgardenEnvironmentResponse",
              "default": {},
              "type": "object",
              "properties": {
                "project_id": {
                  "title": "Project Id",
                  "default": {},
                  "type": "string"
                },
                "entries": {
                  "title": "Entries",
                  "default": {},
                  "type": "array",
                  "items": {
                    "title": "AppgardenEnvironmentEnvVarEntryResponse",
                    "default": {},
                    "type": "object",
                    "properties": {
                      "key": {
                        "title": "Key",
                        "default": {},
                        "type": "string"
                      },
                      "value": {
                        "title": "Value",
                        "default": {},
                        "type": "anyOf",
                        "anyOf": [
                          {
                            "default": {},
                            "type": "string"
                          },
                          {
                            "default": {},
                            "type": "null"
                          }
                        ]
                      },
                      "is_secret": {
                        "title": "Is Secret",
                        "default": false,
                        "type": "boolean"
                      },
                      "type": {
                        "title": "Type",
                        "default": "envvar",
                        "type": "const",
                        "const": "envvar"
                      }
                    },
                    "required": [
                      "key",
                      "value"
                    ],
                    "additionalProperties": false
                  }
                },
                "revision": {
                  "title": "Revision",
                  "default": {},
                  "type": "integer"
                },
                "updated_at": {
                  "title": "Updated At",
                  "default": {},
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "project_id",
                "entries",
                "revision",
                "updated_at"
              ],
              "additionalProperties": false
            }
          },
          "required": [
            "result"
          ],
          "additionalProperties": false
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "ui": {
            "visibility": [
              "app"
            ]
          },
          "resource_name": "Sites_get_environment",
          "_codex_apps": {
            "resource_uri": "/connector_20205bf7d4e99a89d7154bb849718324/implicit_link::connector_20205bf7d4e99a89d7154bb849718324/get_environment",
            "contains_mcp_source": false
          },
          "connector_id": "connector_20205bf7d4e99a89d7154bb849718324",
          "connector_name": "Sites",
          "connector_description": "Build and deploy websites with Sites.",
          "link_id": "implicit_link::connector_20205bf7d4e99a89d7154bb849718324",
          "link_is_implicit": true
        }
      },
      "connector_id": "connector_20205bf7d4e99a89d7154bb849718324",
      "connector_name": "Sites",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_get_environment_variables",
      "tool_namespace": "codex_apps__sites",
      "namespace_description": "Build and deploy websites with Sites.",
      "tool": {
        "name": "sites_get_environment_variables",
        "title": "get_environment_variables",
        "description": "Get the production runtime environment variables for a site. These values are separate from local .env files and .openai/hosting.json.",
        "inputSchema": {
          "properties": {
            "project_id": {
              "description": "Exact opaque site project ID. Copy it verbatim from .openai/hosting.json's project_id or the id field returned by create_site, list_sites, or get_site. Never invent, modify, or substitute another identifier.",
              "title": "Project Id",
              "type": "string"
            }
          },
          "required": [
            "project_id"
          ],
          "title": "get_environment_variables_input",
          "type": "object",
          "additionalProperties": false
        },
        "outputSchema": {
          "title": "get_environment_variables_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "AppgardenEnvironmentResponse",
              "default": {},
              "type": "object",
              "properties": {
                "project_id": {
                  "title": "Project Id",
                  "default": {},
                  "type": "string"
                },
                "entries": {
                  "title": "Entries",
                  "default": {},
                  "type": "array",
                  "items": {
                    "title": "AppgardenEnvironmentEnvVarEntryResponse",
                    "default": {},
                    "type": "object",
                    "properties": {
                      "key": {
                        "title": "Key",
                        "default": {},
                        "type": "string"
                      },
                      "value": {
                        "title": "Value",
                        "default": {},
                        "type": "anyOf",
                        "anyOf": [
                          {
                            "default": {},
                            "type": "string"
                          },
                          {
                            "default": {},
                            "type": "null"
                          }
                        ]
                      },
                      "is_secret": {
                        "title": "Is Secret",
                        "default": false,
                        "type": "boolean"
                      },
                      "type": {
                        "title": "Type",
                        "default": "envvar",
                        "type": "const",
                        "const": "envvar"
                      }
                    },
                    "required": [
                      "key",
                      "value"
                    ],
                    "additionalProperties": false
                  }
                },
                "revision": {
                  "title": "Revision",
                  "default": {},
                  "type": "integer"
                },
                "updated_at": {
                  "title": "Updated At",
                  "default": {},
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "project_id",
                "entries",
                "revision",
                "updated_at"
              ],
              "additionalProperties": false
            }
          },
          "required": [
            "result"
          ],
          "additionalProperties": false
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "Sites_get_environment_variables",
          "_codex_apps": {
            "resource_uri": "/connector_20205bf7d4e99a89d7154bb849718324/implicit_link::connector_20205bf7d4e99a89d7154bb849718324/get_environment_variables",
            "contains_mcp_source": false
          },
          "connector_id": "connector_20205bf7d4e99a89d7154bb849718324",
          "connector_name": "Sites",
          "connector_description": "Build and deploy websites with Sites.",
          "link_id": "implicit_link::connector_20205bf7d4e99a89d7154bb849718324",
          "link_is_implicit": true
        }
      },
      "connector_id": "connector_20205bf7d4e99a89d7154bb849718324",
      "connector_name": "Sites",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_get_project",
      "tool_namespace": "codex_apps__sites",
      "namespace_description": "Build and deploy websites with Sites.",
      "tool": {
        "name": "sites_get_project",
        "title": "get_project",
        "description": "Deprecated legacy Codex app alias. Use get_site instead.",
        "inputSchema": {
          "properties": {
            "project_id": {
              "description": "Site project ID",
              "title": "Project Id",
              "type": "string"
            }
          },
          "required": [
            "project_id"
          ],
          "title": "get_project_input",
          "type": "object",
          "additionalProperties": false
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "ui": {
            "visibility": [
              "app"
            ]
          },
          "resource_name": "Sites_get_project",
          "_codex_apps": {
            "resource_uri": "/connector_20205bf7d4e99a89d7154bb849718324/implicit_link::connector_20205bf7d4e99a89d7154bb849718324/get_project",
            "contains_mcp_source": false
          },
          "connector_id": "connector_20205bf7d4e99a89d7154bb849718324",
          "connector_name": "Sites",
          "connector_description": "Build and deploy websites with Sites.",
          "link_id": "implicit_link::connector_20205bf7d4e99a89d7154bb849718324",
          "link_is_implicit": true
        }
      },
      "connector_id": "connector_20205bf7d4e99a89d7154bb849718324",
      "connector_name": "Sites",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_get_site",
      "tool_namespace": "codex_apps__sites",
      "namespace_description": "Build and deploy websites with Sites.",
      "tool": {
        "name": "sites_get_site",
        "title": "get_site",
        "description": "Get a site and its current access configuration.",
        "inputSchema": {
          "properties": {
            "project_id": {
              "description": "Exact opaque site project ID. Copy it verbatim from .openai/hosting.json's project_id or the id field returned by create_site, list_sites, or get_site. Never invent, modify, or substitute another identifier.",
              "title": "Project Id",
              "type": "string"
            }
          },
          "required": [
            "project_id"
          ],
          "title": "get_site_input",
          "type": "object",
          "additionalProperties": false
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "Sites_get_site",
          "_codex_apps": {
            "resource_uri": "/connector_20205bf7d4e99a89d7154bb849718324/implicit_link::connector_20205bf7d4e99a89d7154bb849718324/get_site",
            "contains_mcp_source": false
          },
          "connector_id": "connector_20205bf7d4e99a89d7154bb849718324",
          "connector_name": "Sites",
          "connector_description": "Build and deploy websites with Sites.",
          "link_id": "implicit_link::connector_20205bf7d4e99a89d7154bb849718324",
          "link_is_implicit": true
        }
      },
      "connector_id": "connector_20205bf7d4e99a89d7154bb849718324",
      "connector_name": "Sites",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_get_site_version",
      "tool_namespace": "codex_apps__sites",
      "namespace_description": "Build and deploy websites with Sites.",
      "tool": {
        "name": "sites_get_site_version",
        "title": "get_site_version",
        "description": "Get a saved site version and its source provenance. Retain version_id for follow-up calls, but report the user-facing version number when possible.",
        "inputSchema": {
          "properties": {
            "project_id": {
              "description": "Exact opaque site project ID. Copy it verbatim from .openai/hosting.json's project_id or the id field returned by create_site, list_sites, or get_site. Never invent, modify, or substitute another identifier.",
              "title": "Project Id",
              "type": "string"
            },
            "version_id": {
              "description": "Exact opaque saved version ID returned as id by save_site_version, list_site_versions, or get_site_version. Copy it verbatim as version_id; never substitute a project or deployment ID.",
              "title": "Version Id",
              "type": "string"
            }
          },
          "required": [
            "project_id",
            "version_id"
          ],
          "title": "get_site_version_input",
          "type": "object",
          "additionalProperties": false
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "Sites_get_site_version",
          "_codex_apps": {
            "resource_uri": "/connector_20205bf7d4e99a89d7154bb849718324/implicit_link::connector_20205bf7d4e99a89d7154bb849718324/get_site_version",
            "contains_mcp_source": false
          },
          "connector_id": "connector_20205bf7d4e99a89d7154bb849718324",
          "connector_name": "Sites",
          "connector_description": "Build and deploy websites with Sites.",
          "link_id": "implicit_link::connector_20205bf7d4e99a89d7154bb849718324",
          "link_is_implicit": true
        }
      },
      "connector_id": "connector_20205bf7d4e99a89d7154bb849718324",
      "connector_name": "Sites",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_list_access_groups",
      "tool_namespace": "codex_apps__sites",
      "namespace_description": "Build and deploy websites with Sites.",
      "tool": {
        "name": "sites_list_access_groups",
        "title": "list_access_groups",
        "description": "Deprecated legacy Codex app alias. Use list_available_access_groups instead.",
        "inputSchema": {
          "properties": {
            "name_prefix": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Optional case-insensitive group display-name prefix used to narrow autocomplete results.",
              "title": "Name Prefix"
            }
          },
          "title": "list_access_groups_input",
          "type": "object",
          "additionalProperties": false
        },
        "outputSchema": {
          "title": "list_access_groups_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "ListAppGardenAccessGroupsResponse",
              "default": {},
              "type": "object",
              "properties": {
                "workspace_account_id": {
                  "title": "Workspace Account Id",
                  "description": "Current ChatGPT workspace account ID, when available.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "tenant_id": {
                  "title": "Tenant Id",
                  "description": "Tenant linked to the current workspace, when available.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "workspace_groups": {
                  "title": "Workspace Groups",
                  "description": "Workspace groups the current user belongs to.",
                  "default": {},
                  "type": "array",
                  "items": {
                    "title": "AppGardenAccessGroupResponse",
                    "default": {},
                    "type": "object",
                    "properties": {
                      "id": {
                        "title": "Id",
                        "description": "Group ID to use in an Appgen access policy.",
                        "default": {},
                        "type": "string"
                      },
                      "name": {
                        "title": "Name",
                        "description": "Group display name.",
                        "default": {},
                        "type": "string"
                      },
                      "size": {
                        "title": "Size",
                        "description": "Total number of members in the group.",
                        "default": {},
                        "type": "integer"
                      }
                    },
                    "required": [
                      "id",
                      "name",
                      "size"
                    ],
                    "additionalProperties": false
                  }
                },
                "tenant_groups": {
                  "title": "Tenant Groups",
                  "description": "Tenant groups the current user belongs to.",
                  "default": {},
                  "type": "array",
                  "items": {
                    "title": "AppGardenAccessGroupResponse",
                    "default": {},
                    "type": "object",
                    "properties": {
                      "id": {
                        "title": "Id",
                        "description": "Group ID to use in an Appgen access policy.",
                        "default": {},
                        "type": "string"
                      },
                      "name": {
                        "title": "Name",
                        "description": "Group display name.",
                        "default": {},
                        "type": "string"
                      },
                      "size": {
                        "title": "Size",
                        "description": "Total number of members in the group.",
                        "default": {},
                        "type": "integer"
                      }
                    },
                    "required": [
                      "id",
                      "name",
                      "size"
                    ],
                    "additionalProperties": false
                  }
                }
              },
              "required": [
                "workspace_groups",
                "tenant_groups"
              ],
              "additionalProperties": false
            }
          },
          "required": [
            "result"
          ],
          "additionalProperties": false
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "ui": {
            "visibility": [
              "app"
            ]
          },
          "resource_name": "Sites_list_access_groups",
          "_codex_apps": {
            "resource_uri": "/connector_20205bf7d4e99a89d7154bb849718324/implicit_link::connector_20205bf7d4e99a89d7154bb849718324/list_access_groups",
            "contains_mcp_source": false
          },
          "connector_id": "connector_20205bf7d4e99a89d7154bb849718324",
          "connector_name": "Sites",
          "connector_description": "Build and deploy websites with Sites.",
          "link_id": "implicit_link::connector_20205bf7d4e99a89d7154bb849718324",
          "link_is_implicit": true
        }
      },
      "connector_id": "connector_20205bf7d4e99a89d7154bb849718324",
      "connector_name": "Sites",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_list_available_access_groups",
      "tool_namespace": "codex_apps__sites",
      "namespace_description": "Build and deploy websites with Sites.",
      "tool": {
        "name": "sites_list_available_access_groups",
        "title": "list_available_access_groups",
        "description": "List available workspace and tenant groups with their names, sizes, and IDs. Before adding group access, present the names and sizes to the user, then pass only the IDs they select to update_site_access.",
        "inputSchema": {
          "properties": {
            "name_prefix": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Optional case-insensitive group display-name prefix.",
              "title": "Name Prefix"
            }
          },
          "title": "list_available_access_groups_input",
          "type": "object",
          "additionalProperties": false
        },
        "outputSchema": {
          "title": "list_available_access_groups_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "ListAppGardenAccessGroupsResponse",
              "default": {},
              "type": "object",
              "properties": {
                "workspace_account_id": {
                  "title": "Workspace Account Id",
                  "description": "Current ChatGPT workspace account ID, when available.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "tenant_id": {
                  "title": "Tenant Id",
                  "description": "Tenant linked to the current workspace, when available.",
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                },
                "workspace_groups": {
                  "title": "Workspace Groups",
                  "description": "Workspace groups the current user belongs to.",
                  "default": {},
                  "type": "array",
                  "items": {
                    "title": "AppGardenAccessGroupResponse",
                    "default": {},
                    "type": "object",
                    "properties": {
                      "id": {
                        "title": "Id",
                        "description": "Group ID to use in an Appgen access policy.",
                        "default": {},
                        "type": "string"
                      },
                      "name": {
                        "title": "Name",
                        "description": "Group display name.",
                        "default": {},
                        "type": "string"
                      },
                      "size": {
                        "title": "Size",
                        "description": "Total number of members in the group.",
                        "default": {},
                        "type": "integer"
                      }
                    },
                    "required": [
                      "id",
                      "name",
                      "size"
                    ],
                    "additionalProperties": false
                  }
                },
                "tenant_groups": {
                  "title": "Tenant Groups",
                  "description": "Tenant groups the current user belongs to.",
                  "default": {},
                  "type": "array",
                  "items": {
                    "title": "AppGardenAccessGroupResponse",
                    "default": {},
                    "type": "object",
                    "properties": {
                      "id": {
                        "title": "Id",
                        "description": "Group ID to use in an Appgen access policy.",
                        "default": {},
                        "type": "string"
                      },
                      "name": {
                        "title": "Name",
                        "description": "Group display name.",
                        "default": {},
                        "type": "string"
                      },
                      "size": {
                        "title": "Size",
                        "description": "Total number of members in the group.",
                        "default": {},
                        "type": "integer"
                      }
                    },
                    "required": [
                      "id",
                      "name",
                      "size"
                    ],
                    "additionalProperties": false
                  }
                }
              },
              "required": [
                "workspace_groups",
                "tenant_groups"
              ],
              "additionalProperties": false
            }
          },
          "required": [
            "result"
          ],
          "additionalProperties": false
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "Sites_list_available_access_groups",
          "_codex_apps": {
            "resource_uri": "/connector_20205bf7d4e99a89d7154bb849718324/implicit_link::connector_20205bf7d4e99a89d7154bb849718324/list_available_access_groups",
            "contains_mcp_source": false
          },
          "connector_id": "connector_20205bf7d4e99a89d7154bb849718324",
          "connector_name": "Sites",
          "connector_description": "Build and deploy websites with Sites.",
          "link_id": "implicit_link::connector_20205bf7d4e99a89d7154bb849718324",
          "link_is_implicit": true
        }
      },
      "connector_id": "connector_20205bf7d4e99a89d7154bb849718324",
      "connector_name": "Sites",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_list_projects",
      "tool_namespace": "codex_apps__sites",
      "namespace_description": "Build and deploy websites with Sites.",
      "tool": {
        "name": "sites_list_projects",
        "title": "list_projects",
        "description": "Deprecated legacy Codex app alias. Use list_sites instead.",
        "inputSchema": {
          "properties": {
            "limit": {
              "description": "Maximum number of sites to return",
              "title": "Limit",
              "type": "integer"
            },
            "cursor": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Cursor returned by a previous list_projects call",
              "title": "Cursor"
            }
          },
          "required": [
            "limit"
          ],
          "title": "list_projects_input",
          "type": "object",
          "additionalProperties": false
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "ui": {
            "visibility": [
              "app"
            ]
          },
          "resource_name": "Sites_list_projects",
          "_codex_apps": {
            "resource_uri": "/connector_20205bf7d4e99a89d7154bb849718324/implicit_link::connector_20205bf7d4e99a89d7154bb849718324/list_projects",
            "contains_mcp_source": false
          },
          "connector_id": "connector_20205bf7d4e99a89d7154bb849718324",
          "connector_name": "Sites",
          "connector_description": "Build and deploy websites with Sites.",
          "link_id": "implicit_link::connector_20205bf7d4e99a89d7154bb849718324",
          "link_is_implicit": true
        }
      },
      "connector_id": "connector_20205bf7d4e99a89d7154bb849718324",
      "connector_name": "Sites",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_list_site_versions",
      "tool_namespace": "codex_apps__sites",
      "namespace_description": "Build and deploy websites with Sites.",
      "tool": {
        "name": "sites_list_site_versions",
        "title": "list_site_versions",
        "description": "List saved site versions in newest-first order for history, deployment, or rollback selection. A saved version is not necessarily deployed to production.",
        "inputSchema": {
          "properties": {
            "project_id": {
              "description": "Exact opaque site project ID. Copy it verbatim from .openai/hosting.json's project_id or the id field returned by create_site, list_sites, or get_site. Never invent, modify, or substitute another identifier.",
              "title": "Project Id",
              "type": "string"
            },
            "limit": {
              "default": 20,
              "description": "Maximum number of site versions to return.",
              "maximum": 50,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            },
            "cursor": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Cursor returned by a previous list_site_versions call.",
              "title": "Cursor"
            }
          },
          "required": [
            "project_id"
          ],
          "title": "list_site_versions_input",
          "type": "object",
          "additionalProperties": false
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "Sites_list_site_versions",
          "_codex_apps": {
            "resource_uri": "/connector_20205bf7d4e99a89d7154bb849718324/implicit_link::connector_20205bf7d4e99a89d7154bb849718324/list_site_versions",
            "contains_mcp_source": false
          },
          "connector_id": "connector_20205bf7d4e99a89d7154bb849718324",
          "connector_name": "Sites",
          "connector_description": "Build and deploy websites with Sites.",
          "link_id": "implicit_link::connector_20205bf7d4e99a89d7154bb849718324",
          "link_is_implicit": true
        }
      },
      "connector_id": "connector_20205bf7d4e99a89d7154bb849718324",
      "connector_name": "Sites",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_list_sites",
      "tool_namespace": "codex_apps__sites",
      "namespace_description": "Build and deploy websites with Sites.",
      "tool": {
        "name": "sites_list_sites",
        "title": "list_sites",
        "description": "List sites owned by the current user. Use this only when .openai/hosting.json has no project_id. When selecting a listed site, use that item's id unchanged as project_id. Do not derive it from a title or slug, and do not replace a persisted project_id based on title or slug matching.",
        "inputSchema": {
          "properties": {
            "limit": {
              "description": "Maximum number of sites to return.",
              "title": "Limit",
              "type": "integer"
            },
            "cursor": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Cursor returned by a previous list_sites call.",
              "title": "Cursor"
            }
          },
          "required": [
            "limit"
          ],
          "title": "list_sites_input",
          "type": "object",
          "additionalProperties": false
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "Sites_list_sites",
          "_codex_apps": {
            "resource_uri": "/connector_20205bf7d4e99a89d7154bb849718324/implicit_link::connector_20205bf7d4e99a89d7154bb849718324/list_sites",
            "contains_mcp_source": false
          },
          "connector_id": "connector_20205bf7d4e99a89d7154bb849718324",
          "connector_name": "Sites",
          "connector_description": "Build and deploy websites with Sites.",
          "link_id": "implicit_link::connector_20205bf7d4e99a89d7154bb849718324",
          "link_is_implicit": true
        }
      },
      "connector_id": "connector_20205bf7d4e99a89d7154bb849718324",
      "connector_name": "Sites",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_save_site_version",
      "tool_namespace": "codex_apps__sites",
      "namespace_description": "Build and deploy websites with Sites.",
      "tool": {
        "name": "sites_save_site_version",
        "title": "save_site_version",
        "description": "Save a site version only after validating and pushing its source. commit_sha must be the current HEAD of the site's configured source branch. Any archive must come from that exact source state and contain a deployable Sites build. Saving does not deploy the version. Retain version_id for follow-up calls and report the user-facing version number.",
        "inputSchema": {
          "properties": {
            "project_id": {
              "description": "Exact opaque site project ID. Copy it verbatim from .openai/hosting.json's project_id or the id field returned by create_site, list_sites, or get_site. Never invent, modify, or substitute another identifier.",
              "title": "Project Id",
              "type": "string"
            },
            "commit_sha": {
              "description": "Git commit SHA for the current HEAD of the site's configured source branch. It must identify the source used to build the archive.",
              "title": "Commit Sha",
              "type": "string"
            },
            "archive": {
              "anyOf": [
                {
                  "description": "Canonical shape for file args after proxying uploaded files.\n\nThis is sent to servers so they can fetch the file contents via the download URL\nwhile also receiving the underlying file id. Optional mime_type and file_name\nmay be included when supported by the server schema.",
                  "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": "ProvidedFilePayload",
                  "type": "object",
                  "additionalProperties": false
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Optional site build tar archive from the source identified by commit_sha. It must contain a supported OpenNext or vinext entrypoint and a valid .openai/hosting.json."
            }
          },
          "required": [
            "project_id",
            "commit_sha"
          ],
          "title": "save_site_version_input",
          "type": "object",
          "additionalProperties": false
        },
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "openai/fileParams": [
            "archive"
          ],
          "openai/fileUploadConfig": {
            "store_in_library": false
          },
          "resource_name": "Sites_save_site_version",
          "_codex_apps": {
            "resource_uri": "/connector_20205bf7d4e99a89d7154bb849718324/implicit_link::connector_20205bf7d4e99a89d7154bb849718324/save_site_version",
            "contains_mcp_source": false
          },
          "connector_id": "connector_20205bf7d4e99a89d7154bb849718324",
          "connector_name": "Sites",
          "connector_description": "Build and deploy websites with Sites.",
          "link_id": "implicit_link::connector_20205bf7d4e99a89d7154bb849718324",
          "link_is_implicit": true
        }
      },
      "connector_id": "connector_20205bf7d4e99a89d7154bb849718324",
      "connector_name": "Sites",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_update_access",
      "tool_namespace": "codex_apps__sites",
      "namespace_description": "Build and deploy websites with Sites.",
      "tool": {
        "name": "sites_update_access",
        "title": "update_access",
        "description": "Deprecated legacy Codex app alias. Use update_site_access instead.",
        "inputSchema": {
          "properties": {
            "project_id": {
              "description": "Workspace site project ID",
              "title": "Project Id",
              "type": "string"
            },
            "access_mode": {
              "description": "Required access mode for the site: workspace_all grants all active workspace users; custom uses the supplied user and group allowlists.",
              "enum": [
                "workspace_all",
                "custom"
              ],
              "title": "Access Mode",
              "type": "string"
            },
            "allowed_user_emails": {
              "anyOf": [
                {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "User email allowlist for the site.",
              "title": "Allowed User Emails"
            },
            "allowed_workspace_group_ids": {
              "anyOf": [
                {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Workspace group ID allowlist for the site.",
              "title": "Allowed Workspace Group Ids"
            },
            "allowed_tenant_group_ids": {
              "anyOf": [
                {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Tenant group ID allowlist for the site.",
              "title": "Allowed Tenant Group Ids"
            }
          },
          "required": [
            "project_id",
            "access_mode"
          ],
          "title": "update_access_input",
          "type": "object",
          "additionalProperties": false
        },
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "ui": {
            "visibility": [
              "app"
            ]
          },
          "resource_name": "Sites_update_access",
          "_codex_apps": {
            "resource_uri": "/connector_20205bf7d4e99a89d7154bb849718324/implicit_link::connector_20205bf7d4e99a89d7154bb849718324/update_access",
            "contains_mcp_source": false
          },
          "connector_id": "connector_20205bf7d4e99a89d7154bb849718324",
          "connector_name": "Sites",
          "connector_description": "Build and deploy websites with Sites.",
          "link_id": "implicit_link::connector_20205bf7d4e99a89d7154bb849718324",
          "link_is_implicit": true
        }
      },
      "connector_id": "connector_20205bf7d4e99a89d7154bb849718324",
      "connector_name": "Sites",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_update_environment",
      "tool_namespace": "codex_apps__sites",
      "namespace_description": "Build and deploy websites with Sites.",
      "tool": {
        "name": "sites_update_environment",
        "title": "update_environment",
        "description": "Deprecated legacy Codex app alias. Use update_environment_variables instead.",
        "inputSchema": {
          "properties": {
            "project_id": {
              "description": "Site project ID",
              "title": "Project Id",
              "type": "string"
            },
            "set_values": {
              "description": "Environment entries to create or replace.",
              "items": {
                "properties": {
                  "key": {
                    "description": "Required non-empty, case-sensitive environment variable name.",
                    "title": "Key",
                    "type": "string"
                  },
                  "value": {
                    "title": "Value",
                    "type": "string"
                  },
                  "is_secret": {
                    "default": false,
                    "description": "Set true for sensitive values so they are not returned in plaintext.",
                    "title": "Is Secret",
                    "type": "boolean"
                  },
                  "type": {
                    "const": "envvar",
                    "default": "envvar",
                    "title": "Type",
                    "type": "string"
                  }
                },
                "required": [
                  "key",
                  "value"
                ],
                "title": "UpdateAppgardenEnvironmentEnvVarEntryRequest",
                "type": "object",
                "additionalProperties": false
              },
              "title": "Set Values",
              "type": "array"
            },
            "remove": {
              "anyOf": [
                {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Environment keys to remove.",
              "title": "Remove"
            }
          },
          "required": [
            "project_id",
            "set_values"
          ],
          "title": "update_environment_input",
          "type": "object",
          "additionalProperties": false
        },
        "outputSchema": {
          "title": "update_environment_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "AppgardenEnvironmentResponse",
              "default": {},
              "type": "object",
              "properties": {
                "project_id": {
                  "title": "Project Id",
                  "default": {},
                  "type": "string"
                },
                "entries": {
                  "title": "Entries",
                  "default": {},
                  "type": "array",
                  "items": {
                    "title": "AppgardenEnvironmentEnvVarEntryResponse",
                    "default": {},
                    "type": "object",
                    "properties": {
                      "key": {
                        "title": "Key",
                        "default": {},
                        "type": "string"
                      },
                      "value": {
                        "title": "Value",
                        "default": {},
                        "type": "anyOf",
                        "anyOf": [
                          {
                            "default": {},
                            "type": "string"
                          },
                          {
                            "default": {},
                            "type": "null"
                          }
                        ]
                      },
                      "is_secret": {
                        "title": "Is Secret",
                        "default": false,
                        "type": "boolean"
                      },
                      "type": {
                        "title": "Type",
                        "default": "envvar",
                        "type": "const",
                        "const": "envvar"
                      }
                    },
                    "required": [
                      "key",
                      "value"
                    ],
                    "additionalProperties": false
                  }
                },
                "revision": {
                  "title": "Revision",
                  "default": {},
                  "type": "integer"
                },
                "updated_at": {
                  "title": "Updated At",
                  "default": {},
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "project_id",
                "entries",
                "revision",
                "updated_at"
              ],
              "additionalProperties": false
            }
          },
          "required": [
            "result"
          ],
          "additionalProperties": false
        },
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "ui": {
            "visibility": [
              "app"
            ]
          },
          "resource_name": "Sites_update_environment",
          "_codex_apps": {
            "resource_uri": "/connector_20205bf7d4e99a89d7154bb849718324/implicit_link::connector_20205bf7d4e99a89d7154bb849718324/update_environment",
            "contains_mcp_source": false
          },
          "connector_id": "connector_20205bf7d4e99a89d7154bb849718324",
          "connector_name": "Sites",
          "connector_description": "Build and deploy websites with Sites.",
          "link_id": "implicit_link::connector_20205bf7d4e99a89d7154bb849718324",
          "link_is_implicit": true
        }
      },
      "connector_id": "connector_20205bf7d4e99a89d7154bb849718324",
      "connector_name": "Sites",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_update_environment_variables",
      "tool_namespace": "codex_apps__sites",
      "namespace_description": "Build and deploy websites with Sites.",
      "tool": {
        "name": "sites_update_environment_variables",
        "title": "update_environment_variables",
        "description": "Update production runtime environment variables for a site. Only listed keys change; all others remain unchanged. Store runtime values in Sites, not .openai/hosting.json. Deploy a saved version after any change to apply the new environment revision.",
        "inputSchema": {
          "properties": {
            "project_id": {
              "description": "Exact opaque site project ID. Copy it verbatim from .openai/hosting.json's project_id or the id field returned by create_site, list_sites, or get_site. Never invent, modify, or substitute another identifier.",
              "title": "Project Id",
              "type": "string"
            },
            "set_values": {
              "description": "Environment entries to create or replace. Keys are case-sensitive and must match the application. Do not repeat keys or include a key also listed in remove. Mark sensitive values as secrets.",
              "items": {
                "properties": {
                  "key": {
                    "description": "Required non-empty, case-sensitive environment variable name.",
                    "title": "Key",
                    "type": "string"
                  },
                  "value": {
                    "title": "Value",
                    "type": "string"
                  },
                  "is_secret": {
                    "default": false,
                    "description": "Set true for sensitive values so they are not returned in plaintext.",
                    "title": "Is Secret",
                    "type": "boolean"
                  },
                  "type": {
                    "const": "envvar",
                    "default": "envvar",
                    "title": "Type",
                    "type": "string"
                  }
                },
                "required": [
                  "key",
                  "value"
                ],
                "title": "UpdateAppgardenEnvironmentEnvVarEntryRequest",
                "type": "object",
                "additionalProperties": false
              },
              "title": "Set Values",
              "type": "array"
            },
            "remove": {
              "anyOf": [
                {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Case-sensitive environment keys to remove. Do not repeat keys or include a key also present in set_values. Omit or pass an empty list to preserve other keys.",
              "title": "Remove"
            }
          },
          "required": [
            "project_id",
            "set_values"
          ],
          "title": "update_environment_variables_input",
          "type": "object",
          "additionalProperties": false
        },
        "outputSchema": {
          "title": "update_environment_variables_output",
          "default": {},
          "type": "object",
          "properties": {
            "result": {
              "title": "AppgardenEnvironmentResponse",
              "default": {},
              "type": "object",
              "properties": {
                "project_id": {
                  "title": "Project Id",
                  "default": {},
                  "type": "string"
                },
                "entries": {
                  "title": "Entries",
                  "default": {},
                  "type": "array",
                  "items": {
                    "title": "AppgardenEnvironmentEnvVarEntryResponse",
                    "default": {},
                    "type": "object",
                    "properties": {
                      "key": {
                        "title": "Key",
                        "default": {},
                        "type": "string"
                      },
                      "value": {
                        "title": "Value",
                        "default": {},
                        "type": "anyOf",
                        "anyOf": [
                          {
                            "default": {},
                            "type": "string"
                          },
                          {
                            "default": {},
                            "type": "null"
                          }
                        ]
                      },
                      "is_secret": {
                        "title": "Is Secret",
                        "default": false,
                        "type": "boolean"
                      },
                      "type": {
                        "title": "Type",
                        "default": "envvar",
                        "type": "const",
                        "const": "envvar"
                      }
                    },
                    "required": [
                      "key",
                      "value"
                    ],
                    "additionalProperties": false
                  }
                },
                "revision": {
                  "title": "Revision",
                  "default": {},
                  "type": "integer"
                },
                "updated_at": {
                  "title": "Updated At",
                  "default": {},
                  "type": "anyOf",
                  "anyOf": [
                    {
                      "default": {},
                      "type": "string"
                    },
                    {
                      "default": {},
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "project_id",
                "entries",
                "revision",
                "updated_at"
              ],
              "additionalProperties": false
            }
          },
          "required": [
            "result"
          ],
          "additionalProperties": false
        },
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "Sites_update_environment_variables",
          "_codex_apps": {
            "resource_uri": "/connector_20205bf7d4e99a89d7154bb849718324/implicit_link::connector_20205bf7d4e99a89d7154bb849718324/update_environment_variables",
            "contains_mcp_source": false
          },
          "connector_id": "connector_20205bf7d4e99a89d7154bb849718324",
          "connector_name": "Sites",
          "connector_description": "Build and deploy websites with Sites.",
          "link_id": "implicit_link::connector_20205bf7d4e99a89d7154bb849718324",
          "link_is_implicit": true
        }
      },
      "connector_id": "connector_20205bf7d4e99a89d7154bb849718324",
      "connector_name": "Sites",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_update_site_access",
      "tool_namespace": "codex_apps__sites",
      "namespace_description": "Build and deploy websites with Sites.",
      "tool": {
        "name": "sites_update_site_access",
        "title": "update_site_access",
        "description": "Update who can visit a site only when the user asks to change access. The owner always remains allowed. For workspace sites, call list_available_access_groups before adding groups and use only the IDs the user selects.",
        "inputSchema": {
          "properties": {
            "project_id": {
              "description": "Exact opaque site project ID. Copy it verbatim from .openai/hosting.json's project_id or the id field returned by create_site, list_sites, or get_site. Never invent, modify, or substitute another identifier.",
              "title": "Project Id",
              "type": "string"
            },
            "access_mode": {
              "enum": [
                "public",
                "workspace_all",
                "custom"
              ],
              "title": "AppProjectSettableAccessMode",
              "type": "string",
              "description": "Required access mode for the site: public grants anyone with the URL; workspace_all grants all active workspace users; custom uses the supplied user and group allowlists."
            },
            "allowed_user_emails": {
              "anyOf": [
                {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "User email allowlist. Emails must belong to active users in the site workspace. Omit to preserve the existing allowlist; pass an empty list to clear non-owner users.",
              "title": "Allowed User Emails"
            },
            "allowed_workspace_group_ids": {
              "anyOf": [
                {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Workspace group ID allowlist. IDs must come from list_available_access_groups and belong to the site workspace. Omit to preserve the existing allowlist; pass an empty list to clear it.",
              "title": "Allowed Workspace Group Ids"
            },
            "allowed_tenant_group_ids": {
              "anyOf": [
                {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Tenant group ID allowlist. IDs must come from list_available_access_groups and belong to the tenant linked to the site workspace. Omit to preserve the existing allowlist; pass an empty list to clear it.",
              "title": "Allowed Tenant Group Ids"
            }
          },
          "required": [
            "project_id",
            "access_mode"
          ],
          "title": "update_site_access_input",
          "type": "object",
          "additionalProperties": false
        },
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": false,
          "openWorldHint": true
        },
        "_meta": {
          "resource_name": "Sites_update_site_access",
          "_codex_apps": {
            "resource_uri": "/connector_20205bf7d4e99a89d7154bb849718324/implicit_link::connector_20205bf7d4e99a89d7154bb849718324/update_site_access",
            "contains_mcp_source": false
          },
          "connector_id": "connector_20205bf7d4e99a89d7154bb849718324",
          "connector_name": "Sites",
          "connector_description": "Build and deploy websites with Sites.",
          "link_id": "implicit_link::connector_20205bf7d4e99a89d7154bb849718324",
          "link_is_implicit": true
        }
      },
      "connector_id": "connector_20205bf7d4e99a89d7154bb849718324",
      "connector_name": "Sites",
      "plugin_display_names": []
    },
    {
      "server_name": "codex_apps",
      "supports_parallel_tool_calls": false,
      "server_origin": null,
      "tool_name": "_update_site_metadata",
      "tool_namespace": "codex_apps__sites",
      "namespace_description": "Build and deploy websites with Sites.",
      "tool": {
        "name": "sites_update_site_metadata",
        "title": "update_site_metadata",
        "description": "Update a site's metadata. Currently, this supports changing its display title; it does not change the site's URL or slug.",
        "inputSchema": {
          "properties": {
            "project_id": {
              "description": "Exact opaque site project ID. Copy it verbatim from .openai/hosting.json's project_id or the id field returned by create_site, list_sites, or get_site. Never invent, modify, or substitute another identifier.",
              "title": "Project Id",
              "type": "string"
            },
            "title": {
              "description": "New user-facing site title.",
              "title": "Title",
              "type": "string"
            }
          },
          "required": [
            "project_id",
            "title"
          ],
          "title": "update_site_metadata_input",
          "type": "object",
          "additionalProperties": false
        },
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "resource_name": "Sites_update_site_metadata",
          "_codex_apps": {
            "resource_uri": "/connector_20205bf7d4e99a89d7154bb849718324/implicit_link::connector_20205bf7d4e99a89d7154bb849718324/update_site_metadata",
            "contains_mcp_source": false
          },
          "connector_id": "connector_20205bf7d4e99a89d7154bb849718324",
          "connector_name": "Sites",
          "connector_description": "Build and deploy websites with Sites.",
          "link_id": "implicit_link::connector_20205bf7d4e99a89d7154bb849718324",
          "link_is_implicit": true
        }
      },
      "connector_id": "connector_20205bf7d4e99a89d7154bb849718324",
      "connector_name": "Sites",
      "plugin_display_names": []
    }
  ]
}