Skip to main content
Glama
mambalabsdev

Publication Cadence Tracker MCP Server

by mambalabsdev

Publication Cadence Tracker MCP Server

npm MCP License: MIT

MCP server for the Mamba Labs Publication Cadence Tracker actor on Apify.

Give it a company domain. It tells your agent how much long-form work that company publishes per month, and whether that rate is rising or falling.

Tool

track_publication_cadence

Returns a flat row per domain: posts_last_30d, posts_last_90d, posts_last_12m, avg_posts_per_month, cadence_trend (accelerating, steady, declining, dormant, unknown), trend_pct_change, most_recent_post_date, days_since_last_post, publication_url, formats_detected[], distinct_authors_count, discovery_method, confidence, and an evidence[] array of quotable strings.

Related MCP server: Substack MCP Server

Why the trend and not the count

Four pieces a month is unremarkable. Going from four to twelve in six months is a content operation outgrowing its staff. The comparison is stated rather than implied: the last 90 days against the prior 275 days, both normalized to posts per month, with accelerating and declining set at 25 percent either way.

This is editorial output volume, not changelog monitoring. A release feed is detected and rejected rather than counted as published work.

The number it refuses to give you

Publication dates come from the post pages, never from sitemap lastmod. Across 100 measured URL pairs, lastmod tracked the page's own dateModified and ran later than datePublished by a median of 151 to 1653 days on four of six sites. A cadence built on it would report a company that refreshed 200 old posts as a company that published 200 posts.

A page field can fail the same way, so it is checked against its own distribution and against the site's feed. When it fails, date_source_reliable comes back false and every count is nulled. Check that field before quoting a number.

Measured on nine live domains: a rate recovered on 5 of 6 publishers, 3 of 3 controls correctly returning nothing. The one miss is the guard refusing a site whose date field tracks edits.

track_publication_cadence

Input

Type

Notes

domain

string

One company domain.

domains

string[]

Batch. Takes precedence over domain.

max_pages_to_date

integer

Post pages fetched per domain, default 400. Above this the counts are estimated from an even sample.

domain_time_budget_ms

integer

Hard per-domain wall-clock ceiling, default 75000.

batchSize

integer

Concurrent domains, default 2.

skipCache

boolean

Ignore the 3 day result cache.

What it actually measures

Not whether a company has a blog. How much it published, when, and whether the rate moved.

Finding the blog is most of the work, and it is where a naive version fails. The blog often lives on a different host from the apex and the apex sitemap never mentions it (blog.hubspot.com). A homepage sometimes advertises only a changelog feed while linking to the real blog repeatedly (about.gitlab.com). Paths are often locale prefixed, so /en-uk/ and /bg-bg/ fragment the archive into forty pieces. All three are handled, and publication_url reports a locale-prefixed section as https://example.com/*/knowledge/.

Three fields to read before you trust a number. date_source_reliable false means the site's date field tracks edits rather than publication and every count has been nulled. counts_are_estimate true means the archive was larger than the page budget and the counts come from a scaled even sample, so two runs can differ by a few posts. partial_result true means the wall-clock budget stopped the crawl and the numbers are lower bounds.

Setup

{
  "mcpServers": {
    "mamba-publication-cadence-tracker": {
      "command": "npx",
      "args": ["-y", "@mambalabsdev/mcp-publication-cadence-tracker"],
      "env": { "APIFY_TOKEN": "your-apify-token" }
    }
  }
}

Get a token at console.apify.com/account/integrations. Read-only; consumes Apify credits per domain analyzed.

Also available

This tool is also exposed by the GTM Suite umbrella server, alongside the rest of the Mamba Labs GTM actors, if you would rather run one server than many.

Built by Mamba Labs.

Available Tools

1 tool
track_publication_cadenceTrack Publication CadenceA
Read-onlyIdempotent

Given a company domain, measure how much long-form work that company publishes and whether the rate is rising or falling. Returns post counts for the last 30 days, 90 days and 12 months, a monthly average, and a cadence_trend of accelerating, steady, declining, dormant or unknown, plus the percent change behind it. The trend compares the last 90 days against the prior 275 days, both normalized to posts per month. Also returns the blog URL, the format mix (blog posts, guides, reports, case studies, whitepapers, podcasts, videos, press releases, research), the number of distinct bylines, and how the post list was discovered. This measures EDITORIAL output volume, not product changelogs: a release feed is detected and rejected rather than counted. Publication dates are read from the post pages themselves, because sitemap lastmod was measured to be a modification date that runs later than publication by a median of 151 to 1653 days. When a site's date field turns out to track edits rather than publication, date_source_reliable comes back false and every count is nulled rather than reported wrong, so check that field before quoting a number. Counts are a census when the archive fits the page budget and a scaled even sample otherwise, flagged by counts_are_estimate. Public sitemaps, feeds and pages only. Returns flat Clay-ready JSON. Read-only; requires an APIFY_TOKEN and consumes Apify credits per domain analyzed.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainNoA single company domain, e.g. zapier.com. Provide either domain or domains.
domainsNoBatch mode: several company domains analyzed in one call. Takes precedence over domain.
batchSizeNoHow many domains to analyze concurrently. Default 2.
skipCacheNoForce a fresh crawl and ignore the 3 day result cache.
max_pages_to_dateNoHow many post pages to fetch per domain for dating. Default 400. Above this cap the counts are estimated from an even sample across the archive and counts_are_estimate is set true. Raise it for a tighter number on a large archive, at the cost of run time.
domain_time_budget_msNoHard wall-clock ceiling per domain, default 75000. When it is nearly spent the crawl stops and the row is returned with partial_result true and reduced confidence rather than timing out.

TDQS

A4.4/5.0
Behavior5/5

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

The description goes far beyond the readOnlyHint and idempotentHint annotations. It explains why publication dates are read from post pages rather than sitemap lastmod (with a specific median lag), what happens when dates track edits (date_source_reliable=false and counts nulled), how counts can be a census or an even sample (counts_are_estimate), the requirement for APIFY_TOKEN, and that it consumes credits per domain. This is rich, non-obvious behavioral context that 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.

Conciseness4/5

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

The description is long but packed with unique value: every sentence introduces a caveat, metric, or constraint. It is front-loaded with the core purpose and then systematically covers reliability, counting methodology, and operational details (token, credits). While it could be trimmed slightly, the density is justified for a tool with no output schema and high behavioral nuance.

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?

With 6 parameters, no output schema, and no sibling tools, the description carries the full burden of explaining return values, edge cases, and operation constraints. It covers the returned fields (post counts, cadence_trend, format mix, bylines, discovery method), reliability flags, counting methodology, and prerequisites (APIFY_TOKEN). This is a complete picture for an agent to invoke the tool and interpret results 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?

The schema description coverage is 100%, so the parameters are already well-documented. The description adds a bit of context (e.g., effect of max_pages_to_date on sampling, domain_time_budget_ms partial_result behavior) but mostly reinforces what the schema already states. The baseline of 3 is appropriate because the schema does the heavy lifting and the description does not introduce significant new semantics.

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 states a specific verb and resource: 'measure how much long-form work that company publishes and whether the rate is rising or falling.' This clearly distinguishes the tool's purpose, even without sibling tools to compare, and immediately orients the agent to what it does.

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 explicitly excludes product changelogs ('This measures EDITORIAL output volume, not product changelogs'), warns to check the date_source_reliable field before quoting numbers, and limits usage to 'Public sitemaps, feeds and pages only.' No alternatives are mentioned because no sibling tools exist, so the guidance is clear and provides actionable context.

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

TDQS

A4.4/5.0
Disambiguation5/5

The server has only one tool, so there is no possibility of confusion between tools. The tool's purpose is clearly described, making selection unambiguous.

Naming Consistency5/5

The single tool uses a clear verb_noun pattern ('track_publication_cadence') that matches the server's name, providing a consistent and predictable naming scheme.

Tool Count3/5

With only one tool, the server feels slightly thin, but the tool is comprehensive in its function. This falls at the borderline for appropriate tool count.

Completeness5/5

The single tool thoroughly covers the domain of tracking publication cadence, including robust handling of date reliability, estimates, and format details. There are no obvious gaps in the stated purpose.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/mambalabsdev/mcp-publication-cadence-tracker'

If you have feedback or need assistance with the MCP directory API, please join our Discord server