Skip to main content
Glama

Signal by StackEnhance

Server Details

How often 750+ e-commerce brands send marketing emails: counts, send dates, recent subject lines.

Ownership verified
Status
Healthy
Uptime
100.0% over 20 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
stackenhance/signal-mcp
GitHub Stars
0

TDQS

A4.1/5.0

Scored across 3 tools

Disambiguation4/5

The three tools map to distinct jobs: discovery/ranking (find_brands), per-period send counts (get_brand_email_frequency), and a profile snapshot (get_brand_summary). The only soft overlap is that find_brands and get_brand_summary both return category and emails-per-week, but the descriptions make the ranking-vs-profile distinction clear enough.

Naming Consistency4/5

All names are snake_case verb_noun with the 'brand' noun consistent across the two get_* tools. The minor deviation is 'find_' versus 'get_', which is a small stylistic inconsistency but still readable and predictable.

Tool Count4/5

Three tools is on the thin side, but the domain is narrow (observed email frequency for ecommerce brands) and each tool covers a genuinely different query shape. Nothing appears redundant or padded.

Completeness3/5

The read-only surface is coherent but has notable gaps: there is no direct exact-brand-name lookup (find_brands is a ranked list that excludes low-data brands), no way to enumerate supported markets/categories, and no comparison-across-brands operation. Agents can often work around these, but named-brand queries can dead-end.

Available Tools

3 tools
find_brandsFind brands by email frequencyA
Read-onlyIdempotent
Inspect

Ecommerce brands StackEnhance Signal tracks in one market, ranked by current email frequency (average marketing emails per week over the last 90 days), optionally within a category such as "Fashion & Apparel" or "Home & Interior". Use for questions like "Which brands email most frequently in Swedish ecommerce?" or to find a brand when the user names a kind of brand ("a Swedish fashion brand"). Rankings are available for SE, NO, DK, FI and DE. Brands with too little observed data are left out of rankings. Returns brand names, categories and emails per week only. Each brand has a details_url to cite.

NameRequiredDescriptionDefault
limitNoHow many brands to return (1-10, default 10).
marketYesCountry as a two-letter code (SE, NO, DK, FI or DE) or its name ("Sweden").
categoryNoOptional category, e.g. "Fashion & Apparel", "Home & Interior", "Beauty & Cosmetics", "Sports & Outdoor".

Output Schema

NameRequiredDescription
brandsYes
marketYes
categoryYes
window_daysYes
brands_trackedYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world behavior, so the safety profile is covered. The description adds real behavioral context beyond that: brands with insufficient observed data are dropped from rankings, results are capped by limit, only brands/categories/emails-per-week are returned, and each brand carries a details_url for citation.

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?

Front-loads what the tool does and what it ranks by, then layers usage examples, coverage, exclusions and return shape. Dense but each sentence carries information; only the return-field sentence is partly redundant with the output schema.

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?

An output schema exists, yet the description still summarizes return contents and citation practice, plus ranking window, supported markets and data thresholds. Nothing needed to call the tool 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?

Schema description coverage is 100%, so the schema already documents limit, market and category, including the same country codes and category examples the description repeats. The description adds no syntax or format meaning beyond the schema, making the baseline 3 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 and resource (find ecommerce brands), the ranking metric (average marketing emails per week over 90 days), and the market scope. It is clearly distinguishable from siblings like get_brand_email_frequency and get_brand_summary, which return per-brand detail rather than a ranked list.

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?

Gives concrete usage contexts with example questions ("Which brands email most frequently in Swedish ecommerce?", finding a brand when the user names a kind of brand) and notes markets and data-sufficiency exclusions. It does not explicitly name the sibling tools or state when to prefer them, so routing guidance is contextual rather than explicit.

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

get_brand_email_frequencyBrand email frequencyA
Read-onlyIdempotent
Inspect

How many marketing emails a brand sent in a calendar period, and when, as observed by StackEnhance Signal (ecommerce brands, mostly in Sweden, Norway, Denmark, Finland and Germany). Use for questions like "How many emails did Newport send in August 2026?", "What did Newport send last week?" or "What has X sent recently?". Without a market, a brand tracked in several countries gets one result per market. Resolve relative dates yourself to YYYY-MM-DD: "last week" is the previous Monday–Sunday, "last month" the previous calendar month, "recently" the last 14 days. Dates are the brand's local calendar dates. The period must start within the last six months (older history is in a Signal account) and may span up to two years. Returns the count; for periods of up to 31 days also the date of each send; and at most two subject lines, only ones already shown on the brand's public StackEnhance page and sent in the period. Every listed send was captured in full; a send without a quoted subject is listed in sends_with_subject_in_signal because its subject is withheld by that limit, not missing. Counts are de-duplicated marketing sends (welcome, birthday and transactional emails excluded). There is no open, click or revenue data. Full campaigns, other subject lines, offers, products and creative analysis are not available through this tool. Cite each result's details_url as the source and as where the full campaigns are.

NameRequiredDescriptionDefault
toYesLast day of the period, inclusive, YYYY-MM-DD.
fromYesFirst day of the period, YYYY-MM-DD.
brandYesBrand name as the user wrote it, e.g. "Newport" or "IKEA". A domain such as newport.se also works.
marketNoCountry of one storefront as a two-letter code (SE, NO, DK, FI, DE) or its name ("Sweden"). Omit it to get every market the brand is tracked in.

Output Schema

NameRequiredDescription
resultsYes
unavailableNo

TDQS

A4.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description nonetheless adds real behavioral detail: de-duplication rules, the six-month start limit, the two-year maximum span, the two-subject-line cap, and the sends_with_subject_in_signal explanation. With annotations carrying the safety baseline, a 4 is defensible; it stops short of 5 only because some of the disclosure (return shape) overlaps the output schema.

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?

Purpose and the worked examples are front-loaded, and every clause is functional rather than decorative. It is long, but the length is driven by genuine constraints (date resolution, period limits, subject-line caps) rather than filler; only the closing 'full campaigns ... not available' sentence could be trimmed slightly.

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 read-only analytics tool with a full output schema, this covers everything an agent needs: what is counted, what is excluded, the period constraints, how to interpret absent subjects, what data is absent (no open/click/revenue), and the instruction to cite details_url as the source. Nothing material 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?

Schema coverage is 100%, so the baseline would be 3. The description earns above that by adding meaning the schema does not: omitting market yields one result per market, dates are the brand's local calendar dates, and relative expressions must be converted to YYYY-MM-DD. It does not repeat the schema's own parameter prose, which is correct.

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 first sentence names a specific verb and resource ('how many marketing emails a brand sent in a calendar period') plus the data source, and the exclusions (welcome, birthday, transactional) sharpen the scope. An agent can tell this apart from find_brands and get_brand_summary without opening any schema.

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?

Gives three concrete example questions, explains the market-omission behavior ('one result per market'), tells the agent to resolve relative dates itself with explicit definitions of 'last week', 'last month' and 'recently', and states the allowed period bounds. Nothing about when to call it is left to inference.

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

get_brand_summaryBrand email summaryA
Read-onlyIdempotent
Inspect

A brand's email-marketing profile as observed by StackEnhance Signal: market, category, the date Signal first observed it, marketing emails observed in the last 6 months, current frequency (average emails per week over the last 90 days) and the date of the latest observed campaign. Use for questions like "How often does Newport email customers?" or "Is IKEA still sending newsletters?". Without a market, a brand tracked in several countries gets one summary per market. Returns aggregates only — no campaign list, subject lines, offers or creative analysis. Cite each result's details_url as the source.

NameRequiredDescriptionDefault
brandYesBrand name as the user wrote it, e.g. "Newport" or "IKEA". A domain such as newport.se also works.
marketNoCountry of one storefront as a two-letter code (SE, NO, DK, FI, DE) or its name ("Sweden"). Omit it to get every market the brand is tracked in.

Output Schema

NameRequiredDescription
resultsYes
unavailableNo

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, so the bar is lower; the description adds genuinely useful scope boundaries (aggregates only, no campaign list, subject lines, offers or creative) and discloses that omitting a market yields one summary per market. The citation instruction for details_url is also actionable. It doesn't specify result limits or handling of untracked brands, keeping it at 4.

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?

Front-loaded with what the tool returns, followed by usage examples, then scope limits and the citation instruction — a sensible priority order with little waste. The middle field enumeration is dense but each item is a distinct return value, so almost every clause earns its place.

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 two-parameter read tool with full schema coverage, an output schema, and safety annotations, the description supplies everything an agent still needs: what the aggregates cover, what they exclude, multi-market behavior, and sourcing guidance. Nothing material is left to inference.

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?

Schema coverage is 100%, so baseline is 3; the description adds value beyond it by restating the market-omission behavior in consequence terms (one summary per market) rather than as a schema note, and its examples reinforce the brand-name input. It does not add format details the schema lacks, but the schema already covers those.

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 is specific about the verb and resource: it returns a brand's email-marketing profile, and it enumerates the exact fields (market, category, first-observed date, 6-month email volume, 90-day frequency, latest campaign date). However, it never distinguishes itself from the sibling get_brand_email_frequency, which overlaps heavily with the frequency field described here.

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?

Concrete example questions ("How often does Newport email customers?", "Is IKEA still sending newsletters?") give clear when-to-use signals, and the note about multi-market brands clarifies a practical edge case. It stops short of the 5 because it offers no exclusion guidance against get_brand_email_frequency, the obvious alternative for the frequency question it uses as its own example.

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
    • First observedfind_brands
    • First observedget_brand_email_frequency
    • First observedget_brand_summary

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    C
    maintenance
    DTC competitor intelligence: catalog snapshots, price history, cross-brand product comparison, and drop/restock detection for 84 Shopify-powered brands. Pay-per-call via Apify.
    -
  • A
    license
    A
    quality
    C
    maintenance
    Search 7M+ newsletters and full-text archives, with subscriber numbers, contacts, social accounts, rankings, and audience data.
    12
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Cross-channel CPG pricing intelligence — Amazon category benchmarks (percentile rank, trend, tier breakdown) for multi-channel brands selling on Amazon plus retail/DTC/wholesale. Six tools across 800+ tracked products in Grocery, Health & Beauty, Household, and Pet Supplies.
    6
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    Provides comprehensive enterprise e-commerce data including global store profiles, product category statistics, and sales performance analysis. It enables users to search for companies and evaluate their domestic and international e-commerce business layouts across various platforms.
    2
    -
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.