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 (однократно, ~5 мин)
Перейдите на console.cloud.google.com → создайте или выберите проект.
Включите Google Drive API (API и сервисы → Библиотека → найдите «Drive API» → Включить).
API и сервисы → Учётные данные → Создать учётные данные → Сервисный аккаунт.
Дайте ему имя (например,
proposal-bot) → Создать → Готово (роли на уровне проекта не нужны).Нажмите на новый сервисный аккаунт → вкладка «Ключи» → Добавить ключ → JSON → скачается файл.
Переименуйте его в
service_account.jsonи поместите вproposal-mcp-server/secrets/.Запишите адрес электронной почты сервисного аккаунта — он выглядит так:
proposal-bot@your-project.iam.gserviceaccount.com
3. Предоставление сервисному аккаунту доступа к 3 папкам Google Drive
В Google Drive нажмите правой кнопкой мыши на каждую из папок Template, Resources, Output → «Поделиться» → вставьте адрес электронной почты сервисного аккаунта → предоставьте доступ Редактор (для Output нужен доступ на запись; Template/Resources достаточно прав «Читатель», но «Редактор» проще). Это единственный ручной шаг в Drive — после него вход через OAuth не нужен.
4. Настройка окружения
cp .env.example .envЗаполните TEMPLATE_FOLDER_ID, RESOURCES_FOLDER_ID, OUTPUT_FOLDER_ID (это строка в URL каждой папки после /folders/).
Проверьте или переименуйте файлы в папке Resources, чтобы они соответствовали COMPANY_PROFILE_FILENAME и RATE_CARD_FILENAME в .env (или просто отредактируйте эти переменные под ваши реальные имена файлов).
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» в списке под значком 🔌 connectors/tools.
6. Использование
Просто попросите об этом в новом чате:
Составь коммерческое предложение для XYZ Bank, который хочет перейти на облачные технологии. Страна: Индия.
Claude сделает следующее самостоятельно:
Вызовет
get_mandatory_sections, чтобы посмотреть, что требуется.Вызовет
get_company_profile, чтобы основывать содержание на реальных возможностях.Подтвердит страну целевой компании из брифа или доверенного исследования компании, затем вызовет
resolve_rate_card_country(country).Вызовет
get_rate_card(country, [...])только для соответствующих ролей. В ответе будут точная выбранная вкладка и валюта; если в книге нет вкладки страны, будет четко указан запасной вариант с дневными ставками Constants/USD.Составит черновик каждого из 9 разделов (с реальными таблицами/маркированными списками/диаграммами и кратким техническим описанием процесса).
Один раз вызовет
generate_proposal(...); этот вызов сформирует брендированный .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); он никогда не использует рискованное совпадение по подстроке. Страны, для которых нет отдельной таблицы, автоматически используют базовые дневные ставки в USD с листа Constants и помечаются как таковые в результате.Скачивание тарифной карты / профиля кэшируется на
CACHE_TTL_SECONDS, поэтому создание нескольких предложений за одну сессию не обращается к 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