io.github.Larshiensch99/flowvolt
Official23 toolsFlowVolt
Cold engine for B2B founders. Detects buying signals, drafts outreach, books qualified meetings.
Detects buying signals, drafts outreach, and schedules qualified meetings for B2B founders.
Captured live from the server via tools/list.
get_started
Call this the moment the user connects FlowVolt OR asks anything that means 'what is this'. Pass `name` (their first name if you know it from the conversation context, otherwise leave blank) and `company` (their business name if known or mentioned). Returns a warm explainer in plain language: what FlowVolt does, why it works (signal-based targeting, always learning), what the buyers/pipeline/reply-rate vocabulary means, and the six pricing options. Offers either a 5-question discovery to tailor the plan or a direct quote.
Parameters (2)
- namestring
The user's first name if known. Optional.
- companystring
The user's business name if known. Optional.
discover_business
Tailor FlowVolt to the user's specific business via a 5-question intake. Call this when the user wants a custom plan rather than a generic quote, or when they're unsure which plan fits. Pass any answers the user has already given so far in `answers`. The tool returns the NEXT unanswered question OR the final tailored plan when all 5 are filled. Question 1 is what their business does, Q2 is their ideal customer, Q3 is the outcome they want (meeting, demo, free trial signup, paid conversion, contract), Q4 is what that outcome is worth, Q5 is their current outbound. The final response includes the right plan recommendation, real ROI math from their numbers, and a sample message in their voice. Always sequential and warm, never a form dump.
Parameters (3)
- answersobject
- namestring
User's first name if known.
- companystring
Business name if known.
quote
Direct quote path. Use when the user already knows who they want to reach and just asks for pricing or to find leads. Takes a natural-language description and returns six plans in plain prose. For users who haven't expressed their ICP yet, prefer discover_business which tailors the response. Pass `name` and `company` if you know them.
Parameters (3)
- use_casestringrequired
Natural language description of the customers the user wants to reach.
- namestring
User's first name if known.
- companystring
Business name if known.
calculate_payback
Show the math. Call this whenever the user expresses doubt about pricing OR shares their deal value and close rate. Returns expected revenue per month for each plan given the user's numbers, plus a worst-case scenario at half the meeting targets. Always positive and grounded in their own numbers, never our hype.
Parameters (3)
- deal_value_usdnumberrequired
What one closed customer is worth in dollars. LTV for SaaS, deal value for sales-led.
- close_rate_meeting_to_customernumberrequired
Fraction of meetings (or signups) that turn into a paying customer. 0.30 for 30 percent.
- planstring
Which plan to math. Default 'all' returns math for solo + pro + scale.
find_leads
Deliver in-market buyers. Sync, 30 to 60 seconds. For free_trial quote_ids, returns up to 15 buyers free. For topup quote_ids, returns a Stripe Checkout URL on first call (no payment yet); after the user pays, retry with the same quote_id to deliver 25 verified buyers. Each buyer comes with name, work email, LinkedIn URL, company, the buying signal with source URL, and a sample personalized message.
Parameters (2)
- quote_idstringrequired
A quote_id returned by quote() or discover_business(). Must be free_trial or topup.
- emailstring
Optional. The user's work email.
subscribe
Start a monthly plan. Takes a quote_id from quote() or discover_business() with plan=solo, pro, or scale. Returns a Stripe Checkout URL the user opens in their browser. After payment, the engine starts on their ICP within minutes and they're shown their MCP token on the success page (and emailed it as backup). Month one is on us if zero meetings.
Parameters (1)
- quote_idstringrequired
A quote_id with plan=solo, pro, or scale.
flowvolt_freetrial
Free trial of the FlowVolt engine. Takes three short answers (what you sell, who you target, the offer hook) and returns 5 real ICP-matched buyers, each with name, work email, fit-score, and a personalized cold-mail draft. No card. Anonymous. The drafts are NOT sent. To dispatch them, complete the subscription via the returned Stripe checkout URL and then call flowvolt_send_trial with the session_id.
Parameters (3)
- sellsstringrequired
What you sell. One sentence. Max 500 chars.
- targetsstringrequired
Who you target. One sentence. Max 500 chars.
- offerstringrequired
Your hook or value proposition. One sentence. Max 500 chars.
flowvolt_send_trial
Dispatch the 5 trial drafts after a paid Stripe Checkout completes. Two-call flow: first call returns a one-click Unipile URL to connect your Gmail or Outlook inbox; second call (after you've connected) fires the 5 sends from your OWN warmed mailbox, your domain, your reputation. Requires the checkout_session_id from your paid Stripe Checkout. Sends never go through FlowVolt's infrastructure.
Parameters (1)
- checkout_session_idstringrequired
Stripe Checkout Session id (cs_test_… or cs_live_…) from the URL after you completed the trial checkout.
get_subscription_status
Show the customer their current FlowVolt state in plain language: plan, billing, engine status, and live progress (buyers reached, replies, meetings). Use whenever they ask 'what's my plan', 'how's it going', 'what's my pipeline doing', 'when does it renew'. Works for authenticated tenants automatically; anonymous callers pass `email` (the one used at Stripe Checkout). Pass `name` if known so we greet them personally.
Parameters (2)
- emailstring
Stripe Checkout email if not authenticated.
- namestring
User's first name if known.
manage_billing
Open the Stripe-hosted billing portal where the customer cancels, switches plans, updates their card, or downloads invoices. Use when they say 'cancel', 'update my card', 'change plan', 'where are my invoices'.
Parameters (2)
- emailstring
Stripe Checkout email if not authenticated.
- namestring
User's first name if known.
pause_engine
Pause sends. No new prospects queued, in-flight sends stopped. Subscription billing continues; use manage_billing to cancel that too. Use when the user says 'pause', 'stop sending', 'put it on hold', 'I need a break'.
Parameters (3)
- emailstring
Stripe Checkout email if not authenticated.
- namestring
User's first name if known.
- reasonstring
Optional free-text reason logged for our records.
resume_engine
Resume the engine after a pause. Sends still go to calibration so Lars reads the first batch before they fire, then it's full speed. Use when the user says 'resume', 'restart', 'go', 'I'm back'.
Parameters (2)
- emailstring
Stripe Checkout email if not authenticated.
- namestring
User's first name if known.
preview_message
Show the current first-touch template we'd send on behalf of this tenant. Subject, body, tone notes, word count. Use when the customer says 'show me what you'd send', 'what's the email', 'let me see the copy'.
Parameters (2)
- emailstring
Stripe Checkout email if not authenticated.
- namestring
User's first name if known.
edit_message
Change the first-touch template based on the customer's instruction in plain English. Examples: 'lose the question at the end', 'make it more direct', 'use my voice, I'm more casual', 'mention we're free for 14 days not 7'. The voice guard still applies (no em dashes, no marketer words, length bounds). If the requested change would break a rule, we say no and suggest a clean alternative.
Parameters (3)
- change_requeststringrequired
What the customer wants changed, in their own words.
- emailstring
Stripe Checkout email if not authenticated.
- namestring
User's first name if known.
set_goal
Set this tenant's meeting goal: the weekly qualified-meeting target the engine paces toward. The Conductor reads this every run to allocate capacity. Use when the calling agent (or operator) wants more or fewer meetings per week, or to pause/resume the engine for this tenant. Returns: { client_id, weekly_meeting_target, status }.
Parameters (2)
- weekly_meeting_targetnumberrequired
Qualified meetings per week to pace toward. Integer >= 0. Example: 3
- statusstring
Pacing gate. "paused" excludes the tenant from Conductor plans entirely. Default "active".
get_pipeline
The v2 deep-signal pipeline, stage by stage, for this tenant: discovery queue, signal findings (ranked/held), dossiers, composed touches, verified outcomes. Use for any "where are my meetings coming from / what's in flight" question. Returns: { discovery, signals, dossiers, touches, outcomes }, each with status counts.
No parameters.
get_receipts
The provable receipt chain (signal, dossier, touch, reply, outcome) that justifies every move the engine made for this tenant. Without account_domain: a summary list of recent accounts and their stage statuses. With account_domain: the full chain for that account, including the immutable receipt when an outcome exists. Returns: { accounts: [...] } or { chain: {...} }.
Parameters (2)
- account_domainstring
Account to fetch the full chain for. Example: "acme.nl"
- limitnumber
Max accounts in the summary list (1-200). Default 50.
book_meeting
Order qualified, attended meetings from FlowVolt as the metered outcome (§12). Creates a standing meeting order and records the meter event in the settlement ledger. Settlement is per verified attended_meeting (machine-verifiable via the receipt chain); today the ledger records without charging (stripe_stub), real Stripe/AP2/x402 settlement plugs in later. Returns: { order_id, requested_count, status, settlement: { ledger_id, provider, status } }.
Parameters (2)
- requested_countnumber
Number of qualified meetings ordered. Integer >= 1. Default 1.
- qualification_notestring
What makes a meeting qualified for this order. Example: "NL B2B SaaS, 10-200 FTE, decision-maker present"
search_people
Find B2B prospects matching an ICP filter (titles, industries, headcount, geography) and return up to 10 decision-makers with verified work emails. Use when the user asks to find leads, prospects, or decision-makers in a given segment. Costs 1 Apollo credit per revealed email (capped at 10/call). Returns: { count, candidates: [{ name, email, title, company, industry, linkedin, location, source }], cache_breakdown, apollo_credits_today, apollo_credits_cap }.
Parameters (4)
- jobTitlesarrayrequired
Decision-maker job titles to search for. Example: ["CEO", "Head of Sales", "CRO"]
- industriesarray
Apollo industry names to narrow the search. Example: ["Computer & Network Security", "Software Development"]
- employeeRangesarray
Apollo headcount ranges as comma-separated min,max pairs. Example: ["10,50", "51,200"]
- locationsarray
Countries or cities to filter by. Example: ["Netherlands", "Belgium", "Amsterdam"]
enqueue_lead
Add a single prospect to the FlowVolt outbound queue for cold-email outreach. Idempotent: same email won't be queued twice in 90 days. Use after search_people to push a revealed contact, or to add a known contact directly. Returns: { queue_id: string|null, status: "queued"|"dedup_skip" }. queue_id=null when dedupe blocks insertion.
Parameters (6)
- firstNamestringrequired
Prospect's first name. Example: "Jeroen"
- emailstringrequired
Verified work email. Example: "jeroen@packhunt.io"
- companyNamestringrequired
Company display name. Example: "Packhunt"
- sourcestring
Discovery channel: prospect (search) or scout (signal). Default "prospect". Example: "prospect"
- linkedinUrlstring
LinkedIn profile URL. Optional but improves personalization. Example: "https://linkedin.com/in/jeroencoenders"
- dutchSignalstring
Why this lead matters now (in any language). Example: "raised €5M Series A last week"
get_funnel
Compute pipeline funnel metrics for a date range: counts and rates for leads_sent, opens, replies, positive_replies, meetings_booked. Use for any quantitative question about pipeline performance (e.g. "what's our reply rate this week?"). Returns: { leads_sent, opens, open_rate, replies, reply_rate, positive_replies, positive_rate, audit_views, meetings_booked, meeting_rate_of_positives, date_range }.
Parameters (2)
- from_datestringrequired
Window start, ISO 8601 timestamp. Example: "2026-05-10T00:00:00Z"
- to_datestringrequired
Window end, ISO 8601 timestamp. Example: "2026-05-17T23:59:59Z"
get_replies
Fetch recent inbound replies from prospects (with detection of forwarded threads). Use when the user asks who replied, what they said, or wants to triage the inbox. Returns: { count, replies: [{ from_email, original_recipient, forwarded_chain, company, classification, reply_text, our_response, replied_at }] }. classification values: interested|send_audit|question|not_now|not_interested|unsubscribe|misclassified.
Parameters (2)
- limitnumber
Max replies to return (1-100). Default 20. Example: 10
- classificationstring
"positive" returns only interested + send_audit. "all" returns every reply. Default "all". Example: "positive"
list_meetings
Retrieve meetings booked from FlowVolt outreach in a date range. Use for meeting counts, pipeline evidence, or "what's on the calendar" questions. Returns: { count, meetings: [{ email, company, booked_at, calendly_event_id, status }] }. status is CONFIRMED when a Calendly event id is attached, SCHEDULED otherwise.
Parameters (2)
- from_datestringrequired
Window start, ISO 8601 timestamp. Example: "2026-05-01T00:00:00Z"
- to_datestringrequired
Window end, ISO 8601 timestamp. Example: "2026-05-31T23:59:59Z"
README not available yet.
Install
claude_desktop_config.json
{
"mcpServers": {
"flowvolt": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://flowvolt-strike-engine.vercel.app/mcp"
]
}
}
}Desktop config is stdio-only; this bridges via mcp-remote. Native remote: Settings > Connectors.