Skip to main content
Glama

Proposal Generator MCP Server

Claude Desktop 向けの自律型提案生成サーバー。Google Drive から会社のテンプレート、サービスプロフィール、レートカードを読み取り、完全にブランド化された、チャートとテーブルが豊富な .docx 提案書を生成します。手動でのフォーマットは一切不要です。

1. 依存関係のインストール

cd proposal-mcp-server
python3 -m venv venv
source venv/bin/activate        # Windows: venv\Scripts\activate
pip install -e .

Related MCP server: MCP Dataset Onboarding Server

2. Google サービスアカウントの作成 (1回限り、約5分)

  1. console.cloud.google.com にアクセス → プロジェクトを作成/選択。

  2. Google Drive API を有効にする (APIs & Services → Library → 「Drive API」を検索 → Enable)。

  3. APIs & Services → Credentials → Create Credentials → Service Account

  4. 名前を付け (例: proposal-bot) → Create → Done (プロジェクトレベルでのロールは不要)。

  5. 新しいサービスアカウントをクリック → Keys タブ → Add Key → JSON → ファイルがダウンロードされます。

  6. service_account.json にリネームし、proposal-mcp-server/secrets/ に配置します。

  7. サービスアカウントのメールアドレスをメモします — 例: proposal-bot@your-project.iam.gserviceaccount.com

3. サービスアカウントと3つの Drive フォルダを共有する

Google Drive で、TemplateResourcesOutput の各フォルダを右クリック → Share → サービスアカウントのメールアドレスを貼り付け → Editor アクセスを付与します (Output には書き込みアクセスが必要です。Template/Resources は Viewer のみで十分ですが、Editor が最も簡単です)。これが 唯一 の手動 Drive ステップです — 以降 OAuth ログインは不要です。

4. 環境の設定

cp .env.example .env

TEMPLATE_FOLDER_IDRESOURCES_FOLDER_IDOUTPUT_FOLDER_ID を入力します (各フォルダの URL の /folders/ の後の文字列)。

Resources ファイルが .envCOMPANY_PROFILE_FILENAMERATE_CARD_FILENAME に一致することを確認/リネームします (または、実際のファイル名に合わせてそれらの変数を編集するだけでも構いません)。

5. Claude Desktop にサーバーを登録する

Claude Desktop の設定ファイルを編集します:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "proposal-generator": {
      "command": "/absolute/path/to/proposal-mcp-server/venv/bin/python",
      "args": ["-m", "proposal_mcp.server"],
      "cwd": "/absolute/path/to/proposal-mcp-server/src",
      "env": {
        "SERVICE_ACCOUNT_FILE": "/absolute/path/to/proposal-mcp-server/secrets/service_account.json",
        "TEMPLATE_FOLDER_ID": "...",
        "RESOURCES_FOLDER_ID": "...",
        "OUTPUT_FOLDER_ID": "..."
      }
    }
  }
}

Claude Desktop を再起動します。🔌 コネクタ/ツールアイコンの下に「proposal-generator」が表示されるはずです。

6. 使用方法

新しいチャットで、次のように依頼するだけです:

XYZ 銀行向けに、クラウド技術への移行を希望する提案書を作成してください。国: インド。

Claude は自動的に次のことを行います:

  1. get_mandatory_sections を呼び出して、必須セクションを確認します。

  2. get_company_profile を呼び出して、実際の能力に基づいてコンテンツを構築します。

  3. 提案された会社の国を、ブリーフまたは信頼できる会社調査から確認し、resolve_rate_card_country(country) を呼び出します。

  4. 関連するロールのみに対して get_rate_card(country, [...]) を呼び出します。レスポンスには、選択された正確なタブと通貨が含まれます。ワークブックに国のタブがない場合は、Constants/USD 日次レートのフォールバックが明確に報告されます。

  5. 9つのセクションそれぞれをドラフトします (実際のテーブル/箇条書き/チャートと簡潔な技術ワークフローを含む)。

  6. generate_proposal(...) を1回呼び出し、ブランド化された .docx をレンダリングして Output フォルダにアップロードし、Drive リンクを返します。

後で新しいテンプレートを追加する

新しい .docx (例: template_rfp.docx) を Template フォルダにアップロードし、同じフォルダ内の template_registry.json (例: assets/template_registry.example.json を参照) にエントリを追加します。例:

{ "default": "template.docx", "rfp": "template_rfp.docx" }

Claude はその後 list_templates() を呼び出し、template_id: "rfp" を渡すことができます。

プロジェクト構成

src/proposal_mcp/
  config.py              # env config + the 9 mandatory sections (hardcoded)
  drive_client.py         # Google Drive service-account wrapper
  cache.py                 # TTL cache to avoid redundant Drive downloads
  rate_card.py              # multi-sheet (per-country) rate card parser
  company_profile.py         # extracts condensed text from services doc
  charts.py                   # bar / pie / gantt chart and workflow-diagram PNG generation
  proposal_sections.py         # Pydantic schema Claude's content must follow
  docx_generator.py             # merges content into the branded template
  server.py                      # MCP tool definitions (the public API)

トークン効率に関する注意点

  • 各ツールは、要求された特定のデータのみを返します (フィルタリングされたレート行、要約されたプロフィール) — ファイル全体の生のバイト/行を返すことはありません。

  • チャート/テーブル/ドキュメントのレンダリングはすべて Python で行われます。Claude がレイアウト、XML、画像エンコーディングについて推論する必要はありません。

  • レートカードの選択は、正確な一致または明示的な国のエイリアス (例: United KingdomUK) です。危険な部分文字列一致は使用しません。専用テーブルがない国は、自動的に Constants シートの USD 基本日次レートを使用し、結果にその旨が明記されます。

  • レートカード/プロフィールのダウンロードは CACHE_TTL_SECONDS の間キャッシュされるため、1つのセッションで複数の提案書を生成しても、毎回 Drive にアクセスすることはありません。

  • generate_proposal は単一の呼び出しです — Claude はドキュメントを断片的に組み立てるために複数回の往復を必要としません。

Install Server
F
license - not found
A
quality
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • Deterministic, fully editable PowerPoint from typed slide intents. 200+ layouts, brand templates.

  • Turn a description into a shareable, editable PDF — invoices, certificates, reports, resumes.

  • Make videos and docs with your AI agent — describe what you need, every output stays editable.

View all MCP Connectors

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/Shiva-Matangulu/proposal-generator-mcp'

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