This release adds 3 notable features for engineering teams evaluating rollout.
✓ No known CVEs patched in this version
Topics
+11 more
ReleasePort's take
Light signalRelease v0.9.9 introduces a public AnalyticsModule protocol and registry for deep analytics integration.
Why it matters: Enables external platforms to register analytics capabilities (detect anomalies, diagnose performance, audit creative, analyze budget efficiency) via the new mureo.analytics entry‑point group; all four adapters now advertise full capability sets.
Summary
AI summaryAdds a public AnalyticsModule protocol and registry enabling external‑integration platforms to provide deep analytics.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| Feature | Medium |
Adds opt‑in AnalyticsModule protocol with four methods. Adds opt‑in AnalyticsModule protocol with four methods. Source: llm_adapter@2026-05-23 Confidence: high |
— |
| Feature | Medium |
Introduces AnalyticsCapability enum (DETECT_ANOMALIES, DIAGNOSE_PERFORMANCE, AUDIT_CREATIVE, ANALYZE_BUDGET_EFFICIENCY). Introduces AnalyticsCapability enum (DETECT_ANOMALIES, DIAGNOSE_PERFORMANCE, AUDIT_CREATIVE, ANALYZE_BUDGET_EFFICIENCY). Source: llm_adapter@2026-05-23 Confidence: high |
— |
| Feature | Medium |
Provides frozen-dataclass models: Anomaly, PerformanceDiagnosis, CreativeAudit, BudgetEfficiency. Provides frozen-dataclass models: Anomaly, PerformanceDiagnosis, CreativeAudit, BudgetEfficiency. Source: llm_adapter@2026-05-23 Confidence: high |
— |
| Feature | Medium |
Adds entry‑point group `mureo.analytics` registry for plugin registration. Adds entry‑point group `mureo.analytics` registry for plugin registration. Source: llm_adapter@2026-05-23 Confidence: high |
— |
| Feature | Medium |
Adds MCP tool `mureo_analytics_modules_list` to enumerate registered platforms and capabilities. Adds MCP tool `mureo_analytics_modules_list` to enumerate registered platforms and capabilities. Source: llm_adapter@2026-05-23 Confidence: high |
— |
| Feature | Medium |
Re‑exports TypedDicts for Google and Meta performance rows in `mureo.analytics`. Re‑exports TypedDicts for Google and Meta performance rows in `mureo.analytics`. Source: llm_adapter@2026-05-23 Confidence: high |
— |
| Feature | Medium |
Updates built‑in adapters `google_ads` and `meta_ads` to advertise all four analytics capabilities. Updates built‑in adapters `google_ads` and `meta_ads` to advertise all four analytics capabilities. Source: llm_adapter@2026-05-23 Confidence: high |
— |
| Feature | Medium |
Implements per‑campaign fan‑out for `detect_anomalies` to avoid masking single‑campaign issues. Implements per‑campaign fan‑out for `detect_anomalies` to avoid masking single‑campaign issues. Source: llm_adapter@2026-05-23 Confidence: high |
— |
| Feature | Medium |
Adds per‑campaign drilldown (`PerformanceScope.DEEP`) to `diagnose_performance` with sorted spend/CV/CPA metrics. Adds per‑campaign drilldown (`PerformanceScope.DEEP`) to `diagnose_performance` with sorted spend/CV/CPA metrics. Source: llm_adapter@2026-05-23 Confidence: high |
— |
| Feature | Medium |
Enhances `audit_creative` to check RSA/RDA/Meta ad shape, stamp campaign IDs, and provide per‑campaign summaries. Enhances `audit_creative` to check RSA/RDA/Meta ad shape, stamp campaign IDs, and provide per‑campaign summaries. Source: llm_adapter@2026-05-23 Confidence: high |
— |
| Feature | Medium |
Implements `analyze_budget_efficiency` to normalize conversions/cost and suggest reallocation when spread is wide. Implements `analyze_budget_efficiency` to normalize conversions/cost and suggest reallocation when spread is wide. Source: granite4.1:30b@2026-05-23-audit Confidence: low |
— |
| Feature | Low |
Updates skills (`daily-check`, `rescue`, `_mureo-shared`) to consult analytics registry before running diagnostics. Updates skills (`daily-check`, `rescue`, `_mureo-shared`) to consult analytics registry before running diagnostics. Source: granite4.1:30b@2026-05-23-audit Confidence: low |
— |
Full changelog
Per-platform analytics module surface for external-integration platforms (#120)
External-integration platforms — official MCPs and third-party plugins alike — now have an opt-in path to mureo's deep analytics on the same terms as the built-in google_ads / meta_ads adapters. Workflow skills (daily-check, rescue, …) consult a new registry and either run the platform's analytics module or honestly report analytics_not_available_for_<platform>. Auto-deriving heuristics from tool schemas is explicitly rejected — it would fabricate plausible-but-wrong analysis and violate mureo's trustworthiness principle.
New public surface in mureo.analytics
- Protocol —
AnalyticsModule(runtime_checkable, opt-in) with four methods:detect_anomalies,diagnose_performance,audit_creative,analyze_budget_efficiency. Modules advertise their actually-supported subset viacapabilities(); un-advertised methods raiseNotImplementedError. Discovery validates structurally and detects un-overridden Protocol stubs by qualified name. - Capability enum —
AnalyticsCapability(DETECT_ANOMALIES,DIAGNOSE_PERFORMANCE,AUDIT_CREATIVE,ANALYZE_BUDGET_EFFICIENCY). - Frozen-dataclass models —
Anomaly,AnomalySeverity,PerformanceDiagnosis(with optionalper_campaign_metricsfor DEEP scope),PerformanceScope,CreativeAudit(withfindings+per_campaign_summary),CreativeFinding(withcampaign_id),BudgetEfficiency. - Registry — entry-point group
mureo.analytics, independent ofmureo.providers/mureo.skills. Plugin packages register one class via[project.entry-points."mureo.analytics"]. Built-in adapters auto-register; broken plugins are skipped withAnalyticsModuleWarningand never crash the MCP server. - MCP tool —
mureo_analytics_modules_listreturns the registered platforms + advertised capabilities + source distribution so skills can branch dynamically. - TypedDicts —
GoogleLivePerformanceRow,GoogleByodPerformanceRow,GoogleMetricsDict,GooglePerformanceRow,MetaLivePerformanceRow,MetaByodPerformanceRow,MetaActionEntry,MetaPerformanceRow,GoogleAdRow,MetaAdRow— re-exported for plugin-side typing. Alltotal=False; field-set contract documented indocs/ABI-stability.md§4a.
Built-in adapters wired against live + BYOD clients
google_adsandmeta_adsadvertise all four capabilities.detect_anomaliesruns per-campaign fan-out — single-campaign anomalies are no longer masked by offsetting movements at the aggregate.diagnose_performancereturns aggregate metrics by default and per-campaign drilldown (sorted by spend descending, one finding per campaign with spend / CV / CPA) atPerformanceScope.DEEP.audit_creativechecks RSA / RDA / Meta ad shape against Google's Ad-Strength thresholds and Meta's creative requirements, stampscampaign_idon every finding, and exposes a sortedCreativeAudit.per_campaign_summary.analyze_budget_efficiencynormalisesconversions/costacross campaigns and emits a concrete reallocation suggestion when the spread is wide.- Lazy auth + BYOD routing; missing credentials in live mode produce sentinel responses (empty anomaly tuple, sentinel
PerformanceDiagnosisheadline). Tolerates both live row shape and BYOD flat shape — regression tests pin both.
Skill integration
daily-check, rescue, _mureo-shared updated to consult mureo_analytics_modules_list before running deep diagnostics on any external-integration platform.
Docs
docs/plugin-authoring.md§14 "Shipping analytics with your plugin"docs/ABI-stability.md§4a (Protocol contract) + §6 (entry-point groupmureo.analytics) + TypedDict field-set rules
PRs in this release
- #137 — Protocol + registry + skill integration + docs
- #138 — Live client wiring + BYOD shape fix
- #139 — Per-campaign fan-out +
audit_creative+analyze_budget_efficiency - #140 — Per-campaign drilldown for
audit_creative - #141 — DEEP scope drilldown for
diagnose_performance+ TypedDicts - #142 — Release commit
Closes #120.
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About logly/mureo
Framework for AI agents (Claude Code, Cursor, Codex, Gemini) to operate Google Ads, Meta Ads, and Search Console. Grounded in a local STRATEGY.md — not metric-chasing. Defense-in-depth security, local-first. Apache 2.0.
Related context
Related tools
Beta — feedback welcome: [email protected]