From ca63061978b496adf318a15929142e72c882aa44 Mon Sep 17 00:00:00 2001 From: Chirag Aggarwal Date: Wed, 14 Oct 2026 10:49:06 +0100 Subject: [PATCH] docs: mark MCP Events as live on mcp.appwrite.io --- docs/development.md | 2 +- docs/events.md | 25 +++++++++++-------------- docs/flags.md | 17 +++++++---------- 3 files changed, 19 insertions(+), 25 deletions(-) diff --git a/docs/development.md b/docs/development.md index c47925d..781fd92 100644 --- a/docs/development.md +++ b/docs/development.md @@ -47,7 +47,7 @@ docker compose up --build > MCP Events push delivery (`--events-push`) routes events between replicas > through a Redis-protocol server (Dragonfly in the cluster) at -> `MCP_EVENTS_REDIS_URL`. Compose runs Dragonfly and points the server at it; see [flags.md](flags.md#--events-push--push-delivery-in-progress). +> `MCP_EVENTS_REDIS_URL`. Compose runs Dragonfly and points the server at it; see [flags.md](flags.md#--events-push--push-delivery). **`uv` directly — HTTP:** diff --git a/docs/events.md b/docs/events.md index a7e7546..c3f7d95 100644 --- a/docs/events.md +++ b/docs/events.md @@ -1,10 +1,8 @@ # Events -> **Not a supported feature yet.** Events sit behind the `--events` testing -> flag ([#127](https://github.com/appwrite/mcp/issues/127)), which is off in -> production. They cannot work on Appwrite Cloud until -> [appwrite/appwrite#14293](https://github.com/appwrite/appwrite/issues/14293) -> lets a webhook's `authPassword` hold the sealed subscription. +> **Live on [mcp.appwrite.io](https://mcp.appwrite.io/)**, with webhook and +> push delivery. Self-hosted HTTP deployments turn them on with the `--events` +> and `--events-push` flags. The `stdio` transport has no Events. [MCP Events](https://developers.openai.com/plugins/build/mcp-events) let an MCP client subscribe to things that happen in an Appwrite project and hear about @@ -22,10 +20,10 @@ delivery modes: Each subscription is backed by one Appwrite webhook in the subscriber's project, so the MCP server keeps no subscription store. -## Testing flag +## Flag -For testers only: [flags.md](flags.md#--events--mcp-events-in-progress) shows -how to turn the flag on locally and check it with `curl`. +[flags.md](flags.md#--events--mcp-events) shows how to turn the flag on locally +and check it with `curl`. With the flag on, the server advertises the capability in both shapes that clients read today: @@ -271,7 +269,7 @@ result is sent then. When the server ends the stream (termination, shutdown, tok expiry) it sends the empty result `{"_meta": {}}` as the final frame. Push sits behind the `--events-push` flag -([flags.md](flags.md#--events-push--push-delivery-in-progress)) and needs a +([flags.md](flags.md#--events-push--push-delivery)) and needs a Redis-protocol server (`MCP_EVENTS_REDIS_URL`): Dragonfly in the cluster, or Redis; the bus uses only `PUBLISH`, `SUBSCRIBE` and `PING`. `events/list` advertises `"delivery": ["webhook", "push"]` only when both are there; otherwise it @@ -429,7 +427,7 @@ adapter around the package. the JWE key directly. The webhook signing secret is derived from it with HKDF-SHA256 under its own label, so the two never share a key. - **Size.** The envelope must fit Appwrite's `authPassword`, which - appwrite/appwrite#14293 has to raise to at least 2048 characters. Sealing + appwrite/appwrite#14293 raised to 2048 characters. Sealing refuses anything longer (`ENVELOPE_BUDGET`). Measured with 36-character ids, key id `k1` and server `https://mcp.appwrite.io`: @@ -590,7 +588,6 @@ run), otherwise `redis-server` (`brew install redis` or `apt-get install redis-server`). Two server instances share it, so a stream opened on one receives what Appwrite delivers to the other. -A live end-to-end run against Cloud staging (real OAuth tokens, real Appwrite -webhooks) is planned once -[appwrite/appwrite#14293](https://github.com/appwrite/appwrite/issues/14293) -ships; until then the server's surroundings are played locally. +Live runs against Cloud staging and production (real OAuth tokens, real +Appwrite webhooks) are done by hand; CI plays the server's surroundings +locally. diff --git a/docs/flags.md b/docs/flags.md index 2f2ea06..962ad35 100644 --- a/docs/flags.md +++ b/docs/flags.md @@ -83,17 +83,14 @@ Then run `/mcp` in Claude Code and authenticate — the browser should open the override console's sign-in page, and after consent the client completes the token exchange against the real authorization server. -### `--events` — MCP Events (in progress) +### `--events` — MCP Events Turns on [MCP Events](events.md): `server/discover` (and legacy `initialize`) advertise the events capability, the server answers `events/list`, `events/subscribe` and `events/unsubscribe`, and the Appwrite webhook ingress -is mounted at `/appwrite/webhooks/{id}`. It is a testing flag, off by default -and in production, while the feature is built -([#127](https://github.com/appwrite/mcp/issues/127)): subscriptions cannot work -on Appwrite Cloud until -[appwrite/appwrite#14293](https://github.com/appwrite/appwrite/issues/14293) -ships. Any of `1`, `true`, `yes` or `on` enables it. With the flag on, +is mounted at `/appwrite/webhooks/{id}` +([#127](https://github.com/appwrite/mcp/issues/127)). Off by default; on at +`mcp.appwrite.io`. Any of `1`, `true`, `yes` or `on` enables it. With the flag on, `MCP_EVENTS_SEALING_KEYS` is required and the server refuses to start without it. @@ -136,7 +133,7 @@ With the flag off, neither capability appears, `events/list`, `events/subscribe` and `events/unsubscribe` return `-32601` (method not found) and the ingress route returns `404`. -### `--events-push` — push delivery (in progress) +### `--events-push` — push delivery Adds [push delivery](events.md#push-delivery) to MCP Events: `events/list` advertises `"delivery": ["webhook", "push"]` and the server serves @@ -144,8 +141,8 @@ advertises `"delivery": ["webhook", "push"]` and the server serves back ([#137](https://github.com/appwrite/mcp/issues/137)). It needs `--events` and a Redis-protocol server (Dragonfly in the cluster, or Redis) at `MCP_EVENTS_REDIS_URL`, which carries events from the replica Appwrite delivers -to the one holding the stream. With the flag on but no URL, the server logs it and serves webhook delivery only. Off by default, so -webhook delivery can stay live while push rolls out. +to the one holding the stream. With the flag on but no URL, the server logs it and serves webhook delivery only. Off by default; on at +`mcp.appwrite.io`. **Enable it:**