Skip to main content
Glama

Servidor MCP de Generador de Propuestas

Servidor autónomo de generación de propuestas para Claude Desktop. Lee las plantillas, el perfil de servicio y la tarifa de tu empresa desde Google Drive, y produce una propuesta .docx completamente personalizada, con gráficos y tablas, sin ningún formato manual.

1. Instalar dependencias

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. Crear la cuenta de servicio de Google (una sola vez, ~5 min)

  1. Ve a console.cloud.google.com → crea/selecciona un proyecto.

  2. Habilita la API de Google Drive (APIs y Servicios → Biblioteca → busca "Drive API" → Habilitar).

  3. APIs y Servicios → Credenciales → Crear credenciales → Cuenta de servicio.

  4. Ponle un nombre (por ejemplo, proposal-bot) → Crear → Listo (no se necesitan roles a nivel de proyecto).

  5. Haz clic en la nueva cuenta de servicio → pestaña Claves → Añadir clave → JSON → se descarga un archivo.

  6. Cámbiale el nombre a service_account.json y colócalo en proposal-mcp-server/secrets/.

  7. Anota el correo de la cuenta de servicio, que se ve así: proposal-bot@your-project.iam.gserviceaccount.com

3. Comparte tus 3 carpetas de Drive con la cuenta de servicio

En Google Drive, haz clic derecho en cada una de Plantillas, Recursos, Salida → Compartir → pega el correo de la cuenta de servicio → dale acceso de Editor (Salida necesita acceso de escritura; Plantillas/Recursos solo necesitan Visor, pero Editor es lo más simple). Este es el único paso manual de Drive: no se necesita inicio de sesión OAuth después de esto.

4. Configurar el entorno

cp .env.example .env

Completa TEMPLATE_FOLDER_ID, RESOURCES_FOLDER_ID, OUTPUT_FOLDER_ID (la cadena en la URL de cada carpeta después de /folders/).

Confirma/renombra tus archivos de Recursos para que coincidan con COMPANY_PROFILE_FILENAME y RATE_CARD_FILENAME en .env (o simplemente edita esas variables para que coincidan con tus nombres de archivo reales).

5. Registrar el servidor con Claude Desktop

Edita tu archivo de configuración de 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": "..."
      }
    }
  }
}

Reinicia Claude Desktop. Deberías ver "proposal-generator" listado bajo el icono de conectores/herramientas 🔌.

6. Usarlo

Solo pregunta, en un chat nuevo:

Haz una propuesta para el Banco XYZ que quiere migrar a tecnología en la nube. País: India.

Claude, por su cuenta:

  1. Llamará a get_mandatory_sections para ver qué es obligatorio.

  2. Llamará a get_company_profile para fundamentar el contenido en capacidades reales.

  3. Confirmará el país de la empresa propuesta a partir del brief o de una investigación confiable de la empresa, y luego llamará a resolve_rate_card_country(country).

  4. Llamará a get_rate_card(country, [...]) solo para los roles relevantes. La respuesta incluye la pestaña y la moneda exactas seleccionadas; si el libro de trabajo no tiene pestaña de país, informa claramente el respaldo de tarifa diaria en USD de Constants.

  5. Redactará cada una de las 9 secciones (con tablas/viñetas/gráficos reales y un flujo de trabajo técnico conciso).

  6. Llamará a generate_proposal(...) una vez, que renderiza el .docx con la marca y lo sube a tu carpeta de Salida, devolviendo un enlace de Drive.

Añadir nuevas plantillas más adelante

Sube un nuevo .docx (por ejemplo, template_rfp.docx) a la carpeta de Plantillas, y añade una entrada a template_registry.json (consulta assets/template_registry.example.json) en esa misma carpeta, por ejemplo:

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

Claude puede entonces llamar a list_templates() y pasar template_id: "rfp".

Estructura del proyecto

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)

Notas sobre eficiencia de tokens

  • Cada herramienta devuelve solo los datos específicos solicitados (filas de tarifas filtradas, un perfil condensado), nunca los bytes/filas sin procesar de un archivo completo.

  • El renderizado de gráficos/tablas/documentos ocurre completamente en Python; Claude nunca necesita razonar sobre diseño, XML o codificación de imágenes.

  • La selección de la tarifa es exacta o un alias de país explícito (por ejemplo, United KingdomUK); nunca usa una coincidencia de subcadena arriesgada. Los países sin tabla dedicada usan automáticamente las tarifas diarias base en USD de la hoja Constants y se etiquetan como tales en el resultado.

  • Las descargas de tarifas/perfiles se almacenan en caché durante CACHE_TTL_SECONDS, por lo que generar varias propuestas en una sesión no vuelve a acceder a Drive cada vez.

  • generate_proposal es una sola llamada: Claude no necesita múltiples idas y vueltas para ensamblar el documento pieza por pieza.

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