|
15469 | 15469 | "type": "boolean", |
15470 | 15470 | "description": "Auto-install for new default teams" |
15471 | 15471 | }, |
| 15472 | + "requires_oauth": { |
| 15473 | + "type": "boolean", |
| 15474 | + "description": "Whether this server requires OAuth authentication" |
| 15475 | + }, |
15472 | 15476 | "source": { |
15473 | 15477 | "type": "string", |
15474 | 15478 | "enum": [ |
|
15517 | 15521 | "status", |
15518 | 15522 | "featured", |
15519 | 15523 | "auto_install_new_default_team", |
| 15524 | + "requires_oauth", |
15520 | 15525 | "created_at", |
15521 | 15526 | "updated_at" |
15522 | 15527 | ] |
|
15876 | 15881 | "type": "boolean", |
15877 | 15882 | "description": "Auto-install for new default teams" |
15878 | 15883 | }, |
| 15884 | + "requires_oauth": { |
| 15885 | + "type": "boolean", |
| 15886 | + "description": "Whether this server requires OAuth authentication" |
| 15887 | + }, |
15879 | 15888 | "source": { |
15880 | 15889 | "type": "string", |
15881 | 15890 | "enum": [ |
|
15899 | 15908 | "format": "date-time", |
15900 | 15909 | "nullable": true, |
15901 | 15910 | "description": "Last sync timestamp" |
15902 | | - }, |
15903 | | - "github_readme_base64": { |
15904 | | - "type": "string", |
15905 | | - "nullable": true, |
15906 | | - "description": "Base64-encoded GitHub README content" |
15907 | 15911 | } |
15908 | 15912 | }, |
15909 | 15913 | "required": [ |
|
15929 | 15933 | "status", |
15930 | 15934 | "featured", |
15931 | 15935 | "auto_install_new_default_team", |
| 15936 | + "requires_oauth", |
15932 | 15937 | "created_at", |
15933 | 15938 | "updated_at" |
15934 | 15939 | ] |
@@ -16033,6 +16038,157 @@ |
16033 | 16038 | } |
16034 | 16039 | } |
16035 | 16040 | }, |
| 16041 | + "/api/mcp/servers/{id}/readme": { |
| 16042 | + "get": { |
| 16043 | + "summary": "Get MCP server README", |
| 16044 | + "tags": [ |
| 16045 | + "MCP Servers" |
| 16046 | + ], |
| 16047 | + "description": "Retrieve the GitHub README content for a specific MCP server. Returns base64-encoded README data. Access is controlled based on user role and team membership - users can access global servers and their team servers, while global admins can access all servers.", |
| 16048 | + "parameters": [ |
| 16049 | + { |
| 16050 | + "schema": { |
| 16051 | + "type": "string", |
| 16052 | + "minLength": 1 |
| 16053 | + }, |
| 16054 | + "in": "path", |
| 16055 | + "name": "id", |
| 16056 | + "required": true, |
| 16057 | + "description": "Server ID is required" |
| 16058 | + } |
| 16059 | + ], |
| 16060 | + "security": [ |
| 16061 | + { |
| 16062 | + "cookieAuth": [] |
| 16063 | + } |
| 16064 | + ], |
| 16065 | + "responses": { |
| 16066 | + "200": { |
| 16067 | + "description": "README retrieved successfully", |
| 16068 | + "content": { |
| 16069 | + "application/json": { |
| 16070 | + "schema": { |
| 16071 | + "type": "object", |
| 16072 | + "properties": { |
| 16073 | + "success": { |
| 16074 | + "type": "boolean", |
| 16075 | + "description": "Indicates successful README retrieval" |
| 16076 | + }, |
| 16077 | + "data": { |
| 16078 | + "type": "object", |
| 16079 | + "properties": { |
| 16080 | + "github_readme_base64": { |
| 16081 | + "type": "string", |
| 16082 | + "nullable": true, |
| 16083 | + "description": "Base64-encoded GitHub README content" |
| 16084 | + } |
| 16085 | + }, |
| 16086 | + "required": [ |
| 16087 | + "github_readme_base64" |
| 16088 | + ], |
| 16089 | + "additionalProperties": false |
| 16090 | + } |
| 16091 | + }, |
| 16092 | + "required": [ |
| 16093 | + "success", |
| 16094 | + "data" |
| 16095 | + ], |
| 16096 | + "additionalProperties": false, |
| 16097 | + "description": "README retrieved successfully" |
| 16098 | + } |
| 16099 | + } |
| 16100 | + } |
| 16101 | + }, |
| 16102 | + "401": { |
| 16103 | + "description": "Unauthorized - Authentication required", |
| 16104 | + "content": { |
| 16105 | + "application/json": { |
| 16106 | + "schema": { |
| 16107 | + "type": "object", |
| 16108 | + "properties": { |
| 16109 | + "success": { |
| 16110 | + "type": "boolean", |
| 16111 | + "default": false, |
| 16112 | + "description": "Indicates the operation failed" |
| 16113 | + }, |
| 16114 | + "error": { |
| 16115 | + "type": "string", |
| 16116 | + "description": "Error message describing what went wrong" |
| 16117 | + }, |
| 16118 | + "details": { |
| 16119 | + "description": "Additional error details" |
| 16120 | + } |
| 16121 | + }, |
| 16122 | + "required": [ |
| 16123 | + "success", |
| 16124 | + "error" |
| 16125 | + ], |
| 16126 | + "description": "Unauthorized - Authentication required" |
| 16127 | + } |
| 16128 | + } |
| 16129 | + } |
| 16130 | + }, |
| 16131 | + "404": { |
| 16132 | + "description": "Not Found - Server not found or access denied", |
| 16133 | + "content": { |
| 16134 | + "application/json": { |
| 16135 | + "schema": { |
| 16136 | + "type": "object", |
| 16137 | + "properties": { |
| 16138 | + "success": { |
| 16139 | + "type": "boolean", |
| 16140 | + "default": false, |
| 16141 | + "description": "Indicates the operation failed" |
| 16142 | + }, |
| 16143 | + "error": { |
| 16144 | + "type": "string", |
| 16145 | + "description": "Error message describing what went wrong" |
| 16146 | + }, |
| 16147 | + "details": { |
| 16148 | + "description": "Additional error details" |
| 16149 | + } |
| 16150 | + }, |
| 16151 | + "required": [ |
| 16152 | + "success", |
| 16153 | + "error" |
| 16154 | + ], |
| 16155 | + "description": "Not Found - Server not found or access denied" |
| 16156 | + } |
| 16157 | + } |
| 16158 | + } |
| 16159 | + }, |
| 16160 | + "500": { |
| 16161 | + "description": "Internal Server Error", |
| 16162 | + "content": { |
| 16163 | + "application/json": { |
| 16164 | + "schema": { |
| 16165 | + "type": "object", |
| 16166 | + "properties": { |
| 16167 | + "success": { |
| 16168 | + "type": "boolean", |
| 16169 | + "default": false, |
| 16170 | + "description": "Indicates the operation failed" |
| 16171 | + }, |
| 16172 | + "error": { |
| 16173 | + "type": "string", |
| 16174 | + "description": "Error message describing what went wrong" |
| 16175 | + }, |
| 16176 | + "details": { |
| 16177 | + "description": "Additional error details" |
| 16178 | + } |
| 16179 | + }, |
| 16180 | + "required": [ |
| 16181 | + "success", |
| 16182 | + "error" |
| 16183 | + ], |
| 16184 | + "description": "Internal Server Error" |
| 16185 | + } |
| 16186 | + } |
| 16187 | + } |
| 16188 | + } |
| 16189 | + } |
| 16190 | + } |
| 16191 | + }, |
16036 | 16192 | "/api/mcp/servers/search": { |
16037 | 16193 | "get": { |
16038 | 16194 | "summary": "Search MCP servers", |
|
16390 | 16546 | "type": "boolean", |
16391 | 16547 | "description": "Auto-install for new default teams" |
16392 | 16548 | }, |
| 16549 | + "requires_oauth": { |
| 16550 | + "type": "boolean", |
| 16551 | + "description": "Whether this server requires OAuth authentication" |
| 16552 | + }, |
16393 | 16553 | "source": { |
16394 | 16554 | "type": "string", |
16395 | 16555 | "enum": [ |
|
16438 | 16598 | "status", |
16439 | 16599 | "featured", |
16440 | 16600 | "auto_install_new_default_team", |
| 16601 | + "requires_oauth", |
16441 | 16602 | "created_at", |
16442 | 16603 | "updated_at" |
16443 | 16604 | ] |
|
17705 | 17866 | "auto_install_new_default_team": { |
17706 | 17867 | "type": "boolean", |
17707 | 17868 | "description": "Auto-install for new default teams" |
| 17869 | + }, |
| 17870 | + "requires_oauth": { |
| 17871 | + "type": "boolean", |
| 17872 | + "description": "Whether this server requires OAuth authentication" |
17708 | 17873 | } |
17709 | 17874 | }, |
17710 | 17875 | "required": [ |
|
17946 | 18111 | "type": "boolean", |
17947 | 18112 | "description": "Auto-install for new default teams" |
17948 | 18113 | }, |
| 18114 | + "requires_oauth": { |
| 18115 | + "type": "boolean", |
| 18116 | + "description": "Whether this server requires OAuth authentication" |
| 18117 | + }, |
17949 | 18118 | "source": { |
17950 | 18119 | "type": "string", |
17951 | 18120 | "enum": [ |
|
17994 | 18163 | "status", |
17995 | 18164 | "featured", |
17996 | 18165 | "auto_install_new_default_team", |
| 18166 | + "requires_oauth", |
17997 | 18167 | "created_at", |
17998 | 18168 | "updated_at" |
17999 | 18169 | ] |
|
18366 | 18536 | "type": "boolean", |
18367 | 18537 | "description": "Auto-install for new default teams" |
18368 | 18538 | }, |
| 18539 | + "requires_oauth": { |
| 18540 | + "type": "boolean", |
| 18541 | + "description": "Whether this server requires OAuth authentication" |
| 18542 | + }, |
18369 | 18543 | "template_args": { |
18370 | 18544 | "type": "array", |
18371 | 18545 | "items": { |
|
19132 | 19306 | "type": "boolean", |
19133 | 19307 | "description": "Auto-install for new default teams" |
19134 | 19308 | }, |
| 19309 | + "requires_oauth": { |
| 19310 | + "type": "boolean", |
| 19311 | + "description": "Whether this server requires OAuth authentication" |
| 19312 | + }, |
19135 | 19313 | "source": { |
19136 | 19314 | "type": "string", |
19137 | 19315 | "enum": [ |
|
19180 | 19358 | "status", |
19181 | 19359 | "featured", |
19182 | 19360 | "auto_install_new_default_team", |
| 19361 | + "requires_oauth", |
19183 | 19362 | "created_at", |
19184 | 19363 | "updated_at" |
19185 | 19364 | ] |
|
23823 | 24002 | "format": "uri", |
23824 | 24003 | "description": "OAuth authorization URL to redirect user to for authentication" |
23825 | 24004 | }, |
| 24005 | + "requires_authorization": { |
| 24006 | + "type": "boolean", |
| 24007 | + "description": "Indicates that OAuth authorization is required (always true for this endpoint)" |
| 24008 | + }, |
23826 | 24009 | "expires_at": { |
23827 | 24010 | "type": "string", |
23828 | 24011 | "format": "date-time", |
|
23832 | 24015 | "required": [ |
23833 | 24016 | "installation_id", |
23834 | 24017 | "authorization_url", |
| 24018 | + "requires_authorization", |
23835 | 24019 | "expires_at" |
23836 | 24020 | ], |
23837 | 24021 | "description": "OAuth authorization URL generated successfully" |
|
23972 | 24156 | } |
23973 | 24157 | } |
23974 | 24158 | }, |
23975 | | - "/api/api/teams/{teamId}/mcp/installations/{installationId}/oauth/callback": { |
| 24159 | + "/api/teams/{teamId}/mcp/installations/{installationId}/oauth/callback": { |
23976 | 24160 | "get": { |
23977 | 24161 | "tags": [ |
23978 | 24162 | "MCP Installations", |
|
32075 | 32259 | "type": "boolean", |
32076 | 32260 | "description": "Whether this server is enabled" |
32077 | 32261 | }, |
| 32262 | + "requires_oauth": { |
| 32263 | + "type": "boolean", |
| 32264 | + "description": "Whether this MCP server requires OAuth authentication (Phase 10)" |
| 32265 | + }, |
| 32266 | + "user_id": { |
| 32267 | + "type": "string", |
| 32268 | + "description": "User ID who created the installation (for OAuth token retrieval, Phase 10)" |
| 32269 | + }, |
32078 | 32270 | "secret_metadata": { |
32079 | 32271 | "type": "object", |
32080 | 32272 | "properties": { |
|
0 commit comments