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
| Action | Purpose | Required Parameters |
|---|---|---|
list | List proposals in a workspace | company_slug |
get | Get full details of a specific proposal | uuid, company_slug |
stats | Get proposal pipeline metrics | company_slug |
create | Create a new draft proposal | company_slug, title |
update | Modify a draft proposal | uuid, company_slug |
send | Send a proposal to the client (draft β sent) | uuid, company_slug |
approve | Mark a proposal as approved (sent β approved) | uuid, company_slug |
reject | Mark a proposal as rejected | uuid, company_slug |
convert | Convert an approved proposal into a project | uuid, 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
| Parameter | Type | Description |
|---|---|---|
company_slug | string | Workspace identifier (from the workspace tool) |
Optional Parameters
| Parameter | Type | Description |
|---|---|---|
status | string | Filter by status: draft, sent, approved, rejected |
client_uuid | string | Filter 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 dateGetting Proposal Details
The get action returns the complete proposal β title, client, content, amount, currency, validity period, status, and activity timeline.
Required Parameters
| Parameter | Type | Description |
|---|---|---|
uuid | string | Proposal UUID (from list response) |
company_slug | string | Workspace 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 currencyProposal 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
| Parameter | Type | Description |
|---|---|---|
company_slug | string | Workspace 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 proposalsCreating 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
| Parameter | Type | Description |
|---|---|---|
company_slug | string | Workspace identifier |
title | string | Proposal title or project name |
Optional Parameters
| Parameter | Type | Description |
|---|---|---|
contactcompanyuuid | string | Client UUID to associate (from the client tool) |
content | string | Proposal body in Markdown format β scope, deliverables, timeline |
total_amount | number | Total proposal value (e.g. 15000) |
currency | string | Currency code: USD, EUR, BRL (default: workspace currency) |
valid_until | string | Proposal 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_uuidUpdating 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
| Parameter | Type | Description |
|---|---|---|
uuid | string | Proposal UUID |
company_slug | string | Workspace 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
| Parameter | Type | Description |
|---|---|---|
uuid | string | Proposal UUID |
company_slug | string | Workspace 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 eachApproving 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
| Parameter | Type | Description |
|---|---|---|
uuid | string | Proposal UUID |
company_slug | string | Workspace 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 conversionRejecting 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
| Parameter | Type | Description |
|---|---|---|
uuid | string | Proposal UUID |
company_slug | string | Workspace identifier |
Optional Parameters
| Parameter | Type | Description |
|---|---|---|
reason | string | Client'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 RejectedConverting 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
| Parameter | Type | Description |
|---|---|---|
uuid | string | Proposal UUID (must be in Approved status) |
company_slug | string | Workspace 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 projectSales 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 content2. 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 date3. Send to client
Deliver the proposal.
You: "Send the e-commerce proposal to Acme Corp"
AI: Calls proposal action=send β proposal is delivered and locked4. 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 client5. 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 proposalsNext 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.