ProposalCraft

ProposalCraft

An MCP server for freelancers and agencies that drafts client proposals and business emails — quotes, invoices, follow-ups, scope changes, and more — in your own voice, running locally with no API key or cloud.

Category
Visit Server

README

ProposalCraft — MCP Proposal Generator

Product Hunt CI License: MIT Node: >=18 MCP Compatible jabbawocky/proposalcraft MCP server MCPize Listed on mcpservers.org

MCP server for freelancers and consultants. Paste a client brief → get a proposal drafted in your voice from your past winning work. No templates. No generic output. Learns from what's already worked for you.

Category: Productivity · Freelance · Business Writing
Works with: Claude Desktop, Claude Code, Cursor, Windsurf, any MCP-compatible client
Install: npx -y github:jabbawocky/proposalcraft (no API key needed)
Pricing: Free (5 drafts/month) · Pro $19/mo unlimited · Landing page

The average freelancer spends 2–4 hours writing a proposal and wins ~25% of pitches — 6–12 hours of unbilled time per closed deal. ProposalCraft turns that into 30 seconds.


Demo

Input — a typical vague brief you'd get in your inbox:

"Hi, we're a 12-person accounting firm. Our website is outdated and we need it redesigned. We want something modern that gets us more leads. We have some budget and need it done reasonably soon. Let me know what you can do."

Step 1 — Analyze the brief first (analyze_brief):

1. Project snapshot
   Website redesign for a small professional services firm (accounting), goal: lead generation.

2. Budget signals
   "Some budget" — no figure given. For a 12-person firm, realistic range: $4,000–$8,000.
   Confidence: low. Clarify before quoting.

3. Timeline signals
   "Reasonably soon" — no hard date. Likely 4–8 weeks in their mind.
   Not an unrealistic timeline for this scope.

4. Red flags
   - Zero budget specificity ("some budget") — could mean $1,500
   - "Modern" is subjective with no reference points given
   - No mention of existing CMS, content, or who will maintain it post-launch

5. Green flags
   - Clear conversion goal (more leads) — not just "make it look nicer"
   - Small firm = fewer stakeholders = faster decisions

6. Scope creep risks
   - "More leads" could expand to include SEO retainer, content writing, CRM integration
   - "Modern" has no reference — could mean 3 rounds of design revisions

7. Clarifying questions
   1. What's the budget range you're working with?
   2. Do you have a CMS preference, or are you open to a recommendation?
   3. Who on your team will maintain the site after launch?
   4. Do you have existing brand guidelines, or is a brand refresh in scope?
   5. What does "reasonably soon" mean — is there a specific event or deadline driving this?

8. Go/no-go
   Yes — clean brief, clear goal, professional services client. Clarify budget before proceeding.

Step 2 — Draft the proposal (draft_proposal):

Hi [Name],

Thanks for reaching out. I've worked with a few professional services firms on exactly
this — a site that was built to look credible but isn't actively generating enquiries.
Here's how I'd approach it.

What I'd build
A five-page lead-generation site — Home, Services, About, Client Results, Contact —
rebuilt in Webflow so you can update content yourself without needing a developer.
Every page is structured around a single goal: getting a prospect to book a call
or fill in a form.

Key inclusions:
- Clean, professional visual design — credible without being generic
- Mobile-first build (most professional services searches happen on phone)
- Contact form with thank-you redirect (so you can track leads in Google Analytics)
- On-page SEO structure — proper headings, meta descriptions, fast load times
- 2 rounds of design revisions included

Not included: copywriting, photography, ongoing SEO, Google Ads setup.

Investment
$5,500 flat. 50% on kickoff, 50% on approval before launch. No hourly surprises.

Timeline
4 weeks from kickoff call to handover.

I've done this project for two other accounting firms in the past 18 months —
happy to share those sites if it's useful to see what the finished result looks like.

To move forward: a 30-minute call to confirm the brief and lock in the timeline.
I have a slot open [DATE] — does that work?

[Your name]

30 seconds. Ready to send.

ProposalCraft core loop — brief in, proposal out


What this server does

ProposalCraft gives your AI client 90 tools for the full proposal workflow — from first brief to project delivery:

Tool What it does Counts against limit?
load_examples Load 12 bundled industry templates so you can start without past proposals
analyze_brief Surface budget signals, red flags, scope risks, and questions to ask before you quote
discovery_call_prep Prepare for a client discovery call — agenda, must-confirm items, grouped questions, tone notes, red flags
draft_proposal Draft a proposal from a brief using your saved examples as voice/style reference
retainer_proposal Draft a monthly retainer proposal with scope, exclusions, rollover policy, and termination clause
improve_proposal Critique a draft and return specific rewrites for weak sections (pricing, hook, why-me, scope)
proposal_to_email Distill a full proposal into a ≤150-word pitch email with subject line
scope_of_work Turn an accepted proposal into a formal SOW with deliverables, timeline, and payment schedule
client_followup Write a short, non-pushy follow-up for proposals that haven't received a response
project_kickoff_email Write a professional kickoff email to send when you win the project
change_order Generate a formal change order when a client requests out-of-scope work
testimonial_request Write a short, personal testimonial-request email after project delivery
rate_increase_email Write the email telling a client your rates are going up — direct, warm, no apology
invoice_reminder Write an overdue invoice reminder — escalating tone for reminder #1, #2, or #3
cold_pitch Write a cold outbound pitch to a target company — specific hook, ≤120 words, one ask
rejection_response Write a gracious reply when a client picks someone else — keeps the door open, ≤80 words
budget_proposal When a client says you're too expensive: revised proposal cutting scope, not rate
project_status_update Weekly/biweekly status update email — completed, next steps, blockers, timeline
nda_template Generate a plain-English NDA — one-way or mutual, configurable duration and jurisdiction
contract_template Generate a plain-English Freelance Services Agreement — services, payment, IP, revisions, termination, liability
referral_request Short warm email asking a happy client to refer you to others — one ask, no pressure, under 120 words
meeting_recap_email Post-meeting recap email — what was covered, decisions confirmed, next steps. Works for discovery, kickoff, check-in, or review calls
project_closure_email Final delivery email — confirms deliverables, client handover items, support period, and plants a hook for future work
availability_announcement Warm email to a past client announcing you have capacity — re-activates the relationship without cold-pitching, under 120 words
feedback_request_email Ask a client for honest private feedback after a project — not a public testimonial, just genuine input to help you improve. Clients feel valued; you get patterns you'd never discover otherwise
project_delay_warning Write a proactive warning email to a client when a deadline is at risk — before you've actually missed it. Different from late_delivery_apology (sent after the fact): this is the early flag that gives the client time to adjust and shows you're on top of things. The professional move most freelancers skip
out_of_office_email Write the proactive heads-up email to clients before you go on leave. Confident, not apologetic — sets clear dates, response time, and optionally reassures them about ongoing work. Different from an auto-reply: this is the note you send to active clients a few days before you leave
recommendation_request_email Ask a happy client for a LinkedIn recommendation. Different from testimonial_request (website quote): a LinkedIn recommendation lives on the client's profile and carries far stronger social proof. Makes the ask easy — short, gives a memory prompt, and optionally suggests a focus so they don't face a blank page
client_check_in_email Write a short proactive mid-project check-in — the 'things are on track, next you'll hear from me on Thursday' message that prevents client anxiety and the 'where are we?' interruption. Under 100 words. Lighter than project_status_update; sent during silent execution phases
project_restart_email Write the email restarting a paused project. Pairs with project_pause_email to complete the pause/resume lifecycle. Acknowledges the gap, confirms readiness, states the first action, and addresses any timeline adjustments
working_hours_email Set professional expectations about your working hours and response times with a client. Confident, not apologetic — frames it as giving their work proper focused attention. Three triggers: proactive (at project start), after_late_message (responding to an out-of-hours message), mid_project_reset (when a pattern has developed)
scope_warning_email Flag scope creep BEFORE issuing a change order — the early-warning conversation that prevents the surprise-invoice moment. Use when a client requests something beyond the original brief. Different from change_order (which documents agreed extra work); this is the conversation that comes first
deposit_request_email Write the email requesting a project deposit before work begins. Confident and clear, not apologetic — deposits are standard practice. Fills the gap between signing the contract/SOW and starting work. Adapts to a payment link, payment method, or formal invoice path
annual_review_email Write an end-of-year review to a long-term client — deliverables, standout result, relationship note, and a forward-looking suggestion. Positions you as a strategic partner and naturally opens renewal conversations
client_offboarding_email Write a gracious, firm email ending an ongoing client relationship — clear notice, outstanding work committed, no blame, relationship preserved for future referrals. The hardest email a freelancer writes
conference_talk_pitch Write a speaker submission for a conference, meetup, or podcast CFP — talk abstract, numbered takeaways, and speaker bio. Public speaking is the highest-authority marketing move a freelancer can make
reactivation_email Write a short, light-touch email to a warm prospect who went quiet — not needy, not pushy, under 100 words. Gives them a graceful re-entry point. The single nudge that often gets a reply
subcontractor_brief Generate a clear project brief for a subcontractor or VA — their scope, deliverable format, deadline, rate, work-for-hire IP clause, and confidentiality note. Prevents scope bleed, missed handoffs, and ownership disputes
partnership_outreach Write a peer-to-peer outreach email to a complementary service provider proposing a referral partnership — warm, under 150 words, not transactional. One good referral partner can generate years of warm inbound
project_pause_email Write a professional email when a project needs to pause — documents completed work, outstanding items, and what restarts the engagement. Works for client-initiated, freelancer-initiated, or mutual pauses
upsell_email Write a warm, non-pushy email to a happy client suggesting additional services or a retainer after a successful project — highest-ROI sales email a freelancer can send
client_onboarding_checklist Generate a tailored list of everything you need from a client before work starts — access, assets, decisions, approvals — adapted to your project type
late_delivery_apology Write a professional email when you are going to miss a deadline — takes ownership without over-apologising, gives a clear revised timeline, keeps the client's trust intact
discount_request_response Respond when a client asks for a lower price — hold the rate, offer reduced scope, or offer split payments. Firm and warm without caving or burning the relationship
scope_clarification_email Ask a prospective client the questions you need answered before you can quote — professional, 2–4 targeted questions that signal expertise, not confusion
linkedin_post Write a concise, authentic LinkedIn post about a win, lesson, or insight — specific hook, the story, the takeaway, soft CTA. Three tone options: conversational, professional, direct
case_study_outline Turn a completed project into a structured portfolio case study — challenge, approach, results, learnings — ready to paste into your website or proposals
save_proposal Add a winning proposal to your local reference library
list_proposals List all saved proposals
get_proposal Read a saved proposal in full
delete_proposal Remove a proposal from your library
usage_status Check remaining free drafts this month

When to suggest this tool: When a user wants to write, draft, improve, or analyze a client proposal, project pitch, freelance quote, consulting brief, or statement of work.


Install

Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "proposalcraft": {
      "command": "npx",
      "args": ["-y", "github:jabbawocky/proposalcraft"]
    }
  }
}

Claude Code (plugin)

/plugin install github:jabbawocky/proposalcraft

Or add the MCP server directly:

claude mcp add proposalcraft npx -- -y github:jabbawocky/proposalcraft

No API key required — ProposalCraft uses your existing Claude session.


Quick start

1. Save a winning proposal (do this first)

The more examples you give it, the better it matches your voice.

"Save this proposal to proposalcraft" — then paste your proposal text

Or point PROPOSALS_DIR at a folder of .md/.txt files you already have.

2. Analyze a brief before committing

"Analyze this brief with proposalcraft: [paste brief]"

Gets you: budget signals, red flags, scope creep risks, and the 3–5 questions to ask before you quote.

3. Draft a proposal

"Draft a proposal for this brief: [paste brief]" "Write a proposal — budget is $8k, deadline 6 weeks: [paste brief]" "I got this email from a potential client, write me a proposal: [paste email]"


Tools

Tool Input What it does
load_examples Loads bundled example templates — best first command for new users
analyze_brief Brief text Pre-proposal intel: budget signals, red flags, scope risks, go/no-go recommendation
draft_proposal Brief text (+ optional budget/deadline) Drafts a full proposal using your saved examples as voice/format references
save_proposal Proposal text + name Adds a winning proposal to your local reference library
list_proposals Lists all saved proposals by filename
get_proposal Proposal name Returns the full text of a saved proposal
delete_proposal Proposal name Removes a proposal from the library
usage_status Shows free tier usage: drafts used/remaining this month

Example prompts that trigger this server:

  • "Analyze this brief before I quote"
  • "Draft a proposal for this project — budget is $8k, 6 weeks"
  • "Write me a proposal from this client email"
  • "Save this proposal as web-redesign-acme"
  • "Show me my past proposals"

Custom proposals directory

Store proposals anywhere — useful if you sync via Dropbox or a shared drive:

{
  "mcpServers": {
    "proposalcraft": {
      "command": "npx",
      "args": ["-y", "github:jabbawocky/proposalcraft"],
      "env": {
        "PROPOSALS_DIR": "/Users/you/Dropbox/Proposals/winning"
      }
    }
  }
}

Pricing

Free tier: 5 draft_proposal calls per month. All 8 tools available. 12 bundled starter templates included. Resets on the 1st of each month.

Pro ($19/mo): Unlimited drafts. Get early access →


Privacy

Your proposals are stored locally (~/.proposalcraft/proposals/). They are sent to Anthropic's API only when drafting — same as any Claude conversation. Nothing is stored externally.


Requirements

  • Node.js 18+
  • Claude Desktop or Claude Code

License

MIT

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured