Skip to main content
Glama

list_project_events

Fetch a project's event feed of platform operations and app-emitted business facts, with cursor pagination and filtering by source and event type.

Instructions

Catch up on what happened to a project since you last looked: the durable, cursored feed of deploy activations, mailbox suspensions, transfers, lifecycle cliffs, and verification outcomes, each with platform-suggested next_actions. The feed also carries app-emitted business facts (a deployed function's own events.emit calls) alongside the platform's own events — pass source:"app" to read just the app's facts, source:"platform" for just the platform's operational record, or event_type (comma-separated) to filter to one-or-more specific types; key on (source, event_type) together since app-chosen type names are free-form. Reach for this after any deploy (the apply/promote response hands you a positioned cursor) and at the start of a session on an existing project. Store the returned cursor and pass it back next time; an expired cursor returns reset:true + earliest_cursor instead of an error. Read-only; works even on frozen projects.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoPage size (default 50, max 200).
cursorNoOpaque cursor from a prior page (the response's `cursor`, or any event's `id`). Returns events strictly after it. Omit on first contact to start from the earliest retained event. Never parse cursors.
org_idNoRead the org-wide feed instead (union across the org's projects; requires an active org membership).
sourceNoRestrict to one source: "app" (business facts a deployed function emitted itself via events.emit) or "platform" (every non-app source — the platform's own operational record). Omit to read both lanes in one merged, cursor-ordered feed.
event_typeNoRestrict to one or more event types, comma-separated (e.g. "signature_completed,booking_created"). Composes with source — e.g. source: "app" + event_type to watch for one specific business fact.
project_idNoProject whose feed to read. Omit when passing org_id.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv4.6.0
    • addedInput schema / properties / event_type
      Added value: +{
      +  "description": "Restrict to one or more event types, comma-separated (e.g. \"signature_completed,booking_created\"). Composes with source — e.g. source: \"app\" + event_type to watch for one specific business fact.",
      +  "type": "string"
      +}
    • addedInput schema / properties / source
      Added value: +{
      +  "description": "Restrict to one source: \"app\" (business facts a deployed function emitted itself via events.emit) or \"platform\" (every non-app source — the platform's own operational record). Omit to read both lanes in one merged, cursor-ordered feed.",
      +  "enum": [
      +    "app",
      +    "platform"
      +  ],
      +  "type": "string"
      +}
  2. Addedv4.4.0

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Since no annotations are provided, the description fully carries the burden. It discloses read-only behavior, cursor management (expired cursor returns reset:true + earliest_cursor), composable filtering (source, event_type), and that the feed includes both platform events and app-emitted business facts.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single paragraph that flows logically from purpose to usage details. While it is somewhat long, every sentence adds value and does not waste words. It is appropriately sized for a complex tool with multiple filtering options and behavioral nuances.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of an output schema, the description explains cursor behavior, read-only nature, and filtering composition well. However, it does not explicitly describe the response format (fields in each event) or the exact structure of next_actions, which would be helpful for full completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with good parameter descriptions, but the description adds significant context: explaining cursor storage and passing, combining source and event_type filters, and the meaning of org_id for org-wide feed. This goes beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool provides a durable, cursored feed of project events (deploy activations, mailbox suspensions, etc.), with filtering by source and event_type. It distinguishes itself from sibling event tools by emphasizing the cursored and durable nature and the inclusion of app-emitted business facts.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly recommends using the tool after deploys and at the start of a session on an existing project, and notes it works on frozen projects. However, it does not explicitly state when not to use it or mention alternative tools for different scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools