feat: add configs for external auth MCP usage + tool allow/denylist (#19794)

Closes https://github.com/coder/internal/issues/988

The logic for allowing/denying tools can be found in https://github.com/coder/aibridge/pull/4/files#diff-330a6371a583dd8cadeed79b95499e3a87960ad8ea4d6a94061e8f88a44834c3 (`ProxyBase.filterAllowedTools`).
This commit is contained in:
Danny Kopping
2025-09-16 20:31:29 +02:00
committed by GitHub
parent 655a36c392
commit 348a2e0285
11 changed files with 88 additions and 0 deletions
+3
View File
@@ -254,6 +254,9 @@ curl -X GET http://coder-server:8080/api/v2/deployment/config \
"display_icon": "string",
"display_name": "string",
"id": "string",
"mcp_tool_allow_regex": "string",
"mcp_tool_deny_regex": "string",
"mcp_url": "string",
"no_refresh": true,
"regex": "string",
"scopes": [
+15
View File
@@ -2358,6 +2358,9 @@ CreateWorkspaceRequest provides options for creating a new workspace. Only one o
"display_icon": "string",
"display_name": "string",
"id": "string",
"mcp_tool_allow_regex": "string",
"mcp_tool_deny_regex": "string",
"mcp_url": "string",
"no_refresh": true,
"regex": "string",
"scopes": [
@@ -2859,6 +2862,9 @@ CreateWorkspaceRequest provides options for creating a new workspace. Only one o
"display_icon": "string",
"display_name": "string",
"id": "string",
"mcp_tool_allow_regex": "string",
"mcp_tool_deny_regex": "string",
"mcp_url": "string",
"no_refresh": true,
"regex": "string",
"scopes": [
@@ -3562,6 +3568,9 @@ CreateWorkspaceRequest provides options for creating a new workspace. Only one o
"display_icon": "string",
"display_name": "string",
"id": "string",
"mcp_tool_allow_regex": "string",
"mcp_tool_deny_regex": "string",
"mcp_url": "string",
"no_refresh": true,
"regex": "string",
"scopes": [
@@ -3586,6 +3595,9 @@ CreateWorkspaceRequest provides options for creating a new workspace. Only one o
| `display_icon` | string | false | | Display icon is a URL to an icon to display in the UI. |
| `display_name` | string | false | | Display name is shown in the UI to identify the auth config. |
| `id` | string | false | | ID is a unique identifier for the auth config. It defaults to `type` when not provided. |
| `mcp_tool_allow_regex` | string | false | | |
| `mcp_tool_deny_regex` | string | false | | |
| `mcp_url` | string | false | | |
| `no_refresh` | boolean | false | | |
|`regex`|string|false||Regex allows API requesters to match an auth config by a string (e.g. coder.com) instead of by it's type.
Git clone makes use of this by parsing the URL from: 'Username for "https://github.com":' And sending it to the Coder server to match against the Regex.|
@@ -12850,6 +12862,9 @@ None
"display_icon": "string",
"display_name": "string",
"id": "string",
"mcp_tool_allow_regex": "string",
"mcp_tool_deny_regex": "string",
"mcp_url": "string",
"no_refresh": true,
"regex": "string",
"scopes": [