io.github.unempyd/revenueos
Connects to Google services (Search Console, GA4, Calendar, Ads) to read search performance, analytics, calendar, and ad data; enables approved SEO fixes and title/description changes.
Connects to Google Ads accounts to audit campaigns, identify wasted spend, pause wasting campaigns, adjust budgets, and evaluate ad controls.
Connects to Meta Ads accounts to audit campaigns, identify wasted spend, pause wasting campaigns, adjust budgets, and evaluate ad controls.
Connects to Plausible Analytics using its public web presence to read site analytics and discover content opportunities.
Integrates with Stripe for billing: reads revenue, MRR, customers, and open invoices; can send invoices after approval and measure paid status.
Connects to a WordPress site to deploy approved SEO and site fixes directly.
Click on "Deploy 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., "@io.github.unempyd/revenueosaudit mysite.com and show me today's opportunities to approve"
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.
RevenueOS is a revenue department for one business. Give it your website. It reads the site, your ads, your leads and your mailbox, and turns what it finds into a short list of actions: a site fix it can deploy itself, a wasting campaign to pause, an email to send, a call to book, an invoice to raise. Nothing changes until you approve it. Afterwards it re-checks the world and writes the before → after next to the action. You pay nothing until it has measured a result you agreed with.
Connect once → Discover → Approve → Execute → Measure → (agree) → PayTry it on your site in one command
pip install revenueos
revenueos demo https://yoursite.comNo account, nothing stored. It prints what is costing the site customers and which of those fixes RevenueOS deploys itself once connected. A real run:
RevenueOS demo — Hair Machine® (https://hairmachine.com.au)
5 pages crawled · ad/analytics tags: Meta Pixel, GA4 · booking link: yes · phones: +61 8 8376 7733, +61 8 8239 0009
1. PHONE NOT TAPPABLE — the number is plain text; a visitor on a phone cannot tap to call
→ RevenueOS writes the fix as a deliverable you approve, then re-checks the page.
2. NO LOCAL SCHEMA — Google cannot read the business type, address and hours
→ RevenueOS deploys this fix itself once the site is connected (git or WordPress), then re-checks it.
3. NO CANONICAL
→ RevenueOS deploys this fix itself once the site is connected, then re-checks it.
3 finding(s). Everything above runs free, every day, once connected. You pay only when you agree with a measured result.Run the demo from GitHub, no install
Add one step to any workflow and read the job summary:
- uses: unempyd/revenueos@main
with:
url: https://yoursite.comRelated MCP server: MCP-marketing
Connect once
revenueos init --from https://yoursite.com # the site fills the questionnaire; every inference is labelled
revenueos serve # TODAY / RESULTS / Connections / Spend on http://127.0.0.1:8791Connections are accounts you authorise once — Stripe, Google (Search Console, GA4, Calendar, Ads), Meta Ads, a git-hosted site, WordPress — read-only until you flip allow changes. Every change still waits for your approval on TODAY. Details and the runtime proofs: docs/integrations.md.
Pay when you agree with the result
Everything runs free: every worker, the panel, the executors. When RevenueOS has measured a result on an action you approved, it keeps running free for 14 more days, then continuous operation asks for Pro ($99/month). One-shot runs and the panel never lock. There is no trial clock that starts before you have seen a result.
What the customer sees
Both screens come from a real run against a real business (see below); nothing in them is mocked.
Verified runtime proof
On 2026-09-12 RevenueOS was connected to Plausible Analytics using only its public web presence (read-only; no email sent), then run end to end:
Stage | What happened |
Discover | 12 pages crawled, competitor authority checked, Hacker News searched with a strict relevance gate, 6 content opportunities queued |
Approve → Execute | one opportunity approved; Claude executed the RevenueOS SEO content-brief skill in 1 m 23 s and produced a 14 KB deliverable |
Measure | the outcome |
The full transcript, including what it did not find and why, is in docs/proof.md. RevenueOS reports opportunities found, actions executed, execution time and measured outcomes. It does not claim revenue it has not measured.
Install
pip install revenueos # or: uv tool install revenueos
revenueos init --from https://yoursite.com # or `revenueos init` for the questionnaire
revenueos run all # every worker once
revenueos today # the brief
revenueos approve 1 && revenueos execute 1
revenueos run measure && revenueos results
revenueos serve # the same surface as a web panel on http://127.0.0.1:8791From source:
git clone https://github.com/unempyd/revenueos && cd revenueos
uv sync && (cd orchestrator && npm install)
uv run revenueos initRequirements: Python 3.12+, Node 20+ (scheduler and connector CLIs). An LLM is optional:
RevenueOS uses ANTHROPIC_API_KEY if set, otherwise a signed-in Claude Code CLI; without
either, every worker still runs its deterministic checks.
Workers
Worker | Discovers | Executes (after approval) | Measures |
| crawl defects, authority gap, indexing surface | the matching SEO skill | re-crawl: fixed or not |
| wasted spend, over-pacing, concentration in ad exports, then the full control audit: 97 Google / 72 Meta controls (414 across 12 platforms) evaluated under the upstream runtime contract, pass/fail only with evidence | the matching ads skill | next export delta; a failing control re-checked by the next audit |
| the same on connected Google Ads / Meta accounts; wasting campaigns become pause / budget actions |
| next spend read |
| Search Console queries losing clicks, GA4 channel results | the title/description skill | next Search Console read |
| Stripe revenue, MRR, customers, open invoices |
| Stripe paid status |
| prospects from lead lists or an external prospecting service, through the qualification gate (business email + website + real company; reported as found · contactable · qualified) | — | via outreach |
| first-touch drafts from your canon | sends (daily cap, suppression list, unsubscribe footer) | replies, booked, pipeline value |
| replies, bounces and STOP requests on your mailbox | — | feeds outreach outcomes |
| content work matched to your channels | Claude produces the deliverable | deliverable written |
| Hacker News threads that pass a strict relevance gate | — | — |
| — | — | records every outcome above |
revenueos orchestrator runs the workers on a schedule (data/automations.json);
revenueos serve is the control panel with password sessions, onboarding, the brief and results.
Community and Hosted
RevenueOS Community (free, MIT): the CLI and every worker run manually, the control panel on localhost, the capability packs (13 packs, 790 skills, 104 agents, 64 connector CLIs), the MCP server and Claude Code plugin exposing six capabilities: SEO Auditor, Ads Auditor, Lead Discovery, Sales Follow-up, Marketing Intelligence, Revenue Monitor.
RevenueOS Hosted (Pro $99, Business $299, Agency $999 per month): continuous operation, the panel deployed for you, connectors, approved execution, measurement history and billing. A signed licence key unlocks continuous operation on self-hosted installs. Details: docs/community-vs-hosted.md.
Security and approval
Workers never send, publish or spend. Only an approved Execute does, and it is bounded by a
daily send cap, a suppression list, List-Unsubscribe and reply-STOP handling. Credentials
live in the environment, never in the workspace. The panel refuses to bind a public address
without a password. See docs/security-and-approval.md and
SECURITY.md.
Integrations
Website crawl, Hacker News, ad-platform exports (CSV), lead-list CSVs, SMTP/IMAP mailboxes, 64 connector CLIs (analytics, CRM, email, SEO, ads, enrichment) keyed by environment variables, and an optional external prospecting service. See docs/integrations.md.
Deployment
Dockerfile, docker-compose.yml (orchestrator, panel, optional TLS proxy) and deploy/
(runbook, Fly.io, Railway, smoke test). See deploy/README.md.
Licence
RevenueOS is MIT-licensed. It includes permissively licensed open-source components, listed
with their licences in NOTICE.md and reproduced in THIRD_PARTY_LICENSES/.
Provenance of every included file is recorded in VENDOR.json.
Develop
uv sync --extra dev --extra mcp && uv run pytest -q
(cd orchestrator && npm test && npm run typecheck)
uv run ruff check src testsSee CONTRIBUTING.md.
Related MCP Connectors
SEO Intelligence MCP — 13 tools: keyword research, SERP, domain audits, competitors.
Marketing-measurement MCP: dashboards, cross-channel queries, integrations, and knowledge files.
Search Meta, Google Ads, LinkedIn, and TikTok ad libraries plus creative analysis via MCP.
9 MCP tools: extract, analyze, research, compare, monitor, brief. Pay-per-call x402 or subscribe.
Related MCP Servers
AlicenseNot gradedqualityFmaintenanceMCP server for managing Google Ads, Meta Ads, LinkedIn Ads, and TikTok Ads via AI. 210+ tools including account audits, wasted spend detection, and PMax insights.2MIT- FlicenseNot gradedqualityCmaintenanceEnables keyword monitoring, sentiment collection, AI analysis, and report generation for marketing intelligence via MCP protocol.-
- FlicenseNot gradedqualityCmaintenanceEnables B2B research by finding verified work emails, extracting contacts, detecting tech stacks, and profiling DNS and SaaS, all through a suite of MCP tools.-
- FlicenseBqualityDmaintenanceCentralizes 10 marketing APIs into 14 MCP tools for AI assistants to pull data, audit sites, research trends, and manage Google Drive without switching tabs.35-