proposal-generator-mcp
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分)
console.cloud.google.com にアクセス → プロジェクトを作成/選択。
Google Drive API を有効にする (APIs & Services → Library → 「Drive API」を検索 → Enable)。
APIs & Services → Credentials → Create Credentials → Service Account。
名前を付け (例:
proposal-bot) → Create → Done (プロジェクトレベルでのロールは不要)。新しいサービスアカウントをクリック → Keys タブ → Add Key → JSON → ファイルがダウンロードされます。
service_account.jsonにリネームし、proposal-mcp-server/secrets/に配置します。サービスアカウントのメールアドレスをメモします — 例:
proposal-bot@your-project.iam.gserviceaccount.com
3. サービスアカウントと3つの Drive フォルダを共有する
Google Drive で、Template、Resources、Output の各フォルダを右クリック → Share → サービスアカウントのメールアドレスを貼り付け → Editor アクセスを付与します (Output には書き込みアクセスが必要です。Template/Resources は Viewer のみで十分ですが、Editor が最も簡単です)。これが 唯一 の手動 Drive ステップです — 以降 OAuth ログインは不要です。
4. 環境の設定
cp .env.example .envTEMPLATE_FOLDER_ID、RESOURCES_FOLDER_ID、OUTPUT_FOLDER_ID を入力します (各フォルダの URL の /folders/ の後の文字列)。
Resources ファイルが .env の COMPANY_PROFILE_FILENAME と RATE_CARD_FILENAME に一致することを確認/リネームします (または、実際のファイル名に合わせてそれらの変数を編集するだけでも構いません)。
5. Claude Desktop にサーバーを登録する
Claude Desktop の設定ファイルを編集します:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%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 は自動的に次のことを行います:
get_mandatory_sectionsを呼び出して、必須セクションを確認します。get_company_profileを呼び出して、実際の能力に基づいてコンテンツを構築します。提案された会社の国を、ブリーフまたは信頼できる会社調査から確認し、
resolve_rate_card_country(country)を呼び出します。関連するロールのみに対して
get_rate_card(country, [...])を呼び出します。レスポンスには、選択された正確なタブと通貨が含まれます。ワークブックに国のタブがない場合は、Constants/USD 日次レートのフォールバックが明確に報告されます。9つのセクションそれぞれをドラフトします (実際のテーブル/箇条書き/チャートと簡潔な技術ワークフローを含む)。
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 Kingdom→UK) です。危険な部分文字列一致は使用しません。専用テーブルがない国は、自動的に Constants シートの USD 基本日次レートを使用し、結果にその旨が明記されます。レートカード/プロフィールのダウンロードは
CACHE_TTL_SECONDSの間キャッシュされるため、1つのセッションで複数の提案書を生成しても、毎回 Drive にアクセスすることはありません。generate_proposalは単一の呼び出しです — Claude はドキュメントを断片的に組み立てるために複数回の往復を必要としません。
Maintenance
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
- -licenseBqualityNot gradedmaintenanceAutomates the creation of standardized documentation by extracting information from source files and applying templates, with integration capabilities for GitHub, Google Drive, and Perplexity AI.33
- AlicenseNot gradedqualityDmaintenanceEnables automated dataset processing and onboarding using Google Drive integration. Provides metadata extraction, data quality assessment, and contract generation for CSV/Excel files through natural language interactions.1MIT
- FlicenseBqualityNot gradedmaintenanceGenerates professional, AI-powered freelance project proposals including executive summaries, scopes of work, and pricing structures. It leverages Claude to create tailored proposals based on specific project descriptions, budgets, and timelines.1
- FlicenseBqualityCmaintenanceEnables creating professional Word documents from markdown or structured content with fast, customized formatting via natural language.71
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.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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