proposal-generator-mcp
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)
Ve a console.cloud.google.com → crea/selecciona un proyecto.
Habilita la API de Google Drive (APIs y Servicios → Biblioteca → busca "Drive API" → Habilitar).
APIs y Servicios → Credenciales → Crear credenciales → Cuenta de servicio.
Ponle un nombre (por ejemplo,
proposal-bot) → Crear → Listo (no se necesitan roles a nivel de proyecto).Haz clic en la nueva cuenta de servicio → pestaña Claves → Añadir clave → JSON → se descarga un archivo.
Cámbiale el nombre a
service_account.jsony colócalo enproposal-mcp-server/secrets/.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 .envCompleta 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.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": "..."
}
}
}
}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:
Llamará a
get_mandatory_sectionspara ver qué es obligatorio.Llamará a
get_company_profilepara fundamentar el contenido en capacidades reales.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).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.Redactará cada una de las 9 secciones (con tablas/viñetas/gráficos reales y un flujo de trabajo técnico conciso).
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 Kingdom→UK); 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_proposales una sola llamada: Claude no necesita múltiples idas y vueltas para ensamblar el documento pieza por pieza.
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