Skip to main content
Glama

Sessy — Amazon SES observability

Server Details

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

Ownership verified
Status
Healthy
Uptime
99.8% over 44 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
marckohlbrugge/sessy
GitHub Stars
907

TDQS

A4.2/5.0

Scored across 7 tools

Disambiguation4/5

Each tool maps to a distinct action (create, list, get setup, update, stats, search, fetch message). The only mild overlap is that create_source and get_source_setup both surface AWS SES wiring details, and get_message/search_events both relate to event data, but the descriptions clearly delineate their roles.

Naming Consistency4/5

Six of seven tools follow a clean verb_noun snake_case pattern (create_source, get_message, get_source_setup, list_sources, search_events, update_source). Only email_stats deviates as a noun-only name, a minor inconsistency.

Tool Count5/5

Seven tools is well-scoped for an observability server, with each tool earning its place across source management, stats, and event inspection. No redundant or filler tools.

Completeness4/5

Covers the core lifecycle: create/read/update sources, setup verification, aggregate stats, event search, and single-message retrieval. Deletion and retention are deliberately deferred to the web UI, a minor gap but a stated design choice.

Available Tools

7 tools
create_sourceCreate sourceAInspect

Create a new email source (one per app or mail stream) and return the AWS SES wiring details for it: webhook URL for the SNS subscription, suggested configuration set and topic names, and the remaining setup steps. Retention is configured in the web UI.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesDisplay name, e.g. the app or mail stream it tracks
colorNoBadge color in the web UI; defaults to the least-used color

Output Schema

ParametersJSON Schema
NameRequiredDescription
setupYes
sourceYes

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare this is not read-only, not idempotent, and not destructive, so the mutation nature is clear. The description adds useful setup context by enumerating the return payload (webhook URL, config set, topic names, remaining steps) and notes that retention is configured elsewhere in the web UI, which is a behavioral constraint not visible in 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?

Two sentences with no redundant information. The primary action and return format come first, and the retention note is placed at the end as a clarifying aside.

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?

With annotations, full schema coverage, and an output schema present, the description need not explain return values, yet it helpfully summarizes the wiring details provided. The only gap is that it doesn't clarify prerequisites or when to use this versus updating an existing source, but that is minor for a creation tool.

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 description coverage is 100%, so the schema already documents both parameters thoroughly (name as display name, color as badge with default). The description adds no syntax or meaning beyond what the schema provides, so baseline 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?

States a specific verb (create) and resource (email source), and immediately constrains the scoping ('one per app or mail stream'). It also describes what the tool returns, which distinguishes it from the sibling get_source_setup, which presumably only retrieves wiring for a pre-existing source.

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

Usage Guidelines3/5

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

The description implies usage by saying it returns AWS SES wiring details, but it never explicitly says when to use create_source versus alternatives like update_source or get_source_setup. An agent must infer that this is for initial setup only.

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

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

TDQS

A4.3/5.0
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

TDQS

A4.4/5.0
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.

get_source_setupGet source setupA
Read-onlyIdempotent
Inspect

Fetch one source's settings and the AWS SES wiring details for it: webhook URL for the SNS subscription, suggested configuration set and topic names, and the remaining setup steps. Use this to finish or verify SES setup for an existing source.

ParametersJSON Schema
NameRequiredDescriptionDefault
source_idYesSource id from list_sources

Output Schema

ParametersJSON Schema
NameRequiredDescription
setupYes
sourceYes

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint and non-destructive, so the safety profile needs no restating. The description adds that it surfaces setup-specific artifacts (webhook URL, suggested names, remaining steps), which is useful, but since an output schema exists this is largely return-value content and no auth or rate-limit context is added.

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?

Two tight sentences with the content enumeration front-loaded and the use case trailing. No filler or repetition.

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 read-only, single-parameter tool with an output schema and full annotation coverage, the description is essentially complete. The enumerated return details are slightly redundant against the output schema, but nothing an agent needs to invoke it correctly is missing.

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?

Only one parameter, and schema coverage is 100% with the schema note 'Source id from list_sources'. The description contributes no additional parameter meaning (no format, range, or lookup guidance), so baseline 3 is appropriate.

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

Purpose4/5

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

The description gives a specific verb (Fetch) and resource (one source's settings), then enumerates the concrete contents: webhook URL, suggested configuration/topic names, and remaining setup steps. It delineates scope to SES setup, which separates it from general source tools, though it never names a sibling explicitly.

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 states the triggering context clearly: 'Use this to finish or verify SES setup for an existing source.' There is no when-not guidance or named alternative (e.g., update_source), so it falls short of a 5.

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

TDQS

A4.7/5.0
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

TDQS

A4.6/5.0
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.

update_sourceUpdate sourceA
Idempotent
Inspect

Rename a source or change its badge color. Omitted fields are left unchanged. Retention and deletion are deliberately not available here — use the web UI.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoNew display name
colorNoNew badge color
source_idYesSource id from list_sources

Output Schema

ParametersJSON Schema
NameRequiredDescription
setupYes
sourceYes

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnly=false, idempotent=true, and destructive=false. The description adds meaningful behavior beyond that: omitted fields are left unchanged, so it is a partial update, and retention/deletion are deliberately excluded. It does not discuss permissions or rate limits, but it adds solid context for a mutation.

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 short sentences with no waste. The main action is front-loaded, followed by omission semantics and then scope exclusions. Every sentence earns its place.

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?

The tool is simple, has full schema coverage, annotations, and an output schema, so the description does not need to explain return values. It covers the mutation semantics and excluded operations well. It could mention permission requirements, but for this tool the description is nearly complete.

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 description coverage is 100%, so the schema already documents name, color, and source_id. The description restates that name and color can be changed and clarifies omitted fields are preserved, but it adds no syntax or format details beyond the schema. The baseline of 3 is appropriate.

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

Purpose4/5

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

The description states a clear verb and resource: rename a source or change its badge color. It also explicitly scopes out retention and deletion, which helps an agent avoid misfires. However, it does not name or differentiate itself from MCP siblings such as create_source or 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 Guidelines4/5

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

It gives a clear when-not condition: retention and deletion are not available here and must be done in the web UI. It also implies when to use it, for renaming or recoloring. It stops short of naming sibling tools as alternatives, but the exclusion guidance is explicit and useful.

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.

  1. 3 tool updates
    • Addedcreate_source
    • Addedget_source_setup
    • Addedupdate_source
  2. 4 tool updates
    • First observedemail_stats
    • First observedget_message
    • First observedlist_sources
    • First observedsearch_events

Related MCP Connectors

Related MCP Servers

  • F
    license
    A
    quality
    B
    maintenance
    Provides read-only search and retrieval of archived emails, archive statistics, health, and ingestion sources, with an optional administrative toolset for user, role, reindexing, and queue management.
    6
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides read-only tools to search customers, orders, and business documents across PostgreSQL, JSON CRM, and Markdown sources, with tenant isolation, PII masking, and auditable access.
    Apache 2.0
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables governed, read-only investigations of Amazon Athena access logs by searching exact user, IP, or correlation indicators and summarizing activity by correlation ID, with parameterized queries, validation, and result limits.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.