Skip to main content
Glama

Proposal Generator MCP Server

Autonomer Server zur Angebotserstellung für Claude Desktop. Liest die Vorlagen, das Serviceprofil und die Preisliste Ihres Unternehmens aus Google Drive und erstellt ein vollständig gebrandetes .docx-Angebot mit Diagrammen und Tabellen – ganz ohne manuelle Formatierung.

1. Abhängigkeiten installieren

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-Dienstkonto erstellen (einmalig, ~5 Min.)

  1. Gehen Sie zu console.cloud.google.com → Projekt erstellen/auswählen.

  2. Aktivieren Sie die Google Drive API (APIs & Dienste → Bibliothek → nach „Drive API“ suchen → Aktivieren).

  3. APIs & Dienste → Anmeldedaten → Anmeldedaten erstellen → Dienstkonto.

  4. Geben Sie ihm einen Namen (z. B. proposal-bot) → Erstellen → Fertig (auf Projektebene sind keine Rollen erforderlich).

  5. Klicken Sie auf das neue Dienstkonto → Registerkarte Schlüssel → Schlüssel hinzufügen → JSON → lädt eine Datei herunter.

  6. Benennen Sie es in service_account.json um und legen Sie es in proposal-mcp-server/secrets/ ab.

  7. Notieren Sie die E-Mail-Adresse des Dienstkontos – sie sieht so aus: proposal-bot@your-project.iam.gserviceaccount.com

3. Geben Sie Ihre 3 Drive-Ordner für das Dienstkonto frei

Klicken Sie in Google Drive mit der rechten Maustaste auf Template, Resources und Output → Freigeben → fügen Sie die E-Mail-Adresse des Dienstkontos ein → gewähren Sie Editor-Zugriff (Output benötigt Schreibzugriff; Template/Resources benötigen nur Betrachter, aber Editor ist am einfachsten). Dies ist der einzige manuelle Drive-Schritt – danach ist keine OAuth-Anmeldung mehr erforderlich.

4. Umgebung konfigurieren

cp .env.example .env

Füllen Sie TEMPLATE_FOLDER_ID, RESOURCES_FOLDER_ID, OUTPUT_FOLDER_ID aus (die Zeichenfolge in der URL jedes Ordners nach /folders/).

Bestätigen Sie, dass Ihre Resources-Dateien mit COMPANY_PROFILE_FILENAME und RATE_CARD_FILENAME in .env übereinstimmen, bzw. benennen Sie sie entsprechend um (oder bearbeiten Sie einfach diese Variablen, sodass sie Ihren tatsächlichen Dateinamen entsprechen).

5. Server bei Claude Desktop registrieren

Bearbeiten Sie Ihre Claude-Desktop-Konfigurationsdatei:

  • 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": "..."
      }
    }
  }
}

Starten Sie Claude Desktop neu. Sie sollten „proposal-generator“ unter dem 🔌-Symbol für Verbindungen/Tools sehen.

6. Verwendung

Fragen Sie einfach in einem neuen Chat:

Erstellen Sie ein Angebot für die XYZ Bank, die auf Cloud-Technologie umsteigen möchte. Land: Indien.

Claude wird von sich aus:

  1. get_mandatory_sections aufrufen, um zu sehen, was erforderlich ist.

  2. get_company_profile aufrufen, um den Inhalt auf realen Fähigkeiten zu basieren.

  3. Das Land des vorgeschlagenen Unternehmens anhand des Briefings oder vertrauenswürdiger Unternehmensrecherchen bestätigen und dann resolve_rate_card_country(country) aufrufen.

  4. get_rate_card(country, [...]) nur für die relevanten Rollen aufrufen. Die Antwort enthält die exakt ausgewählte Registerkarte und Währung; wenn die Arbeitsmappe keine Länder-Registerkarte hat, wird der Constants/USD-Tagesraten-Fallback klar gemeldet.

  5. Jeden der 9 Abschnitte entwerfen (mit echten Tabellen/Aufzählungen/Diagrammen und einem prägnanten technischen Arbeitsablauf).

  6. generate_proposal(...) einmal aufrufen, das das gebrandete .docx rendert und in Ihren Output-Ordner hochlädt – mit einem Drive-Link als Rückgabe.

Später neue Vorlagen hinzufügen

Laden Sie eine neue .docx-Datei (z. B. template_rfp.docx) in den Template-Ordner hoch und fügen Sie einen Eintrag zu template_registry.json (siehe assets/template_registry.example.json) in demselben Ordner hinzu, z. B.:

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

Claude kann dann list_templates() aufrufen und template_id: "rfp" übergeben.

Projektstruktur

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)

Hinweise zur Token-Effizienz

  • Jedes Tool gibt nur die spezifisch angeforderten Daten zurück (gefilterte Preiszeilen, ein komprimiertes Profil) – niemals die rohen Bytes/Zeilen einer gesamten Datei.

  • Die Darstellung von Diagrammen/Tabellen/Dokumenten erfolgt vollständig in Python; Claude muss sich nie mit Layout, XML oder Bildkodierung befassen.

  • Die Preislistenauswahl erfolgt exakt oder über einen expliziten Länder-Alias (z. B. United KingdomUK); es wird nie ein riskanter Teilstring-Abgleich verwendet. Länder ohne eigene Tabelle verwenden automatisch die USD-Basistagesraten des Constants-Blattes und werden im Ergebnis entsprechend gekennzeichnet.

  • Preislisten-/Profildownloads werden für CACHE_TTL_SECONDS zwischengespeichert, sodass die Erstellung mehrerer Angebote in einer Sitzung Drive nicht jedes Mal erneut abfragt.

  • generate_proposal ist ein einziger Aufruf – Claude benötigt keine mehrfachen Round-Trips, um das Dokument Stück für Stück zusammenzusetzen.

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