explore_offerings
ChatGPTBrowse the deals the connected user can see on Wefunder — the equivalent of visiting wefunder.com/explore while logged in. Returns one offering per company: company name, tagline, Wefunder URL, logo/card image, exemption ({family, subtype, label}), security ({type, label, terms} — a SAFE's cap and discount, a note's rate and maturity, equity's share price, a revenue share's percentage and cap; null for a Testing-the-Waters round, whose intended_security {type, label} says what it plans to issue), state, funding target, minimum investment, amount raised, investor count, start/close dates, whether the deal is publicly visible or available to this user only (accredited-only / vault / invited), and whether the user has already invested. amount_raised and investor_count are for that one offering only — when the company has other open or completed rounds on Wefunder the item carries a warnings list saying so, and the total on the company's Wefunder page may be larger. Paginated (25 per page); pass the cursor from the response to get the next page. Filter server-side with exemption, security, testing_the_waters, max_min_investment, closing_before and min_amount_raised (all objective terms; the response echoes the applied filters in meta.filters). To select by any other criterion, page through the set and filter the results yourself, then report the missing filter with report_mcp_friction.
follow_company
ChatGPTAdd a company to the connected user's Wefunder watchlist, the same as pressing Follow on its Wefunder page. Idempotent. unfollow_company removes the follow and puts back any 'Not interested' dismissal of the company's posts that following had set aside. Only do this when the user asks to follow, watch, or track a company. Requires the write:follows permission; if the connection lacks it you get a permission challenge to relay to the user.
get_company
ChatGPTGet a company's Wefunder page as structured data, by its id (starts with co_, as returned on every offering). The step after explore_offerings/get_offering when the question is about the company rather than one round. Returns current_raise (this campaign's live rounds combined, on Wefunder), wefunder_rounds (every round the company has run on Wefunder that you may see, live and closed, each with its own amount raised — the company's Wefunder history), totals.raised_on_wefunder_all_time (their sum), and the page's own accounting: past_rounds (what the page's ticker folds in, each tagged source: wefunder or reported = founder-disclosed off-platform) and totals.profile_total_raised (the number on the page). Works for every company whose page wefunder.com shows publicly — raising or funded (raising: false, current_raise: null, history in wefunder_rounds) — plus what the connected user may additionally see. Not found only for companies the site itself would not show them.
get_company_disclosures
ChatGPTThe company's public Form C disclosures — what the Details tab on its Wefunder page shows any visitor — as structured data, by company id (co_). For diligence: financial_statements (total assets, cash, receivables, current and non-current liabilities, revenue, cost of goods sold, taxes, net income for the most recent and prior fiscal years — current_liabilities / non_current_liabilities are the Form C balance-sheet totals including SAFE and convertible-note liabilities, accrued expenses and deferred revenue, NOT borrowed money; the deprecated short_term_debt / long_term_debt keys are the same numbers under a misleading name. For what the company has actually borrowed, read outstanding_notes and outstanding_debts, which list each instrument with its principal), ratios (liabilities_to_assets_percent, and the deprecated debt_to_assets_percent alias), current_position (cash on hand and date, average monthly revenue / cost of goods / expenses / burn as the founder disclosed them), the financial_condition narrative, links to the financial statement and investment documents, risks, use_of_funds by amount raised, directors and officers, voting_power (holders of 20%+), capital_structure, prior_offerings, outstanding notes and debts, and related-party transactions. Money is decimal strings: the round's own figures (use of funds, prior offerings, notes, debts, related parties) in the payload's currency (the round's; EUR for an ECSP round), and the financial statements, ratios.revenue_per_employee and current_position (which repeats it as current_position.currency) in its financials_currency; a section is null when the company has it hidden on the site. Not found with a 'no_disclosures' error when the company has no Reg CF round with a Form C (Reg D-only or Testing-the-Waters companies) — that is not the same as the company not existing. Everything here is the company's own disclosure; report it as such, not as a Wefunder assessment.
get_company_pitch
ChatGPTThe pitch on the company's Wefunder page — the story under the Overview tab — as ordered blocks (heading, paragraph, list, image, video, footnote), plus the perk tiers of the round the page shows, by company id (co_). Images keep their place with an absolute URL: founders put perk tiers, stretch goals, timelines, and charts in pictures with no alt text, so read the images when you can, and when you cannot, say the pitch has images you could not read rather than reporting that information as absent. perks.described_in_pitch is true when the structured perk list is a placeholder ('See investor overview page') and the real tiers are in the story's images; perk amounts are in perks.currency. authored_by says who wrote the story: 'company' means the founder's own words and imagery, not Wefunder's; 'wefunder' means a Wefunder-prepared deal memo the company did not participate in — repeat its disclaimer when you rely on it. Complements get_company (the header numbers and round history), get_company_disclosures (the Form C Details tab), and get_company_updates (the Posts tab). A pitch can run to 70 KB; ask for sections: ["perks"] when that is all you need.
get_company_questions
ChatGPTThe company's Ask tab on Wefunder: questions investors asked and the founders' answers, as the connected user would see them. Each entry has the question (plain text), who asked and when, likes, whether the team highlighted it, answered_by_team, and the answers with who answered (team members are flagged) and when. Defaults to questions from the current raise, sorted the way the tab sorts (highlighted, then answered, then most liked); past_raises=true includes every raise. For diligence this is where founders answer candidly about runway, financing, and what is unproven — quote it as the founder's own words. 20 per page.
get_company_update
ChatGPTOne company post in full (plain text), by the id a get_company_updates result carries. Same visibility as the list: a post the site would not show the connected user is Not found. Posts are the founder's own words, not Wefunder's.
get_company_updates
ChatGPTThe company's posts on Wefunder — its Posts tab — as the connected user would see it: founder updates, notes, and spotlights, pinned first then newest, 20 per page, each with kind, title, a ~280-character excerpt, date, author, likes and comments, and the post's URL. Followers and investors see the community- and investor-only posts the site shows them; otherwise public posts only. Use get_company_update with a result's id for the full text. Good for "what has this company said lately" and, with list_followed_companies, for a watchlist digest. Posts are the founder's own words, not Wefunder's.
get_deal
ChatGPTGet detailed information about a specific deal including company name, status (upcoming/open/closed/canceled), amount raised, investor count, exemption, security (type, label, terms), min/max investment, and description.
get_investor_investments
ChatGPTGet a specific investor's investments in this company. Only for a company you are a founder or team member of (see list_my_companies); other companies return Access denied. Returns each investment with amount, status (pending/confirmed), vehicle (direct/spv/custodian/nominee, null for a reservation), fundraise name, and dates. IMPORTANT: investor_id is the investor's Wefunder id (starts with usr_) — the user field on a list_company_investors, search_company_investors, or list_company_investor_contacts row.
get_member_investments
ChatGPTGet a specific member's investments across syndicate deals. Returns each deal they invested in with company name, amount, status (pending/confirmed), and date. IMPORTANT: The member_id is the top-level 'id' field from the list_members response (NOT the 'user_id' in attributes). You must call list_members first to get the correct id.
get_my_portfolio
ChatGPTThe connected user's own Wefunder portfolio totals, the same figures as the top of their wefunder.com/portfolio page: total_cost_basis_cents, total_current_value_cents, total_unrealized_gain_cents, total_realized_gain_cents, return_multiple (current value over cost, as a decimal string; null when there is no cost basis), position_counts by status (active, exited, sold, failed), and as_of, when the valuation was last computed. All four totals are in the single currency named in currency (ISO 4217, lower-case); positions in any other currency are excluded from the totals and their currencies listed in other_currencies, so never add across currencies. Use this for "what's my ROI", "how much have I invested", "how is my portfolio doing" overall; use list_my_investments for the per-offering positions behind these totals. This is a statement of record, not advice: never recommend buying, selling or holding. Requires the read:investments permission; if the connection lacks it you get a permission challenge to relay to the user.
get_offering
ChatGPTGet one offering (a company's fundraising round) by its id (starts with ofr_), as returned by explore_offerings. Returns the same fields as explore_offerings for that single deal, including its warnings list (amount_raised and investor_count cover this offering only, not the company's other rounds). Not found if the connected user cannot see the offering.
get_syndicate
ChatGPTGet detailed information about a specific syndicate including name, description, syndicate_type (opt_in_deal_by_deal, traditional_fund, or annual_subscription), member count, deal count, tagline, avatar, membership_open, and settings. For traditional_fund type, includes minimum investment amount. For annual_subscription type, includes fund investment amount, deals per year, and amount per deal.
list_activity
ChatGPTList the connected user's own recent actions (audit events) on this syndicate — member invites, updates, deal changes, and API access they performed or that connected apps performed for them. It is the caller's history filtered to the syndicate, not a feed of everything every member did. Use it for 'what have I / my connected apps done here recently?'.
list_company_fundraises
ChatGPTList all fundraises (campaigns) for a company. Only for a company you are a founder or team member of (see list_my_companies); other companies return Access denied. Returns each round's name, status (upcoming/open/closed/canceled), exemption ({family, subtype, label}), security ({type, label, terms}; null for a Testing-the-Waters round, see intended_security), goal, total raised, investor count, and dates. Paginated (25 per page); use the cursor from the response to get the next page.
list_company_investors
ChatGPTList and filter investors connected to a company. Only for a company you are a founder or team member of (see list_my_companies); other companies return Access denied. Filter by role, location, tags, vehicle type, accreditation, and investment status. Returns full name, bio, email, role, investment amount, investment status, city, state, country, tags, accreditation, and more. Uses the same data source as the founder's investor directory page. Returns up to 50 entries per page. For text/name/bio search, use search_company_investors instead. Contact and identity fields (email, legal name, KYC status, precise coordinates, private notes) are omitted unless include_contact_details is true; set it only when the user explicitly asks for contact information.
list_deal_investors
ChatGPTList syndicate members who invested in a specific deal. Only for syndicates the connected user manages (see list_syndicates); other syndicates return Access denied. Returns the same investors the manager's syndicate dashboard shows for the deal: each investor's name, total amount invested (aggregated) and status (pending/confirmed), sorted by amount descending. Never returns contact details; the manager's syndicate dashboard has those.
list_deals
ChatGPTList all deals for a syndicate. Returns deal name, company (name, ID, URL, logo), status (upcoming/open/closed/canceled), amount raised, investor count, funding target, exemption ({family, subtype, label}), security ({type, label, terms}), min/max investment, description, and dates (created, started, closed). Paginated (25 per page); use the cursor from the response to get the next page.
list_followed_companies
ChatGPTThe companies the connected user follows on Wefunder (their watchlist), newest first — the same rows as pressing Follow on a company page. Each has the company id (co_), name, tagline, Wefunder URL, logo, whether it is raising now, profile_available, and followed_at. Use it to scope any question to "my companies" / "what I'm watching"; hand ids to get_company or get_company_disclosures. Paginated (25 per page).
list_members
ChatGPTList members of a syndicate. Can filter by role, search by name or bio, filter by location, and sort. Returns user name, role, title, bio, interests (sector tags like AI, healthcare, fintech), stage preferences (seed, series_a, etc.), looking_for goals, city, state, country, social links (LinkedIn, Twitter, website), investment totals, and deal count. Location data respects user privacy settings. Moderators also see: email, accredited (boolean), legal_name, starred (boolean — whether the manager has starred this member), and private_tags (labels assigned by managers, e.g. 'high-value'). Returns up to 25 members per call; use the cursor from the response to get the next page. Contact and identity fields (email, legal name, KYC status, precise coordinates, private notes) are omitted unless include_contact_details is true; set it only when the user explicitly asks for contact information.
list_my_companies
ChatGPTList the companies the connected user is a founder or team member of — the companies the my_company_dashboard, list_company_investors, search_company_investors, list_company_investor_contacts, get_investor_investments, and list_company_fundraises tools will accept. Returns each company's id (co_), name, tagline, Wefunder URL, the user's roles, and whether it is currently raising. Call this first when the user says "my company" and you do not yet have its id.
list_my_investments
ChatGPTThe connected user's own investment portfolio on Wefunder — one position per offering they hold, newest first, the same as their wefunder.com/portfolio page. Each position has the offering id (ofr_), company (co_ id, name), security (SAFE, note, equity, revenue share, fund/SPV interest), status (active, exited, sold, failed), invested_at, cost_basis_cents, current_value_cents, unrealized and realized gain in cents, return_multiple, shares_held and current_share_price where they apply, a per-security breakdown (early-bird tiers, personally vs entity-held), the companies a fund or SPV invested in under holdings, and as_of — when the figures were last computed. Money values are integer cents. Use it for "what have I invested in", "how is my portfolio doing", totals, or to look up what the user holds in a given company; hand offering ids to get_offering for the round's terms. This is a statement of record, not advice: never recommend buying, selling or holding. Paginated (25 per page). Requires the read:investments permission; if the connection lacks it you get a permission challenge to relay to the user.
list_syndicates
ChatGPTList all syndicates the user has access to. Returns name, slug, member count, deal count, and type. Paginated (25 per page); use the cursor from the response to get the next page.
my_company_dashboard
ChatGPTThe founder dashboard for one of YOUR OWN companies (one you are a founder or team member of): investor count, lifetime total raised on Wefunder, number of rounds, follower count, and website — the same aggregate tiles the company's manage page shows. Use this for totals instead of paginating investors. Only works for companies returned by list_my_companies; for any other company use get_company.
report_mcp_friction
ChatGPTReport concrete friction you hit while using Wefunder tools to accomplish the user's goal: a missing filter, field, or action; a confusing or ambiguous result; a workaround you had to improvise (such as fetching every page and filtering yourself). Call it after finishing the user's request, once per distinct gap. Do not call it for ordinary successful requests, praise, or speculative feature ideas. Describe the goal abstractly — never include names, emails, or other details about the user.
search_companies
ChatGPTSearch Wefunder companies by name — the same results, in the same order, that the search bar on wefunder.com shows for that text. Returns every kind of company the site would list: currently raising or funded in the past, whether or not it appears on explore_offerings. Each result has the company id (co_), name, tagline, Wefunder URL, logo, and whether it is raising now. Hand the id to get_company for the full page (raising or funded); profile_available is false only in the rare case the company no longer clears the site's public bar, in which case give the user its url instead. Ordering is the site's search ordering, not a recommendation. Use this when the user names a company ("help me look at Acme") and you do not have its id.
search_company_investors
ChatGPTSearch company investors by name, bio, expertise, or any natural language query. Only for a company you are a founder or team member of (see list_my_companies); other companies return Access denied. Uses semantic search (AI-powered) to find relevant investors. Returns full profile data including name, bio, email, investment amount, location, tags, and a relevance explanation for each match. Use this instead of list_company_investors when the founder asks to find investors with specific backgrounds, expertise, or characteristics. Contact and identity fields (email, legal name, KYC status, precise coordinates, private notes) are omitted unless include_contact_details is true; set it only when the user explicitly asks for contact information.
search_company_questions
ChatGPTSearch a company's Ask tab on Wefunder for questions already asked about a topic, and their answers. Matches question and answer text (each result says which matched), ranked by relevance, same visibility as get_company_questions. Always call this before drafting or suggesting a question for a company: if the topic is already covered, quote the existing question and its answer (or note that it is still unanswered) instead of proposing a duplicate. Defaults to the current raise; past_raises=true searches every raise, which matters because a past-raise answer still answers the question.
show_offerings
ChatGPTShow the user a visual carousel of Wefunder offerings (company, tagline, instrument, amount raised vs target, investors, link to the deal page). Same objective filters and sort as explore_offerings; renders up to 8 cards in the order Wefunder returns them. Use this when the user wants to see or browse deals; use explore_offerings when you need the data without a visual.
unfollow_company
ChatGPTUnfollow a company for the connected user — the same as un-pressing Follow on its Wefunder page. Deletes the saved follow and puts back any 'Not interested' dismissal of the company's posts that following had set aside. Idempotent; follow_company can create a new follow, but does not restore the original record. Only do this when the user asks. Requires the write:follows permission; if the connection lacks it you get a permission challenge to relay to the user.
whoami
ChatGPTCheck whether this Wefunder connection is signed in and, if so, as whom: the user's name, username, email, and profile URL; whether they edit a company or run a syndicate (which decides whether the founder and syndicate tools apply to them); and the connection's effective permissions. Call it when the user asks which account is connected, or before an account-specific request when you are unsure the user has signed in. Works without signing in — signed_in will be false.