Self-hosted revenue department: find opportunities, execute approved work, measure results.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
One-click editor setup isnβt available for this listing yet β we donβt have a confirmed install command, and weβd rather show nothing than point your editor at the wrong package or host. Follow the projectβs own setup instructions, linked above.
A revenue department for one business. It reads your website, ads, leads and mailbox, turns what it finds into a short list of actions, does the ones you approve, and measures what changed.
Connect once. Everything runs free. Pay when you agree with the result.
Free forever to run by hand, including the web panel. Running continuously on a schedule is $99/month, and only after it has measured a result you agreed with, plus 14 days.
Start Pro Β· Pricing Β· Talk to a human (or email hello@revenueos.com.au)
Runtime proof Β· Architecture Β· Security & approval Β· Integrations Β· Community vs Hosted Β· Capabilities
No account, and nothing is kept: the demo builds a workspace in a temporary directory and
deletes it before it exits. It is not offline, though. The pages it reads go to whichever
model you have configured, and only --no-llm keeps the run entirely local. Here is the
whole output on a neutral domain, verbatim:
On a real business the same command also reads the homepage for tappable phone numbers, LocalBusiness schema, booking links and ad tags (Meta Pixel, Google Ads, GA4).
To run it from CI instead, add one step and read the job summary:
A connection is an account you authorise once: Stripe, Google (Search Console, GA4, Calendar, Ads), Meta Ads, a git-hosted site, WordPress. Every connection is read-only until you turn on allow changes for it, and every change still waits for your approval on TODAY. See docs/integrations.md.
Four rules hold that picture together, each enforced in code and covered by tests:
pending until there is evidence, measured or no_effect from evidence,
and unmeasurable with a note saying what would measure it. No metric is ever synthesised.produced, never as a win.The longer version is in docs/architecture.md.


The run above and the brief below are from a live run against a real company's public web presence, read-only, with no email sent to anyone. Nothing in them is mocked.
| Worker | Discovers | Executes (after approval) | Measures |
|---|---|---|---|
seo | crawl defects, authority gap, indexing surface | the matching SEO skill, or site_deploy when the site is connected | re-crawl: fixed or not |
ads-audit | waste, over-pacing and concentration in ad exports; search terms that spend, convert nothing and are not excluded; then the full control audit (414 controls across 12 platforms, 97 Google and 72 Meta) under the upstream runtime contract, pass or fail only with evidence | the matching ads skill | next export delta; the next search-term read; a failing control re-checked by the next audit |
ads-live | the same on connected Google Ads and Meta accounts, with keywords, quality scores, search terms and negative-keyword lists | ads_pause, ads_budget | next spend read |
analytics | Search Console queries losing clicks, GA4 channel results | the title and description skill | next Search Console read |
billing | Stripe revenue, MRR, customers, open invoices, paying subscriptions | send_invoice | Stripe paid status |
discover | prospects from lead lists or an external prospecting service, through the qualification gate (business email, business website, real company name; reported as found Β· contactable Β· qualified) | none | via outreach |
outreach | first-touch drafts from your business canon, re-verified against the live page before sending | sends, under a daily cap, a suppression list and an unsubscribe footer | replies, booked, pipeline value |
inbox | replies, bounces and STOP requests on your mailbox | none | feeds outreach outcomes |
intake | your own documents, dropped into data/inbox/documents/: PDF, Word, Excel, PowerPoint, CSV and RTF read entirely on your machine, tables kept as rows; with a model, where a document contradicts or fills a gap in your business canon | records the proposed correction in learning-loop/CORRECTIONS.md, which every worker prompt then reads β company-context/ is never edited by a worker | none directly: a canon correction shows up in the work it changes, and is recorded as unmeasurable with that note |
content | content work matched to your channels; a short video brief when one of your channels is a video channel | the deliverable, then publish_post to WordPress after a second approval; render_video renders the approved brief to MP4/WebM in data/outputs/ | published 0 β 1 on the live URL; a rendered video is produced (not published) |
monitor | Hacker News threads that pass a default-reject relevance gate | none | none |
growth | external adoption numbers for your own surfaces: GitHub traffic, PyPI downloads, site reachability | none | recorded as metrics with a delta |
heartbeat | the state of your objective: what is pending, approved but not run, measured, failed or blocked | none | writes one dated event per run |
measure | none | none | records every outcome above |
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/revenueos)<a href="https://allmcps.com/mcp/revenueos"><img src="https://allmcps.com/api/badge/revenueos?style=directory" alt="Revenueos on AllMCPs" /></a>