Open-source B2B and marketplace ecommerce; new stores include an MCP server for AI agents.
InvoiceFlow
개요
제작자가 쓴 설명(영어 원문)
Create invoices, clients, and Stripe payment links from any agent. 7 tools. No email or deletes.
PopNx MCP의 세 기둥
이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.
- 사용자 의견i아직 리뷰가 없어요리뷰는 다음 단계에서 계정 기능과 함께 열려요
- 우리의 기본 점검i3개 중 3개 통과공개된 정보로 점검했으며, 코드는 아직 스캔하지 않았어요
- 사용 정도i아직 측정 안 함★ –
할 수 있는 일
이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.
- 연결 방식: 클라우드에서 실행
- 전송 방식: Streamable HTTP
- 카테고리: 온라인 쇼핑몰 및 결제
- 입력해야 할 값: Authorization
설치
쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.
설치하기 전에
- 기본 점검: 3개 중 3개 통과
- 제작자의 서버에서 실행돼요. 내가 요청한 내용은 제작자의 서버를 거쳐요.
- 할 수 있는 일 7가지(도구) invoiceflow_whoami, invoiceflow_create_client, invoiceflow_list_clients, invoiceflow_create_invoice …
- 직접 입력할 값:
Authorization
비밀로 표시된 값은 내 계정의 열쇠예요. 절대 다른 사람과 공유하거나 채팅에 붙여 넣지 마세요.
필요한 것
- 클라우드에서 실행설치할 것 없음. 인터넷으로 연결돼요
어떤 앱을 쓰세요?
위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.
이 주소는 요청 header에 키가 필요한데, 커넥터 추가 메뉴에서는 넣을 수 없어요. 대신 Claude Code, Cursor, VS Code를 쓰세요.
터미널에서 이 명령어를 실행하세요
claude mcp add --transport http invoiceflow https://invoiceflow-ten-azure.vercel.app/api/mcp --header 'Authorization: your-value'실행하기 전에 빈 값을 채워 주세요.
또는 설정을 직접 복사하기
프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요
{
"mcpServers": {
"invoiceflow": {
"url": "https://invoiceflow-ten-azure.vercel.app/api/mcp",
"headers": {
"Authorization": "your-value"
}
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
또는 설정을 직접 복사하기
프로젝트의 .vscode/mcp.json에 붙여 넣으세요
{
"servers": {
"invoiceflow": {
"type": "http",
"url": "https://invoiceflow-ten-azure.vercel.app/api/mcp",
"headers": {
"Authorization": "your-value"
}
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
이 주소는 요청 header에 키가 필요한데, 커넥터 추가 메뉴에서는 넣을 수 없어요. 대신 Claude Code, Cursor, VS Code를 쓰세요.
선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.
직접 입력할 값
Authorization비밀 필수 HTTP headerBearer token: `Bearer ifk_...` where ifk_... is an InvoiceFlow API key. Without it the server lists tools but every call explains what is missing.
이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.
할 수 있는 일
도구 이름과 설명은 서버가 2026년 11월 6일에 알려 준 그대로예요. 우리가 아니라 제작자가 쓴 글이고, 일반 텍스트로만 보여 드려요.
invoiceflow_whoamiCheck which InvoiceFlow account this key belongs to and that the key works. Call this first; it is the cheapest way to fail early.
invoiceflow_create_clientCreate a customer record. A client is required before an invoice can be created. Returns the new client id.
invoiceflow_list_clientsList existing clients. Use this before create_client to avoid making duplicate customer records.
invoiceflow_create_invoiceCreate a DRAFT invoice for an existing client. Amounts are INTEGER CENTS: unitPrice 25000 means $250.00, not $25,000. Do not send totals - the server derives subtotal and total from the line items. Does not email anyone.
invoiceflow_list_invoicesList invoices with their status and totals. Invoices belonging to other accounts are not visible and return as absent, not as errors.
invoiceflow_get_invoiceFetch one invoice by id, including line items and derived totals.
invoiceflow_share_invoiceGet the public payment page link for an invoice that is SENT or OVERDUE (drafts cannot be shared). The page shows a Pay button when the account owner has connected Stripe. Does not email anyone.
기본 점검i
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 8일 점검
- ✓ 통과
제작자와 저장소 일치
레지스트리 이름이 GitHub 계정 EarthyPunyapat 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요
- … 아직 점검 안 함
계속 관리되고 있음
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
- … 아직 점검 안 함
라이선스 있음
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
- ✓ 통과
엔드포인트 응답
130ms 만에 응답(HTTP 200)
- – 해당 없음
OAuth로 로그인
로그인 필요 없음
- ✓ 통과
도구 설명에 숨겨진 지시 없음
도구 설명 7개를 읽었고, AI에게 보내는 숨겨진 지시는 없었어요
온라인 쇼핑몰 및 결제 카테고리의 다른 서버와 비교i
- 이 카테고리의 다른 서버 2542개 중 0%보다 스타가 많아요
- 이 카테고리의 다른 서버 2542개 중 81%보다 최근에 레지스트리에 공개됐어요
- 기본 점검 결과가 이 카테고리의 다른 서버 2542개 중 100%와 같거나 더 좋아요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
자주 묻는 질문
InvoiceFlow, 안전한가요?
해당하는 기본 점검 3개 중 3개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
어떤 키나 코드가 필요한가요?
입력해야 할 값: Authorization
내 컴퓨터에서 실행되나요, 클라우드에서 실행되나요?
제작자의 클라우드에서 실행돼요. 설치 없이 인터넷으로 연결하지만, 보내는 내용은 제작자의 서버를 거쳐요.
아직 관리되고 있나요?
GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(1.0.0)은 6일 전 레지스트리에 올라왔어요.
어떤 앱에서 쓸 수 있나요?
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. URL로 연결되기 때문에, 원격 MCP 서버를 지원하는 앱(예: 개발자 모드의 ChatGPT)에서도 쓸 수 있어요.
대신 쓸 수 있는 건 뭐가 있나요?
같은 카테고리에는: Spree Commerce: open-source B2B and marketplace ecommerce, Stripe MCP, MCP Cn Commerce
대안
같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.
카드 보는 법:★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i
Stripe MCP
MCP server integrating with Stripe - tools for customers, products, payments, and more.
MCP Cn Commerce
8 read-only MCP platform entries; support is operation-specific; merchant live acceptance pending
제작자의 README
README 열기
제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.
InvoiceFlow
Professional invoices, Stripe payment links, reminders, and currency-safe reporting. 14 days free, then US$9/month.
-000000?style=flat-square&logo=next.js&logoColor=white)
Features • Architecture • Local Development • Deployment
InvoiceFlow is an invoicing app for freelancers. Manage clients, create branded invoices and estimates, share public payment links, collect payments through Stripe Connect, and automate overdue reminders.
MCP server (agents)
InvoiceFlow ships a dependency-free Model Context Protocol server, so an agent in Claude Desktop, Cursor, or any MCP host can create invoices and get payable Stripe links without reading a REST document.
{
"mcpServers": { "invoiceflow": { "command": "node", "args": ["/abs/path/invoiceflow-mcp.mjs"], "env": { "INVOICEFLOW_API_KEY": "ifk_..." } } } }
Download the server from https://invoiceflow-ten-azure.vercel.app/sdk/invoiceflow-mcp.mjs.
Tools: whoami, create_client, list_clients, create_invoice, list_invoices, get_invoice, share_invoice.
The omissions are the design. No tool sends email, deletes, refunds, or pays. Creating an invoice is additive and a human can undo it; an agent that emails a customer on every retry cannot take that back. Amounts are integer cents named unitPrice, and a non-integer is refused with an explanation rather than rounded, because 25.5 silently meaning 25 cents is the defect most likely to reach a real customer.
Verify it yourself, no account required:
curl -sO https://invoiceflow-ten-azure.vercel.app/sdk/invoiceflow-mcp.mjs
curl -sO https://invoiceflow-ten-azure.vercel.app/sdk/invoiceflow-client.mjs curl -sO https://invoiceflow-ten-azure.vercel.app/sdk/test-mcp.mjs node test-mcp.mjs # 14 passed, 0 failed — no key, no network
Stack
- Node.js 22 and pnpm 10.34.9 (
packageManagerinpackage.json) - Next.js 15 App Router, React 18, TypeScript, Tailwind CSS and Framer Motion
- NextAuth v5 with Google OAuth and JWT sessions
- Prisma 5 and PostgreSQL 16; Docker Compose locally, Neon for deployment
- Stripe Connect Express and Checkout; Resend and React Email
- Vitest unit and PostgreSQL integration tests; ESLint and GitHub Actions
Implemented workflows
| Area | Behavior |
|---|---|
| Clients and invoices | Owner-scoped management, line items, percentage tax, draft editing and controlled status changes |
| Invoice delivery | Save & Send calls the email endpoint; accepted email uses a stable public link, failed delivery keeps one saved draft, explicit resends are available |
| Public invoices | Branded view, readable multi-page PDF export with saved notes and correct tax breakdown, unguessable share tokens and noindex metadata |
| Online payments | Tax-inclusive grand total, reuse of open Checkout sessions, signed webhook reconciliation |
| Reminders | Escalating email reminders for sent and overdue invoices |
| Recurring invoices | Scheduled draft generation and schedule advancement in one database transaction |
| Estimates | Create and manage estimates; convert an estimate to an invoice once |
| Reports and exports | Revenue, outstanding balances, aging, client reports and CSV export |
| Business profile | Name, address, logo, accent color and invoice numbering prefix |
Every account starts with a 14-day free trial; InvoiceFlow Pro then costs US$9/month through Stripe Checkout, with card changes and cancellation in the Stripe billing portal. After the trial, creating and sending invoices requires an active subscription; existing records, PDFs, exports and clients' payments stay available. Invoice payments go to each user's own Stripe account and are separate from their InvoiceFlow subscription. Decisions are recorded in the launch spec.
Interface and design guidance
The public site, Google sign-in and workspace use a warm-white, dark-ink and evergreen visual system, with an interactive example invoice, compact tables and keyboard-friendly mobile navigation. Reports retain separate totals for each currency. Client creation is available inside invoice and estimate drafts.
Read PRODUCT.md and DESIGN.md before changing the interface. The requested Emil Kowalski, Impeccable, Taste and frontend-design skills are installed locally under .agents/skills, with upstream revisions and licenses. The design review records rendered checks and deliberate tradeoffs.
Local development
Install Node.js 22 and the pinned pnpm version first. Keep existing local configuration rather than replacing it.
pnpm install --frozen-lockfile
test -e .env || cp .env.example .env
Configure .env before continuing.
docker compose up -d --wait pnpm run db:generate pnpm run db:deploy pnpm run dev
Use the local PostgreSQL URL from .env.example for both DATABASE_URL and DATABASE_URL_UNPOOLED. Generate an AUTH_SECRET, add Google OAuth credentials, and use http://localhost:3000 for NEXTAUTH_URL and NEXT_PUBLIC_APP_URL. Register http://localhost:3000/api/auth/callback/google in the Google OAuth client.
Leave optional Stripe and Resend keys empty until you have valid credentials; the example strings are placeholders. Unconfigured integrations return an unavailable response. Google sign-in and the full send/pay workflow require their actual service configuration.
pnpm run db:deploy applies committed migrations to a new development database. If an existing database was created using prisma db push, follow the baseline procedure before applying migrations. Never use db push or migrate reset to deploy production schema changes.
The Compose database uses a persistent named volume. docker compose down stops it without deleting that volume.
Optional demo data:
# Only against a disposable development database.
pnpm run db:seed
The seed replaces the account selected by SEED_DEMO_EMAIL (default demo@invoiceflow.dev) and its related data. Do not target a real customer account or production database.
PDF exports
PDF downloads use a measured A4 layout with separate sender/recipient blocks, issue/due dates, currency, status, itemized charges, tax and total. Long records paginate with repeated table headings. Saved invoice Notes are included under “Notes & payment instructions”; payment details and a billing period can be entered there. The PDF reflects the saved invoice amounts and does not change payment status or data.
View the synthetic PDF example and layout review. Generate short, normal and long review fixtures without database/provider access:
pnpm exec tsx scripts/preview-invoice-pdf.ts
Configuration
| Variable | Use |
|---|---|
DATABASE_URL | Prisma runtime PostgreSQL connection; use Neon's pooled URL in deployment |
DATABASE_URL_UNPOOLED | Direct database connection for Prisma migrations |
AUTH_SECRET | Stable, private NextAuth signing/encryption secret |
AUTH_GOOGLE_ID, AUTH_GOOGLE_SECRET | Google web OAuth client credentials |
NEXTAUTH_URL | Canonical auth origin; HTTPS in production |
AUTH_TRUST_HOST | Set to true only behind the trusted deployment proxy, such as Vercel |
NEXT_PUBLIC_APP_URL | Canonical public HTTPS origin for invoice, payment and email URLs |
STRIPE_SECRET_KEY | Stripe platform API key for Connect and Checkout |
STRIPE_WEBHOOK_SECRET | Signing secret for this deployment's connected-account webhook endpoint |
STRIPE_CONNECT_COUNTRY | Supported Connect country for newly created accounts; defaults to US |
RESEND_API_KEY, RESEND_FROM_EMAIL | Email API key and a sender on a verified Resend domain |
FREELANCER_NOTIFY_EMAIL | Fallback only when the invoice owner has no email address |
CRON_SECRET | Bearer secret for scheduled invoice generation and reminders |
SEED_DEMO_EMAIL | Disposable account targeted by the destructive demo seed |
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY is reserved in the example configuration; the current hosted Checkout redirect does not use a browser Stripe SDK. The INNGEST_* variables are also unused.
Keep secrets in ignored local environment files or the hosting provider's secure settings. Preview and production deployments should use separate databases and service keys.
Validation
pnpm test
pnpm run lint NEXT_PUBLIC_APP_URL=https://invoiceflow.example.test pnpm run build pnpm run typecheck
After building, against the disposable local test DB:
pnpm run test:browser pnpm audit --prod --audit-level high
For these local browser checks, the build uses the HTTPS test origin above; Vercel releases use the real configured production origin. Next.js embeds NEXT_PUBLIC_APP_URL during the build.
The build generates Prisma Client, compiles all routes, and produces the production application. Production Vercel builds first verify and migrate the database with a guarded release step; local and preview builds require explicit database preparation. Google Fonts access is needed for the configured next/font loader. Prisma downloads must retain TLS and checksum verification.
Integration tests use a separate disposable local database named invoiceflow_test. Create it once:
docker compose exec -T db createdb -U postgres invoiceflow_test
Then run:
export DATABASE_URL='postgresql://postgres:postgres@localhost:5432/invoiceflow_test?schema=public'
export DATABASE_URL_UNPOOLED="$DATABASE_URL" pnpm run db:deploy pnpm run test:integration
Run these exports in a separate shell from the development server. The suite rejects remote databases and other database names. It uses real PostgreSQL transactions and signed Stripe fixtures, with external Stripe/Resend requests mocked. It covers invoice totals, public links, checkout reuse, webhook verification and retries, concurrent numbering/conversion, and recurring transaction rollback. It does not establish that live OAuth, payment or email credentials work.
GitHub Actions runs frozen installation, Prisma generation, migrations, lint, unit/integration tests, the production build, Chromium browser workflows, typechecking and a production dependency audit using PostgreSQL 16 and Node.js 22.
Deployment
Use the Vercel and Neon release guide for migration handling, service configuration, scheduled jobs and the re
앞부분만 보여 드려요. 나머지는 저장소에서 읽어 보세요