GitScrum / Docs

Proposals

Proposal management through MCP. Create, send, and manage client proposals with full lifecycle tracking from draft to project conversion.

Open Source β€” GitScrum MCP Server is open source under the MIT license. Available on npm and GitHub. Model Context Protocol server for GitScrum β€” Claude, GitHub Copilot, Cursor, and any MCP-compatible client full operational access to your project management stack.

The proposal tool provides 9 actions covering the complete proposal lifecycle β€” from drafting and sending proposals to client approval, rejection handling, and conversion into active projects. Every sales pipeline operation available in the GitScrum web application is accessible through natural language conversation with your AI assistant.

Proposals bridge the gap between sales and delivery. When a client approves a proposal, the convert action transforms it into a fully configured project, carrying over scope, budget, and client association. The MCP Server gives your AI assistant the ability to manage this entire pipeline β€” qualifying leads, building proposals, closing deals, and kicking off projects β€” without switching context.


Actions Overview

ActionPurposeRequired Parameters
listList proposals in a workspacecompany_slug
getGet full details of a specific proposaluuid, company_slug
statsGet proposal pipeline metricscompany_slug
createCreate a new draft proposalcompany_slug, title
updateModify a draft proposaluuid, company_slug
sendSend a proposal to the client (draft β†’ sent)uuid, company_slug
approveMark a proposal as approved (sent β†’ approved)uuid, company_slug
rejectMark a proposal as rejecteduuid, company_slug
convertConvert an approved proposal into a projectuuid, company_slug

Status Lifecycle

Every proposal follows a defined status progression. The MCP Server enforces valid transitions β€” you cannot approve a draft that hasn't been sent, and rejected proposals cannot be converted into projects.

  β”Œβ”€β”€β”€β”€β”€β”€β”€β”      send      β”Œβ”€β”€β”€β”€β”€β”€β”     approve     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    convert    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”
  β”‚ Draft β”‚ ──────────────► β”‚ Sent β”‚ ───────────────► β”‚ Approved β”‚ ────────────► β”‚ Project β”‚
  β””β”€β”€β”€β”€β”€β”€β”€β”˜                 β””β”€β”€β”€β”€β”€β”€β”˜                  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜              β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                β”‚
                                β”‚     reject
                                β–Ό
                           β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                           β”‚ Rejected β”‚
                           β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
  • Draft β€” Initial state. Editable. Can be sent.
  • Sent β€” Delivered to client. Awaiting response. Can be approved or rejected.
  • Approved β€” Client accepted. Can be converted into a project.
  • Rejected β€” Client declined. Terminal state.
  • Converted β€” Transformed into an active project. Terminal state.

Listing Proposals

The list action returns proposals within a workspace. Filter by status or client to focus on specific pipeline stages.

Required Parameters

ParameterTypeDescription
company_slugstringWorkspace identifier (from the workspace tool)

Optional Parameters

ParameterTypeDescription
statusstringFilter by status: draft, sent, approved, rejected
client_uuidstringFilter by client UUID (from the client tool)

Example Prompts

You:  "Show all proposals"
AI:   Calls proposal action=list β†’ returns proposal list with status and amounts

You:  "List sent proposals awaiting response"
AI:   Calls proposal action=list with status="sent"

You:  "Show all proposals for Acme Corp"
AI:   Finds client UUID β†’ calls proposal action=list with client_uuid

You:  "Which proposals were rejected this month?"
AI:   Calls proposal action=list with status="rejected" β†’ AI filters by date

Getting Proposal Details

The get action returns the complete proposal β€” title, client, content, amount, currency, validity period, status, and activity timeline.

Required Parameters

ParameterTypeDescription
uuidstringProposal UUID (from list response)
company_slugstringWorkspace identifier
You:  "Show me the website redesign proposal"
AI:   Finds proposal β†’ calls proposal action=get β†’ returns full proposal details

You:  "What's the total value of the TechStart proposal?"
AI:   Calls proposal action=get β†’ extracts total_amount and currency

Proposal Statistics

The stats action returns workspace-level pipeline metrics β€” total proposals, conversion rates, average deal size, pipeline value by status, and win/loss ratios. These numbers drive the sales pipeline dashboard.

Required Parameters

ParameterTypeDescription
company_slugstringWorkspace identifier
You:  "Show proposal stats"
AI:   Calls proposal action=stats β†’ returns pipeline value, conversion rate, deal metrics

You:  "What's our proposal win rate?"
AI:   Calls proposal action=stats β†’ extracts win/loss ratio

You:  "How much is in the pipeline?"
AI:   Calls proposal action=stats β†’ returns total value of sent proposals

Creating Proposals

The create action builds a new draft proposal. You can include the client association, detailed content in Markdown format, financial terms, and a validity period in a single call.

Required Parameters

ParameterTypeDescription
company_slugstringWorkspace identifier
titlestringProposal title or project name

Optional Parameters

ParameterTypeDescription
contactcompanyuuidstringClient UUID to associate (from the client tool)
contentstringProposal body in Markdown format β€” scope, deliverables, timeline
total_amountnumberTotal proposal value (e.g. 15000)
currencystringCurrency code: USD, EUR, BRL (default: workspace currency)
valid_untilstringProposal expiry date in YYYY-MM-DD format

Example Prompts

You:  "Create a proposal for Acme Corp: Website Redesign, $15,000, valid until March 30"
AI:   Finds client UUID β†’ calls proposal action=create with title="Website Redesign",
      contact_company_uuid, total_amount=15000, currency="USD",
      valid_until="2026-03-30"

You:  "Draft a proposal for TechStart β€” Mobile App Development, €25,000"
AI:   Calls proposal action=create with title="Mobile App Development",
      contact_company_uuid, total_amount=25000, currency="EUR"

You:  "Create a proposal for Global Media with detailed scope:
       ## Deliverables
       - Brand identity redesign
       - Website (10 pages)
       - Social media templates
       Total: $8,500"
AI:   Calls proposal action=create with title, content (Markdown),
      total_amount=8500, contact_company_uuid

Updating Proposals

The update action modifies a draft proposal. Only proposals in Draft status can be updated β€” once sent, the proposal is locked to preserve the record of what was presented to the client.

Required Parameters

ParameterTypeDescription
uuidstringProposal UUID
company_slugstringWorkspace identifier

All optional parameters from create are available in update.

You:  "Update the website proposal amount to $18,000"
AI:   Calls proposal action=update with total_amount=18000

You:  "Extend the proposal validity to April 15"
AI:   Calls proposal action=update with valid_until="2026-04-15"

You:  "Add scope details to the TechStart proposal"
AI:   Calls proposal action=update with content (Markdown)

Sending Proposals

The send action transitions a proposal from Draft to Sent. This delivers the proposal to the client and locks it from further edits. The status change is recorded with a timestamp.

Required Parameters

ParameterTypeDescription
uuidstringProposal UUID
company_slugstringWorkspace identifier
You:  "Send the website redesign proposal to Acme Corp"
AI:   Calls proposal action=send β†’ proposal transitions from Draft to Sent

You:  "Send all draft proposals"
AI:   Lists draft proposals β†’ calls proposal action=send for each

Approving Proposals

The approve action marks a sent proposal as approved by the client. This unlocks the convert action, which transforms the proposal into a project.

Required Parameters

ParameterTypeDescription
uuidstringProposal UUID
company_slugstringWorkspace identifier
You:  "Acme Corp approved the website redesign proposal"
AI:   Calls proposal action=approve β†’ proposal transitions to Approved

You:  "Mark the TechStart proposal as approved"
AI:   Calls proposal action=approve β†’ ready for project conversion

Rejecting Proposals

The reject action marks a sent proposal as rejected. You can optionally provide the client's reason for declining, which is stored in the proposal history for pipeline analysis.

Required Parameters

ParameterTypeDescription
uuidstringProposal UUID
company_slugstringWorkspace identifier

Optional Parameters

ParameterTypeDescription
reasonstringClient's reason for rejection (stored in proposal history)
You:  "Global Media rejected the proposal β€” budget constraints"
AI:   Calls proposal action=reject with reason="Budget constraints"

You:  "Mark the mobile app proposal as rejected"
AI:   Calls proposal action=reject β†’ proposal transitions to Rejected

Converting Proposals to Projects

The convert action is the bridge between sales and delivery. It transforms an approved proposal into a fully configured project, carrying over the title, client association, and scope. This is the moment a deal becomes active work.

Required Parameters

ParameterTypeDescription
uuidstringProposal UUID (must be in Approved status)
company_slugstringWorkspace identifier
You:  "Convert the Acme Corp proposal into a project"
AI:   Calls proposal action=convert β†’ creates project linked to client

You:  "Approve and convert the TechStart proposal"
AI:   Calls proposal action=approve β†’ then calls proposal action=convert

You:  "The website redesign is a go β€” set up the project"
AI:   Finds the approved proposal β†’ calls proposal action=convert β†’ returns new project

Sales Pipeline Workflow

For agencies managing their sales pipeline through MCP, this workflow covers the complete proposal lifecycle:

1. Create the proposal

Draft a proposal with scope, pricing, and client association.

You:  "Create a proposal for Acme Corp: E-commerce Platform, $45,000,
       valid until March 30. Include scope: design, development, QA, deployment."
AI:   Single create call with all fields and Markdown content

2. Review and refine

Review the draft before presenting to the client.

You:  "Show me the Acme Corp proposal"
AI:   Calls proposal action=get β†’ displays full proposal for review

You:  "Increase the amount to $48,000 and extend validity to April 15"
AI:   Calls proposal action=update with new amount and date

3. Send to client

Deliver the proposal.

You:  "Send the e-commerce proposal to Acme Corp"
AI:   Calls proposal action=send β†’ proposal is delivered and locked

4. Handle response

Record the client's decision.

You:  "Acme Corp approved the proposal"
AI:   Calls proposal action=approve β†’ ready for conversion

You:  "Convert it to a project"
AI:   Calls proposal action=convert β†’ project created and linked to client

5. Monitor pipeline

Track overall sales pipeline health.

You:  "Show me the proposal pipeline"
AI:   Calls proposal action=stats β†’ summarizes pipeline value, conversion rates, win/loss

You:  "Which proposals are still awaiting response?"
AI:   Calls proposal action=list with status="sent" β†’ shows pending proposals

Next Steps

  • Clients: Manage client records linked to your proposals.
  • Invoices: Create invoices for approved and converted proposals.
  • ClientFlow Dashboards: Access pipeline analytics and conversion metrics.
  • Projects: Manage project delivery after proposal conversion.