Skip to main content
Glama

JobNimbus MCP Remote Server

README.md9.58 kB
# JobNimbus MCP Client **Connect Claude Desktop to your remote JobNimbus MCP server from any computer** This package provides an MCP (Model Context Protocol) client that connects Claude Desktop to a remote JobNimbus MCP server. No local installation or repository cloning required! ## ✨ Características - 🔒 **Zero Storage Security**: API keys NUNCA almacenadas en el servidor - 🌐 **Multi-Cliente**: Soporta múltiples clientes simultáneos - ⚡ **Stateless**: Cada request es independiente - 🚦 **Rate Limiting**: Protección automática por cliente - 🛠️ **Extensible**: Agregar nuevas herramientas en ~10 minutos - 🔄 **CI/CD Automático**: Deploy con `git push` - 📊 **Monitoreo**: Health checks y logs sanitizados ## 🎯 Arquitectura ``` Claude Desktop (API Key) → Render.com Server → JobNimbus API ↓ ↓ Local Config Valida temporalmente (Nunca sale) (Nunca almacena) ``` **Principio clave**: El servidor es un proxy stateless. Las API keys vienen del cliente en cada request y se limpian de memoria inmediatamente después de usarlas. ## 📦 Instalación Rápida ### 1. Clonar e Instalar ```bash cd jobnimbus-mcp-remote npm install ``` ### 2. Configurar Entorno Local ```bash cp .env.example .env ``` ### 3. Ejecutar Localmente ```bash npm run dev ``` Visitar: http://localhost:3000/health ### 4. Desplegar a Render.com Ver: [docs/SETUP.md](docs/SETUP.md) para guía completa de deployment. ## 🔧 Herramientas Disponibles (88 TOTAL - Optimizado) ### Core CRUD (27 herramientas) - **Validación**: `validate_api_key` - Validar API key - **Jobs (7)**: `get_jobs`, `search_jobs`, `search_jobs_enhanced`, `get_job`, `search_job_notes`, `get_job_tasks` - **Status Search (13)**: `search_jobs_by_status`, `get_leads`, `get_pending_approval`, `get_lost_jobs`, `get_in_progress`, `get_completed`, `get_paid_closed`, `get_estimating`, `get_signed_contracts`, `get_scheduled`, `get_appointments`, `get_invoiced`, `get_deposits` - **Contactos (3)**: `get_contacts`, `search_contacts`, `create_contact` - **Otros (3)**: `get_estimates`, `get_activities`, `create_activity`, `get_calendar_activities`, `get_timeline_data` ### Analytics (35 herramientas) - **Insurance & Retail (3)**: `analyze_insurance_pipeline`, `analyze_retail_pipeline`, `analyze_services_repair_pipeline` - **Financial (6)**: `get_sales_rep_performance`, `get_performance_metrics`, `get_automated_followup`, `get_revenue_report`, `get_margin_analysis`, `analyze_revenue_leakage`, `get_profitability_dashboard` - **Performance (2)**: `get_seasonal_trends`, `get_pipeline_forecasting` - **Territory (5)**: `get_job_summary`, `get_optimal_door_routes`, `get_territory_heat_maps`, `get_jobs_distribution`, `get_door_knocking_scripts_by_area`, `get_seasonal_door_timing`, `get_estimates_with_addresses` - **Productivity (9)**: `get_activities_analytics`, `get_task_management_analytics`, `get_user_productivity_analytics`, `get_lead_scoring_analytics`, `get_communication_analytics`, `get_conversion_funnel_analytics`, `get_resource_allocation_analytics`, `get_customer_satisfaction_analytics`, `get_time_tracking_analytics` - **Business (8)**: `get_project_management_analytics`, `get_marketing_campaign_analytics`, `get_financial_forecasting_analytics`, `get_customer_segmentation_analytics`, `get_operational_efficiency_analytics`, `get_sales_velocity_analytics`, `get_competitive_analysis_analytics` ### Materials (11 herramientas) - **Tracking**: `get_estimate_materials`, `analyze_material_costs`, `get_material_usage_report`, `get_material_inventory_insights` - **Calculations**: `calculate_roofing_materials`, `calculate_siding_materials`, `estimate_materials_from_job`, `calculate_waste_factors`, `optimize_material_orders`, `get_material_specifications`, `compare_material_alternatives` ### Attachments & Business Intelligence (6 herramientas) - **Attachments (4)**: `get_attachments`, `get_file_by_id`, `analyze_job_attachments`, `get_job_attachments_distribution` - **Business (1)**: `search_insurance_jobs` - **Invoices (1)**: `get_invoices` ### System (2 herramientas) - `get_tasks`, `get_users` ### 📦 Herramientas Archivadas/Experimentales Se removieron 14 herramientas obsoletas o no funcionales para optimizar rendimiento: - Ver `/src/tools/archived/` - 11 herramientas sin valor operativo - Ver `/src/tools/experimental/` - 7 herramientas con endpoints no verificados **Beneficios**: ~40% reducción en uso de tokens, descubrimiento de herramientas más rápido. **Agregar más**: Ver [docs/ADDING_TOOLS.md](docs/ADDING_TOOLS.md) ## 💻 Configuración MCP ### Opción 1: Claude Code (Recomendado) 1. **Configurar variables de entorno**: ```bash cp .env.mcp.example .env.mcp # Edita .env.mcp con tus API keys ``` 2. **Cargar variables** (PowerShell): ```powershell Get-Content .env.mcp | ForEach-Object { if ($_ -match '^([^=]+)=(.+)$') { [Environment]::SetEnvironmentVariable($matches[1], $matches[2], 'Process') } } ``` 3. **Verificar**: ``` /mcp ``` Ver guía completa: [MCP_SETUP.md](MCP_SETUP.md) ### Opción 2: Claude Desktop Ubicación: `%APPDATA%/Claude/claude_desktop_config.json` ```json { "mcpServers": { "jobnimbus-stamford": { "command": "node", "args": ["C:/ruta/a/examples/mcp-client.js"], "env": { "MCP_SERVER_URL": "https://tu-servidor.onrender.com", "JOBNIMBUS_API_KEY": "tu_api_key_stamford", "JOBNIMBUS_INSTANCE": "stamford" } } } } ``` Ver ejemplo completo: [examples/claude-desktop-config.json](examples/claude-desktop-config.json) ## 📚 Documentación - [📖 Setup Guide](docs/SETUP.md) - Instalación y deployment - [🔌 MCP Setup](MCP_SETUP.md) - Configuración de MCP para Claude Code - [🏗️ Arquitectura](docs/ARCHITECTURE.md) - Diseño técnico completo - [🛠️ Agregar Herramientas](docs/ADDING_TOOLS.md) - Cómo crear nuevas tools ## 🔐 Seguridad ### ✅ Lo que HACE el servidor: - Extrae API key del header `X-JobNimbus-Api-Key` - Valida formato del API key - Usa el API key para llamar a JobNimbus - Limpia el API key de memoria inmediatamente ### ❌ Lo que NO HACE el servidor: - Almacenar API keys en base de datos - Guardar API keys en archivos - Loggear API keys - Cachear API keys - Compartir API keys entre clientes ### Verificación de Seguridad ```bash # Buscar si hay API keys hardcodeados (debe retornar vacío) grep -r "api[_-]key.*=" src/ # Audit de dependencias npm audit # Tests de seguridad en CI npm run lint ``` ## 🚀 Deployment ### Automático (Recomendado) ```bash git add . git commit -m "feat: nueva funcionalidad" git push origin main ``` GitHub Actions despliega automáticamente a Render.com. ### Manual ```bash npm run build npm run start:prod ``` ## 🧪 Testing ### Health Check ```bash curl https://tu-servidor.onrender.com/health ``` ### Listar Herramientas ```bash curl -X POST https://tu-servidor.onrender.com/mcp/tools/list \ -H "X-JobNimbus-Api-Key: tu_api_key" \ -H "Content-Type: application/json" ``` ### Ejecutar Herramienta ```bash curl -X POST https://tu-servidor.onrender.com/mcp/tools/call \ -H "X-JobNimbus-Api-Key: tu_api_key" \ -H "Content-Type: application/json" \ -d '{"name":"get_jobs","arguments":{"size":10}}' ``` ## 📊 Monitoreo ### Health Check Endpoint - `GET /health` - Estado del servidor ### Rate Limit Headers ``` X-RateLimit-Limit: 60 X-RateLimit-Remaining: 45 X-RateLimit-Reset: 1234567890 ``` ### Logs Todos los logs están sanitizados - no incluyen API keys ni información sensible. ## 🛠️ Desarrollo ### Estructura del Proyecto ``` jobnimbus-mcp-remote/ ├── src/ │ ├── server/ # Express server │ ├── middleware/ # Auth, rate limiting │ ├── tools/ # MCP tools │ ├── services/ # JobNimbus client │ ├── config/ # Configuración │ ├── types/ # TypeScript types │ └── utils/ # Logger, errors ├── .github/workflows/ # CI/CD ├── docs/ # Documentación ├── scripts/ # Scripts útiles └── examples/ # Ejemplos de uso ``` ### Comandos Disponibles ```bash npm run dev # Desarrollo con hot reload npm run build # Compilar TypeScript npm run start # Ejecutar producción npm run lint # Linter npm run type-check # Verificar tipos npm test # Tests ``` ## 🤝 Contribuir 1. Fork el proyecto 2. Crea una rama: `git checkout -b feature/nueva-funcionalidad` 3. Commit: `git commit -m 'feat: agregar nueva funcionalidad'` 4. Push: `git push origin feature/nueva-funcionalidad` 5. Abre un Pull Request ## 📄 Licencia MIT ## 🆘 Soporte - **Documentación**: Ver carpeta `docs/` - **Issues**: GitHub Issues - **Logs**: Render.com dashboard ## ✅ Estado del Proyecto - [x] Estructura base - [x] Servidor Express con MCP - [x] Middleware de seguridad - [x] JobNimbus API client - [x] Sistema de tools extensible - [x] **88 herramientas CONSOLIDADAS** ✅ (14 archivadas/experimentales) - [x] GitHub Actions CI/CD - [x] Render.com config - [x] Documentación completa - [x] Cliente para Claude Desktop - [x] Factory pattern para extensibilidad - [x] Redis cache integration para optimización - [x] Consolidación de herramientas (enero 2025) - [ ] Tests unitarios (próximo) - [ ] Métricas y monitoring avanzado (opcional) --- **Hecho con ❤️ para acceso remoto seguro a JobNimbus desde Claude Desktop**

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/benitocabrerar/jobnimbus-mcp-remote'

If you have feedback or need assistance with the MCP directory API, please join our Discord server