Skip to main content
Glama
ahmaddeveloper17

Proposal Generator MCP

Proposal Generator MCP

An MCP (Model Context Protocol) server that turns client requirements into a timeline, tech stack, price estimate, milestone breakdown, and a ready-to-send Markdown proposal document — built for freelancers and agencies.

{
  "clientName": "Green Valley Fertilizers",
  "projectType": "ecommerce",
  "features": ["auth", "ecommerce-catalog", "payments", "admin-dashboard", "search"],
  "region": "pakistan"
}

Use it from Claude Desktop, Claude Code, Cursor, or any MCP-compatible client.

Tools

Tool

Returns

generate_proposal

Full pipeline: JSON summary + Markdown proposal document

estimate_price_and_timeline

Quick estimate: hours, price range, timeline

recommend_tech_stack

Tech stack suggestion based on project type + features

list_feature_catalog

Every recognized feature key with its hour estimate and category

Install & run

Option A — from source (local development)

git clone <repo-url> proposal-generator
cd proposal-generator
bun install
bun run build

Start the server:

bun start

Option B — from npm (published package)

npm install -g @proposal-generator/server
# or
bun install -g @proposal-generator/server

Run it:

proposal-generator-mcp

Scripts reference

Script

Description

bun run build

Build with tsdown (ESM + .d.ts + sourcemap)

bun run dev

Watch mode rebuild on changes

bun run lint

Auto-fix lint & formatting issues (biome)

bun run lint:check

Check lint without writing

bun run typecheck

tsc --noEmit type verification

bun run release

Build, bump version, publish to npm


Configure your MCP client

Claude Desktop

Edit claude_desktop_config.json (location varies by OS):

Local source install:

{
  "mcpServers": {
    "proposal-generator": {
      "command": "bun",
      "args": ["run", "/absolute/path/to/proposal-generator/packages/server/dist/index.mjs"]
    }
  }
}

Global npm install:

{
  "mcpServers": {
    "proposal-generator": {
      "command": "npx",
      "args": ["@proposal-generator/server"]
    }
  }
}

Claude Code

# Local source install
claude mcp add proposal-generator -- bun run /absolute/path/to/proposal-generator/packages/server/dist/index.mjs

# Global npm install
claude mcp add proposal-generator -- npx @proposal-generator/server

Cursor

Settings → Features → MCP Servers → Add new MCP server:

Field

Local

npm

Name

proposal-generator

proposal-generator

Type

command

command

Command

bun run /absolute/path/.../dist/index.mjs

npx @proposal-generator/server

opencode

If using opencode, add to your project's opencode.json:

{
  "mcpServers": {
    "proposal-generator": {
      "command": "bun",
      "args": ["run", "packages/server/dist/index.mjs"]
    }
  }
}

Any MCP client (stdio)

{
  "mcpServers": {
    "proposal-generator": {
      "command": "bun",
      "args": ["run", "/path/to/packages/server/dist/index.mjs"]
    }
  }
}

Customizing estimates

Everything that drives the numbers lives in two files — no logic changes needed:

File

What to tune

packages/server/src/data/featureCatalog.ts

Feature keys, hour estimates, tech pulled in

packages/server/src/data/rateCards.ts

Regional hourly rates, base hours per project type, complexity multipliers

The milestone template (phase names, payment splits) lives in packages/server/src/logic/estimator.ts. The proposal document layout lives in packages/server/src/logic/proposalBuilder.ts.

After editing any of these, rebuild with bun run build.


Project structure

proposal-generator/
├── package.json               # workspace root (bun monorepo)
├── biome.json                 # lint & format config
├── tsconfig.base.json         # shared TypeScript config
├── opencode.json              # opencode MCP config
├── .gitignore
├── README.md
│
└── packages/
    └── server/                # @proposal-generator/server
        ├── package.json
        ├── tsconfig.json      # extends tsconfig.base.json
        ├── tsdown.config.ts   # build config
        ├── dist/              # build output (gitignored)
        └── src/
            ├── index.ts                   # MCP server + tool definitions
            ├── data/
            │   ├── featureCatalog.ts      # feature -> hours/tech mapping
            │   └── rateCards.ts           # regional rates, base hours, multipliers
            └── logic/
                ├── estimator.ts           # core math: hours, price, timeline, milestones
                └── proposalBuilder.ts     # renders the Markdown proposal document

Publishing to npm

# Login (one-time)
npm login

# Bump version, tag, and publish
bun run release

This runs: bun run buildbumpp (version bump + git tag) → npm publish.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ahmaddeveloper17/client-proposal-generator-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server