rise-mcp
v1.22.0
Published
MCP server for RISE CRM — integra RISE CRM con Claude, Cursor, Copilot, Windsurf y otras IAs. Soporta STDIO (local), HTTP (Node.js) y Cloudflare Workers.
Maintainers
Readme
rise-mcp
Model Context Protocol (MCP) server for RISE CRM — integra tu instancia de RISE CRM con asistentes de IA como Claude, Cursor, Windsurf, GitHub Copilot, Continue.dev y OpenCode.
Requisitos
- Node.js >= 20
- Una instancia de RISE CRM con acceso API (módulo Rise API activado)
- Una API Key generada desde RISE CRM (
Configuración → Rise API)
Instalación
npm install -g rise-mcpO ejecútalo directamente sin instalar:
npx rise-mcpVariables de entorno
Antes de usar el servidor, configura las variables de entorno obligatorias:
| Variable | Descripción | Ejemplo |
|---|---|---|
| RISE_API_URL | URL base de tu instancia RISE CRM | https://tu-empresa.risecrm.com |
| RISE_API_KEY | API Key generada en RISE CRM | sk-abc123... |
También puedes crear un archivo .env en el directorio de trabajo:
RISE_API_URL=https://tu-empresa.risecrm.com
RISE_API_KEY=sk-abc123...Nota: Si las variables no están configuradas, el servidor MCP se iniciará igualmente, pero devolverá un error claro al intentar usar cualquier herramienta.
Herramientas disponibles
38 herramientas MCP organizadas en 12 módulos:
Auth
| Herramienta | Descripción |
|---|---|
| me | Datos del usuario autenticado y sus scopes |
| my_permissions | Permisos efectivos del usuario |
| auth_session | Token exchange: API key → session token |
| refresh_session | Renueva un session token existente |
CRM
| Herramienta | Acciones |
|---|---|
| clients | list, get, create, update, delete, contacts, by_email |
| contacts | list, get, create, update, delete, permissions |
| leads | list, get, create, update, delete, convert |
Proyectos
| Herramienta | Acciones |
|---|---|
| projects | list, get, create, update, delete, members, add_member, remove_member, comments, add_comment, files, milestones, create_milestone, update_milestone |
| tasks | list, get, create, update, delete, comments, add_comment, update_status, checklist, subtasks, create_subtask, copy |
Tickets
| Herramienta | Acciones |
|---|---|
| tickets | list, get, create, update, delete, comments, add_comment, update_status, assign, merge |
Finanzas
| Herramienta | Acciones |
|---|---|
| invoices | list, get, create, update, delete, items, add_item, payments, add_payment, update_status |
| estimates | list, get, create, update, delete, items, add_item, comments, update_status, requests, create_request |
| expenses | list, get, create, update, delete |
Ventas
| Herramienta | Acciones |
|---|---|
| proposals | list, get, create, update, delete, items, comments, update_status |
| contracts | list, get, create, update, delete, items, update_status |
| orders | list, get, create, update, delete, items, update_status |
| subscriptions | list, get, create, update, delete, items, update_status |
Comunicaciones
| Herramienta | Acciones |
|---|---|
| messages | list, sent, get, send, unread |
| announcements | list, get, create, update, delete |
| timeline | list, create, update, delete, like |
RRHH
| Herramienta | Acciones |
|---|---|
| users | list, get, create, update, delete, activate, job_info, online |
| teams | list, get, create, update, delete, members |
| roles | list, get, permissions, create, update, update_permissions |
| attendance | list, clock_in, clock_out, status, summary, members |
| leaves | list, get, create, update, delete, approve, reject, summary |
Conocimiento
| Herramienta | Acciones |
|---|---|
| knowledge_base | categories, show_category, create_category, update_category, delete_category, articles, show_article, create_article, update_article, delete_article, search |
| notes | list, get, create, update, delete, categories |
| todo | list, get, create, update, delete, toggle |
| reminders | list, create, update, delete |
Archivos
| Herramienta | Acciones |
|---|---|
| files | list (filtro client_id), get, download, upload (client_id asocia al contexto del cliente), delete |
| media | list, get, download, upload, delete (contextos: task_comment, project_file, general_file, ticket_comment, proposal_comment, estimate_comment, invoice, contract, announcement, expense, project_comment, message, note, order, kb_article, leave, subscription, todo, event, post, estimate_request) |
| folders | list, create, update, delete |
Las respuestas de media en list, get y download incluyen por archivo: mime_type, preview_url, is_audio, is_document e is_pdf (derivados de la extensión del nombre de archivo; mime_type respeta el valor de la API cuando viene presente). download devuelve los metadatos del archivo en JSON. preview_url apunta a la miniatura para imágenes (o a la URL original si no hay miniatura) y a la URL original para PDFs/documentos; si el origen de la vista previa (p. ej. Google Drive) no puede renderizarse inline, se puede usar url o download como alternativa.
Las respuestas de files en list y get incluyen por archivo los mismos metadatos enriquecidos que media (mime_type, preview_url, is_audio, is_document, is_pdf). En list, client_id filtra los archivos por cliente; en upload, client_id asocia la subida al contexto del cliente (no aparece en el File Manager global). Con context:"client" en list se obtienen los archivos de todos los clientes en una sola llamada (evita N+1), y search filtra por nombre de archivo (case-insensitive) cruzando ese contexto — requiere la versión actualizada del plugin rise_api. download devuelve primero la URL del archivo (redirect o URL firmada). Si la API responde con binario y el servidor corre en Node/stdio, guarda el archivo en un directorio temporal portable (os.tmpdir) y devuelve la ruta; en Cloudflare Workers entrega un data URL base64 inline, dividido en partes de 32 KB con instrucciones de reconstrucción para archivos mayores; los archivos que superan 2 MB en modo remoto requieren la URL de descarga directa o el modo local (stdio). El parámetro opcional delivery permite forzar el modo de entrega: auto (por defecto), file (guardar archivo local), inline (data URL base64, portable para agentes sin acceso al filesystem) o url (solo en PDFs generados): sube el PDF al File Manager de RISE y devuelve su URL de descarga, útil para agentes web con archivos grandes (genera un archivo en el sistema).
Reportes
| Herramienta | Descripción |
|---|---|
| reports | tasks, tickets, invoices, estimates, projects, team_members_summary, clients_summary, expenses, leaves, attendance, timesheets, income_vs_expense |
Admin
| Herramienta | Acciones |
|---|---|
| api_keys | list, create, rotate, delete, admin_list, admin_create, admin_delete |
| webhooks | list, get, create, update, delete, logs |
| settings | list, get, update, modules, update_modules |
| taxonomies | list, get, create, update, delete |
| custom_fields | list, get, create, update, delete |
| labels | list, get, create, update, delete |
| notification_settings | list, get, update |
Uso con asistentes de IA
Claude Desktop
Editar el archivo de configuración:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Linux:
~/.config/claude/claude_desktop_config.json - Windows:
%APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"rise-mcp": {
"command": "npx",
"args": ["-y", "rise-mcp"],
"env": {
"RISE_API_URL": "https://tu-empresa.risecrm.com",
"RISE_API_KEY": "sk-tu-api-key"
}
}
}
}Cursor
Crear o editar .cursor/mcp.json en la raíz de tu proyecto:
{
"mcpServers": {
"rise-mcp": {
"command": "npx",
"args": ["-y", "rise-mcp"],
"env": {
"RISE_API_URL": "https://tu-empresa.risecrm.com",
"RISE_API_KEY": "sk-tu-api-key"
}
}
}
}Windsurf
Crear o editar .windsurf/mcp.json en la raíz de tu proyecto:
{
"mcpServers": {
"rise-mcp": {
"command": "npx",
"args": ["-y", "rise-mcp"],
"env": {
"RISE_API_URL": "https://tu-empresa.risecrm.com",
"RISE_API_KEY": "sk-tu-api-key"
}
}
}
}GitHub Copilot (VS Code / VS Code Insiders)
Agregar en settings.json de VS Code:
{
"github.copilot.mcpServers": {
"rise-mcp": {
"command": "npx",
"args": ["-y", "rise-mcp"],
"env": {
"RISE_API_URL": "https://tu-empresa.risecrm.com",
"RISE_API_KEY": "sk-tu-api-key"
}
}
}
}OpenCode
Editar ~/.config/opencode/opencode.json:
{
"mcpServers": {
"rise-mcp": {
"command": "npx",
"args": ["-y", "rise-mcp"],
"env": {
"RISE_API_URL": "https://tu-empresa.risecrm.com",
"RISE_API_KEY": "sk-tu-api-key"
}
}
}
}Continue.dev (VS Code / JetBrains)
Agregar en .continue/config.json:
{
"experimental": {
"mcpServers": {
"rise-mcp": {
"command": "npx",
"args": ["-y", "rise-mcp"],
"env": {
"RISE_API_URL": "https://tu-empresa.risecrm.com",
"RISE_API_KEY": "sk-tu-api-key"
}
}
}
}
}Codex (OpenAI)
Agregar en el archivo ~/.codex/config.toml o configurar vía UI:
[mcp_servers.rise-mcp]
command = "npx"
args = ["-y", "rise-mcp"]
[mcp_servers.rise-mcp.env]
RISE_API_URL = "https://tu-empresa.risecrm.com"
RISE_API_KEY = "sk-tu-api-key"Ejemplos de uso
Una vez conectado el MCP a tu asistente de IA, puedes hacer preguntas como:
- "Muéstrame los clientes que tengo en RISE CRM"
- "Crea una tarea urgente en el proyecto 'Web Redesign'"
- "Lista las facturas pendientes de este mes"
- "¿Cuántos tickets abiertos hay asignados a Juan?"
- "Convierte el lead 'Acme Corp' en cliente"
- "Genera un reporte de ingresos vs gastos del Q1"
Desarrollo
git clone https://github.com/gzlo/rise-mcp.git
cd rise-mcp
npm install
npm run buildScripts
| Comando | Descripción |
|---|---|
| npm run build | Compila TypeScript → dist/ |
| npm run dev | Compila en modo watch |
| npm run start | Ejecuta el servidor compilado |
| npm run typecheck | Verifica tipos TypeScript |
| npm run lint | Ejecuta ESLint |
| npm run test | Ejecuta tests con Vitest |
Licencia
MIT © gzlo
