Skip to content

[mcp] mcputils for streamable http#58764

Merged
greedy52 merged 6 commits intomasterfrom
STeve/56588_mcputils
Sep 18, 2025
Merged

[mcp] mcputils for streamable http#58764
greedy52 merged 6 commits intomasterfrom
STeve/56588_mcputils

Conversation

@greedy52
Copy link
Copy Markdown
Contributor

@greedy52 greedy52 commented Sep 4, 2025

related:

main changes:

  • Expose BaseJSONRPCMessage
  • A helper func ReplaceHTTPResponse

@greedy52 greedy52 self-assigned this Sep 4, 2025
@greedy52 greedy52 added no-changelog Indicates that a PR does not require a changelog entry MCP MCP Server related backport/branch/v18 labels Sep 4, 2025
@github-actions github-actions Bot requested review from avatus and vapopov September 4, 2025 20:10
@greedy52 greedy52 force-pushed the STeve/56588_mcputils branch from dce6094 to 9794788 Compare September 4, 2025 20:14
Comment thread lib/utils/mcputils/http.go Outdated
case base.IsNotification():
respToClient = r.processer.ProcessNotification(r.ctx, base.MakeNotification())
default:
return 0, trace.BadParameter("message is not a response or a notification")
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we need to update r.buf in this case?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

no. it should be an error case which should fail the reading. according to mcp spec, this should not happen though, if server is implemented correctly.

Comment thread lib/utils/mcputils/http.go Outdated
Comment thread lib/utils/mcputils/http.go
Comment thread lib/utils/mcputils/http.go Outdated
@greedy52 greedy52 requested review from smallinsky and zmb3 September 9, 2025 13:55
@greedy52
Copy link
Copy Markdown
Contributor Author

friendly ping @Tener @gabrielcorado @smallinsky 🙏

@greedy52 greedy52 force-pushed the STeve/56588_mcputils branch from d8cea3c to 566a8d5 Compare September 17, 2025 17:42
@greedy52 greedy52 added this pull request to the merge queue Sep 18, 2025
@github-merge-queue github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Sep 18, 2025
@greedy52 greedy52 enabled auto-merge September 18, 2025 13:45
@greedy52 greedy52 added this pull request to the merge queue Sep 18, 2025
Merged via the queue into master with commit 09bfa40 Sep 18, 2025
42 checks passed
@greedy52 greedy52 deleted the STeve/56588_mcputils branch September 18, 2025 14:24
@backport-bot-workflows
Copy link
Copy Markdown
Contributor

@greedy52 See the table below for backport results.

Branch Result
branch/v18 Failed

greedy52 added a commit that referenced this pull request Oct 23, 2025
* [mcp] mcputils for streamable http

* fix flaky test

* use utils.ReadAtMost and fmt.Appendf

* add a marshal function for event

* fix spell
github-merge-queue Bot pushed a commit that referenced this pull request Oct 27, 2025
* [MCP] server-side SSE support (#56051)

* MCP access part 12: server-side SSE support

* parse uri for determining transport type

* fix pointer, atomic, and parse error

� Conflicts:
�	lib/srv/mcp/server.go

* fix schema, etc

* switch to golang internal mcp sse parsing

* remove ParentCtx from logging

* fix build and address comments

* [mcp] refactor jwt token and app header rewrite logic (#58601)

* [mcp] mcputils for streamable http (#58764)

* [mcp] mcputils for streamable http

* fix flaky test

* use utils.ReadAtMost and fmt.Appendf

* add a marshal function for event

* fix spell

* [mcp] update audit events for streamable HTTP transport (#59155)

* [mcp] update audit events for streamable HTTP transport

* nolint for unused functions for now, they will be used in next PR

* [mcp] server handler for streamable HTTP transport (#59499)

* [mcp] server handler for streamable hTTP transport

* review comments round 1

* add comments and fix flaky test

* [mcp] bump mcp-go version (#59500)

* [mcp] bump mcp-go version

* fix IO transport by explicit start

* [mcp] add server prometheus metrics (#59773)

* [mcp] add server prometheus metrics

* remove TODO and nolint

* use counter where possible and limit known methods

* move reporting test to individual tests

* nolint for "cancelled"

* Fix an issue docker container launched by MCP commands are not removed sometimes (#59879)

* Fix an issue docker container launched by MCP commands are not removed sometimes

* switch to math/rand/v2

* add "tsh proxy mcp" command (#59968)

* [refactor] client.NewMCPServerDialer (#60020)

* [refactor] client.NewMCPServerDialer

* TestVerifyTLSCertLeafExpiry

* TestMatchResourcesByFilters

* fix typo

* fix lint

* mcputils for streamable HTTP transport conversion (#60024)

* mcputils for streamable HTTP transport conversion

* remove need of context from mcptest functions

* add test for notification

* [mcp] "tsh mcp connect" support for streamable HTTP (#60120)

* implement "tsh mcp connect" for streamable HTTP

* wait for 5s just to be conservative

* [mcp] Web UI and Teleport Connect adjustments for SSE and Streamable HTTP MCP servers (#60281)

* [mcp] Web UI and Teleport Connect adjustments for SSE and Streamable HTTP MCP servers

* review comments

* [mcp] fix some edge cases for streamable HTTP (#60286)

* [mcp] add JWT and rewrite headers support for SSE MCP servers (#60320)

* fix go.mod to match master

* fix lint and ut
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport/branch/v18 MCP MCP Server related no-changelog Indicates that a PR does not require a changelog entry size/md

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants