Offorte MCP Server for Proposal Creation and Sending
Create and send professional business proposals with the Offorte MCP server to streamline proposal creation, delivery and tracking.
npx -y @offorte/offorte-mcp-server#readmeOverview
The Offorte MCP Server is a lightweight web service that implements the Model Context Protocol (MCP) to help teams programmatically create, render, deliver, and track business proposals. It acts as a bridge between your application logic (prompts, client data, pricing models) and document delivery channels (PDF export, email, shareable links). By centralizing template rendering and delivery, the server simplifies repetitive proposal workflows and helps maintain consistent branding and behavior.
Designed for developer integration, the server exposes a small set of HTTP endpoints for submitting context data, selecting templates, producing documents, and triggering deliveries. You can run it locally during development or deploy it as a container in production. Typical uses include generating proposal PDFs from structured data, emailing proposals to clients, creating signed links for acceptance, and receiving delivery or open-status webhooks.
Features
- Implements Model Context Protocol (MCP) primitives for context-driven content generation
- Render proposals using customizable templates and structured context
- Export proposals as PDFs and HTML
- Send proposals by email or generate shareable links
- Delivery and tracking events via webhooks (status, opens, clicks)
- Configurable transport (SMTP, third-party mail drivers) and template directories
- Docker-ready with environment-based configuration for easy deployment
Installation / Configuration
Quick start (clone and run locally):
# Clone the repo
# Install dependencies (if Node.js project)
# Run locally
Run with Docker:
# Build and run with Docker
Example docker-compose.yml:
version: "3.8"
services:
mcp:
image: offorte-mcp-server:latest
ports:
- "8080:8080"
environment:
PORT: 8080
TEMPLATE_DIR: /data/templates
SMTP_HOST: smtp.example.com
SMTP_PORT: 587
SMTP_USER: user
SMTP_PASS: pass
volumes:
- ./templates:/data/templates
Common environment variables
| Variable | Description |
|---|---|
| PORT | HTTP port to bind (default: 8080) |
| TEMPLATE_DIR | Filesystem path for proposal templates |
| SMTP_HOST / SMTP_PORT / SMTP_USER / SMTP_PASS | SMTP settings for email delivery |
| BASE_URL | Public base URL used when generating shareable links |
| WEBHOOK_SECRET | Shared secret for verifying incoming webhook signatures |
Adjust the variables to match your environment and secrets management strategy.
Available Resources
- Template directory: keep HTML/email templates and assets in TEMPLATE_DIR. Use partials and placeholder tokens that the server replaces with context values.
- REST API endpoints: the server exposes endpoints for creating proposals, fetching proposal status, exporting documents, and registering webhooks.
- Webhook handlers: configure a callback URL to receive delivery events and open/click tracking notifications.
- Sample templates and Postman/HTTP examples: included in the repository to help onboard quickly.
Common endpoints (example)
- POST /proposals — create and render a proposal
- GET /proposals/{id} — retrieve proposal metadata/status
- GET /proposals/{id}/pdf — download generated PDF
- POST /webhooks/delivery — delivery and tracking callbacks
Use Cases
Generate and email a proposal programmatically
- Your app collects client info and pricing, then posts to POST /proposals with JSON { template: “standard”, context: {…}, deliver: { email: “[email protected]”, subject: “Proposal” } }.
- The MCP server renders the template with the provided context, exports a PDF, sends an email, and returns a proposal id and delivery status.
Create a shareable proposal link
- Submit context to create a proposal and request a public link.
- Provide that link to prospects; the server serves an HTML view and logs opens/clicks to your configured webhook.
Build an automated quoting flow
- Integrate the MCP server into a pricing microservice. When a quote is approved in your app, trigger the MCP server to render a proposal with the finalized numbers and automatically email it to the decision-maker.
Track proposal lifecycle for analytics
- Use webhooks to collect delivery, open, and accept events in your analytics or CRM to measure conversion and follow up accordingly.
Getting started tips
- Start with the included sample templates and a local SMTP tester (e.g., MailHog) to iterate quickly.
- Keep templates modular: separate header/footer, pricing tables, and variable sections for easier maintenance.
- Verify webhook signatures (if enabled) to ensure event authenticity.
- Use the BASE_URL environment variable so generated links are valid in your deployment environment.
For more details, consult the repository’s examples, template samples, and API routes to adapt the server to your proposal workflows.