Inspiration
Teams live in Slack, but invoicing still means switching to Stripe — a founder billing after a DM, a freelancer invoicing from a project channel, finance checking if a client paid. SlackInvoice brings billing into the chat, inspired by the Slack Agent Builder Challenge and built with MCP (Model Context Protocol) so Stripe logic is a reusable service, not locked inside one bot.
What it does
DM or @mention SlackInvoice in plain English:
- "show me all customers"
- "invoice Acme Corp, ap@acme.com, for $1,500 — Q1 consulting" (company name, email, amount, and description for new customers)
- "show open invoices" / "how much have we collected?"
It returns natural Slack replies with invoice IDs and payable Stripe links (test mode). New users get a welcome intro on first open; in-thread progress updates while the agent works.
How we built it
Slack bot (Bolt, Socket Mode) → LangChain + Groq (classify → parse → format) → MCP client → FastMCP server (8 Stripe tools) → Stripe test API.
Two processes on one Linux VM; bot uses MCP_URL=http://127.0.0.1:8000/mcp. No public inbound ports — Socket Mode connects outbound to Slack.
Challenges we ran into
- Stripe invoices need line items attached to a specific draft invoice before finalize
- NL parsing must map "3 hours at $150" → structured fields (Pydantic + prompts)
- Cross-platform deps (
pywin32in a Windowspip freezebroke Linux installs) - Slack Bolt handler wiring — handlers had to register on the real app instance
- Scope: focused on create, list, status, search, void, revenue — not a full billing suite
Accomplishments that we're proud of
- Full create → finalize → payment link flow from a Slack message
- Reusable MCP server testable without Slack (
test_tools.py,test_nl.py) - Socket Mode demo on a single VM — simple for judges to run
- Open source: github.com/zhuwensh/slack-invoice
Track: New Slack Agent · Tech: MCP server integration
What we learned
MCP cleanly separates UX from billing APIs. A classify → parse → format pipeline kept billing actions reliable while replies still feel conversational. Socket Mode is ideal for hackathon demos. Stripe’s invoicing API has non-obvious edges worth reading the docs for.
What's next for Slack Invoice
- Let teams deploy their own SlackInvoice instance with their Stripe and LLM API keys — billing stays in their account while the agent stays in Slack.
- Add support for PayPal and other billing platforms via additional MCP servers, so Slack remains the interface regardless of payment provider.
Log in or sign up for Devpost to join the conversation.