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 (однократно, ~5 мин)

  1. Перейдите на console.cloud.google.com → создайте или выберите проект.

  2. Включите Google Drive API (API и сервисы → Библиотека → найдите «Drive API» → Включить).

  3. API и сервисы → Учётные данные → Создать учётные данные → Сервисный аккаунт.

  4. Дайте ему имя (например, proposal-bot) → Создать → Готово (роли на уровне проекта не нужны).

  5. Нажмите на новый сервисный аккаунт → вкладка «Ключи» → Добавить ключ → JSON → скачается файл.

  6. Переименуйте его в service_account.json и поместите в proposal-mcp-server/secrets/.

  7. Запишите адрес электронной почты сервисного аккаунта — он выглядит так: 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.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» в списке под значком 🔌 connectors/tools.

6. Использование

Просто попросите об этом в новом чате:

Составь коммерческое предложение для XYZ Bank, который хочет перейти на облачные технологии. Страна: Индия.

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(...); этот вызов сформирует брендированный .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); он никогда не использует рискованное совпадение по подстроке. Страны, для которых нет отдельной таблицы, автоматически используют базовые дневные ставки в USD с листа Constants и помечаются как таковые в результате.

  • Скачивание тарифной карты / профиля кэшируется на CACHE_TTL_SECONDS, поэтому создание нескольких предложений за одну сессию не обращается к 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