[mcp-gw] Support for new MCP protocol and unification of tools for MCP Gateway - #170
Conversation
Move the stateless Locust user into agentic_tools, wire Caliper analyze via plugin analysis_config, and replace the project Slack provider with a shared channel_id-driven CaliperSlackProvider. Co-authored-by: Cursor <cursoragent@cursor.com>
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
An empty sys.modules stub shadowed the real package and broke later CI tests that call jsonpath_ng.parse. Co-authored-by: Cursor <cursoragent@cursor.com>
Use the STATELESS-capable perf-mock-server image for MCP 2026 runs. Co-authored-by: Cursor <cursoragent@cursor.com>
|
/test fournos mcp_gateway demo |
🔴 Execution of
|
🔴 Submission of
|
Pass scheduling_node_selector through run() entrypoint parameters instead of reading config directly from toolbox code, respecting layer isolation (orchestration → toolbox, not the other way around). - install_platform: label_worker_nodes task applies node_selector - cleanup_platform: unlabel_worker_nodes task removes labels (@Always) - Orchestration passes cfg.get_scheduling_config() at call sites Co-authored-by: Cursor <cursoragent@cursor.com>
|
/test fournos mcp_gateway demo |
🟢 Execution of
|
🟢 Submission of
|
|
/test fournos mcp_gateway demo |
🟢 Execution of
|
🟢 Submission of
|
|
/test fournos mcp_gateway demo |
🔴 Submission of
|
🛑 Execution of
|
…esource limits label_worker_nodes now picks the single Ready worker with the most allocatable CPU+memory instead of labeling every worker. This concentrates mock servers on the node best able to handle them and prevents overloading smaller workers. Mock server containers now carry resource requests (50m/32Mi) and limits (200m/128Mi) from mock_servers.yaml, giving them Burstable QoS and capping total consumption at 30 CPU / 19Gi for 150 servers. Co-authored-by: Cursor <cursoragent@cursor.com>
…-of-tools-for-mcp-gw
Co-authored-by: Cursor <cursoragent@cursor.com>
|
/test fournos mcp_gateway demo |
🟢 Execution of
|
🟢 Submission of
|
|
/test fournos mcp_gateway demo |
🟢 Execution of
|
🟢 Submission of
|
|
/test fournos mcp_gateway scale-out |
🟢 Execution of
|
🟢 Submission of
|
|
/test fournos mcp_gateway scale-out |
🟢 Execution of
|
🟢 Submission of
|
|
/test fournos mcp_gateway scale-out |
🟢 Execution of
|
🟢 Submission of
|
The tight CPU/memory limits (200m/128Mi) caused mock servers to crash during the hairpin session initialization burst in multi-server tests. The s150-u500 demo run (no limits) confirmed 0% failure and 0 restarts. Co-authored-by: Cursor <cursoragent@cursor.com>
|
/test fournos mcp_gateway demo |
🟢 Execution of
|
🟢 Submission of
|
|
/test fournos mcp_gateway scale-out |
🟢 Execution of
|
🟢 Submission of
|
|
sperated into 3 PRs - putting as a draft |
Split from #170. Adds scheduling_node_selector support to install_platform/cleanup_platform so worker nodes can be labeled/unlabeled around platform install and teardown, wired through from the existing infrastructure.scheduling config. Co-authored-by: Cursor <cursoragent@cursor.com>
Split from #170. Adds a stateless MCP 2026-07-28 Locust user (mcp_2026_user.py) alongside the existing stateful session user, wires runtime.protocol_mode into locust job env/file selection, and points the mock server deployer/image at the new-protocol build. Co-authored-by: Cursor <cursoragent@cursor.com>
Split from #170. Replaces the mcp_gateway-specific Slack provider with the shared CaliperSlackProvider (notifications.slack.channel_id), enables Caliper KPI analyze for mcp_gateway, and expands Locust/Prometheus KPI parsing (per-op metrics, broker/envoy, HTTP 4xx). Co-authored-by: Cursor <cursoragent@cursor.com>
Summary
agentic_toolsand wire mcp_gateway stateful/stateless selection viaruntime.protocol_mode.CaliperSlackProviderdriven bynotifications.slack.channel_id, fed by Caliperkpi_analyze.json.analysis_config+ version labels) and expand Locust/Prometheus KPI parsing (per-op metrics, broker/envoy, HTTP 4xx).Test plan
ruff check/ruff formaton touched Python filespytest projects/core/tests/test_caliper_slack.py projects/mcp_gateway/postprocess/tests/test_mcp_gateway_plugin.pyprotocol_mode: statefulLocust job still mountsmcp_session_user+mcp_clientprotocol_mode: statelessLocust job mountsmcp_2026_userand mock servers getSTATELESS=truekpis.jsonand, with historical S3 data,regression_analyze/kpi_analyze.jsonnotifications.slack.channel_idset sends Slack viaCaliperSlackProviderMade with Cursor