Skip to main content
Glama
Perufitlife

incomeos-mcp

by Perufitlife

๐Ÿ’ฐ IncomeOS โ€” one screen for every dollar you make

Most revenue dashboards assume you have one product on one Stripe account. IncomeOS assumes what's actually true for an indie hacker: a SaaS on Stripe, an Amazon affiliate link, a marketplace actor, a mobile app, a sponsorship โ€” I track 25 sources, and most of them make under $10 a month. Nothing adds them up.

โ†’ See it running on my real numbers โ€” my own income, live, not demo data.

Self-hosted and MIT. Your revenue lives in your Supabase project โ€” no third party ever sees your numbers. Deploy free on Vercel in about five minutes, or use the hosted version if you'd rather not maintain infrastructure.

Ask your AI how much you made

This is the part nothing else does. IncomeOS ships an MCP server, so Claude, Cursor, or any MCP client can read your income on demand:

"How much did I make this month across everything?" "Which source grew the most since May?" "Log $180 for Amazon affiliates in July."

{
  "mcpServers": {
    "incomeos": {
      "command": "npx",
      "args": ["-y", "incomeos-mcp"],
      "env": { "INCOMEOS_URL": "https://your-incomeos.vercel.app", "INCOMEOS_TOKEN": "your-token" }
    }
  }
}

Tools: get_income_summary, get_sources, get_month, log_monthly_income. See mcp/. The MCP talks to your instance with your token โ€” the data never leaves it.

Related MCP server: OpenCoffer

What it does

  • ๐Ÿ”ข Numbered sources โ€” #1 SaaS, #2 Amazon, #3 Sponsorshipโ€ฆ

  • โšก Stripe on autopilot โ€” net revenue after fees, auto-grouped per product.

  • โœ๏ธ Everything else in 10 seconds โ€” one monthly total per source. The long tail has no API and never will; typing it beats not tracking it.

  • ๐Ÿ“… Day / month / year, with pro-rated averages so monthly-only sources still show an honest "avg per day".

  • ๐Ÿ“ˆ Month-over-month trend per stream, and ๐ŸŽฏ goals with live progress.

Quickstart (~5 min)

  1. Create a Supabase project (free) and run supabase/migrations/0001_init.sql in the SQL editor.

  2. Deploy to Vercel (or npm run dev) with the env vars from .env.example: SUPABASE_URL, SUPABASE_SERVICE_ROLE_KEY, DASHBOARD_TOKEN (your password), CRON_SECRET, and optionally STRIPE_SECRET_KEY (a read-only restricted key is plenty).

  3. Open it, sign in, hit Sync. Stripe products show up as sources on their own; add the rest with โž• Add source.

A daily Vercel Cron keeps Stripe fresh; the Sync button pulls on demand.

Connectors

Source

Status

How

Stripe

โœ… automatic

Net revenue, grouped per product, zero config

Amazon / affiliates

โœ๏ธ manual

Monthly total, one click โ€” no API exists

Marketplaces, ads, sponsorships

โœ๏ธ manual

Same, as numbered sources

Gumroad, Lemon Squeezy, Paddle, Ko-fi, RevenueCat

๐Ÿ› ๏ธ roadmap

PRs welcome

Every source can hold a link to its own dashboard โ€” clicking the card opens it.

Self-hosted vs hosted

This repo is the self-hosted build: Stripe, manual sources, all the charts, goals, and the MCP. Free forever, no feature held back to sell you something.

app.incomeos.dev is the hosted build, and it's ahead of this repo on a few things I run for myself: RevenueCat sync, a weekly email digest, the public page linked at the top, and email-link sign-in instead of a shared password. Free tier covers unlimited manual sources, every chart, and sync on demand; Pro is $9/mo and adds automatic daily sync.

If you'd rather not maintain infrastructure, use the hosted one. If you'd rather own your database, clone this. Both are the same dashboard.

Tech

Next.js 16 (App Router) ยท Supabase (Postgres) ยท Recharts ยท Tailwind v4 ยท Vercel.

Roadmap

  • Income MCP โ€” ask your agent what you made

  • More connectors (Gumroad, Lemon Squeezy, Paddle, Ko-fi, RevenueCat)

  • Port the hosted extras back here (digest, public page)

  • CSV import / export

License

MIT โ€” see LICENSE.


If you track income across more than one place, a โญ helps other people find this.

A
license - permissive license
-
quality - not tested
C
maintenance

Maintenance

โ€“Maintainers
โ€“Response time
โ€“Release cycle
โ€“Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Servers

  • F
    license
    -
    quality
    D
    maintenance
    A personal financial management tool that enables AI assistants to record transactions, check balances, and provide monthly financial summaries via the Model Context Protocol. It allows users to manage their expenses and income through natural language interactions using standardized MCP tools and resources.
  • A
    license
    -
    quality
    C
    maintenance
    Enables querying personal finance data including accounts, transactions, spending, holdings, net worth, and budgets from your self-hosted OpenCoffer instance. Supports natural language queries through any MCP-compatible client.
    14
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Personal expense tracker MCP server that enables tracking expenses, income, budgets, and savings goals through natural language.
    10
    MIT
  • -
    license
    -
    quality
    -
    maintenance
    A personal accounting MCP server that enables AI assistants to record and query financial transactions through natural language, supporting income/expense tracking, balance inquiry, and monthly summaries.

View all related MCP servers

Related MCP Connectors

  • Log, query, and edit expenses, budgets, and accounts in Ledgy from any MCP-compatible AI assistant.

  • User-owned memory for AI agents, Copilot, Claude, IDEs, CLIs, and chat apps over remote MCP.

  • MCP connector that lets ChatGPT list, search, and run your Apple Shortcuts via a local Mac agent

View all MCP Connectors

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/Perufitlife/incomeos'

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