Skip to main content
Glama

list_project_events

Retrieve a filterable, cursor-ordered event feed for a project, including deploy activations, mailbox suspensions, and app-emitted business facts. Use to catch up on changes since last session.

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.
Behavior5/5

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

With no annotations, the description fully covers behavioral traits: read-only nature ('works even on frozen projects'), cursor expiration behavior (returns reset:true + earliest_cursor instead of error), filtering details, and the two-source feed (app/platform). This provides a rich understanding of tool behavior.

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

Conciseness5/5

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

The description is appropriately detailed for a complex tool, with no wasted sentences. It front-loads the core purpose and progressively adds detail. Every sentence earns its place by explaining a key aspect of the tool's behavior or parameter usage.

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

Completeness5/5

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

Despite no output schema, the description adequately covers return values (cursors, reset flag, next_actions). It explains pagination, filtering, and edge cases (expired cursor). The tool is complex with 6 parameters and two major sources, and the description provides complete context for effective use.

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

Parameters5/5

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

Schema coverage is 100% with short descriptions, but the tool description adds significant meaning beyond the schema: explains cursor usage in detail, the semantics of source enum, event_type composition, and relationship between org_id and project_id. This helps an agent correctly use all 6 parameters.

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's purpose: 'catch up on what happened to a project since you last looked' with a specific list of event types (deploy activations, mailbox suspensions, etc.). It distinguishes itself from siblings by being the general-purpose event feed for project activity.

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 states when to use the tool ('after any deploy', 'at the start of a session on an existing project'), how to use cursors, and filtering options. It lacks explicit guidance on when not to use it or comparison to similar sibling tools like deploy_events, but the context is clear.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/MajorTal/run402'

If you have feedback or need assistance with the MCP directory API, please join our Discord server