Commit 6b932f2
feat: multi-remote server selection for external MCPs (#1792)
## Summary
- Adds support for MCP servers that have multiple remote endpoints (like
Salesforce which has different remotes for different sub apis)
- Users can now select which remote endpoints to include when adding
such servers to their project
- Adds new `selectRemotes` workflow phase for configuring multi-remote
servers before deployment
- **Backend now stores and uses selected remotes during deployment
processing**
## Changes
- **API**: Added `ExternalMCPRemote` type and `remotes` field to
`ExternalMCPServer` in Goa design
- **API**: Added `selected_remotes` field to `AddExternalMCPForm` for
storing user selections
- **Backend**: Updated SQL queries to store `selected_remotes` in
`external_mcp_attachments`
- **Backend**: Modified `GetServerDetails` to filter remotes based on
user selection
- **Backend**: Pass selected remotes through ToolExtractor during
deployment
- **Frontend**: Added `selectRemotes` phase to the workflow for
multi-remote server configuration
- **Frontend**: Added UI for selecting which remote endpoints to
include, with friendly display names for known services (Salesforce
sub-APIs)
- **Frontend**: Added `goBack` navigation to return from configure phase
to selectRemotes phase
- **Frontend**: Now sends selected remote URLs to backend on deployment
## Dependencies
- Requires migration PR #1793 to be merged first (adds
`selected_remotes` column)
## Test plan
- [ ] Merge migration PR #1793 first
- [ ] Add a Salesforce MCP server from the catalog
- [ ] Verify the remote selection UI appears with all available
endpoints
- [ ] Verify friendly names are shown for Salesforce environments
- [ ] Verify deselecting some endpoints and deploying works correctly
- [ ] Verify the backend uses only the selected remotes during tool
extraction
- [ ] Verify the "Back" button returns to remote selection from the
configure phase
🤖 Generated with [Claude Code](https://claude.com/claude-code)
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: Quinn Stearns <quinn@speakeasy.com>1 parent 5163d0d commit 6b932f2
File tree
65 files changed
+4491
-187
lines changed- .speakeasy
- client
- dashboard/src
- pages/catalog
- hooks
- styles
- sdk
- .speakeasy
- src
- funcs
- lib
- models
- components
- operations
- react-query
- sdk
- server
- database
- design
- deployments
- externalmcp
- gen
- deployments
- http
- cli/gram
- deployments
- client
- server
- mcp_registries
- client
- server
- mcp_registries
- types
- internal
- background/activities
- database
- deployments
- repo
- externalmcp
- migrations
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
65 files changed
+4491
-187
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5869 | 5869 | | |
5870 | 5870 | | |
5871 | 5871 | | |
| 5872 | + | |
| 5873 | + | |
| 5874 | + | |
| 5875 | + | |
| 5876 | + | |
| 5877 | + | |
| 5878 | + | |
| 5879 | + | |
| 5880 | + | |
| 5881 | + | |
| 5882 | + | |
| 5883 | + | |
| 5884 | + | |
| 5885 | + | |
| 5886 | + | |
| 5887 | + | |
| 5888 | + | |
| 5889 | + | |
| 5890 | + | |
| 5891 | + | |
| 5892 | + | |
| 5893 | + | |
| 5894 | + | |
| 5895 | + | |
| 5896 | + | |
| 5897 | + | |
| 5898 | + | |
| 5899 | + | |
| 5900 | + | |
| 5901 | + | |
| 5902 | + | |
| 5903 | + | |
| 5904 | + | |
| 5905 | + | |
| 5906 | + | |
| 5907 | + | |
| 5908 | + | |
| 5909 | + | |
| 5910 | + | |
| 5911 | + | |
| 5912 | + | |
| 5913 | + | |
| 5914 | + | |
| 5915 | + | |
| 5916 | + | |
| 5917 | + | |
| 5918 | + | |
| 5919 | + | |
| 5920 | + | |
| 5921 | + | |
| 5922 | + | |
| 5923 | + | |
| 5924 | + | |
| 5925 | + | |
| 5926 | + | |
| 5927 | + | |
| 5928 | + | |
| 5929 | + | |
| 5930 | + | |
| 5931 | + | |
| 5932 | + | |
| 5933 | + | |
| 5934 | + | |
| 5935 | + | |
| 5936 | + | |
| 5937 | + | |
| 5938 | + | |
| 5939 | + | |
| 5940 | + | |
| 5941 | + | |
| 5942 | + | |
| 5943 | + | |
| 5944 | + | |
| 5945 | + | |
| 5946 | + | |
| 5947 | + | |
| 5948 | + | |
| 5949 | + | |
| 5950 | + | |
| 5951 | + | |
| 5952 | + | |
| 5953 | + | |
| 5954 | + | |
| 5955 | + | |
| 5956 | + | |
| 5957 | + | |
| 5958 | + | |
| 5959 | + | |
| 5960 | + | |
| 5961 | + | |
| 5962 | + | |
| 5963 | + | |
| 5964 | + | |
| 5965 | + | |
| 5966 | + | |
| 5967 | + | |
| 5968 | + | |
| 5969 | + | |
| 5970 | + | |
| 5971 | + | |
| 5972 | + | |
| 5973 | + | |
| 5974 | + | |
| 5975 | + | |
| 5976 | + | |
| 5977 | + | |
| 5978 | + | |
| 5979 | + | |
| 5980 | + | |
| 5981 | + | |
| 5982 | + | |
| 5983 | + | |
| 5984 | + | |
| 5985 | + | |
5872 | 5986 | | |
5873 | 5987 | | |
5874 | 5988 | | |
| |||
12164 | 12278 | | |
12165 | 12279 | | |
12166 | 12280 | | |
| 12281 | + | |
| 12282 | + | |
| 12283 | + | |
| 12284 | + | |
| 12285 | + | |
| 12286 | + | |
| 12287 | + | |
12167 | 12288 | | |
12168 | 12289 | | |
12169 | 12290 | | |
| |||
13853 | 13974 | | |
13854 | 13975 | | |
13855 | 13976 | | |
| 13977 | + | |
| 13978 | + | |
| 13979 | + | |
| 13980 | + | |
| 13981 | + | |
| 13982 | + | |
| 13983 | + | |
| 13984 | + | |
| 13985 | + | |
| 13986 | + | |
| 13987 | + | |
| 13988 | + | |
| 13989 | + | |
| 13990 | + | |
| 13991 | + | |
| 13992 | + | |
| 13993 | + | |
13856 | 13994 | | |
13857 | 13995 | | |
13858 | 13996 | | |
| |||
13873 | 14011 | | |
13874 | 14012 | | |
13875 | 14013 | | |
| 14014 | + | |
| 14015 | + | |
| 14016 | + | |
| 14017 | + | |
| 14018 | + | |
13876 | 14019 | | |
13877 | 14020 | | |
13878 | 14021 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
5 | | - | |
6 | | - | |
| 5 | + | |
| 6 | + | |
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
14 | | - | |
15 | | - | |
16 | | - | |
17 | | - | |
| 14 | + | |
| 15 | + | |
18 | 16 | | |
19 | 17 | | |
20 | 18 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
85 | 85 | | |
86 | 86 | | |
87 | 87 | | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
0 commit comments