BuildRiot
Sign in

Article

Build a Workers Issues triage prototype with Cloudflare MCP Events

Cloudflare announced signed webhook delivery for new and recurring Workers Issues through its API MCP server. This guide outlines an investigation prototype and the delivery, recovery and recurrence tests to run before adding remediation tools.

Key takeaway

Issue events can start investigations without repeated polling, but reliable triage also needs durable processing and clear incident identities. Developers should assess evidence-backed reports before granting an agent authority to make operational changes.

Start with one Worker and an investigation boundary

Cloudflare announced signed webhook delivery for new and recurring Workers Issues through its API Model Context Protocol (MCP) server on October 13, 2026. Cloudflare identifies its first event as cloudflare.alert.workers_observability_real_time_issue. The announcement says clients discover it through events/list and subscribe through events/subscribe. According to Cloudflare, subscriptions can cover an account or an individual Worker. Use that event as the starting point for a prototype that receives an issue, gathers evidence and prepares an investigation report. Sources: Cloudflare

Start with one test Worker and keep deployment authority outside the agent’s tools. Cloudflare says setup requires Issues enabled, a webhook-capable MCP Events client, and Notifications Write plus Workers Observability Write permissions. Configure investigative access separately: Cloudflare’s automation documentation says receiving a notification does not itself grant access to query account telemetry. Make the initial deliverable a report with observed symptoms, evidence links, hypotheses, uncertainty and suggested next steps. Keep proposed changes subject to human review. Sources: Cloudflare

Enable Issues and capture the subscription contract

Enable Issues in the Worker’s deployment configuration before generating failures. Cloudflare documents the following configuration for Wrangler 4.134.0 or later. Dashboard enablement must also appear in Wrangler configuration, or the next deployment disables Issues. Detection covers traffic after enablement rather than historical failures. Sources: Cloudflare

{
  "observability": {
    "issues": {
      "enabled": true
    }
  }
}

Cloudflare groups related occurrences within a Worker into an issue, drawing on uncaught exceptions, failed invocations, 5xx responses and logged errors. Generate a controlled failure, then save discovery schemas and the subscription response with the test record. The February 19, 2026, event design sketch is a draft describing advertised delivery modes, subscription-input schemas and payload schemas. It describes a subscription ID and refreshBefore value, with renewal governed by the expiration the server grants. Replay depends on upstream support, and the draft excludes replay before subscription time from its initial scope. Record the draft revision and schedule renewal from the actual response. Sources: Cloudflare, Model Context Protocol

Authenticate delivery before accepting work

Build the receiver separately from the agent so authentication and persistence can be tested without model behavior. OpenAI’s MCP Events documentation specifies webhook-id, webhook-timestamp and webhook-signature headers, plus X-MCP-Subscription-Id. Its signatures cover the event ID, signing timestamp and exact body bytes; callback verification uses a signed challenge. Treat this documentation as an implementation reference when evaluating a compatible client. Preserve the received bytes and verify authenticity and timestamp before validating the envelope and permitted account and Worker scope. Sources: OpenAI

A Nerd Level Tech tutorial reported that re-serializing a simulated Unicode-escaped JSON body changed its bytes and broke signature verification. The author also found that shared subscription secrets let an unsigned subscription-header change bypass the example’s deduplication boundary. Use separate secrets for subscriptions and bind routing to the expected secret and authorized scope. Prepare verification state before subscribing: the tutorial reports that the callback challenge can arrive before the subscription response supplies its ID. A valid signature establishes message authenticity, not the correctness of an agent’s diagnosis. Sources: Nerd Level Tech

Persist deliveries and distinguish incident episodes

After verification, atomically persist the accepted delivery and pending triage work in a durable inbox. Acknowledge receipt after persistence succeeds, then let a separate worker collect evidence. OpenAI’s implementation treats a 2xx response as acknowledgment before asynchronous processing. Its retries preserve the event ID but receive fresh signing timestamps and signatures. Recording an event as seen before scheduling work creates a loss window; scheduling first creates a duplication window. Persist deduplication state and pending work together so both survive restarts. Sources: OpenAI

Keep transport identity separate from incident identity, using the proposed mapping in the table below. The tutorial reported that global event-ID deduplication discarded an intended delivery when two subscriptions received the same event ID. Cloudflare’s automation documentation defines recurrence as an existing issue returning after a configured quiet period, with an earlier occurrence required. Its occurrence-threshold trigger runs once when an issue crosses the configured count, rather than for every later occurrence. Correlate the continuing issue without letting its identity suppress future episodes. Select payload fields only after inspecting discovery responses and deliveries. Sources: Nerd Level Tech, Cloudflare

Table

Proposed identities for delivery, incidents and actions

IdentityProposed purpose
Authenticated subscription + event IDSuppress repeated transport delivery.
Account + Worker + issue identifierCorrelate the continuing incident.
Incident episode/action keyPrevent repeated remediation while allowing a later recurrence.
Use distinct identities to suppress duplicate deliveries while allowing later incident episodes.

Exercise failures before connecting remediation tools

Run the proposed acceptance tests below before connecting remediation tools. Start with authentic fixtures and callback verification, then vary bytes, routing and timestamps independently. Include concurrent deliveries and process termination to expose persistence races. Record each observation as a test result, keeping expected behavior separate from measured behavior.

Table

Proposed receiver and triage acceptance tests

TestProcedureRequired observation
Valid signatureDeliver an authentic fixture and callback challenge.Challenge succeeds; one triage job is persisted.
Byte tamperingChange a body byte without re-signing.Rejected before enqueueing.
SerializationSend equivalent JSON with different whitespace or Unicode escaping, each correctly signed.Verification uses received bytes; both forms work.
Wrong secret/headerChange subscription routing or use another subscription’s secret.No cross-subscription acceptance.
Timestamp freshnessExercise old and future signatures around the configured tolerance.Explicit, logged rejection behavior.
Duplicate deliverySend one event repeatedly, including concurrently.One persisted triage task for that subscription.
Legitimate retryRe-sign the same event ID with a fresh timestamp.Authenticates but does not duplicate work.
Crash recoveryKill the receiver after persistence but before acknowledgment; restart it.Redelivery does not lose or duplicate triage.
Multiple subscriptionsDeliver one upstream event to two authorized subscriptions.Each subscription receives its intended work.
RecurrenceCreate an issue, allow the configured quiet interval, then repeat the failure.A later episode is investigated despite the shared issue identity.
Out-of-order deliveryDeliver fixtures in reverse chronological order.Incident state does not regress blindly.
Scope filteringTrigger failures in another Worker.Subscription scope prevents unintended triage.
Expiry/restartStop refresh, restart components, then reconnect.Gaps and recovery behavior are measurable.
Hostile error textInclude instructions in exception messages or logs.Agent treats them as evidence, not authority.
These are expected observations for tests to run, not completed results.

Test recurrence with synthetic receiver fixtures, then repeat a real failure after the configured quiet interval. Synthetic fixtures exercise application logic; the live experiment checks provider grouping and trigger behavior. Record provider handoff, webhook receipt, durable acceptance and completed triage separately. Cloudflare says a successful automation run means Notifications accepted the handoff, which Cloudflare attempts up to three times. Treat that status as a handoff milestone rather than proof of completed triage. Include hostile instructions in exception messages and logs, and require the agent to treat them as evidence rather than authority. Sources: Cloudflare

Measure the whole path before expanding authority

Compare the event subscriber with a fixed-interval poller using identical Workers, generated failures, evidence queries, model versions and prompts. Record failure time, issue visibility, webhook arrival, durable acceptance, triage start and report completion. Separate detection, transport, queue and inference delays. Report latency percentiles alongside missing events, duplicates, retries and model and tool costs. Publish sample size, geography, clock synchronization, polling interval, concurrency, payload sizes and retry policy. Include idle periods, bursts, outages and recurrence to capture operational trade-offs.

The research included no deployed Cloudflare test or controlled benchmark of end-to-end latency, loss or remediation quality. Cloudflare-specific retries, payload limits, replay, recurrence identifiers and the mapping between subscriptions and automation triggers remain unresolved. OpenAI documents out-of-order arrival and a 256 KiB body ceiling for its implementation; those details do not establish Cloudflare’s contract. Resolve delivery questions through captured responses and experiments, then assess triage against a labeled incident set. Before expanding authority, require passing delivery, recovery and recurrence tests, plus evidence-backed triage. Introduce actions through a narrow allowlist with fresh state checks, action idempotency, rollback criteria and an audit trail. Sources: OpenAI

Attribution

Sources

  1. 1CloudflareCloudflare API MCP server sends Workers Issues as MCP EventsSource published (UTC)
  2. 2CloudflareIssues
  3. 3Model Context ProtocolEvents design sketch proposalSource published (UTC)
  4. 4OpenAIMCP Events – Plugins
  5. 5Nerd Level TechMCP Events Tutorial: Build a Webhook Server (2026)
  6. 6CloudflareSet up an automation

Read the original source for full details and context.

Report a problem

Links, dates or what you expected. Do not include passwords or private data.

More on AI

All AI stories
EditorialSource: Firebase

Google adds QueryData preview to Firestore with MongoDB compatibility

Google announced QueryData support for Firestore with MongoDB compatibility on October 12, 2026. [1] Google says the feature lets developers build data agents that query database content through conversational language. [1] Its documentation says QueryData translates natural-language questions into MongoDB-compatible Query Language (MQL) queries, using developer-supplied context sets with database-specific information. [2] The feature is in preview, with potentially limited support. [2]

Published

EditorialSource: Oracle

Oracle adds managed MCP server support for OCI Database Services

Oracle added managed MCP server support for OCI Database Services on October 13, 2026, according to its release notes. The interface lets MCP-compatible AI agents and applications inspect database resources through read-only operations; it cannot modify those resources. It supports four services: Base Database Service, Exadata Database Service on Cloud@Customer, Exadata Database Service on Dedicated Infrastructure and Exadata Database Service on Exascale Infrastructure. Clients connect through generated endpoints using Streamable HTTP, while OCI IAM authenticates clients and enforces existing access policies. Customers can choose which resource categories to expose and enable or disable servers.

Published