@@ -35336,6 +35336,285 @@
3533635336 }
3533735337 }
3533835338 },
35339+ "/api/admin/teams/{id}/mcp/installations": {
35340+ "get": {
35341+ "summary": "Get team MCP installations (Global Admin)",
35342+ "tags": [
35343+ "Admin - Teams"
35344+ ],
35345+ "description": "Allows global administrators to view all MCP server installations for a specific team with pagination.",
35346+ "parameters": [
35347+ {
35348+ "schema": {
35349+ "type": "string",
35350+ "pattern": "^\\d+$"
35351+ },
35352+ "in": "query",
35353+ "name": "limit",
35354+ "required": false,
35355+ "description": "Maximum number of items to return (1-100, default: 20)"
35356+ },
35357+ {
35358+ "schema": {
35359+ "type": "string",
35360+ "pattern": "^\\d+$"
35361+ },
35362+ "in": "query",
35363+ "name": "offset",
35364+ "required": false,
35365+ "description": "Number of items to skip (≥0, default: 0)"
35366+ },
35367+ {
35368+ "schema": {
35369+ "type": "string"
35370+ },
35371+ "in": "path",
35372+ "name": "id",
35373+ "required": true,
35374+ "description": "Team ID"
35375+ }
35376+ ],
35377+ "security": [
35378+ {
35379+ "cookieAuth": []
35380+ }
35381+ ],
35382+ "responses": {
35383+ "200": {
35384+ "description": "Paginated list of MCP installations for the team",
35385+ "content": {
35386+ "application/json": {
35387+ "schema": {
35388+ "type": "object",
35389+ "properties": {
35390+ "success": {
35391+ "type": "boolean",
35392+ "description": "Indicates operation success"
35393+ },
35394+ "data": {
35395+ "type": "object",
35396+ "properties": {
35397+ "installations": {
35398+ "type": "array",
35399+ "items": {
35400+ "type": "object",
35401+ "properties": {
35402+ "id": {
35403+ "type": "string",
35404+ "description": "Installation unique identifier"
35405+ },
35406+ "installation_name": {
35407+ "type": "string",
35408+ "description": "User-defined installation name"
35409+ },
35410+ "server_name": {
35411+ "type": "string",
35412+ "description": "MCP server name"
35413+ },
35414+ "server_slug": {
35415+ "type": "string",
35416+ "description": "MCP server slug"
35417+ },
35418+ "status": {
35419+ "type": "string",
35420+ "description": "Installation status (provisioning|online|offline|error|...)"
35421+ },
35422+ "created_at": {
35423+ "type": "string",
35424+ "description": "ISO8601 timestamp"
35425+ },
35426+ "last_used_at": {
35427+ "type": "string",
35428+ "nullable": true,
35429+ "description": "ISO8601 timestamp or null"
35430+ }
35431+ },
35432+ "required": [
35433+ "id",
35434+ "installation_name",
35435+ "server_name",
35436+ "server_slug",
35437+ "status",
35438+ "created_at"
35439+ ]
35440+ }
35441+ },
35442+ "pagination": {
35443+ "type": "object",
35444+ "properties": {
35445+ "total": {
35446+ "type": "number",
35447+ "description": "Total number of teams"
35448+ },
35449+ "limit": {
35450+ "type": "number",
35451+ "description": "Number of teams per page"
35452+ },
35453+ "offset": {
35454+ "type": "number",
35455+ "description": "Number of teams skipped"
35456+ },
35457+ "has_more": {
35458+ "type": "boolean",
35459+ "description": "Whether there are more teams beyond this page"
35460+ }
35461+ },
35462+ "required": [
35463+ "total",
35464+ "limit",
35465+ "offset",
35466+ "has_more"
35467+ ]
35468+ }
35469+ },
35470+ "required": [
35471+ "installations",
35472+ "pagination"
35473+ ]
35474+ }
35475+ },
35476+ "required": [
35477+ "success",
35478+ "data"
35479+ ],
35480+ "description": "Paginated list of MCP installations for the team"
35481+ }
35482+ }
35483+ }
35484+ },
35485+ "400": {
35486+ "description": "Bad Request - Invalid pagination parameters",
35487+ "content": {
35488+ "application/json": {
35489+ "schema": {
35490+ "type": "object",
35491+ "properties": {
35492+ "success": {
35493+ "type": "boolean",
35494+ "default": false,
35495+ "description": "Indicates operation failure"
35496+ },
35497+ "error": {
35498+ "type": "string",
35499+ "description": "Error message"
35500+ }
35501+ },
35502+ "required": [
35503+ "success",
35504+ "error"
35505+ ],
35506+ "description": "Bad Request - Invalid pagination parameters"
35507+ }
35508+ }
35509+ }
35510+ },
35511+ "401": {
35512+ "description": "Unauthorized",
35513+ "content": {
35514+ "application/json": {
35515+ "schema": {
35516+ "type": "object",
35517+ "properties": {
35518+ "success": {
35519+ "type": "boolean",
35520+ "default": false,
35521+ "description": "Indicates operation failure"
35522+ },
35523+ "error": {
35524+ "type": "string",
35525+ "description": "Error message"
35526+ }
35527+ },
35528+ "required": [
35529+ "success",
35530+ "error"
35531+ ],
35532+ "description": "Unauthorized"
35533+ }
35534+ }
35535+ }
35536+ },
35537+ "403": {
35538+ "description": "Forbidden - Global admin required",
35539+ "content": {
35540+ "application/json": {
35541+ "schema": {
35542+ "type": "object",
35543+ "properties": {
35544+ "success": {
35545+ "type": "boolean",
35546+ "default": false,
35547+ "description": "Indicates operation failure"
35548+ },
35549+ "error": {
35550+ "type": "string",
35551+ "description": "Error message"
35552+ }
35553+ },
35554+ "required": [
35555+ "success",
35556+ "error"
35557+ ],
35558+ "description": "Forbidden - Global admin required"
35559+ }
35560+ }
35561+ }
35562+ },
35563+ "404": {
35564+ "description": "Team not found",
35565+ "content": {
35566+ "application/json": {
35567+ "schema": {
35568+ "type": "object",
35569+ "properties": {
35570+ "success": {
35571+ "type": "boolean",
35572+ "default": false,
35573+ "description": "Indicates operation failure"
35574+ },
35575+ "error": {
35576+ "type": "string",
35577+ "description": "Error message"
35578+ }
35579+ },
35580+ "required": [
35581+ "success",
35582+ "error"
35583+ ],
35584+ "description": "Team not found"
35585+ }
35586+ }
35587+ }
35588+ },
35589+ "500": {
35590+ "description": "Internal Server Error",
35591+ "content": {
35592+ "application/json": {
35593+ "schema": {
35594+ "type": "object",
35595+ "properties": {
35596+ "success": {
35597+ "type": "boolean",
35598+ "default": false,
35599+ "description": "Indicates operation failure"
35600+ },
35601+ "error": {
35602+ "type": "string",
35603+ "description": "Error message"
35604+ }
35605+ },
35606+ "required": [
35607+ "success",
35608+ "error"
35609+ ],
35610+ "description": "Internal Server Error"
35611+ }
35612+ }
35613+ }
35614+ }
35615+ }
35616+ }
35617+ },
3533935618 "/api/admin/oauth-providers": {
3534035619 "get": {
3534135620 "summary": "List all OAuth providers (Global Admin)",
0 commit comments