Sessy — Amazon SES observability
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.
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.
Tool Definition Quality
Average 4.5/5 across 4 of 4 tools scored.
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.
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.
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.
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 toolsemail_statsEmail statsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| to_date | No | ISO 8601 date or timestamp; only with date_range custom | |
| from_date | No | ISO 8601 date or timestamp; only with date_range custom | |
| source_id | No | Limit to one source (id from list_sources); omit for the whole account | |
| date_range | No | Date window preset (default last_30_days); use custom with from_date/to_date | |
| include_daily_series | No | Include a per-day sent/delivered/bounced series (ranges up to 120 days); default false |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | Present when there were no sends in the applied window |
| scope | Yes | |
| counts | Yes | |
| daily_series | No | |
| rates_percent | Yes | |
| bounce_breakdown | Yes | Counts keyed by bounce subtype (Permanent, Transient, Undetermined, Unknown) |
| applied_date_range | Yes |
Tool Definition Quality
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.
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.
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.
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.
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.
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 messageARead-onlyIdempotentInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| ses_message_id | Yes | SES message id from search_events results |
Output Schema
| Name | Required | Description |
|---|---|---|
| events | Yes | |
| message | Yes | |
| events_truncated | No | True when more than 500 events exist for this message |
Tool Definition Quality
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.
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.
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.
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.
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.
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 sourcesARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| sources | Yes | |
| guidance | No | Present when the account has no sources yet |
Tool Definition Quality
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.
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.
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.
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.
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.
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 eventsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Rows per page (default 25) | |
| query | No | Substring match against recipient email addresses and message subjects | |
| cursor | No | next_cursor value from the previous page | |
| to_date | No | ISO 8601 date or timestamp; only with date_range custom | |
| from_date | No | ISO 8601 date or timestamp; only with date_range custom | |
| source_id | No | Limit to one source (id from list_sources); omit to search all sources | |
| date_range | No | Date window preset (default last_30_days); use custom with from_date/to_date | |
| event_types | No | Only these event types | |
| bounce_types | No | Only these bounce subtypes (combine with event_types ["bounce"]) |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | Present when the page is empty and a wider date window may help |
| events | Yes | |
| has_more | Yes | |
| next_cursor | Yes | |
| applied_date_range | Yes |
Tool Definition Quality
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.
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.
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.
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.
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.
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.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceLets you inspect the health of your AWS Lambda functions and S3 buckets using plain English, with read-only access.
- AlicenseNot gradedqualityCmaintenanceA read-only MCP server for safe, structured investigation of AWS serverless resources, providing curated tools for tracing dependencies, permissions, and failures without exposing raw SDK access.MIT
- AlicenseNot gradedqualityDmaintenanceEnables monitoring and analysis of Amazon RDS (MySQL, PostgreSQL) instances, metrics, and slow query logs via natural language.8MIT
- AlicenseAqualityCmaintenanceRead-only MCP server for the SentinelOne management API, exposing sites, endpoint agents, threats, and activity logs with aggregation tools for MSP/MSSP reporting.6172MIT