-
Notifications
You must be signed in to change notification settings - Fork 929
feat: add MCP HTTP transport endpoint with authentication #18670
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: thomask33/06-30-feat_oauth2_remove_unique_constraint_on_app_names_for_rfc_7591_compliance
Are you sure you want to change the base?
Conversation
4efb07a
to
8a3f7a9
Compare
4d966b2
to
4ffc58e
Compare
8a3f7a9
to
e7d56c2
Compare
4ffc58e
to
23804bb
Compare
e7d56c2
to
10701da
Compare
23804bb
to
06d9b57
Compare
10701da
to
a2607a8
Compare
06d9b57
to
cee654a
Compare
a2607a8
to
990f706
Compare
8cb9d74
to
3e540ef
Compare
990f706
to
95c0496
Compare
95c0496
to
b17d907
Compare
- Add MCP HTTP server with streamable transport support - Integrate with existing toolsdk for Coder workspace operations - Add comprehensive E2E tests with OAuth2 bearer token support - Register MCP endpoint at /api/experimental/mcp/http with authentication - Support RFC 6750 Bearer token authentication for MCP clients Change-Id: Ib9024569ae452729908797c42155006aa04330af Signed-off-by: Thomas Kosiewski <tk@coder.com>
3e540ef
to
0447dc7
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This appears to still be running inside coderd
. I don't think it should exit experimental until it can be run independently of Coder. Could this simply be a separate server subcommand instead? This will allow admins to deploy it separately depending on their threat model. Right now, this just auto-enables it for all deployments regardless of whether you want it or not.
func mustParseURL(rawURL string) *url.URL { | ||
u, err := url.Parse(rawURL) | ||
if err != nil { | ||
panic(fmt.Sprintf("Failed to parse URL %q: %v", rawURL, err)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Wouldn't require.NoError
here make more sense?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe. (?)
I'm not opposed to making this a mustParseURL(t *testing.T, ...
, but usually most helper functions that mustDoSomething
panic on an error.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm down for whatever returns the most meaningful output 👍
Add MCP HTTP server with streamable transport support
Change-Id: Ib9024569ae452729908797c42155006aa04330af
Signed-off-by: Thomas Kosiewski tk@coder.com