EventSend
Server Details
Ask your AI about your EventSend events, delivery health and usage.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
TDQS
Scored across 9 tools
Each tool targets a distinct operational area (setup, search, stats, delivery health, usage), but get_user_timeline and search_events both support finding raw events by user_id, so the boundary is not fully crisp. The descriptions clarify the intended use cases well enough, but an agent could hesitate between the two.
Most tools follow a clear verb_noun pattern: list_organizations, search_events, get_event, describe_setup. delivery_health and event_stats are noun phrases that deviate from that pattern, but their meanings are obvious and consistent with the domain.
Nine tools is well-scoped for an event delivery and analytics server. Each tool covers a distinct operational area without redundancy or bloat.
The set covers the core lifecycle of event observability: discover organizations, learn the setup, search and retrieve events, inspect user timelines, aggregate stats, check delivery health, and monitor usage. There are no obvious dead ends or missing operations for its read/analytics purpose.
Available Tools
9 toolsdelivery_healthARead-onlyIdempotentInspect
Delivery health per destination (Slack, Discord, webhooks, …) over a range of calendar days — delivered, failed, success rate, response time, what was held back — plus the most recent failed deliveries with their errors. Totals come from daily aggregates; failures from raw deliveries within retention.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | Last calendar date (YYYY-MM-DD, org-local); with from. | |
| org | No | Organization slug; omit for the default organization. See list_organizations. | |
| days | No | The last N calendar days including today; instead of from/to. Default 7. | |
| from | No | First calendar date (YYYY-MM-DD, org-local); with to. | |
| destination_id | No | One destination (dst_…) from describe_setup. | |
| failures_limit | No | ||
| failures_since | No | Earliest failure time for the recent failures: ISO-8601 with offset, YYYY-MM-DD, or 30m/24h/7d/2w back. | |
| failures_until | No | Latest failure time, same forms. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and non-destructive behavior. The description adds meaningful behavioral context: totals come from daily agg-regates while failure details come from raw deliveries within retention, and it discloses what kinds of failures are returned. This is useful beyond the annotations and contains no contradicction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the main purpouse, then the delivered output, then the data-source caveat. Every sentence earns its place and there is no filler or redundant restating of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description explains what is returned: delivered, failed, success rate, response time, held-back items, and recent failures with errors. It also clarifies the freshness/aggregation model. It could be slightly richer about how failures_limit/date cutoffs shape the failure sample, but the schema covers most of that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 88%, so the schema already carries most parameter meaning. The description does not add parameter-level details, though it does frame the notion of 'calendar days' and 'per destination'. With high schema coverage, baseline 3 is appriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource: it reports delivery health per destination over a date range, with concrete metrics (delivered, failed, success rate, response time, held-back items) and recent failed deliveries with errors. This clearly differentiates it from sibling tools like get_usage or event_stats, even without naming them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear usage context: for delivery health/status per destination over calendar days. It does not explicitly say when not to use it or name alternative tools, but the purpose is specific enough that an agent can identify when this tool fits. A small exclusion or pointer to siblings would make it fully explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
describe_setupARead-onlyIdempotentInspect
The organization's configuration: routes (where events arrive), sources (Stripe, GitHub, Vercel connectors), topics (routing rules) and destinations (Slack, Discord, Telegram, webhooks, push) with their ids and names. Call it before filtering another tool by route, source or destination.
| Name | Required | Description | Default |
|---|---|---|---|
| org | No | Organization slug; omit for the default organization. See list_organizations. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as read-only, idempotent, and non-destructive, so the behavioral safety profile is covered. The description adds useful context by specifying what configuration data is returned and positioning the tool as a prerequisite for filtering operations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler: the first packs the full scope of returned configuration into a compact enumeration, and the second states the intended call context. It is front-loaded and every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only configuration lookup with one optional parameter and no output schema, the description adequately covers what is returned and when to call it. It does not specify the exact response format, but that is a minor gap given the simple metadata nature of the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the single optional 'org' parameter already documented, including the default behavior and a reference to list_organizations. The tool description adds no further parameter-level semantics, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource as the organization's configuration and enumerates its components: routes, sources, topics, and destinations with their ids and names. It conveys the tool's purpose well, though it relies on a noun phrase rather than an explicit verb like 'describes' or 'lists'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says to 'Call it before filtering another tool by route, source or destination,' giving clear guidance on when to use it. It does not name specific sibling tools or state when not to use it, so it stops short of full exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
event_statsARead-onlyIdempotentInspect
Event counts over a range of calendar days — per day, per level, in total, and against the previous period — for the whole organization or one event name. From daily aggregates (12 months on every plan). Dates only, in the organization's time zone.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | Last calendar date (YYYY-MM-DD, org-local); with from. | |
| org | No | Organization slug; omit for the default organization. See list_organizations. | |
| days | No | The last N calendar days including today; instead of from/to. Default 7. | |
| from | No | First calendar date (YYYY-MM-DD, org-local); with to. | |
| event_name | No | Restrict every figure to one exact event name (see list_event_names). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is covered. The description adds useful context: data source (daily aggregates), retention (12 months), and timezone handling. However, it does not disclose output format, behavior with empty results, or what 'previous period' means, leaving some ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences front-load the core purpose ('Event counts over a range of calendar days') and then add relevant detail. No fluff or redundancy; every phrase contributes value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers key aspects: what is counted, scope, data source, and timezone. However, terms like 'per level' and 'previous period' are ambiguous—'level' could refer to severity or event type, and 'previous period' is not defined (previous day, week, or same period last year). Given no output schema, these gaps could confuse an agent, but overall it is adequate for a reporting tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter clearly explained (e.g., 'to' as 'Last calendar date (YYYY-MM-DD, org-local); with from.'). The description does not add parameter-specific details beyond the schema, but it provides general context ('Dates only') that aligns with the schema. Baseline 3 is appropriate given high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Event counts over a range of calendar days' with explicit dimensions (per day, per level, in total, against previous period) and scope (whole organization or one event name). This distinguishes it from siblings like get_user_timeline (per-user activity) or get_event (single event details) without needing to open schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for aggregated event counts over time but does not explicitly state when to use this tool versus alternatives or when not to use it. There are no exclusions mentioned, and no reference to sibling tools. The context ('Dates only, org time zone') is a constraint, not usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_eventARead-onlyIdempotentInspect
Fetches one event by id with its full payload and a page of its delivery history (newest first; page with deliveries_cursor). Use it after search_events or get_user_timeline when the payload or every delivery attempt is needed.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The event id (evt_…). | |
| org | No | Organization slug; omit for the default organization. See list_organizations. | |
| deliveries_limit | No | ||
| deliveries_cursor | No | deliveries_next_cursor from the previous page of this event's deliveries. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint/idempotentHint/destructiveHint-false, so the safety profile is covered. The description adds real behavioral value: delivery history ordering (newest first), per-page paging through deliveries_cursor, and inclusion of both payload and attempts. Minor gap: nothing about not-found behavior, acceptable for a fetch tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero fluff: the first delivers verb+resource+output shape, the second delivers routing guidance. Every sentence earns its place and the core action is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the burden of stating the return shape and does so (payload + deliveries page). Combined with annotations (safety) and a well-described schema, an agent can select and invoke it correctly. Small remaining gaps: no error behavior and no boundary against aggregate siblings like event_stats/delivery_health, but these are minor for a single-fetch tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 75% — id, org, and deliveries_cursor are already described; only deliveries_limit lacks prose, but its default/min/max carry meaning. The description contributes little param-level info beyond re-stating that deliveries_cursor is the paging handle, which the schema already conveys. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Fetches) + resource (one event by id) + what is returned (full payload and a page of delivery history, newest first). The positioning as a follow-up to search_events/get_user_timeline differentiates it from siblings without opening their schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit workflow guidance: 'Use it after search_events or get_user_timeline when the payload or every delivery attempt is needed.' It names the tools that precede it and the condition that selects it, but does'nt explicitly state when-not to use it (e.g., when aggregates would suffice, such as event_stats).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_usageARead-onlyIdempotentInspect
The organization's event quota for the current billing period — used, limit, remaining, overage, a run-rate projection — and its plan and raw-event retention.
| Name | Required | Description | Default |
|---|---|---|---|
| org | No | Organization slug; omit for the default organization. See list_organizations. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already cover the safety profile with readOnlyHint, idempotentHint, and destructiveHint. The description adds context about the billing-period scope and the run-rate projection, which is useful, but it does not reveal additional behavioral edge cases. No contradiction with annotations exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one compact sentence, front-loaded with the core concept 'event quota,' and the em-dash list efficiently conveys all returned components. There is no filler or redundant wording, and every listed element adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only lookup with one optional parameter, the description is self-sufficient: it enumerates the returned data fields, which is especially important given there is no output schema. The schema already covers the default organization behavior, so nothing critical is missing for an agent to call the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single optional parameter org is fully documented in the schema, including default behavior and a pointer to list_organizations, giving 100% schema description coverage. The tool description adds no parameter-level meaning beyond the schema, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource (organization event quota) and enumerates the returned data points (used, limit, remaining, overage, run-rate projection, plan, retention), making the tool's function clear. It lacks an explicit verb and does not explicitly distinguish it from siblings like event_stats, but the noun-phrase description is specific enough for an agent to select it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as event_stats or list_organizations. The intended use for quota checks is implied, but no explicit conditions, exclusions, or alternative references are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_user_timelineARead-onlyIdempotentInspect
The timeline of one customer: every raw event whose user_id matches any of the given identifiers, ordered by when it occurred (newest first), with a summary of the range on the first page. Bounded by the plan's retention. Page with next_cursor until exhausted is true.
| Name | Required | Description | Default |
|---|---|---|---|
| org | No | Organization slug; omit for the default organization. See list_organizations. | |
| limit | No | ||
| since | No | Earliest occurrence time: ISO-8601 with offset, YYYY-MM-DD (org-local day), or 30m/24h/7d/2w back. | |
| until | No | Latest occurrence time, same forms as since. | |
| cursor | No | next_cursor from the previous page. | |
| user_ids | Yes | The customer's identifiers as the sender set user_id (exact match); combine a customer id with an alias learned from a payload. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint and idempotentHint annotations, the description adds meaningful behavioral detail: raw events are returned newest-first, a range summary appears on the first page, results are bounded by retention, and pagination uses next_cursor until exhausted. This is valuable runtime context that annotations do not provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: the core behavior is in the first sentence, followed by retention and pagination notes. The phrase 'Page with next_cursor until exhausted is true' is grammatically awkward but adds necessary loop-termination information without waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, idempotent tool with no output schema, the description covers the key operational details: filtering, ordering, first-page summary, retention, and pagination. It does not describe the exact result shape or explicitly route away from sibling tools, but those gaps are minor given the annotations and schema coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is high (83%), with org, since, user_ids, and cursor already documented. The tool description adds little parameter-level meaning beyond what the schema already says; the 'given identifiers' and 'next_cursor' references mirror the schema descriptions. It also does not compensate for the undocumented 'limit' parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource as 'the timeline of one customer' and the selection mechanism as 'every raw event whose user_id matches any of the given identifiers.' It also specifies ordering (newest first), which distinguishes it from sibling tools like get_event or event_stats without needing to name them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The use context is clear: this is the tool for retrieving a single customer's raw event stream by user_id. It does not explicitly compare itself to alternatives like search_events or state when not to use it, but the purpose is specific enough that an agent can infer when it applies.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_event_namesARead-onlyIdempotentInspect
The organization's most frequent event names over a range of calendar days, with counts and share, from daily aggregates (12 months on every plan). Use it to learn what an organization sends before searching or computing stats. Dates only, in the organization's time zone.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | Last calendar date (YYYY-MM-DD, org-local); with from. | |
| org | No | Organization slug; omit for the default organization. See list_organizations. | |
| days | No | The last N calendar days including today; instead of from/to. Default 7. | |
| from | No | First calendar date (YYYY-MM-DD, org-local); with to. | |
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, and non-destructive behavior. The description adds useful context beyond annotations: data comes from daily aggregates, retention is 12 months, and dates are in the organization's time zone. It does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. The first sentence states the result and data source; the second gives the primary use case and the key date/time-zone qualifier. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool with no output schema, the description explains the core output (frequent event names, counts, share) and the supporting data model. It could mention limit behavior or retention edge cases, but the schema and annotations cover the remaining operational details adequately.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is high at 80%, so the schema carries most parameter meaning. The description reinforces date-related semantics like calendar days and org-local time zone, but adds little for the limit parameter, which lacks a schema description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists the organization's most frequent event names with counts and share over a date range. It also frames its role as a precursor to searching or computing stats, distinguishing it from siblings like search_events and event_stats.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear usage context: use it to learn what an organization sends before searching or computing stats. It does not name sibling tools explicitly or provide explicit when-not-to-use conditions, but the intended workflow is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_organizationsARead-onlyIdempotentInspect
Lists the organizations this credential can read, with the default one marked. Call it first when the user names an organization, or when another tool answers that no default is set, and then pass that organization's slug as org on every later call.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds useful behavior beyond those: results are limited to what the credential can read, the default organization is marked, and the returned slug is meant for downstream calls. This is meaningful context without contradicting the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. The purpose is front-loaded, and the usage instruction follows immediately. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only list tool, the description is complete: it says what is returned, when to call it, and how to use the output. The lack of an output schema is mitigated because the description clearly conveys the key output concept (default-marked organizations with slugs).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4. The description adds no input-parameter meaning because there are none, but it usefully explains that the output's organization slug should be used as the `org` parameter in later calls, which helps the agent understand the data flow.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action and resource: 'Lists the organizations this credential can read, with the default one marked.' This clearly differentiates it from sibling tools like list_event_names and makes the tool's scope (credential-readable organizations) explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit when-to-use guidance: 'Call it first when the user names an organization, or when another tool answers that no default is set.' It also tells the agent exactly how to use the result: pass the organization's slug as `org` on every later call.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_eventsARead-onlyIdempotentInspect
Searches the organization's recent raw events (newest first) by text, event name, level, delivery status, customer user_id, route, source and time, with each event's latest deliveries. Bounded by the plan's retention. Page with next_cursor until exhausted is true; a short page with a cursor means the search window ended, not the history.
| Name | Required | Description | Default |
|---|---|---|---|
| org | No | Organization slug; omit for the default organization. See list_organizations. | |
| level | No | ||
| limit | No | ||
| since | No | Earliest receipt time: ISO-8601 with offset, YYYY-MM-DD (org-local day), or 30m/24h/7d/2w back. | |
| until | No | Latest receipt time, same forms as since. | |
| cursor | No | next_cursor from the previous page. | |
| search | No | Text to find in the event name or message; at least 3 characters. | |
| status | No | Delivery status of the event. | |
| user_id | No | The sender's customer identifier, exact match (see get_user_timeline). | |
| route_id | No | A route id (rte_…) from describe_setup. | |
| source_id | No | A source id (sou_…) from describe_setup. | |
| event_name | No | Exact event name, e.g. payment-received. | |
| include_payload | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and non-destructive behavior. The description adds substantial behavioral context beyond that: results are raw events ordered newest-first, each includes latest deliveries, results are bounded by plan retention, and pagination has a non-obvious signal where a short page with a cursor means the search window ended. This is exactly the kind of nuance an agent needs to interpret results correctly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences carry all the information with no filler. The core purpose and ordering are front-loaded, and the non-obvious pagination caveat is placed second where it can be noticed before use. Every clause earns its place without repeating schema content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 13-parameter search tool with no output schema, the description covers ordering, retention bounds, pagination behavior, and result shape, which is unusually complete. It leaves minor gaps such as the exact meaning of include_payload and how filters combine, but these are small relative to the operational detail already provided.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 77%, so the schema already documents most parameters. The description adds value by grouping the filter dimensions, clarifying that user_id is the sender's customer identifier, and explaining that results include each event's latest deliveries, which informs interpretation beyond individual parameter descriptions. It doesn't detail include_payload's effect, but the schema covers most of the parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Searches'), a precise resource ('organization's recent raw events'), and enumerates the filter dimensions: text, event name, level, delivery status, user_id, route, source, and time. It also specifies the ordering (newest first) and that each event includes its latest deliveries, which clearly differentiates it from siblings like event_stats or get_event even without naming them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives strong operational context, such as retention bounds and pagination semantics, but it never explicitly says when to prefer search_events over get_event, event_stats, or get_user_timeline, nor when not to use it. Usage context is implied rather than stated with alternatives or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
9 tool updates
- First observed
delivery_health - First observed
describe_setup - First observed
event_stats - First observed
get_event - First observed
get_usage - First observed
get_user_timeline - First observed
list_event_names - First observed
list_organizations - First observed
search_events
Related MCP Connectors
- AdCrunchOAuthdev.adcrunch
Ask AI about your ads — query Meta, TikTok, and Google Ads performance in natural language.
AI email inbox and sending tools with attachments, search, live events, and webhooks.
AI access to Hitsteps analytics, live visitors, uptime, goals, alerts, and chats.
Ask your AI about your horse yard: horses, treatments, visits, calendar, exercise and weights.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to query and manage email deliverability data — bounces, complaints, suppressions, delivery stats, and campaigns — across multiple providers like AWS SES, SendGrid, Mailgun, and Postmark.23 npmMIT
- AlicenseNot gradedqualityCmaintenanceEnables querying SendGrid email statistics, blocked addresses, and bounces through the SendGrid v3 API, allowing AI agents to retrieve delivery metrics and lists of problematic recipients.MIT
- AlicenseAqualityBmaintenanceEnables AI agents to send transactional email, authenticate sending domains, track delivery, and diagnose deliverability issues programmatically.13224 npmMIT
- AlicenseAqualityCmaintenanceLets AI agents send notifications, manage templates and read delivery status.1MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.