npm incomeos-mcpstdioMITupdated 28d ago
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.
What can you do with incomeos?
๐ฐ 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.
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)
- Create a Supabase project (free) and run
supabase/migrations/0001_init.sqlin the SQL editor. - 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 optionallySTRIPE_SECRET_KEY(a read-only restricted key is plenty). - 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.
Install
Add incomeos to your client. Pick the one you use.
claude mcp add incomeos-mcp -- npx -y incomeos-mcpcodex mcp add incomeos-mcp -- npx -y incomeos-mcpamp mcp add incomeos-mcp -- npx -y incomeos-mcp{
"mcpServers": {
"incomeos-mcp": {
"command": "npx",
"args": [
"-y",
"incomeos-mcp"
]
}
}
}Add to `claude_desktop_config.json`, then restart Claude Desktop.
{
"mcpServers": {
"incomeos-mcp": {
"command": "npx",
"args": [
"-y",
"incomeos-mcp"
]
}
}
}Add to `~/.cursor/mcp.json`, or `.cursor/mcp.json` for a single project.
code --add-mcp '{"name":"incomeos-mcp","command":"npx","args":["-y","incomeos-mcp"]}'Or add the block manually to `.vscode/mcp.json` under `servers`.
{
"mcpServers": {
"incomeos-mcp": {
"command": "npx",
"args": [
"-y",
"incomeos-mcp"
]
}
}
}Add to `~/.codeium/windsurf/mcp_config.json`.
{
"mcpServers": {
"incomeos-mcp": {
"command": "npx",
"args": [
"-y",
"incomeos-mcp"
]
}
}
}Add to `cline_mcp_settings.json` via the MCP Servers panel.
{
"mcpServers": {
"incomeos-mcp": {
"command": "npx",
"args": [
"-y",
"incomeos-mcp"
]
}
}
}Add to `~/.gemini/settings.json`.
{
"mcpServers": {
"incomeos-mcp": {
"type": "local",
"command": "npx",
"args": [
"-y",
"incomeos-mcp"
],
"tools": [
"*"
]
}
}
}Add to `~/.copilot/mcp-config.json`, or run `/mcp add` inside the CLI.
{
"context_servers": {
"incomeos-mcp": {
"command": {
"path": "npx",
"args": [
"-y",
"incomeos-mcp"
]
}
}
}
}Add to your Zed `settings.json`.
npx -y incomeos-mcpRun `goose configure`, choose **Add Extension โ Command-line Extension**, and paste this command.
Score
39 / 100
Incomplete
- Documentation25/25
- Maintenance19/25
- Trust13/20
- Capability0/15
- Install experience12/15
- Documents what it does and how to connect
- Has a resolvable package or endpoint
- Exposes at least one tool, prompt or resource
- README has substantive content
- Includes a code example
- Documents its configuration
- Mentions credentials or security posture
- Last commit 21 days ago
- Has a release history
- Repository is not archived
- Licensed MIT
- Namespace verified in the official MCP registry
- Claimed by its owner
- Published under an organisation
- 0 tool(s) documented
- Provides prompt templates
- Provides resources
- 12 documented install method(s)
- Published to a package registry
- Offers a hosted endpoint โ no local install
Version history
| Versions | Published |
|---|---|
| 0.2.2Latest | Jul 29, 2026 |