Publication Cadence Tracker MCP Server
This server measures a company's editorial publication cadence: how much long-form content it publishes per month and whether that rate is rising or falling. You can:
Track publication cadence for one domain or batch analyze multiple domains concurrently (up to 8).
Return post counts for the last 30 days, 90 days, and 12 months, plus average posts per month.
Classify trends as accelerating, steady, declining, dormant, or unknown, with percent change comparing the last 90 days against the prior 275 days normalized to posts per month.
Discover the blog/publication URL automatically, including subdomains or locale-prefixed paths.
Identify content formats (blog posts, guides, reports, case studies, whitepapers, podcasts, videos, press releases, research) and count distinct authors.
Validate date reliability: flags
date_source_reliable: falseand nulls all counts if date fields track edits instead of publication; deliberately excludes changelogs and release feeds so only editorial content is counted.Distinguish census vs. estimated counts via
counts_are_estimateand flag partial results withpartial_result: truewhen time budgets are hit.Control scope with configurable page fetch limits, per-domain time budgets, concurrency, and caching (3-day cache with
skipCacheoption).Return Clay-ready flat JSON suitable for enrichment workflows and spreadsheets.
Uses only public sitemaps, feeds, and pages; requires an APIFY_TOKEN and consumes Apify credits.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Publication Cadence Tracker MCP ServerWhat's the publication trend for openai.com?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Publication Cadence Tracker MCP Server
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 |
| string | One company domain. |
| string[] | Batch. Takes precedence over |
| integer | Post pages fetched per domain, default 400. Above this the counts are estimated from an even sample. |
| integer | Hard per-domain wall-clock ceiling, default 75000. |
| integer | Concurrent domains, default 2. |
| 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 tooltrack_publication_cadenceTrack Publication CadenceARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | No | A single company domain, e.g. zapier.com. Provide either domain or domains. | |
| domains | No | Batch mode: several company domains analyzed in one call. Takes precedence over domain. | |
| batchSize | No | How many domains to analyze concurrently. Default 2. | |
| skipCache | No | Force a fresh crawl and ignore the 3 day result cache. | |
| max_pages_to_date | No | How 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_ms | No | Hard 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
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.
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.
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.
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.
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.
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
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.
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.
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.
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
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
Domain reputation over time: Domain Rating, Tranco rank, TLS, and AI crawler policy.
Live market intelligence & AI content strategy: trends, competitor moves, content calendar.
Track AI visibility (ChatGPT, Gemini, AI Overviews), research SEO keywords, write, publish, prove.
Deterministic public-web change observation with evidence-bound commercial interpretation.
Related MCP Servers
- AlicenseAqualityAmaintenanceDetects hiring intent signals by scanning job boards for specific companies. Returns structured role data for outbound sales targeting.13061MIT
- AlicenseNot gradedqualityDmaintenanceProvides deep, structured access to Substack publications with real-time content analysis, including sentiment analysis, readability metrics, and publishing patterns.13MIT
- AlicenseAqualityAmaintenanceMonitors a company domain for changes in hiring, tech stack, funding, firmographics, and social presence, returning only the deltas as typed change events.1277MIT
- FlicenseNot gradedqualityAmaintenanceAutonomous competitive intelligence tracking competitors across LinkedIn, news, reviews, job postings, and regulatory signals, generating executive briefs and sales battlecards.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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