OpenProfit について
OpenProfitは、複数のプロダクトを運営する開発者向けのオープンソース財務ダッシュボードです。決済収益と各種サービス費用をまとめ、プロダクト別の利益を表示し、セルフホストと会計向けレポートにも対応します。
主な機能
- 01期間別の収益・費用表示
- 02プロダクト・事業者別の利益内訳
- 03決済・請求データのコネクター
- 04固定費の手動入力
- 05通貨換算と基準通貨の変更
- 06費用アラート、週次メール、公開ページ
活用シーン
- 01手数料やインフラ費を差し引いたプロダクト利益の確認
- 02複数通貨の収益とサービス費用の集約
- 03月次会計記録と年間税務データの準備
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://openprofit.dev/mcpclaude mcp add --transport http lobbystack-openprofit https://openprofit.dev/mcp{"mcpServers":{"lobbystack-openprofit":{"type":"http","url":"https://openprofit.dev/mcp"}}}Cursor で開く{"servers":{"lobbystack-openprofit":{"type":"http","url":"https://openprofit.dev/mcp"}}}VS Code で開く{"mcpServers":{"lobbystack-openprofit":{"type":"http","url":"https://openprofit.dev/mcp"}}}{"mcpServers":{"lobbystack-openprofit":{"serverUrl":"https://openprofit.dev/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
OpenProfit について
Stripe、OpenAI、Vercel、その他すべての請求をまとめましょう。各アプリがコストを差し引いた後にどれだけ稼いでいるかを確認し、確定申告に必要な数値を把握できます。
売上は決済プロセッサにあります。コストは、AI プロバイダー、ホスティング、データベース、メール、ドメインなど、数多くの請求ページに分散しています。それぞれが独自の通貨で個別の情報を表示します。OpenProfit はそれらをまとめ、各明細を該当する製品に割り当てます。
スタック全体を接続
決済プロセッサから売上を、AI プロバイダー、ホスティング、インフラからコストを取得します。API キーを貼り付けるだけで、過去2年分の履歴が読み込まれます。
手元に残る金額を把握
運用するすべてのアプリについて、売上から手数料、返金、AI 請求額、ホスティング費用を差し引きます。画面に表示されるのは、実際に手元に残る金額です。
- 手数料と返金を差し引いた金額。 数値を表示する前に、決済手数料と返金額を差し引きます。
- 通貨を統一。 ユーロで支払い、ドルで請求されても問題ありません。すべて当日の為替レートで換算されます。
- 製品ごとの利益。 1つの OpenAI アカウントで3つの製品を運用していても、どの製品が採算に合っているかを確認できます。
すべての請求をひと目で確認
OpenAI、Vercel、Neon、Resend など、10社以上のプロバイダーから、プロジェクト別の日次または月次の請求額を取得します。API がないサブスクリプションも、10秒で追加できます。
- 従量課金。 トークン単位や GB 単位の料金は、プロバイダー独自の請求データから取得します。
- 定額サブスクリプション。 Supabase、ドメインなど、その他のサービスも対象です。料金を一度入力すれば、毎月計上されます。
- 製品に紐付け。 各 OpenAI または Vercel プロジェクトを、提供先の製品に割り当てます。割り当てないものは、設定するまで「未割り当て」のままです。
変化を見逃さない
毎週月曜日に、前週の売上、コスト、利益をメールでお知らせします。請求額が倍増したとき、利益率が低下したとき、同期に失敗したときにはアラートを受け取れます。
- 週次サマリー。 知っておくべき変化を1つ添えた、3つの数値をお届けします。すべてのプランで無料です。
- 急増アラート。 請求額が倍増した日や利益率が低下した日にメールで通知します。Slack と Discord にも今後対応予定です。
- 公開ページ。 誰でも開けるページで、製品の数値を共有できます。表示する内容は自由に選べます。
オープンソース、自由に運用
MIT ライセンスです。Postgres を内蔵した Docker イメージを使うか、独自の Postgres に接続できます。API キーがサーバーの外に出ることはありません。
主な機能
- 概要では、任意の期間の売上、コスト、利益、MRR、顧客数、前期間との差分、昨年を基準線とする過去12か月のグラフを確認できます。
- 内訳では、製品別、売上源別、コスト提供元別に確認できます。
- コネクターでは、各プロバイダーが提供する最小限のアクセス権を持つAPIキーを受け取り、保存前にテストし、暗号化して保存します。OpenProfitは読み取り専用で使用します。初回同期では過去2年分を取得し、その後は差分を同期します。各キーで可能な操作については、セキュリティをご覧ください。
- プロバイダーごとのサブユニット単位で製品を紐付けでき、残りは「未割り当て」にまとめられます。
- サブスクリプション、ドメイン、一度限りの購入、APIのない項目には定額コストを設定できます。
- 複数通貨に対応したワークスペースでは、日次レートを使用でき、基準通貨は後から変更できます。カナダドルのワークスペースでは、カナダ銀行のレートを使用します。
- 帳簿では、QuickBooks、Xero、その他の会計ソフト向けの月次仕訳と、税務フォーム(T2125およびTP-80、T2のGIFIスケジュール、Schedule CまたはForm 1120)の各項目に対応した年間数値を確認できます。
- コストの急増、利益率の下限、同期の失敗に関するアラート。
- 先週とその前の週を比較する週次メール。
- 同じデータからサーバー側でレンダリングされる、製品ごとの公開ページ。
- ダークモード、キーボード検索、スマートフォンでも使いやすいレイアウト。
- Postgresを内蔵した単一コンテナー、または独自の
postgres://URLを使ったセルフホスティング。 - メール、GitHub、Googleでサインインできます。
コネクター
| プロバイダー | 種類 | 読み取るデータ |
|---|---|---|
| Stripe | 売上 | 残高取引、アクティブなサブスクリプション、MRR、顧客 |
| Polar | 売上 | 税抜きの有料注文、Polarの手数料、返金、MRR、アクティブなサブスクリプション |
| Paddle | 売上 | 税抜きの完了済み取引、手数料、返金、チャージバック、MRR、支払い中のサブスクライバー |
| Lemon Squeezy | 売上 | 税抜きの注文と更新、返金、MRR、アクティブなサブスクリプション(APIに手数料データはありません) |
| RevenueCat | 売上 | 月間売上とストア手数料控除後の収益、MRR、アクティブなサブスクリプション |
| OpenAI | コスト | プロジェクト別、項目別の日次コスト |
| Anthropic | コスト | ワークスペース別の日次コスト |
| OpenRouter | コスト | APIキー別、モデル別の過去30日間の日次コスト |
| Vercel | コスト | プロジェクトごとの日次請求額 |
| Cloudflare | コスト | 請求対象の使用量。取得できない場合は請求書 |
| Railway | コスト | 公開料金に基づくプロジェクトごとの月間使用量 |
| DigitalOcean | コスト | プロジェクト別、製品別の月間コスト |
| GitHub | コスト | SKU別、リポジトリ別の日次使用コスト |
| Twilio | コスト | 日次の使用コスト合計 |
| Firecrawl | コスト | 公開料金に基づくAPIキーごとのクレジット |
| Resend | コスト | 公開料金に基づく送信ドメインごとのメール数 |
| xAI | コスト | 請求内容別の日次コスト |
| Neon | コスト | 公開料金に基づくプロジェクトごとの月間使用量 |
| MongoDB Atlas | コスト | プロジェクトごとの日次請求明細 |
| 定額コスト | コスト | 入力した月次、年次、または一度限りの金額 |
App Store、Google Play、Supabaseへの対応は次の予定です。コネクターは、src/connectorsにある、verifyとfetchRevenueまたはfetchCostsを実装する1つのファイルです。ここにないコネクターをご希望の場合は、プロバイダーの請求APIへのリンクを添えてissueを作成するか、プルリクエストを送ってください。
はじめに
最も手軽な方法は、ホステッド版のopenprofit.devを利用することです。サインインしてワークスペースを作成し、売上源とコスト源を1つずつ接続すると、概要にデータが表示されます。
製品全体の月間売上が合計2,500ドル未満の場合は無料です。それを超えた後も、売上に応じて変動しない定額料金です。すべてのプランで、すべてのコネクターを利用できます。
セルフホスティング
コンテナは1つです。データはボリューム上の組み込み Postgres に保存されるため、ほかに実行するものはありません。
docker run -d \
--name openprofit \
-p 3000:3000 \
-v openprofit_data:/app/data \
-e SECRET_KEY=$(node -e "console.log(require('crypto').randomBytes(32).toString('base64'))") \
-e APP_URL=http://localhost:3000 \
ghcr.io/morencyr/openprofit:latest
http://localhost:3000/login を開き、メールアドレスを入力します。メールプロバイダーが設定されていない場合、サインインリンクは docker logs openprofit に出力されます。メールで送信するには、RESEND_API_KEY と EMAIL_FROM を設定してください。独自のデータベースを使用するには、DATABASE_URL を postgres:// サーバーに指定してください。
セルフホストガイドでは、アップデート、Dokploy、Railwayについて説明しています。環境リファレンスには、すべての環境変数が記載されています。
仕組み
1つの TanStack Start アプリで、ランディングページ、ドキュメント、アプリを提供します。サーバー内のスケジューラーが各接続先から設定された間隔でデータを取得し、金額をワークスペースの基準通貨に換算して、プロバイダー独自のIDを使って明細を upsert します。そのため、同じ期間を再実行しても二重に集計されません。概要は、それらの明細をグループ化して合計したものです。
src/connectors/ one file per provider: verify, fetchRevenue, fetchCosts, fetchSnapshots
src/server/ sync runner, FX rates, alerts, weekly email, billing, server functions
src/routes/ landing, docs, app pages, API routes
src/db/ Drizzle schema for Postgres; migrations in ./drizzle
すべての環境で Postgres を使用します。セルフホスティングとローカル開発では組み込みの PGlite を、ホスト版では Postgres サーバーを使用します。認証には Better Auth を使用します。スタイリングには Tailwind を使用します。
開発
Bun 1.3 以降が必要です。
bun install
cp .env.example .env # set SECRET_KEY
bun run db:seed # a demo workspace with a year of numbers
bun run dev
http://localhost:3000/login で一度サインインしてから、デモワークスペースをユーザーに紐付けます。
bun run db:seed [email protected]
チェックコマンド:bun run check(Biome)、bunx --bun tsc --noEmit、bun run build。スキーマを変更した後、bun run db:generate でマイグレーションを生成します。マイグレーションはサーバーの起動時に実行されます。
コントリビュート
Issue とプルリクエストを歓迎します。最も役立つ貢献はコネクターです。CONTRIBUTING.mdには、コネクターが変更するファイル、返す必要のあるデータ、実際のアカウントを使ったテスト方法が記載されています。
セキュリティ上の問題を見つけた場合は、Issue を作成せず、[email protected] までメールでお知らせください。
ライセンス
MIT。openprofit.dev のホスト版は Lobbystack Inc. が運営しています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。
