Skip to main content
Glama

Sessy — Amazon SES observability

Ownership verified

Server Details

Read-only Amazon SES observability: search events, inspect bounces, pull delivery stats.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
marckohlbrugge/sessy
GitHub Stars
907

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.5/5 across 4 of 4 tools scored.

Server CoherenceA
Disambiguation5/5

Each tool targets a distinct aspect of SES observability: email_stats aggregates statistics, get_message retrieves a single message's details, list_sources enumerates sources with health stats, and search_events queries event logs. Despite minimal overlap between search_events and get_message, the descriptions clearly differentiate compact rows from full timelines, eliminating ambiguity.

Naming Consistency4/5

Three of the four tools follow a clear verb_noun pattern (get_message, list_sources, search_events), but email_stats is a noun_noun exception. This minor inconsistency is noticeable but doesn't hinder predictability or readability.

Tool Count5/5

With only 4 tools, the server is well-scoped for its purpose of SES observability. Each tool provides essential functionality without unnecessary bloat, and the count is appropriate for the domain.

Completeness4/5

The tool set covers the core observability workflows: aggregate statistics, event search, message-level detail, and source health overview. A minor gap is the lack of explicit source-based filtering in search_events, which might require extra steps for targeted queries, but overall the surface is reasonably complete for its stated purpose.

Available Tools

4 tools
email_statsEmail statsA
Read-onlyIdempotent
Inspect

Aggregate email stats for one source or the whole account over a date range: counts by event type, unique opens/clicks, bounce/complaint/open/click rates, bounce breakdown by subtype, and an optional daily time series. Rates are percentages of sends.

ParametersJSON Schema
NameRequiredDescriptionDefault
to_dateNoISO 8601 date or timestamp; only with date_range custom
from_dateNoISO 8601 date or timestamp; only with date_range custom
source_idNoLimit to one source (id from list_sources); omit for the whole account
date_rangeNoDate window preset (default last_30_days); use custom with from_date/to_date
include_daily_seriesNoInclude a per-day sent/delivered/bounced series (ranges up to 120 days); default false

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoPresent when there were no sends in the applied window
scopeYes
countsYes
daily_seriesNo
rates_percentYes
bounce_breakdownYesCounts keyed by bounce subtype (Permanent, Transient, Undetermined, Unknown)
applied_date_rangeYes
Behavior4/5

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

Annotations already declare readOnly, idempotent, and non-destructive, so the safety profile is established. The description adds valuable behavioral context beyond annotations: rates are defined as percentages of sends, the optional daily series is noted, and the metric list clarifies exactly what the tool returns. No contradiction exists, and this extra detail helps interpret the output.

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 a single, information-dense sentence that fronts the main purpose and then lists supporting details. Every clause adds value—scope, date range, metric types, and the send-percentage clarification. It avoids fluff and is easy to scan.

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?

For a tool with 0 required parameters, an output schema, and rich annotations, the description covers all essential usage aspects: aggregation behavior, source scoping, date range, metric types, and the optional time series. Edge cases like custom date range constraints are handled by the schema, so the description is complete for the intended complexity.

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

Parameters3/5

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

Schema coverage for all 5 parameters is 100%, so the schema carries full semantic weight for parameter details. The description adds minimal parameter-specific meaning (e.g., 'one source or whole account' maps to source_id, 'date range' relates to date_range), but these are restatements of what the schema already documents. Thus the baseline of 3 is appropriate.

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 opens with the specific verb 'Aggregate' and the resource 'email stats', then clarifies scope ('one source or the whole account') and date range. It enumerates the exact metrics (counts, opens/clicks, rates, breakdowns, optional series), making it immediately distinct from sibling tools like search_events or get_message.

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 clearly implies when to use this tool: when the user needs aggregate metrics (counts/rates) across a date range. It gives context about source scope and date presets, but it does not explicitly mention alternatives or exclusions (e.g., 'for individual events use search_events'). This meets 'clear context, no exclusions' rather than the explicit always/never guidance required for a 5.

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

get_messageGet messageA
Read-onlyIdempotent
Inspect

Fetch one email by its ses_message_id (from search_events results): subject, sender, destinations, SES tags, and the per-recipient event timeline including bounce/complaint diagnostics (first 500 events; events_truncated flags the rest — use search_events to page through them).

ParametersJSON Schema
NameRequiredDescriptionDefault
ses_message_idYesSES message id from search_events results

Output Schema

ParametersJSON Schema
NameRequiredDescription
eventsYes
messageYes
events_truncatedNoTrue when more than 500 events exist for this message
Behavior5/5

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

The description goes well beyond the annotations by disclosing the exact fields returned (subject, sender, destinations, SES tags, event timeline), the 500-event limit, the events_truncated flag, and the recommended paging mechanism. There is no contradiction with the readOnly/idempotent/non-destructive annotations.

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, information-dense sentence that front-loads the core action ('Fetch one email') and packs in field lists, limits, and follow-up guidance. It is efficient but somewhat heavy with parentheticals, which slightly reduces readability.

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?

Together with the annotations (read-only, idempotent) and the presence of an output schema, the description covers the tool's purpose, input provenance, return contents, limits, truncation behavior, and continuation strategy. Nothing important is left unexplained for an agent to invoke this tool correctly.

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

Parameters3/5

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

Schema coverage is 100%, and the parameter description already states 'SES message id from search_events results'. The tool description repeats this same context without adding new syntactic, format, or behavioral details about the parameter, so it adds no incremental value beyond the schema.

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 uses a specific verb ('Fetch') and resource ('one email by its ses_message_id'), clearly distinguishing it from sibling tools like search_events (which lists events) and email_stats. It immediately states the exact input needed and the scope of the operation.

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?

It explicitly says the id comes 'from search_events results' and instructs using search_events to page through additional events, giving clear practical usage context. However, it does not explicitly contrast with email_stats or list_sources, so a small gap remains in alternative guidance.

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

list_sourcesList sourcesA
Read-onlyIdempotent
Inspect

List this account's email sources with 30-day health stats (sent count, bounce rate, last event). Start here: the other tools take a source_id from these results.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
sourcesYes
guidanceNoPresent when the account has no sources yet
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, so the safety profile is covered. The description adds valuable context about the 30-day health stats and the tool's role as the entry point, 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.

Conciseness5/5

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

The description is exactly two sentences, each earning its place: the first defines the output and the second gives actionable workflow guidance. No filler or redundancy.

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?

For a parameterless list tool with an output schema and annotations covering safety, the description fully captures purpose, output contents, and how it fits into the broader workflow. Nothing critical is missing.

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?

The input schema has zero parameters, so there is nothing to explain. Per the rubric, a 0-parameter tool gets a baseline of 4; the description does not need to add parameter details.

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 lists this account's email sources with 30-day health stats (sent count, bounce rate, last event). It also positions itself as the starting point for other tools that take a source_id, effectively distinguishing it from siblings like email_stats, get_message, and search_events.

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

Usage Guidelines5/5

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

Explicit workflow guidance is provided: 'Start here: the other tools take a source_id from these results.' This tells the agent to run this tool first to acquire source IDs for subsequent tool calls, making the usage context and alternatives clear.

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

search_eventsSearch eventsA
Read-onlyIdempotent
Inspect

Search email events (sends, deliveries, bounces, complaints, opens, clicks), newest first. Returns compact rows; use get_message with a row's ses_message_id for the full timeline. The date window defaults to the last 30 days — pass date_range "all_time" to search everything.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoRows per page (default 25)
queryNoSubstring match against recipient email addresses and message subjects
cursorNonext_cursor value from the previous page
to_dateNoISO 8601 date or timestamp; only with date_range custom
from_dateNoISO 8601 date or timestamp; only with date_range custom
source_idNoLimit to one source (id from list_sources); omit to search all sources
date_rangeNoDate window preset (default last_30_days); use custom with from_date/to_date
event_typesNoOnly these event types
bounce_typesNoOnly these bounce subtypes (combine with event_types ["bounce"])

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoPresent when the page is empty and a wider date window may help
eventsYes
has_moreYes
next_cursorYes
applied_date_rangeYes
Behavior4/5

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

Beyond the readOnly/idempotent annotations, the description discloses behavioral details such as 'newest first', 'Returns compact rows', and the default date window. These add meaningful context not available from annotations alone, though no mention of pagination or rate limits is made.

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?

Three sentences, each purposeful and front-loaded. No redundancy; the description is succinct yet packs in scope, ordering, return style, an alternative, and behavioral defaults.

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?

For a 9-parameter tool with full schema descriptions and an output schema, the description covers purpose, defaults, and relationships to siblings adequately. It could have mentioned pagination explicitly, but the cursor parameter is documented in the schema, so this is not a major gap.

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?

The schema already provides 100% parameter descriptions, but the description enhances understanding of date_range by stating the default (last_30_days) and the all_time option, and clarifies that from_date/to_date are for custom ranges. It also implies the output contains ses_message_id, linking to get_message.

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 searches email events, enumerates the event types, and specifies ordering (newest first). It also distinguishes itself from siblings by pointing to get_message for full timelines and implicitly contrasting with email_stats and list_sources.

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

Usage Guidelines5/5

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

Explicitly advises when to use get_message instead: 'use get_message with a row's ses_message_id for the full timeline.' It also clarifies the default date window (last 30 days) and how to override it with date_range 'all_time', giving concrete usage guidance.

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

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.