openclaw-mcp 1.5.0 → 2.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +30 -10
- package/dist/index.js +996 -425
- package/docs/configuration.md +14 -1
- package/docs/deployment.md +21 -2
- package/docs/index.html +1 -1
- package/package.json +9 -3
package/README.md
CHANGED
|
@@ -54,6 +54,7 @@ services:
|
|
|
54
54
|
- MCP_CLIENT_ID=openclaw
|
|
55
55
|
- MCP_CLIENT_SECRET=${MCP_CLIENT_SECRET}
|
|
56
56
|
- MCP_ISSUER_URL=${MCP_ISSUER_URL:-}
|
|
57
|
+
- MCP_REDIRECT_URIS=https://claude.ai/api/mcp/auth_callback,https://claude.com/api/mcp/auth_callback
|
|
57
58
|
- TRUST_PROXY=1
|
|
58
59
|
- CORS_ORIGINS=https://claude.ai
|
|
59
60
|
extra_hosts:
|
|
@@ -115,6 +116,8 @@ AUTH_ENABLED=true MCP_CLIENT_ID=openclaw MCP_CLIENT_SECRET=your-secret \
|
|
|
115
116
|
> - `MCP_ISSUER_URL` (or `--issuer-url`) to your public HTTPS URL — otherwise OAuth metadata advertises `http://localhost:3000` and clients fail to authenticate.
|
|
116
117
|
> - `TRUST_PROXY=1` (or `--trust-proxy 1`) — otherwise `express-rate-limit` rejects the proxy's `X-Forwarded-For` header and `/token` crashes with `ERR_ERL_UNEXPECTED_X_FORWARDED_FOR`.
|
|
117
118
|
|
|
119
|
+
> **Recommended:** Set `MCP_REDIRECT_URIS=https://claude.ai/api/mcp/auth_callback,https://claude.com/api/mcp/auth_callback` so authorization codes can only be delivered to Claude's callbacks. Note the exact `/api/mcp/auth_callback` path — matching is exact, and getting it wrong fails OAuth with `Unregistered redirect_uri` (see [Troubleshooting](docs/deployment.md#invalid_request--unregistered-redirect_uri-on-authorize)).
|
|
120
|
+
|
|
118
121
|
See [Installation Guide](docs/installation.md) for details.
|
|
119
122
|
|
|
120
123
|
## Architecture
|
|
@@ -268,15 +271,13 @@ See [Configuration](docs/configuration.md) for all security options.
|
|
|
268
271
|
|
|
269
272
|
## Migrating from SSE to HTTP transport
|
|
270
273
|
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
### What changed
|
|
274
|
+
**The legacy SSE transport was removed in v2.0.** `--transport sse` now exits with an error, and `GET /sse` / `POST /messages` answer `410 Gone`. Use Streamable HTTP:
|
|
274
275
|
|
|
275
|
-
| Before | After |
|
|
276
|
+
| Before (≤ 1.x) | After (2.0) |
|
|
276
277
|
|--------|-------|
|
|
277
|
-
| `--transport sse` | `--transport http`
|
|
278
|
-
|
|
|
279
|
-
| Health: `"
|
|
278
|
+
| `--transport sse` | `--transport http` |
|
|
279
|
+
| Endpoint: `GET /sse` + `POST /messages` | Endpoint: `ALL /mcp` |
|
|
280
|
+
| Health: `"legacySseSupported": true` | Health: `"legacySseSupported": false` |
|
|
280
281
|
|
|
281
282
|
### Migration steps
|
|
282
283
|
|
|
@@ -290,11 +291,30 @@ Starting with v1.5.0, the primary transport is **Streamable HTTP** (`--transport
|
|
|
290
291
|
|
|
291
292
|
2. **Claude.ai connector URL**: No change needed — Claude.ai already uses `/mcp` (Streamable HTTP)
|
|
292
293
|
|
|
293
|
-
3. **Legacy clients**:
|
|
294
|
+
3. **Legacy clients**: Any client that only speaks HTTP+SSE must be upgraded. The MCP specification deprecated that transport in 2025-03-26 and removed it in 2026-07-28.
|
|
295
|
+
|
|
296
|
+
> **Note on protocol versions:** 2.0 runs on MCP SDK v2 and is stateless — it no longer keeps per-connection sessions. Clients still speaking the 2025-11-25 protocol (including current Claude.ai and Claude Desktop) are served through the SDK's built-in stateless legacy path and need no changes.
|
|
297
|
+
|
|
298
|
+
## Roadmap — v2.0 (in development)
|
|
299
|
+
|
|
300
|
+
Version 2.0 is being developed on the `v2` branch, targeting the [MCP 2026-07-28 specification](https://blog.modelcontextprotocol.io/posts/2026-07-28-release-candidate/) on MCP SDK v2 (`@modelcontextprotocol/server`).
|
|
301
|
+
|
|
302
|
+
Done on the `v2` branch:
|
|
303
|
+
|
|
304
|
+
- **Stateless protocol core** — no sessions; any instance can serve any request, so the server runs behind a plain load balancer. 2025-era clients (current Claude.ai / Claude Desktop) are served through the SDK's built-in legacy fallback.
|
|
305
|
+
- **Streaming to the gateway** — async tasks use `stream: true` with an idle timeout (resets on every chunk), live progress (`progress_chars`), configurable concurrency (`OPENCLAW_TASK_CONCURRENCY`), and cancellation of running tasks (fixes [#31](https://github.com/freema/openclaw-mcp/issues/31))
|
|
306
|
+
- **Own OAuth 2.1 authorization server** — SDK v2 is resource-server-only, so `/authorize`, `/token`, `/revoke`, `/register` and RFC 8414 metadata are implemented in-repo (PKCE S256, timing-safe client auth, refresh rotation, rate limiting)
|
|
307
|
+
- **zod v4 tool schemas** (JSON Schema 2020-12) and tool annotations
|
|
308
|
+
- **Legacy SSE transport removed** — `/sse` and `/messages` answer 410 Gone
|
|
309
|
+
|
|
310
|
+
Planned before 2.0.0 final:
|
|
294
311
|
|
|
295
|
-
|
|
312
|
+
- **Structured tool outputs** (`outputSchema` + `structuredContent`)
|
|
313
|
+
- **Client ID Metadata Documents** as the successor to Dynamic Client Registration
|
|
314
|
+
- **Protocol-native Tasks** (`io.modelcontextprotocol/tasks` extension) — will replace the custom async task tools once the SDK ships a tasks runtime (v2.0.0-beta.4 defines only the wire vocabulary)
|
|
315
|
+
- Docs refresh + migration guide from 1.x
|
|
296
316
|
|
|
297
|
-
|
|
317
|
+
v1.x remains the stable release until 2.0 ships.
|
|
298
318
|
|
|
299
319
|
## Requirements
|
|
300
320
|
|