diff --git a/.github/workflows/helm-release.yml b/.github/workflows/helm-release.yml index 351ed316f..ec480e107 100644 --- a/.github/workflows/helm-release.yml +++ b/.github/workflows/helm-release.yml @@ -7,9 +7,9 @@ on: workflow_dispatch: inputs: version: - description: "Version tag (e.g., v3.5.1)" + description: "Version tag (e.g., v3.5.2)" required: true - default: "v3.5.1" + default: "v3.5.2" jobs: release: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 50b9f68e6..1b7562555 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -8,9 +8,9 @@ on: workflow_dispatch: inputs: version: - description: "Version (e.g., v3.5.1)" + description: "Version (e.g., v3.5.2)" required: true - default: "v3.5.1" + default: "v3.5.2" environment: description: "Environment" type: choice diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index 1cc903298..adda3aa8c 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -1,6 +1,42 @@ # MCP Mesh Release Notes -[Unreleased changes](https://github.com/dhyansraj/mcp-mesh/compare/v3.5.1...HEAD) +[Unreleased changes](https://github.com/dhyansraj/mcp-mesh/compare/v3.5.2...HEAD) + +[Full Changelog](https://github.com/dhyansraj/mcp-mesh/compare/v3.5.1...v3.5.2) + +## v3.5.2 (2026-08-06) + +A provider can now withdraw itself from dependency resolution while a health check it declares reports unhealthy, and returns automatically once the check passes again — in all three runtimes, with no pod restart. v3.5.1's notes said Java and TypeScript readiness could not yet reflect a dependency outage; this closes that. It also fixes a live defect in 3.5.1: Python `@mesh.route` and A2A agents serve none of the probe endpoints the agent chart points at, so a Python gateway is restart-looped by the kubelet. No wire-protocol, registry-schema or dependency-resolution changes, and the only declaration-syntax change is the additive, opt-in health check itself. + +> **⚠️ Python `@mesh.route` and A2A agents need the 3.5.2 image.** On chart 3.5.1 every probe 404s and Kubernetes restarts a healthy gateway. TypeScript `/health` and `/ready` also change shape. Both in Notes. + +### 🩺 Health checks + +- **A provider withdraws itself while its own health check fails, in all three runtimes.** Declare `health_check` (Python, #1473), `@MeshHealthCheck` (Java, #1475) or `healthCheck` (TypeScript, #1481): while it reports unhealthy the agent stops heartbeating, the registry ages it out and consumers resolve to another provider. The process keeps running throughout and comes back on its own when the check passes again. +- **A check that throws, or that cannot reach a conclusion, is `degraded` and keeps heartbeating**, so a broken probe cannot take a working agent out of the mesh. Python's malformed-return case mapped to unhealthy and was aligned with the other two (#1477). +- **A health check never withdraws a `mesh.route` or A2A agent.** They are fan-out points, and withdrawing one takes down every path that enters through it, so the verdict never reaches the heartbeat there whatever the check reports — nor, since #1489, a Java gateway's `/ready`. + +### 🐍 Python probes and cadence + +- **⚠️ Route and A2A agents now serve `/livez`, `/ready` and `/health` (#1494).** They served **none** of them, so a Python gateway deployed with the agent chart — which has probed `/livez` and `/ready` since 3.5.1 — 404s every probe and gets restart-looped by the kubelet. This is a live bug in 3.5.1 rather than something 3.5.2 introduces, and hand-rolling a `/health`, as the examples do, does not satisfy the two probes the chart actually uses. A path the app already declares wins; the others are still registered. +- **`MCP_MESH_HEALTH_CHECK_TTL` is honoured on Python (#1493).** TypeScript and Java already read it; Python took the cadence only from the `health_check_ttl` decorator argument, which is baked into the image. It is now tunable at deploy time from Helm values — which matters in the release that makes the TTL govern how fast a provider withdraws and how fast it returns. + +### 📘 TypeScript probes + +- **⚠️ `/ready` and `/health` reflect the health verdict instead of FastMCP's built-ins (#1487).** `/ready` answered a hardcoded 200 and `/health` a fixed string, so a TypeScript provider whose vendor was down kept receiving direct Service traffic after mesh consumers had already failed over. Both changes are breaking for anything that parses them — see Notes. + +### 🛠 Scaffold + +- **Vendor probes are selected by the resolved vendor rather than a substring match on the model string (#1484).** A gateway-prefixed model such as `bedrock/anthropic.claude-*` or `vertex_ai/gemini-*` matched the underlying vendor's name and got a probe for credentials it does not have — which, now that the check is load-bearing, withdrew a fully working provider. Those models get the generic skeleton instead; discovery tags still follow the model family. +- **Generated helm values wire only credentials the agent can use (#1487, #1496).** An `llm-provider` gets the selected vendor's API key and, for a gateway model, none at all. `api`, `basic` and `llm-agent` get none either: an `llm-agent` resolves a provider through mesh DI, and the provider holds the credentials. +- **Generated compose healthchecks probe `/livez`, not `/health` (#1495).** `/health` answers 503 while a declared check reports degraded or unhealthy, so a vendor outage blocked every dependent gated on `depends_on: condition: service_healthy` and made `docker compose ps` report a serving agent as unhealthy. + +### ⚠️ Notes + +- **⚠️ Upgrade Python route and A2A agents to the 3.5.2 image.** Chart 3.5.1 points startup and liveness at `/livez` and readiness at `/ready`, and no Python gateway has ever served either, so the kubelet restarts it on the startup probe. The image is the whole fix — no chart or code change is needed — and MCP agents, which have served all three endpoints for far longer, are unaffected. +- **⚠️ TypeScript `/health` is now JSON.** It previously returned the literal `text/plain` string `✓ Ok`. Anything string-matching that response breaks; a check on the HTTP status still works. +- **⚠️ TypeScript `/ready` and `/health` now answer 503** when a declared `healthCheck` reports `unhealthy` **or** `degraded`, so a failing agent leaves its Kubernetes Service endpoints. This matches Python and Java. **Agents with no `healthCheck` are unaffected.** +- **Regenerating a scaffold changes two of its generated files.** Helm values no longer wire vendor API keys the agent cannot use — every arm removed was `optional: true`, so there is no runtime effect — and compose healthchecks move from `/health` to `/livez`. Files you have already generated are untouched until you regenerate them. [Full Changelog](https://github.com/dhyansraj/mcp-mesh/compare/v3.5.0...v3.5.1) diff --git a/cmd/meshctl/templates/java/a2a-consumer/Dockerfile.tmpl b/cmd/meshctl/templates/java/a2a-consumer/Dockerfile.tmpl index 4c87bff51..2dc75963f 100644 --- a/cmd/meshctl/templates/java/a2a-consumer/Dockerfile.tmpl +++ b/cmd/meshctl/templates/java/a2a-consumer/Dockerfile.tmpl @@ -1,5 +1,5 @@ # Dockerfile for {{ .Name }} A2A consumer bridge (Java/Spring Boot) -FROM mcpmesh/java-runtime:3.5.1 +FROM mcpmesh/java-runtime:3.5.2 WORKDIR /app diff --git a/cmd/meshctl/templates/java/a2a-consumer/pom.xml.tmpl b/cmd/meshctl/templates/java/a2a-consumer/pom.xml.tmpl index 183cae055..6ca2449e0 100644 --- a/cmd/meshctl/templates/java/a2a-consumer/pom.xml.tmpl +++ b/cmd/meshctl/templates/java/a2a-consumer/pom.xml.tmpl @@ -26,7 +26,7 @@ 17 - 3.5.1 + 3.5.2 diff --git a/cmd/meshctl/templates/java/api/Dockerfile.tmpl b/cmd/meshctl/templates/java/api/Dockerfile.tmpl index 448951762..ba709d991 100644 --- a/cmd/meshctl/templates/java/api/Dockerfile.tmpl +++ b/cmd/meshctl/templates/java/api/Dockerfile.tmpl @@ -1,5 +1,5 @@ # Dockerfile for {{ .Name }} MCP Mesh API gateway (Java/Spring Boot) -FROM mcpmesh/java-runtime:3.5.1 +FROM mcpmesh/java-runtime:3.5.2 WORKDIR /app diff --git a/cmd/meshctl/templates/java/api/pom.xml.tmpl b/cmd/meshctl/templates/java/api/pom.xml.tmpl index 1d6b631a0..110adab99 100644 --- a/cmd/meshctl/templates/java/api/pom.xml.tmpl +++ b/cmd/meshctl/templates/java/api/pom.xml.tmpl @@ -21,7 +21,7 @@ 17 - 3.5.1 + 3.5.2 diff --git a/cmd/meshctl/templates/java/basic/Dockerfile.tmpl b/cmd/meshctl/templates/java/basic/Dockerfile.tmpl index a17d80fb1..3514ef06a 100644 --- a/cmd/meshctl/templates/java/basic/Dockerfile.tmpl +++ b/cmd/meshctl/templates/java/basic/Dockerfile.tmpl @@ -1,5 +1,5 @@ # Dockerfile for {{ .Name }} MCP Mesh agent (Java/Spring Boot) -FROM mcpmesh/java-runtime:3.5.1 +FROM mcpmesh/java-runtime:3.5.2 WORKDIR /app diff --git a/cmd/meshctl/templates/java/basic/pom.xml.tmpl b/cmd/meshctl/templates/java/basic/pom.xml.tmpl index 4ba87c527..5c5f434d5 100644 --- a/cmd/meshctl/templates/java/basic/pom.xml.tmpl +++ b/cmd/meshctl/templates/java/basic/pom.xml.tmpl @@ -21,7 +21,7 @@ 17 - 3.5.1 + 3.5.2 diff --git a/cmd/meshctl/templates/java/llm-agent/Dockerfile.tmpl b/cmd/meshctl/templates/java/llm-agent/Dockerfile.tmpl index efd022ba1..e3c4e6f30 100644 --- a/cmd/meshctl/templates/java/llm-agent/Dockerfile.tmpl +++ b/cmd/meshctl/templates/java/llm-agent/Dockerfile.tmpl @@ -1,5 +1,5 @@ # Dockerfile for {{ .Name }} MCP Mesh LLM agent (Java/Spring Boot) -FROM mcpmesh/java-runtime:3.5.1 +FROM mcpmesh/java-runtime:3.5.2 WORKDIR /app diff --git a/cmd/meshctl/templates/java/llm-agent/pom.xml.tmpl b/cmd/meshctl/templates/java/llm-agent/pom.xml.tmpl index 608b2c0ae..180a68582 100644 --- a/cmd/meshctl/templates/java/llm-agent/pom.xml.tmpl +++ b/cmd/meshctl/templates/java/llm-agent/pom.xml.tmpl @@ -21,7 +21,7 @@ 17 - 3.5.1 + 3.5.2 diff --git a/cmd/meshctl/templates/java/llm-provider/Dockerfile.tmpl b/cmd/meshctl/templates/java/llm-provider/Dockerfile.tmpl index a17d80fb1..3514ef06a 100644 --- a/cmd/meshctl/templates/java/llm-provider/Dockerfile.tmpl +++ b/cmd/meshctl/templates/java/llm-provider/Dockerfile.tmpl @@ -1,5 +1,5 @@ # Dockerfile for {{ .Name }} MCP Mesh agent (Java/Spring Boot) -FROM mcpmesh/java-runtime:3.5.1 +FROM mcpmesh/java-runtime:3.5.2 WORKDIR /app diff --git a/cmd/meshctl/templates/java/llm-provider/pom.xml.tmpl b/cmd/meshctl/templates/java/llm-provider/pom.xml.tmpl index 6e3048aff..50affb022 100644 --- a/cmd/meshctl/templates/java/llm-provider/pom.xml.tmpl +++ b/cmd/meshctl/templates/java/llm-provider/pom.xml.tmpl @@ -21,7 +21,7 @@ 17 - 3.5.1 + 3.5.2 diff --git a/cmd/meshctl/templates/python/a2a-consumer/Dockerfile.tmpl b/cmd/meshctl/templates/python/a2a-consumer/Dockerfile.tmpl index 24c8fc140..e12554030 100644 --- a/cmd/meshctl/templates/python/a2a-consumer/Dockerfile.tmpl +++ b/cmd/meshctl/templates/python/a2a-consumer/Dockerfile.tmpl @@ -1,5 +1,5 @@ # Dockerfile for {{ .Name }} A2A consumer bridge -FROM mcpmesh/python-runtime:3.5.1 +FROM mcpmesh/python-runtime:3.5.2 WORKDIR /app diff --git a/cmd/meshctl/templates/python/api/Dockerfile.tmpl b/cmd/meshctl/templates/python/api/Dockerfile.tmpl index 5fcea1d63..d0f232c5b 100644 --- a/cmd/meshctl/templates/python/api/Dockerfile.tmpl +++ b/cmd/meshctl/templates/python/api/Dockerfile.tmpl @@ -1,5 +1,5 @@ # Dockerfile for {{ .Name }} MCP Mesh API gateway -FROM mcpmesh/python-runtime:3.5.1 +FROM mcpmesh/python-runtime:3.5.2 WORKDIR /app diff --git a/cmd/meshctl/templates/python/basic/Dockerfile.tmpl b/cmd/meshctl/templates/python/basic/Dockerfile.tmpl index 841fcc7d2..6b639d8a8 100644 --- a/cmd/meshctl/templates/python/basic/Dockerfile.tmpl +++ b/cmd/meshctl/templates/python/basic/Dockerfile.tmpl @@ -1,5 +1,5 @@ # Dockerfile for {{ .Name }} MCP Mesh agent -FROM mcpmesh/python-runtime:3.5.1 +FROM mcpmesh/python-runtime:3.5.2 WORKDIR /app diff --git a/cmd/meshctl/templates/python/llm-agent/Dockerfile.tmpl b/cmd/meshctl/templates/python/llm-agent/Dockerfile.tmpl index a0ff86bcf..6899c81ad 100644 --- a/cmd/meshctl/templates/python/llm-agent/Dockerfile.tmpl +++ b/cmd/meshctl/templates/python/llm-agent/Dockerfile.tmpl @@ -1,5 +1,5 @@ # Dockerfile for {{ .Name }} MCP Mesh LLM agent -FROM mcpmesh/python-runtime:3.5.1 +FROM mcpmesh/python-runtime:3.5.2 WORKDIR /app diff --git a/cmd/meshctl/templates/python/llm-provider/Dockerfile.tmpl b/cmd/meshctl/templates/python/llm-provider/Dockerfile.tmpl index a10874aef..3aea48214 100644 --- a/cmd/meshctl/templates/python/llm-provider/Dockerfile.tmpl +++ b/cmd/meshctl/templates/python/llm-provider/Dockerfile.tmpl @@ -1,5 +1,5 @@ # Dockerfile for {{ .Name }} MCP Mesh LLM provider -FROM mcpmesh/python-runtime:3.5.1 +FROM mcpmesh/python-runtime:3.5.2 WORKDIR /app diff --git a/cmd/meshctl/templates/python/llm-provider/requirements.txt.tmpl b/cmd/meshctl/templates/python/llm-provider/requirements.txt.tmpl index e8dc3963a..19cb3883c 100644 --- a/cmd/meshctl/templates/python/llm-provider/requirements.txt.tmpl +++ b/cmd/meshctl/templates/python/llm-provider/requirements.txt.tmpl @@ -9,5 +9,5 @@ # is NOT part of the base install or the python-runtime base image. Without # this line the agent starts and registers normally, then fails on its first # LLM call. -mcp-mesh[litellm]==3.5.1 +mcp-mesh[litellm]==3.5.2 {{- end }} diff --git a/cmd/meshctl/templates/typescript/a2a-consumer/Dockerfile.tmpl b/cmd/meshctl/templates/typescript/a2a-consumer/Dockerfile.tmpl index 0f321846d..00657a206 100644 --- a/cmd/meshctl/templates/typescript/a2a-consumer/Dockerfile.tmpl +++ b/cmd/meshctl/templates/typescript/a2a-consumer/Dockerfile.tmpl @@ -1,5 +1,5 @@ # Dockerfile for {{ .Name }} A2A consumer bridge -FROM mcpmesh/typescript-runtime:3.5.1 +FROM mcpmesh/typescript-runtime:3.5.2 WORKDIR /app diff --git a/cmd/meshctl/templates/typescript/a2a-consumer/package.json.tmpl b/cmd/meshctl/templates/typescript/a2a-consumer/package.json.tmpl index eec823207..1111a3171 100644 --- a/cmd/meshctl/templates/typescript/a2a-consumer/package.json.tmpl +++ b/cmd/meshctl/templates/typescript/a2a-consumer/package.json.tmpl @@ -13,7 +13,7 @@ "dev": "tsx watch src/index.ts" }, "dependencies": { - "@mcpmesh/sdk": "^3.5.1", + "@mcpmesh/sdk": "^3.5.2", "fastmcp": "^3.34.0", "zod": "^3.24.0" }, diff --git a/cmd/meshctl/templates/typescript/api/Dockerfile.tmpl b/cmd/meshctl/templates/typescript/api/Dockerfile.tmpl index 142eb74ae..d240e557f 100644 --- a/cmd/meshctl/templates/typescript/api/Dockerfile.tmpl +++ b/cmd/meshctl/templates/typescript/api/Dockerfile.tmpl @@ -1,5 +1,5 @@ # Dockerfile for {{ .Name }} MCP Mesh API gateway -FROM mcpmesh/typescript-runtime:3.5.1 +FROM mcpmesh/typescript-runtime:3.5.2 WORKDIR /app diff --git a/cmd/meshctl/templates/typescript/api/package.json.tmpl b/cmd/meshctl/templates/typescript/api/package.json.tmpl index 5fc6ca6d9..bc497a19f 100644 --- a/cmd/meshctl/templates/typescript/api/package.json.tmpl +++ b/cmd/meshctl/templates/typescript/api/package.json.tmpl @@ -12,7 +12,7 @@ "dev": "tsx watch src/index.ts" }, "dependencies": { - "@mcpmesh/sdk": "^3.5.1", + "@mcpmesh/sdk": "^3.5.2", "express": "^4.21.2" }, "devDependencies": { diff --git a/cmd/meshctl/templates/typescript/basic/Dockerfile.tmpl b/cmd/meshctl/templates/typescript/basic/Dockerfile.tmpl index cff018988..ac5018872 100644 --- a/cmd/meshctl/templates/typescript/basic/Dockerfile.tmpl +++ b/cmd/meshctl/templates/typescript/basic/Dockerfile.tmpl @@ -1,5 +1,5 @@ # Dockerfile for {{ .Name }} MCP Mesh agent -FROM mcpmesh/typescript-runtime:3.5.1 +FROM mcpmesh/typescript-runtime:3.5.2 WORKDIR /app diff --git a/cmd/meshctl/templates/typescript/basic/package.json.tmpl b/cmd/meshctl/templates/typescript/basic/package.json.tmpl index 1ceb06195..9f72315c9 100644 --- a/cmd/meshctl/templates/typescript/basic/package.json.tmpl +++ b/cmd/meshctl/templates/typescript/basic/package.json.tmpl @@ -12,7 +12,7 @@ "dev": "tsx watch src/index.ts" }, "dependencies": { - "@mcpmesh/sdk": "^3.5.1" + "@mcpmesh/sdk": "^3.5.2" }, "devDependencies": { "@types/node": "^22.18.0", diff --git a/cmd/meshctl/templates/typescript/llm-agent/Dockerfile.tmpl b/cmd/meshctl/templates/typescript/llm-agent/Dockerfile.tmpl index 1a6e661b9..a52ac9e17 100644 --- a/cmd/meshctl/templates/typescript/llm-agent/Dockerfile.tmpl +++ b/cmd/meshctl/templates/typescript/llm-agent/Dockerfile.tmpl @@ -1,5 +1,5 @@ # Dockerfile for {{ .Name }} MCP Mesh LLM agent -FROM mcpmesh/typescript-runtime:3.5.1 +FROM mcpmesh/typescript-runtime:3.5.2 WORKDIR /app diff --git a/cmd/meshctl/templates/typescript/llm-agent/package.json.tmpl b/cmd/meshctl/templates/typescript/llm-agent/package.json.tmpl index 488c2f2a6..0fc56019c 100644 --- a/cmd/meshctl/templates/typescript/llm-agent/package.json.tmpl +++ b/cmd/meshctl/templates/typescript/llm-agent/package.json.tmpl @@ -12,7 +12,7 @@ "dev": "tsx watch src/index.ts" }, "dependencies": { - "@mcpmesh/sdk": "^3.5.1" + "@mcpmesh/sdk": "^3.5.2" }, "devDependencies": { "@types/node": "^22.18.0", diff --git a/cmd/meshctl/templates/typescript/llm-provider/Dockerfile.tmpl b/cmd/meshctl/templates/typescript/llm-provider/Dockerfile.tmpl index 4654095a7..e41928736 100644 --- a/cmd/meshctl/templates/typescript/llm-provider/Dockerfile.tmpl +++ b/cmd/meshctl/templates/typescript/llm-provider/Dockerfile.tmpl @@ -1,5 +1,5 @@ # Dockerfile for {{ .Name }} MCP Mesh LLM provider -FROM mcpmesh/typescript-runtime:3.5.1 +FROM mcpmesh/typescript-runtime:3.5.2 WORKDIR /app diff --git a/cmd/meshctl/templates/typescript/llm-provider/package.json.tmpl b/cmd/meshctl/templates/typescript/llm-provider/package.json.tmpl index d35183da8..5e8563fea 100644 --- a/cmd/meshctl/templates/typescript/llm-provider/package.json.tmpl +++ b/cmd/meshctl/templates/typescript/llm-provider/package.json.tmpl @@ -12,7 +12,7 @@ "dev": "tsx watch src/index.ts" }, "dependencies": { - "@mcpmesh/sdk": "^3.5.1" + "@mcpmesh/sdk": "^3.5.2" }, "devDependencies": { "@types/node": "^22.18.0", diff --git a/docs/00-why-mcp-mesh/index.md b/docs/00-why-mcp-mesh/index.md index c993390fc..224994939 100644 --- a/docs/00-why-mcp-mesh/index.md +++ b/docs/00-why-mcp-mesh/index.md @@ -121,7 +121,7 @@ meshctl scaffold --compose --observability # Or deploy to Kubernetes (OCI registry) helm install my-mesh oci://ghcr.io/dhyansraj/mcp-mesh/mcp-mesh-core \ - --version 3.5.1 -n mcp-mesh --create-namespace + --version 3.5.2 -n mcp-mesh --create-namespace ``` ### 5. Built-in Observability diff --git a/docs/02-local-development.md b/docs/02-local-development.md index 44e613d26..227b6efe5 100644 --- a/docs/02-local-development.md +++ b/docs/02-local-development.md @@ -97,7 +97,7 @@ graph LR io.mcp-mesh mcp-mesh-spring-boot-starter - 3.5.1 + 3.5.2 ``` diff --git a/docs/03-docker-deployment.md b/docs/03-docker-deployment.md index b4104db0f..bbb92c182 100644 --- a/docs/03-docker-deployment.md +++ b/docs/03-docker-deployment.md @@ -24,10 +24,10 @@ MCP Mesh publishes official images to Docker Hub: | Image | Purpose | | -------------------------------- | ------------------------------------------------ | -| `mcpmesh/registry:3.5.1` | Go-based registry service | -| `mcpmesh/python-runtime:3.5.1` | Python agent runtime (includes mcp-mesh SDK) | -| `mcpmesh/java-runtime:3.5.1` | Java agent runtime (includes mcp-mesh SDK) | -| `mcpmesh/typescript-runtime:3.5.1` | TypeScript agent runtime (includes @mcpmesh/sdk) | +| `mcpmesh/registry:3.5.2` | Go-based registry service | +| `mcpmesh/python-runtime:3.5.2` | Python agent runtime (includes mcp-mesh SDK) | +| `mcpmesh/java-runtime:3.5.2` | Java agent runtime (includes mcp-mesh SDK) | +| `mcpmesh/typescript-runtime:3.5.2` | TypeScript agent runtime (includes @mcpmesh/sdk) | ## Using Scaffold to Generate Compose Files @@ -53,7 +53,7 @@ meshctl scaffold --compose --dry-run -d ./agents services: registry: - image: mcpmesh/registry:3.5.1 + image: mcpmesh/registry:3.5.2 ports: - "8000:8000" healthcheck: @@ -63,7 +63,7 @@ meshctl scaffold --compose --dry-run -d ./agents retries: 3 my-agent: - image: mcpmesh/python-runtime:3.5.1 + image: mcpmesh/python-runtime:3.5.2 ports: - "8080:8080" volumes: @@ -88,7 +88,7 @@ meshctl scaffold --compose --dry-run -d ./agents services: registry: - image: mcpmesh/registry:3.5.1 + image: mcpmesh/registry:3.5.2 ports: - "8000:8000" healthcheck: @@ -122,7 +122,7 @@ meshctl scaffold --compose --dry-run -d ./agents services: registry: - image: mcpmesh/registry:3.5.1 + image: mcpmesh/registry:3.5.2 ports: - "8000:8000" healthcheck: @@ -132,7 +132,7 @@ meshctl scaffold --compose --dry-run -d ./agents retries: 3 my-agent: - image: mcpmesh/typescript-runtime:3.5.1 + image: mcpmesh/typescript-runtime:3.5.2 ports: - "8080:8080" volumes: @@ -161,12 +161,12 @@ If you prefer manual control, here's a minimal compose file: services: registry: - image: mcpmesh/registry:3.5.1 + image: mcpmesh/registry:3.5.2 ports: - "8000:8000" my-agent: - image: mcpmesh/python-runtime:3.5.1 + image: mcpmesh/python-runtime:3.5.2 volumes: - ./agent.py:/app/agent.py:ro command: ["python", "/app/agent.py"] @@ -185,7 +185,7 @@ If you prefer manual control, here's a minimal compose file: services: registry: - image: mcpmesh/registry:3.5.1 + image: mcpmesh/registry:3.5.2 ports: - "8000:8000" @@ -206,12 +206,12 @@ If you prefer manual control, here's a minimal compose file: services: registry: - image: mcpmesh/registry:3.5.1 + image: mcpmesh/registry:3.5.2 ports: - "8000:8000" my-agent: - image: mcpmesh/typescript-runtime:3.5.1 + image: mcpmesh/typescript-runtime:3.5.2 volumes: - ./my-agent:/app/agent:ro command: ["npx", "tsx", "/app/agent/src/index.ts"] @@ -232,7 +232,7 @@ If you didn't use scaffold, here's a sample Dockerfile: === "Python" ```dockerfile - FROM mcpmesh/python-runtime:3.5.1 + FROM mcpmesh/python-runtime:3.5.2 COPY ./my-agent /app/agent @@ -257,7 +257,7 @@ If you didn't use scaffold, here's a sample Dockerfile: === "TypeScript" ```dockerfile - FROM mcpmesh/typescript-runtime:3.5.1 + FROM mcpmesh/typescript-runtime:3.5.2 WORKDIR /app/agent COPY ./my-agent/package*.json ./ @@ -284,12 +284,12 @@ version: "3.8" services: registry: - image: mcpmesh/registry:3.5.1 + image: mcpmesh/registry:3.5.2 ports: - "8000:8000" auth-agent: - image: mcpmesh/python-runtime:3.5.1 + image: mcpmesh/python-runtime:3.5.2 volumes: - ./agents/auth:/app/agent:ro command: ["python", "/app/agent/main.py"] @@ -298,7 +298,7 @@ services: - MCP_MESH_HTTP_PORT=8080 data-agent: - image: mcpmesh/python-runtime:3.5.1 + image: mcpmesh/python-runtime:3.5.2 volumes: - ./agents/data:/app/agent:ro command: ["python", "/app/agent/main.py"] @@ -307,7 +307,7 @@ services: - MCP_MESH_HTTP_PORT=8080 api-agent: - image: mcpmesh/python-runtime:3.5.1 + image: mcpmesh/python-runtime:3.5.2 volumes: - ./agents/api:/app/agent:ro command: ["python", "/app/agent/main.py"] diff --git a/docs/03-docker-deployment/04-networking.md b/docs/03-docker-deployment/04-networking.md index 1f377bdad..659ac72c0 100644 --- a/docs/03-docker-deployment/04-networking.md +++ b/docs/03-docker-deployment/04-networking.md @@ -31,12 +31,12 @@ graph TD # docker-compose.yml services: registry: - image: mcpmesh/registry:3.5.1 + image: mcpmesh/registry:3.5.2 ports: - "8000:8000" my-agent: - image: mcpmesh/python-runtime:3.5.1 + image: mcpmesh/python-runtime:3.5.2 volumes: - ./my-agent:/app/agent:ro command: ["python", "/app/agent/main.py"] @@ -44,7 +44,7 @@ graph TD - MCP_MESH_REGISTRY_URL=http://registry:8000 another-agent: - image: mcpmesh/python-runtime:3.5.1 + image: mcpmesh/python-runtime:3.5.2 volumes: - ./another-agent:/app/agent:ro command: ["python", "/app/agent/main.py"] @@ -62,12 +62,12 @@ graph TD # docker-compose.yml services: registry: - image: mcpmesh/registry:3.5.1 + image: mcpmesh/registry:3.5.2 ports: - "8000:8000" my-agent: - image: mcpmesh/typescript-runtime:3.5.1 + image: mcpmesh/typescript-runtime:3.5.2 volumes: - ./my-agent:/app/agent:ro command: ["npx", "tsx", "/app/agent/src/index.ts"] @@ -75,7 +75,7 @@ graph TD - MCP_MESH_REGISTRY_URL=http://registry:8000 another-agent: - image: mcpmesh/typescript-runtime:3.5.1 + image: mcpmesh/typescript-runtime:3.5.2 volumes: - ./another-agent:/app/agent:ro command: ["npx", "tsx", "/app/agent/src/index.ts"] diff --git a/docs/04-kubernetes-basics.md b/docs/04-kubernetes-basics.md index ebba3255c..5e1938660 100644 --- a/docs/04-kubernetes-basics.md +++ b/docs/04-kubernetes-basics.md @@ -18,7 +18,7 @@ The `mcp-mesh-core` chart deploys registry + PostgreSQL + Redis + Grafana + Temp ```bash # Deploy core (OCI registry - no "helm repo add" needed) helm install mcp-core oci://ghcr.io/dhyansraj/mcp-mesh/mcp-mesh-core \ - --version 3.5.1 \ + --version 3.5.2 \ -n mcp-mesh --create-namespace # Wait for registry @@ -68,7 +68,7 @@ Build the image: ```bash helm install my-agent oci://ghcr.io/dhyansraj/mcp-mesh/mcp-mesh-agent \ - --version 3.5.1 \ + --version 3.5.2 \ --namespace mcp-mesh \ -f helm-values.yaml \ --set image.repository=my-agent \ @@ -79,7 +79,7 @@ For cloud deployments, use your full registry path: ```bash helm install my-agent oci://ghcr.io/dhyansraj/mcp-mesh/mcp-mesh-agent \ - --version 3.5.1 \ + --version 3.5.2 \ --namespace mcp-mesh \ -f helm-values.yaml \ --set image.repository=your-registry/my-agent \ @@ -141,7 +141,7 @@ resources: ```bash # Core without Grafana/Tempo (lighter footprint) helm install mcp-core oci://ghcr.io/dhyansraj/mcp-mesh/mcp-mesh-core \ - --version 3.5.1 \ + --version 3.5.2 \ -n mcp-mesh --create-namespace \ --set grafana.enabled=false \ --set tempo.enabled=false @@ -152,7 +152,7 @@ helm install mcp-core oci://ghcr.io/dhyansraj/mcp-mesh/mcp-mesh-core \ ```bash # Just the registry, no database or observability helm install mcp-registry oci://ghcr.io/dhyansraj/mcp-mesh/mcp-mesh-registry \ - --version 3.5.1 \ + --version 3.5.2 \ --namespace mcp-mesh ``` @@ -164,12 +164,12 @@ namespace — change `-n` and nothing else: ```bash # Deploy core to a custom namespace helm install mcp-core oci://ghcr.io/dhyansraj/mcp-mesh/mcp-mesh-core \ - --version 3.5.1 \ + --version 3.5.2 \ -n my-namespace --create-namespace # Deploy agent to the same namespace helm install my-agent oci://ghcr.io/dhyansraj/mcp-mesh/mcp-mesh-agent \ - --version 3.5.1 \ + --version 3.5.2 \ -n my-namespace \ -f helm-values.yaml ``` @@ -182,12 +182,12 @@ For **multi-tenant** clusters (separate core per team), deploy each core to its ```bash # Team A helm install mcp-core oci://ghcr.io/dhyansraj/mcp-mesh/mcp-mesh-core \ - --version 3.5.1 \ + --version 3.5.2 \ -n team-a --create-namespace # Team B — same values, different namespace helm install mcp-core oci://ghcr.io/dhyansraj/mcp-mesh/mcp-mesh-core \ - --version 3.5.1 \ + --version 3.5.2 \ -n team-b --create-namespace ``` @@ -195,7 +195,7 @@ For **cross-namespace** access (agent in one namespace, core in another), use FQ ```bash helm install my-agent oci://ghcr.io/dhyansraj/mcp-mesh/mcp-mesh-agent \ - --version 3.5.1 -n other-ns \ + --version 3.5.2 -n other-ns \ --set mesh.registryUrl=http://mcp-core-mcp-mesh-registry.team-a.svc.cluster.local:8000 ``` @@ -207,13 +207,13 @@ helm list -n mcp-mesh # Upgrade an agent helm upgrade my-agent oci://ghcr.io/dhyansraj/mcp-mesh/mcp-mesh-agent \ - --version 3.5.1 \ + --version 3.5.2 \ --namespace mcp-mesh \ --set image.tag=v2 # Scale replicas helm upgrade my-agent oci://ghcr.io/dhyansraj/mcp-mesh/mcp-mesh-agent \ - --version 3.5.1 \ + --version 3.5.2 \ --namespace mcp-mesh \ --reuse-values \ --set replicaCount=3 diff --git a/docs/04-kubernetes-basics/05-troubleshooting.md b/docs/04-kubernetes-basics/05-troubleshooting.md index af388a41b..92004b1a0 100644 --- a/docs/04-kubernetes-basics/05-troubleshooting.md +++ b/docs/04-kubernetes-basics/05-troubleshooting.md @@ -373,7 +373,7 @@ kubectl exec -n mcp-mesh -- df -h **Symptoms:** ``` -Failed to pull image "mcpmesh/python-runtime:3.5.1": rpc error: code = Unknown desc = Error response from daemon: pull access denied +Failed to pull image "mcpmesh/python-runtime:3.5.2": rpc error: code = Unknown desc = Error response from daemon: pull access denied ``` **Solutions:** diff --git a/docs/deployment.md b/docs/deployment.md index 59b843589..b0b22059d 100644 --- a/docs/deployment.md +++ b/docs/deployment.md @@ -44,7 +44,7 @@ docker-compose up ```bash # Quick start (OCI registry - no helm repo add needed) helm install mcp-registry oci://ghcr.io/dhyansraj/mcp-mesh/mcp-mesh-registry \ - --version 3.5.1 -n mcp-mesh --create-namespace + --version 3.5.2 -n mcp-mesh --create-namespace ``` [:material-arrow-right: Kubernetes Guide](04-kubernetes-basics.md){ .md-button .md-button--primary } @@ -117,7 +117,7 @@ For Kubernetes, configure TLS via Helm values: ```bash helm install mcp-registry oci://ghcr.io/dhyansraj/mcp-mesh/mcp-mesh-registry \ - --version 3.5.1 -n mcp-mesh --create-namespace \ + --version 3.5.2 -n mcp-mesh --create-namespace \ --set registry.security.tls.mode=strict \ --set registry.security.trust.backend=k8s-secrets ``` diff --git a/docs/dev-to-production.md b/docs/dev-to-production.md index b73bbf236..21b7ce354 100644 --- a/docs/dev-to-production.md +++ b/docs/dev-to-production.md @@ -85,10 +85,10 @@ The [TSuite](https://github.com/dhyansraj/mcp-mesh-test-suite) integration testi ```bash helm install mcp-core oci://ghcr.io/dhyansraj/mcp-mesh/mcp-mesh-core \ - --version 3.5.1 -n mcp-mesh --create-namespace + --version 3.5.2 -n mcp-mesh --create-namespace helm install my-agent oci://ghcr.io/dhyansraj/mcp-mesh/mcp-mesh-agent \ - --version 3.5.1 -n mcp-mesh -f helm-values.yaml + --version 3.5.2 -n mcp-mesh -f helm-values.yaml ``` Same agent code runs locally, in Docker, and in Kubernetes — no changes needed. diff --git a/docs/index.md b/docs/index.md index b7510d9d3..cada6a19d 100644 --- a/docs/index.md +++ b/docs/index.md @@ -87,7 +87,7 @@ Build multi-agent systems that are production-ready from day one. Mesh handles t io.mcp-mesh mcp-mesh-spring-boot-starter - 3.5.1 + 3.5.2 ``` @@ -364,7 +364,7 @@ A `kubectl`-style command-line tool that follows you from first agent to product io.mcp-mesh mcp-mesh-spring-boot-starter - 3.5.1 + 3.5.2 ``` @@ -383,10 +383,10 @@ A `kubectl`-style command-line tool that follows you from first agent to product === "Docker Images" ```bash - docker pull mcpmesh/registry:3.5.1 - docker pull mcpmesh/python-runtime:3.5.1 - docker pull mcpmesh/java-runtime:3.5.1 - docker pull mcpmesh/typescript-runtime:3.5.1 + docker pull mcpmesh/registry:3.5.2 + docker pull mcpmesh/python-runtime:3.5.2 + docker pull mcpmesh/java-runtime:3.5.2 + docker pull mcpmesh/typescript-runtime:3.5.2 ``` Official container images for production deployments. @@ -413,7 +413,7 @@ A `kubectl`-style command-line tool that follows you from first agent to product ## :star: Project Status -- **Latest Release**: v3.5.1 +- **Latest Release**: v3.5.2 - **License**: MIT - **Languages**: Python 3.11+, TypeScript/Node.js 18+, and Java 17+ (runtime), Go 1.23+ (registry) - **Status**: Production-ready, actively developed diff --git a/docs/java/examples.md b/docs/java/examples.md index 12995fb70..4fe190661 100644 --- a/docs/java/examples.md +++ b/docs/java/examples.md @@ -132,7 +132,7 @@ class AssistantAgentTest { # docker-compose.test.yml services: registry: - image: mcpmesh/registry:3.5.1 + image: mcpmesh/registry:3.5.2 ports: - "8000:8000" healthcheck: diff --git a/docs/java/getting-started/index.md b/docs/java/getting-started/index.md index 518e608d4..57e0a3037 100644 --- a/docs/java/getting-started/index.md +++ b/docs/java/getting-started/index.md @@ -89,7 +89,7 @@ Create `pom.xml`: io.mcp-mesh mcp-mesh-spring-boot-starter - 3.5.1 + 3.5.2 diff --git a/docs/java/getting-started/prerequisites.md b/docs/java/getting-started/prerequisites.md index 1c4b3d306..15fcc61ec 100644 --- a/docs/java/getting-started/prerequisites.md +++ b/docs/java/getting-started/prerequisites.md @@ -60,7 +60,7 @@ Add the Spring Boot starter to your `pom.xml`: io.mcp-mesh mcp-mesh-spring-boot-starter - 3.5.1 + 3.5.2 org.springframework.boot @@ -108,10 +108,10 @@ docker compose version | Image | Description | | -------------------------------- | --------------------------- | -| `mcpmesh/registry:3.5.1` | Registry service | -| `mcpmesh/python-runtime:3.5.1` | Python runtime with SDK | -| `mcpmesh/java-runtime:3.5.1` | Java runtime with SDK | -| `mcpmesh/typescript-runtime:3.5.1` | TypeScript runtime with SDK | +| `mcpmesh/registry:3.5.2` | Registry service | +| `mcpmesh/python-runtime:3.5.2` | Python runtime with SDK | +| `mcpmesh/java-runtime:3.5.2` | Java runtime with SDK | +| `mcpmesh/typescript-runtime:3.5.2` | TypeScript runtime with SDK | Java agents use standard Maven-based Docker builds (see Docker Deployment guide). diff --git a/docs/java/index.md b/docs/java/index.md index 3a34e3766..347a95c21 100644 --- a/docs/java/index.md +++ b/docs/java/index.md @@ -27,7 +27,7 @@ The MCP Mesh Java SDK provides an annotation-based API for building distributed io.mcp-mesh mcp-mesh-spring-boot-starter - 3.5.1 + 3.5.2 ``` diff --git a/docs/java/local-development/01-getting-started.md b/docs/java/local-development/01-getting-started.md index 3a09ccd58..be58b0c53 100644 --- a/docs/java/local-development/01-getting-started.md +++ b/docs/java/local-development/01-getting-started.md @@ -45,7 +45,7 @@ The recommended way is to use `meshctl scaffold` (see next page). If you prefer io.mcp-mesh mcp-mesh-spring-boot-starter - 3.5.1 + 3.5.2 org.springframework.boot diff --git a/docs/java/local-development/troubleshooting.md b/docs/java/local-development/troubleshooting.md index a3b433da2..df725ad7e 100644 --- a/docs/java/local-development/troubleshooting.md +++ b/docs/java/local-development/troubleshooting.md @@ -38,7 +38,7 @@ Ensure the dependency version matches an available release: io.mcp-mesh mcp-mesh-spring-boot-starter - 3.5.1 + 3.5.2 ``` diff --git a/docs/java/spring-boot-integration.md b/docs/java/spring-boot-integration.md index 9a1d1982b..197f920cd 100644 --- a/docs/java/spring-boot-integration.md +++ b/docs/java/spring-boot-integration.md @@ -23,7 +23,7 @@ MCP Mesh provides the `@MeshRoute` annotation for Spring Boot REST controllers t io.mcp-mesh mcp-mesh-spring-boot-starter - 3.5.1 + 3.5.2 org.springframework.boot diff --git a/docs/python/getting-started/prerequisites.md b/docs/python/getting-started/prerequisites.md index 758ce1290..c7159c632 100644 --- a/docs/python/getting-started/prerequisites.md +++ b/docs/python/getting-started/prerequisites.md @@ -97,17 +97,17 @@ docker compose version | Image | Description | | -------------------------------- | --------------------------- | -| `mcpmesh/registry:3.5.1` | Registry service | -| `mcpmesh/python-runtime:3.5.1` | Python runtime with SDK | -| `mcpmesh/java-runtime:3.5.1` | Java runtime with SDK | -| `mcpmesh/typescript-runtime:3.5.1` | TypeScript runtime with SDK | +| `mcpmesh/registry:3.5.2` | Registry service | +| `mcpmesh/python-runtime:3.5.2` | Python runtime with SDK | +| `mcpmesh/java-runtime:3.5.2` | Java runtime with SDK | +| `mcpmesh/typescript-runtime:3.5.2` | TypeScript runtime with SDK | ```bash # Pull images -docker pull mcpmesh/registry:3.5.1 -docker pull mcpmesh/python-runtime:3.5.1 -docker pull mcpmesh/java-runtime:3.5.1 -docker pull mcpmesh/typescript-runtime:3.5.1 +docker pull mcpmesh/registry:3.5.2 +docker pull mcpmesh/python-runtime:3.5.2 +docker pull mcpmesh/java-runtime:3.5.2 +docker pull mcpmesh/typescript-runtime:3.5.2 ``` ### Generate Docker Compose @@ -145,12 +145,12 @@ Available from OCI registry (no `helm repo add` needed): ```bash # Install core infrastructure helm install mcp-core oci://ghcr.io/dhyansraj/mcp-mesh/mcp-mesh-core \ - --version 3.5.1 \ + --version 3.5.2 \ -n mcp-mesh --create-namespace # Deploy an agent helm install my-agent oci://ghcr.io/dhyansraj/mcp-mesh/mcp-mesh-agent \ - --version 3.5.1 \ + --version 3.5.2 \ -n mcp-mesh \ -f helm-values.yaml ``` diff --git a/docs/tutorial/day-08-docker-compose.md b/docs/tutorial/day-08-docker-compose.md index 4b2ad0edf..ba7077f96 100644 --- a/docs/tutorial/day-08-docker-compose.md +++ b/docs/tutorial/day-08-docker-compose.md @@ -379,7 +379,7 @@ $ docker compose down -v ## Troubleshooting **Docker build fails with missing requirements.** The compose file uses -`mcpmesh/python-runtime:3.5.1` images with a dev-mode entrypoint that +`mcpmesh/python-runtime:3.5.2` images with a dev-mode entrypoint that installs `requirements.txt` on startup. If an agent has dependencies not in the base image, check that `requirements.txt` exists in the agent directory and lists all dependencies. diff --git a/docs/tutorial/day-09-kubernetes.md b/docs/tutorial/day-09-kubernetes.md index e3eb2e03e..bd34660e3 100644 --- a/docs/tutorial/day-09-kubernetes.md +++ b/docs/tutorial/day-09-kubernetes.md @@ -212,7 +212,7 @@ and Grafana as a single Helm release: ```shell $ helm install mcp-core oci://ghcr.io/dhyansraj/mcp-mesh/mcp-mesh-core \ - --version 3.5.1 \ + --version 3.5.2 \ -n trip-planner \ -f helm/values-core.yaml \ --wait --timeout 5m @@ -250,7 +250,7 @@ $ for agent in "${AGENTS[@]}"; do echo "Installing $agent..." helm install "$agent" \ oci://ghcr.io/dhyansraj/mcp-mesh/mcp-mesh-agent \ - --version 3.5.1 \ + --version 3.5.2 \ -n trip-planner \ -f "helm/values-${agent}.yaml" done diff --git a/docs/typescript/examples.md b/docs/typescript/examples.md index 8f3e9c5fb..22ef3f67b 100644 --- a/docs/typescript/examples.md +++ b/docs/typescript/examples.md @@ -127,7 +127,7 @@ describe("Agent Integration", () => { # docker-compose.test.yml services: registry: - image: mcpmesh/registry:3.5.1 + image: mcpmesh/registry:3.5.2 ports: - "8000:8000" healthcheck: diff --git a/docs/typescript/getting-started/prerequisites.md b/docs/typescript/getting-started/prerequisites.md index b7db3fc33..bd9f8280a 100644 --- a/docs/typescript/getting-started/prerequisites.md +++ b/docs/typescript/getting-started/prerequisites.md @@ -85,17 +85,17 @@ docker compose version | Image | Description | | -------------------------------- | --------------------------- | -| `mcpmesh/registry:3.5.1` | Registry service | -| `mcpmesh/python-runtime:3.5.1` | Python runtime with SDK | -| `mcpmesh/java-runtime:3.5.1` | Java runtime with SDK | -| `mcpmesh/typescript-runtime:3.5.1` | TypeScript runtime with SDK | +| `mcpmesh/registry:3.5.2` | Registry service | +| `mcpmesh/python-runtime:3.5.2` | Python runtime with SDK | +| `mcpmesh/java-runtime:3.5.2` | Java runtime with SDK | +| `mcpmesh/typescript-runtime:3.5.2` | TypeScript runtime with SDK | ```bash # Pull images -docker pull mcpmesh/registry:3.5.1 -docker pull mcpmesh/python-runtime:3.5.1 -docker pull mcpmesh/java-runtime:3.5.1 -docker pull mcpmesh/typescript-runtime:3.5.1 +docker pull mcpmesh/registry:3.5.2 +docker pull mcpmesh/python-runtime:3.5.2 +docker pull mcpmesh/java-runtime:3.5.2 +docker pull mcpmesh/typescript-runtime:3.5.2 ``` ### Generate Docker Compose diff --git a/examples/docker-examples/agents/claude-provider/Dockerfile b/examples/docker-examples/agents/claude-provider/Dockerfile index 9125cbea6..b0b631263 100644 --- a/examples/docker-examples/agents/claude-provider/Dockerfile +++ b/examples/docker-examples/agents/claude-provider/Dockerfile @@ -1,5 +1,5 @@ # Dockerfile for claude-provider MCP Mesh LLM provider -FROM mcpmesh/python-runtime:3.5.1 +FROM mcpmesh/python-runtime:3.5.2 WORKDIR /app diff --git a/examples/docker-examples/agents/claude-provider/helm-values.yaml b/examples/docker-examples/agents/claude-provider/helm-values.yaml index ee07d8d39..2600dcf62 100644 --- a/examples/docker-examples/agents/claude-provider/helm-values.yaml +++ b/examples/docker-examples/agents/claude-provider/helm-values.yaml @@ -1,6 +1,6 @@ # Helm values for deploying claude-provider with mcp-mesh-agent chart # Usage: helm install claude-provider oci://ghcr.io/dhyansraj/mcp-mesh/mcp-mesh-agent \ -# --version 3.5.1 -f helm-values.yaml +# --version 3.5.2 -f helm-values.yaml image: repository: your-registry/claude-provider diff --git a/examples/docker-examples/agents/claude-provider/requirements.txt b/examples/docker-examples/agents/claude-provider/requirements.txt index fd777fa9e..da315ceac 100644 --- a/examples/docker-examples/agents/claude-provider/requirements.txt +++ b/examples/docker-examples/agents/claude-provider/requirements.txt @@ -1,5 +1,5 @@ # MCP Mesh SDK -mcp-mesh>=3.5.1 +mcp-mesh>=3.5.2 # FastMCP for MCP server fastmcp>=3.0.0,<4.0.0 diff --git a/examples/docker-examples/agents/openai-provider/Dockerfile b/examples/docker-examples/agents/openai-provider/Dockerfile index 7f68a4554..7adad0083 100644 --- a/examples/docker-examples/agents/openai-provider/Dockerfile +++ b/examples/docker-examples/agents/openai-provider/Dockerfile @@ -1,5 +1,5 @@ # Dockerfile for openai-provider MCP Mesh LLM provider -FROM mcpmesh/python-runtime:3.5.1 +FROM mcpmesh/python-runtime:3.5.2 WORKDIR /app diff --git a/examples/docker-examples/agents/openai-provider/helm-values.yaml b/examples/docker-examples/agents/openai-provider/helm-values.yaml index ab6d7d06f..21b165930 100644 --- a/examples/docker-examples/agents/openai-provider/helm-values.yaml +++ b/examples/docker-examples/agents/openai-provider/helm-values.yaml @@ -1,6 +1,6 @@ # Helm values for deploying openai-provider with mcp-mesh-agent chart # Usage: helm install openai-provider oci://ghcr.io/dhyansraj/mcp-mesh/mcp-mesh-agent \ -# --version 3.5.1 -f helm-values.yaml +# --version 3.5.2 -f helm-values.yaml image: repository: your-registry/openai-provider diff --git a/examples/docker-examples/agents/openai-provider/requirements.txt b/examples/docker-examples/agents/openai-provider/requirements.txt index fd777fa9e..da315ceac 100644 --- a/examples/docker-examples/agents/openai-provider/requirements.txt +++ b/examples/docker-examples/agents/openai-provider/requirements.txt @@ -1,5 +1,5 @@ # MCP Mesh SDK -mcp-mesh>=3.5.1 +mcp-mesh>=3.5.2 # FastMCP for MCP server fastmcp>=3.0.0,<4.0.0 diff --git a/examples/docker-examples/docker-compose.llm-delegation.yml b/examples/docker-examples/docker-compose.llm-delegation.yml index e6e9d0da9..94d6c171d 100644 --- a/examples/docker-examples/docker-compose.llm-delegation.yml +++ b/examples/docker-examples/docker-compose.llm-delegation.yml @@ -53,7 +53,7 @@ services: - mcp-mesh-llm-delegation-test registry: - image: mcpmesh/registry:3.5.1 + image: mcpmesh/registry:3.5.2 container_name: mcp-mesh-registry-llm-delegation-test ports: - "8002:8000" @@ -78,7 +78,7 @@ services: # Test PT-008: LLM Provider Registration test-pt-008-provider: - image: mcpmesh/python-runtime:3.5.1 + image: mcpmesh/python-runtime:3.5.2 container_name: mcp-mesh-test-pt-008-provider profiles: - test-pt-008 @@ -116,7 +116,7 @@ services: # Test PT-009: Basic Mesh Delegation - Provider test-pt-009-provider: - image: mcpmesh/python-runtime:3.5.1 + image: mcpmesh/python-runtime:3.5.2 container_name: mcp-mesh-test-pt-009-provider profiles: - test-pt-009 @@ -154,7 +154,7 @@ services: # Test PT-009: Basic Mesh Delegation - Consumer test-pt-009-consumer: - image: mcpmesh/python-runtime:3.5.1 + image: mcpmesh/python-runtime:3.5.2 container_name: mcp-mesh-test-pt-009-consumer profiles: - test-pt-009 diff --git a/examples/docker-examples/docker-compose.llm-tests.yml b/examples/docker-examples/docker-compose.llm-tests.yml index d3dc8946c..dade90b0b 100644 --- a/examples/docker-examples/docker-compose.llm-tests.yml +++ b/examples/docker-examples/docker-compose.llm-tests.yml @@ -64,7 +64,7 @@ services: # MCP Mesh Registry registry: - image: mcpmesh/registry:3.5.1 + image: mcpmesh/registry:3.5.2 container_name: mcp-mesh-registry-llm-test ports: - "8000:8000" @@ -105,7 +105,7 @@ services: # System Agent - provides date_service, info, uptime_info capabilities system-agent: - image: mcpmesh/python-runtime:3.5.1 + image: mcpmesh/python-runtime:3.5.2 container_name: mcp-mesh-system-agent-llm-test hostname: system-agent ports: @@ -160,7 +160,7 @@ services: # Test 1: Basic LLM Agent (no tools) test-001-basic-llm: - image: mcpmesh/python-runtime:3.5.1 + image: mcpmesh/python-runtime:3.5.2 container_name: mcp-mesh-test-001-basic-llm hostname: test-001-basic-llm ports: @@ -216,7 +216,7 @@ services: # Test 2: LLM Agent with Time Tools test-002-chat-with-time: - image: mcpmesh/python-runtime:3.5.1 + image: mcpmesh/python-runtime:3.5.2 container_name: mcp-mesh-test-002-chat-with-time hostname: test-002-chat-with-time ports: @@ -272,7 +272,7 @@ services: # Test 3: Multi-Tool Chat Agent test-003-multi-tool: - image: mcpmesh/python-runtime:3.5.1 + image: mcpmesh/python-runtime:3.5.2 container_name: mcp-mesh-test-003-multi-tool hostname: test-003-multi-tool ports: @@ -328,7 +328,7 @@ services: # Test 4a: System Analyst LLM Agent (specialist) test-004-analyst: - image: mcpmesh/python-runtime:3.5.1 + image: mcpmesh/python-runtime:3.5.2 container_name: mcp-mesh-test-004-analyst hostname: test-004-analyst ports: @@ -384,7 +384,7 @@ services: # Test 4b: Orchestrator LLM Agent (coordinator) test-004-orchestrator: - image: mcpmesh/python-runtime:3.5.1 + image: mcpmesh/python-runtime:3.5.2 container_name: mcp-mesh-test-004-orchestrator hostname: test-004-orchestrator ports: diff --git a/examples/docker-examples/docker-compose.multi-agent-poc.yml b/examples/docker-examples/docker-compose.multi-agent-poc.yml index 9da7413d1..0c68e1d21 100644 --- a/examples/docker-examples/docker-compose.multi-agent-poc.yml +++ b/examples/docker-examples/docker-compose.multi-agent-poc.yml @@ -39,7 +39,7 @@ services: - mcp-mesh-ma-poc registry: - image: mcpmesh/registry:3.5.1 + image: mcpmesh/registry:3.5.2 container_name: mcp-mesh-registry-ma-poc ports: - "8003:8000" @@ -64,7 +64,7 @@ services: # Executor Agent - Provides basic tools (bash, write_file, read_file, grep_files) executor-agent: - image: mcpmesh/python-runtime:3.5.1 + image: mcpmesh/python-runtime:3.5.2 container_name: mcp-mesh-executor-agent environment: MCP_MESH_REGISTRY_URL: http://registry:8000 @@ -101,7 +101,7 @@ services: # Claude Provider - LLM provider for specialist agents (Preferred) claude-provider: - image: mcpmesh/python-runtime:3.5.1 + image: mcpmesh/python-runtime:3.5.2 container_name: mcp-mesh-claude-provider environment: MCP_MESH_REGISTRY_URL: http://registry:8000 @@ -137,7 +137,7 @@ services: # OpenAI Provider - LLM provider for specialist agents (Fallback) openai-provider: - image: mcpmesh/python-runtime:3.5.1 + image: mcpmesh/python-runtime:3.5.2 container_name: mcp-mesh-openai-provider environment: MCP_MESH_REGISTRY_URL: http://registry:8000 @@ -173,7 +173,7 @@ services: # Developer Agent - Software development specialist using mesh delegation developer-agent: - image: mcpmesh/python-runtime:3.5.1 + image: mcpmesh/python-runtime:3.5.2 container_name: mcp-mesh-developer-agent environment: MCP_MESH_REGISTRY_URL: http://registry:8000 @@ -213,7 +213,7 @@ services: # QA Agent - Quality Assurance specialist qa-agent: - image: mcpmesh/python-runtime:3.5.1 + image: mcpmesh/python-runtime:3.5.2 container_name: mcp-mesh-qa-agent environment: MCP_MESH_REGISTRY_URL: http://registry:8000 @@ -253,7 +253,7 @@ services: # Intent Agent - Conversational orchestrator intent-agent: - image: mcpmesh/python-runtime:3.5.1 + image: mcpmesh/python-runtime:3.5.2 container_name: mcp-mesh-intent-agent environment: MCP_MESH_REGISTRY_URL: http://registry:8000 diff --git a/examples/docker-examples/docker-compose.prompt-templates.yml b/examples/docker-examples/docker-compose.prompt-templates.yml index bdbb67db8..b3f88ab93 100644 --- a/examples/docker-examples/docker-compose.prompt-templates.yml +++ b/examples/docker-examples/docker-compose.prompt-templates.yml @@ -54,7 +54,7 @@ services: - mcp-mesh-prompt-template-test registry: - image: mcpmesh/registry:3.5.1 + image: mcpmesh/registry:3.5.2 container_name: mcp-mesh-registry-prompt-template-test ports: - "8002:8000" # Different port @@ -79,7 +79,7 @@ services: # System agent (provides base tools for tests) system-agent: - image: mcpmesh/python-runtime:3.5.1 + image: mcpmesh/python-runtime:3.5.2 container_name: mcp-mesh-system-agent-prompt-template-test environment: MCP_MESH_REGISTRY_URL: http://registry:8000 @@ -111,7 +111,7 @@ services: # Test PT-001: Basic Template with Dict Context test-pt-001-basic-template: - image: mcpmesh/python-runtime:3.5.1 + image: mcpmesh/python-runtime:3.5.2 container_name: mcp-mesh-test-pt-001-basic-template profiles: - test-pt-001 @@ -149,7 +149,7 @@ services: # Test PT-002: MeshContextModel with Field Descriptions test-pt-002-context-model: - image: mcpmesh/python-runtime:3.5.1 + image: mcpmesh/python-runtime:3.5.2 container_name: mcp-mesh-test-pt-002-context-model profiles: - test-pt-002 @@ -189,7 +189,7 @@ services: # Test PT-003: Convention-Based Context Detection test-pt-003-convention: - image: mcpmesh/python-runtime:3.5.1 + image: mcpmesh/python-runtime:3.5.2 container_name: mcp-mesh-test-pt-003-convention profiles: - test-pt-003 @@ -227,7 +227,7 @@ services: # Test PT-004: Control Structures test-pt-004-control-structures: - image: mcpmesh/python-runtime:3.5.1 + image: mcpmesh/python-runtime:3.5.2 container_name: mcp-mesh-test-pt-004-control-structures profiles: - test-pt-004 @@ -267,7 +267,7 @@ services: # Test PT-005: Hierarchical Context Models test-pt-005-hierarchical: - image: mcpmesh/python-runtime:3.5.1 + image: mcpmesh/python-runtime:3.5.2 container_name: mcp-mesh-test-pt-005-hierarchical profiles: - test-pt-005 @@ -307,7 +307,7 @@ services: # Test PT-006: LLM Chain - Analyzer test-pt-006-analyzer: - image: mcpmesh/python-runtime:3.5.1 + image: mcpmesh/python-runtime:3.5.2 container_name: mcp-mesh-test-pt-006-analyzer profiles: - test-pt-006 @@ -345,7 +345,7 @@ services: # Test PT-006: LLM Chain - Orchestrator test-pt-006-orchestrator: - image: mcpmesh/python-runtime:3.5.1 + image: mcpmesh/python-runtime:3.5.2 container_name: mcp-mesh-test-pt-006-orchestrator profiles: - test-pt-006 @@ -385,7 +385,7 @@ services: # Test PT-007: Dual Injection (LLM + MCP Agent) test-pt-007-dual-injection: - image: mcpmesh/python-runtime:3.5.1 + image: mcpmesh/python-runtime:3.5.2 container_name: mcp-mesh-test-pt-007-dual-injection profiles: - test-pt-007 diff --git a/examples/docker-examples/docker-compose.yml b/examples/docker-examples/docker-compose.yml index c6693d369..e09824e1a 100644 --- a/examples/docker-examples/docker-compose.yml +++ b/examples/docker-examples/docker-compose.yml @@ -2,12 +2,12 @@ # Demonstrates Go registry + Python agents architecture using published Docker images # # Services: -# - registry: Go-based registry with SQLite storage (mcpmesh/registry:3.5.1) -# - hello-world-agent: Python agent with greeting capabilities (mcpmesh/python-runtime:3.5.1) -# - system-agent: Python agent with system monitoring capabilities (mcpmesh/python-runtime:3.5.1) -# - fastmcp-agent: FastMCP service with mesh integration (mcpmesh/python-runtime:3.5.1) -# - dependent-agent: Service that depends on fastmcp-agent (mcpmesh/python-runtime:3.5.1) -# - fastapi-app: FastAPI application with mesh integration (mcpmesh/python-runtime:3.5.1) +# - registry: Go-based registry with SQLite storage (mcpmesh/registry:3.5.2) +# - hello-world-agent: Python agent with greeting capabilities (mcpmesh/python-runtime:3.5.2) +# - system-agent: Python agent with system monitoring capabilities (mcpmesh/python-runtime:3.5.2) +# - fastmcp-agent: FastMCP service with mesh integration (mcpmesh/python-runtime:3.5.2) +# - dependent-agent: Service that depends on fastmcp-agent (mcpmesh/python-runtime:3.5.2) +# - fastapi-app: FastAPI application with mesh integration (mcpmesh/python-runtime:3.5.2) # # Usage: # docker-compose up @@ -69,7 +69,7 @@ services: # Go-based registry service (built locally) registry: - image: mcpmesh/registry:3.5.1 + image: mcpmesh/registry:3.5.2 container_name: mcp-mesh-registry ports: - "8000:8000" @@ -115,7 +115,7 @@ services: # Hello World Python agent - built locally hello-world-agent: - image: mcpmesh/python-runtime:3.5.1 + image: mcpmesh/python-runtime:3.5.2 container_name: mcp-mesh-hello-world hostname: hello-world-agent ports: @@ -168,7 +168,7 @@ services: # System Agent Python service - built locally system-agent: - image: mcpmesh/python-runtime:3.5.1 + image: mcpmesh/python-runtime:3.5.2 container_name: mcp-mesh-system-agent hostname: system-agent ports: @@ -221,7 +221,7 @@ services: # FastMCP Agent with mesh integration - built locally fastmcp-agent: - image: mcpmesh/python-runtime:3.5.1 + image: mcpmesh/python-runtime:3.5.2 container_name: mcp-mesh-fastmcp-agent hostname: fastmcp-agent ports: @@ -274,7 +274,7 @@ services: # Dependent Agent that uses FastMCP agent's time service - built locally dependent-agent: - image: mcpmesh/python-runtime:3.5.1 + image: mcpmesh/python-runtime:3.5.2 container_name: mcp-mesh-dependent-agent hostname: dependent-agent ports: @@ -327,7 +327,7 @@ services: # FastAPI App with mesh integration - built locally fastapi-app: - image: mcpmesh/python-runtime:3.5.1 + image: mcpmesh/python-runtime:3.5.2 container_name: mcp-mesh-fastapi-app hostname: fastapi-app ports: @@ -380,7 +380,7 @@ services: # Simple FastAPI Router App (Maya-style APIRouter pattern) - built locally simple-router-app: - image: mcpmesh/python-runtime:3.5.1 + image: mcpmesh/python-runtime:3.5.2 container_name: mcp-mesh-simple-router-app hostname: simple-router-app ports: @@ -433,7 +433,7 @@ services: # LLM With Deps Agent - demonstrates both static dependencies AND LLM provider llm-with-deps-agent: - image: mcpmesh/python-runtime:3.5.1 + image: mcpmesh/python-runtime:3.5.2 container_name: mcp-mesh-llm-with-deps hostname: llm-with-deps-agent ports: @@ -485,7 +485,7 @@ services: # OpenAI LLM Provider - Provides OpenAI GPT API access to mesh openai-provider: - image: mcpmesh/python-runtime:3.5.1 + image: mcpmesh/python-runtime:3.5.2 container_name: mcp-mesh-openai-provider hostname: openai-provider ports: @@ -539,7 +539,7 @@ services: # Claude LLM Provider - Provides Anthropic Claude API access to mesh claude-provider: - image: mcpmesh/python-runtime:3.5.1 + image: mcpmesh/python-runtime:3.5.2 container_name: mcp-mesh-claude-provider hostname: claude-provider ports: diff --git a/examples/java/basic-tool-agent/pom.xml b/examples/java/basic-tool-agent/pom.xml index 3dce308cd..bb448ffe8 100644 --- a/examples/java/basic-tool-agent/pom.xml +++ b/examples/java/basic-tool-agent/pom.xml @@ -21,7 +21,7 @@ 17 - 3.5.1 + 3.5.2 - 3.5.1 + 3.5.2 diff --git a/tests/integration/suites/uc04_llm_integration/tc47_max_iterations_cross_runtime_java_py/artifacts/max-iterations-java/pom.xml b/tests/integration/suites/uc04_llm_integration/tc47_max_iterations_cross_runtime_java_py/artifacts/max-iterations-java/pom.xml index d4014ae75..495ded45d 100644 --- a/tests/integration/suites/uc04_llm_integration/tc47_max_iterations_cross_runtime_java_py/artifacts/max-iterations-java/pom.xml +++ b/tests/integration/suites/uc04_llm_integration/tc47_max_iterations_cross_runtime_java_py/artifacts/max-iterations-java/pom.xml @@ -22,7 +22,7 @@ 17 - 3.5.1 + 3.5.2 diff --git a/tests/integration/suites/uc04_llm_integration/tc49_max_iterations_ts_forwarding_py/artifacts/ticket-consumer-ts/package.json b/tests/integration/suites/uc04_llm_integration/tc49_max_iterations_ts_forwarding_py/artifacts/ticket-consumer-ts/package.json index 0c733308b..095bed1a7 100644 --- a/tests/integration/suites/uc04_llm_integration/tc49_max_iterations_ts_forwarding_py/artifacts/ticket-consumer-ts/package.json +++ b/tests/integration/suites/uc04_llm_integration/tc49_max_iterations_ts_forwarding_py/artifacts/ticket-consumer-ts/package.json @@ -12,7 +12,7 @@ "dev": "tsx watch src/index.ts" }, "dependencies": { - "@mcpmesh/sdk": "^3.5.1", + "@mcpmesh/sdk": "^3.5.2", "zod": "^3.24.0" }, "devDependencies": { diff --git a/tests/integration/suites/uc04_llm_integration/tc50_max_iterations_streaming_java_py/artifacts/stream-gateway-java/pom.xml b/tests/integration/suites/uc04_llm_integration/tc50_max_iterations_streaming_java_py/artifacts/stream-gateway-java/pom.xml index 52552778f..9a0b38693 100644 --- a/tests/integration/suites/uc04_llm_integration/tc50_max_iterations_streaming_java_py/artifacts/stream-gateway-java/pom.xml +++ b/tests/integration/suites/uc04_llm_integration/tc50_max_iterations_streaming_java_py/artifacts/stream-gateway-java/pom.xml @@ -22,7 +22,7 @@ 17 - 3.5.1 + 3.5.2 diff --git a/tests/integration/suites/uc05_meshctl/artifacts/java-non-mesh-app/pom.xml b/tests/integration/suites/uc05_meshctl/artifacts/java-non-mesh-app/pom.xml index 5ee34107c..dba4ffa81 100644 --- a/tests/integration/suites/uc05_meshctl/artifacts/java-non-mesh-app/pom.xml +++ b/tests/integration/suites/uc05_meshctl/artifacts/java-non-mesh-app/pom.xml @@ -21,7 +21,7 @@ 17 - 3.5.1 + 3.5.2